Subversion Repositories HelenOS

Rev

Rev 3817 | Rev 3993 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
455 decky 1
#
2071 jermar 2
# Copyright (c) 2005 Martin Decky
455 decky 3
# All rights reserved.
4
#
5
# Redistribution and use in source and binary forms, with or without
6
# modification, are permitted provided that the following conditions
7
# are met:
8
#
9
# - Redistributions of source code must retain the above copyright
10
#   notice, this list of conditions and the following disclaimer.
11
# - Redistributions in binary form must reproduce the above copyright
12
#   notice, this list of conditions and the following disclaimer in the
13
#   documentation and/or other materials provided with the distribution.
14
# - The name of the author may not be used to endorse or promote products
15
#   derived from this software without specific prior written permission.
16
#
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
#
418 jermar 28
 
455 decky 29
## Toolchain configuration
30
#
418 jermar 31
 
3397 rimsky 32
ifndef CROSS_PREFIX
33
	CROSS_PREFIX = /usr/local
34
endif
35
 
455 decky 36
BFD_NAME = elf64-sparc
37
BFD_ARCH = sparc
1777 jermar 38
BFD = binary
455 decky 39
TARGET = sparc64-linux-gnu
3397 rimsky 40
TOOLCHAIN_DIR = $(CROSS_PREFIX)/sparc64
418 jermar 41
 
2460 jermar 42
GCC_CFLAGS += -m64 -mcpu=ultrasparc 
2462 jermar 43
SUNCC_CFLAGS += -m64 -xarch=sparc -xregs=appl,no%float
2460 jermar 44
 
455 decky 45
LFLAGS += -no-check-sections -N
418 jermar 46
 
938 jermar 47
DEFS += -D__64_BITS__
48
 
455 decky 49
## Own configuration directives
50
#
424 jermar 51
 
684 jermar 52
## Compile with page hash table support.
53
#
54
 
55
CONFIG_PAGE_HT = y
1106 jermar 56
DEFS += -DCONFIG_PAGE_HT
684 jermar 57
 
727 jermar 58
## Compile with support for address space identifiers.
59
#
60
 
61
CONFIG_ASID = y
730 jermar 62
CONFIG_ASID_FIFO = y
727 jermar 63
 
895 jermar 64
## Compile with support for framebuffer.
65
#
66
 
883 jermar 67
CONFIG_FB = y
68
 
1896 jermar 69
## Compile with support for Sun keyboard.
70
#
71
 
72
CONFIG_SUN_KBD = y
73
 
1895 jermar 74
## Compile with support for OpenFirmware device tree.
75
#
895 jermar 76
 
1895 jermar 77
CONFIG_OFW_TREE = y
78
 
1903 jermar 79
ifeq ($(CONFIG_SMP),y)
80
	DEFS += -DCONFIG_SMP
81
endif
82
 
3549 rimsky 83
ifeq ($(CONFIG_SGCN),y)
84
        DEFS += -DCONFIG_SGCN
85
endif
86
 
3398 rimsky 87
ifeq ($(MACHINE),us)
3743 rimsky 88
	USARCH = sun4u
3798 rimsky 89
	DEFS += -DSUN4U
3743 rimsky 90
	DEFS += -DUS
3365 rimsky 91
endif
92
 
93
ifeq ($(MACHINE),us3)
3743 rimsky 94
	USARCH = sun4u
3798 rimsky 95
	DEFS += -DSUN4U
3365 rimsky 96
	DEFS += -DUS3
97
endif
98
 
3743 rimsky 99
ifeq ($(MACHINE),sun4v)
100
	USARCH = sun4v
101
	DEFS += -DSUN4V
102
	DEFS += -DUS3 # TODO: do not forget to remove this line, it is here only to make the code compilable even when the sun4v port is not fully implemented yet
103
endif
104
 
105
 
3770 rimsky 106
# sources which exist in two versions - one for sun4u and one for sun4v
455 decky 107
ARCH_SOURCES = \
3743 rimsky 108
	arch/$(ARCH)/src/$(USARCH)/start.S \
109
	arch/$(ARCH)/src/trap/$(USARCH)/trap_table.S \
110
	arch/$(ARCH)/src/$(USARCH)/asm.S \
3770 rimsky 111
	arch/$(ARCH)/src/$(USARCH)/sparc64.c \
112
	arch/$(ARCH)/src/mm/$(USARCH)/tlb.c \
3817 rimsky 113
	arch/$(ARCH)/src/mm/$(USARCH)/as.c \
3835 rimsky 114
	arch/$(ARCH)/src/cpu/$(USARCH)/cpu.c \
3743 rimsky 115
 
3770 rimsky 116
# specific to machine type
117
 
3743 rimsky 118
# sun4u-specific, not #ifdef'd yet in order to make the code compilable
119
ARCH_SOURCES += \
465 jermar 120
	arch/$(ARCH)/src/asm.S \
646 jermar 121
	arch/$(ARCH)/src/panic.S \
465 jermar 122
	arch/$(ARCH)/src/console.c \
123
	arch/$(ARCH)/src/context.S \
1882 jermar 124
	arch/$(ARCH)/src/fpu_context.c \
467 jermar 125
	arch/$(ARCH)/src/dummy.s \
2141 jermar 126
	arch/$(ARCH)/src/mm/cache.S \
465 jermar 127
	arch/$(ARCH)/src/mm/frame.c \
128
	arch/$(ARCH)/src/mm/page.c \
897 jermar 129
	arch/$(ARCH)/src/proc/scheduler.c \
1854 jermar 130
	arch/$(ARCH)/src/proc/thread.c \
663 jermar 131
	arch/$(ARCH)/src/trap/trap.c \
667 jermar 132
	arch/$(ARCH)/src/trap/exception.c \
664 jermar 133
	arch/$(ARCH)/src/trap/interrupt.c \
1191 jermar 134
	arch/$(ARCH)/src/ddi/ddi.c \
1410 jermar 135
	arch/$(ARCH)/src/drivers/tick.c \
1897 jermar 136
	arch/$(ARCH)/src/drivers/kbd.c \
1911 jermar 137
	arch/$(ARCH)/src/drivers/scr.c \
3502 rimsky 138
	arch/$(ARCH)/src/drivers/sgcn.c \
3607 rimsky 139
	arch/$(ARCH)/src/drivers/pci.c
1849 jermar 140
 
3743 rimsky 141
# sun4v-specific sources
142
ifeq ($(USARCH),sun4v)
143
ARCH_SOURCES += \
3783 rimsky 144
	arch/$(ARCH)/src/drivers/niagara.c \
3835 rimsky 145
	arch/$(ARCH)/src/sun4v/md.c \
146
	arch/$(ARCH)/src/trap/sun4v/mmu.S
3743 rimsky 147
endif
3467 rimsky 148
 
1903 jermar 149
ifeq ($(CONFIG_SMP),y)
150
ARCH_SOURCES += \
151
	arch/$(ARCH)/src/smp/ipi.c \
3770 rimsky 152
	arch/$(ARCH)/src/smp/$(USARCH)/smp.c
1903 jermar 153
endif
154
 
1891 jermar 155
ifeq ($(CONFIG_TSB),y)
1889 jermar 156
ARCH_SOURCES += \
157
	arch/$(ARCH)/src/mm/tsb.c
158
endif
159
 
1849 jermar 160
ifdef CONFIG_Z8530
161
ARCH_SOURCES += \
162
	arch/$(ARCH)/src/drivers/fhc.c
163
endif