Subversion Repositories HelenOS-historic

Rev

Rev 455 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 455 Rev 457
Line 27... Line 27...
27
#
27
#
28
 
28
 
29
## Toolchain configuration
29
## Toolchain configuration
30
#
30
#
31
 
31
 
32
BFD_NAME = elf32-i386
-
 
33
BFD_ARCH = mips
32
BFD_ARCH = mips
34
TARGET = mipsel-linux-gnu
33
TARGET = mipsel-linux-gnu
35
TOOLCHAIN_DIR = /usr/local/mipsel/bin
34
TOOLCHAIN_DIR = /usr/local/mipsel/bin
36
 
35
 
37
## Make some default assumptions
36
## Make some default assumptions
38
#
37
#
39
 
38
 
40
ifndef CPU
39
ifndef MACHINE
41
	CPU = pentium4
40
	MACHINE = msim
42
endif
41
endif
43
 
42
 
44
## Accepted CPUs
-
 
45
#
-
 
46
 
-
 
47
ifeq ($(CPU),athlon-xp)
-
 
48
	CFLAGS += -march=athlon-xp -mmmx -msse -m3dnow
-
 
49
	DEFS += -DFENCES=486
43
KERNEL_LOAD_ADDRESS = 0x80100000
50
	CONFIG_SMP = n
-
 
51
	CONFIG_HT = n
-
 
52
endif
-
 
53
ifeq ($(CPU),athlon-mp)
-
 
54
	CFLAGS += -march=athlon-mp -mmmx -msse -m3dnow
44
CFLAGS += -mno-abicalls -G 0 -fno-zero-initialized-in-bss
55
	DEFS += -DFENCES=486
-
 
56
endif
-
 
57
ifeq ($(CPU),pentium3)
-
 
58
	CFLAGS += -march=pentium3 -mmmx -msse -msse2
-
 
59
	DEFS += -DFENCES=486
-
 
60
endif
-
 
61
ifeq ($(CPU),pentium4)
-
 
62
	CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3
45
DEFS += -DMACHINE=${MACHINE} -DKERNEL_LOAD_ADDRESS=${KERNEL_LOAD_ADDRESS}
63
	DEFS += -DFENCES=p4
-
 
64
endif
-
 
65
 
-
 
66
## Own configuration directives
-
 
67
#
-
 
68
 
-
 
69
CONFIG_ACPI = y
-
 
70
 
46
 
71
## Accepted configuration directives
47
## Accepted MACHINEs
72
#
48
#
73
 
49
 
74
ifeq ($(CONFIG_SMP),y)
50
ifeq ($(MACHINE),indy)
75
	DEFS += -DSMP
-
 
76
endif
-
 
77
ifeq ($(CONFIG_HT),y)
-
 
78
	DEFS += -DHT
-
 
79
endif
-
 
80
ifeq ($(CONFIG_FPU_LAZY),y)
-
 
81
	DEFS += -DFPU_LAZY
-
 
82
endif
-
 
83
 
-
 
84
ARCH_SOURCES = \
-
 
85
	arch/$(ARCH)/src/context.s \
-
 
86
	arch/$(ARCH)/src/debug/panic.s \
-
 
87
	arch/$(ARCH)/src/delay.s \
-
 
88
	arch/$(ARCH)/src/asm.S \
-
 
89
	arch/$(ARCH)/src/proc/scheduler.c \
-
 
90
	arch/$(ARCH)/src/bios/bios.c \
-
 
91
	arch/$(ARCH)/src/smp/ap.S \
-
 
92
	arch/$(ARCH)/src/smp/apic.c \
-
 
93
	arch/$(ARCH)/src/smp/mps.c \
-
 
94
	arch/$(ARCH)/src/smp/smp.c \
-
 
95
	arch/$(ARCH)/src/atomic.S \
-
 
96
	arch/$(ARCH)/src/smp/ipi.c \
-
 
97
	arch/$(ARCH)/src/ia32.c \
-
 
98
	arch/$(ARCH)/src/interrupt.c \
-
 
99
	arch/$(ARCH)/src/pm.c \
-
 
100
	arch/$(ARCH)/src/userspace.c \
-
 
101
	arch/$(ARCH)/src/cpu/cpu.c \
-
 
102
	arch/$(ARCH)/src/mm/frame.c \
-
 
103
	arch/$(ARCH)/src/mm/memory_init.c \
-
 
104
	arch/$(ARCH)/src/mm/page.c \
-
 
105
	arch/$(ARCH)/src/mm/tlb.c \
-
 
106
	arch/$(ARCH)/src/drivers/i8042.c \
-
 
107
	arch/$(ARCH)/src/drivers/i8254.c \
-
 
108
	arch/$(ARCH)/src/drivers/i8259.c \
-
 
109
	arch/$(ARCH)/src/drivers/ega.c \
-
 
110
	arch/$(ARCH)/src/boot/boot.S \
-
 
111
	arch/$(ARCH)/src/boot/memmap.S \
-
 
112
	arch/$(ARCH)/src/fpu_context.c\
-
 
113
	arch/$(ARCH)/src/fmath.c
-
 
114
 
-
 
115
 
-
 
116
 
-
 
117
 
-
 
118
 
-
 
119
 
-
 
120
 
-
 
121
 
-
 
122
 
-
 
123
 
-
 
124
 
-
 
125
 
-
 
126
 
-
 
127
 
-
 
128
 
-
 
129
 
-
 
130
DEFS= -DMACHINE=${MACHINE} -DKERNEL_LOAD_ADDRESS=${KERNEL_LOAD_ADDRESS}
-
 
131
CFLAGS=-mno-abicalls -G 0 -nostdlib -fno-builtin -O2  -fno-zero-initialized-in-bss
-
 
132
LFLAGS=
-
 
133
 
-
 
134
# GCC 4.0.1 compiled for mipsEL has problems compiling in 
51
	# GCC 4.0.1 compiled for mipsEL has problems compiling in 
135
# BigEndian mode with the swl/swr/lwl/lwr instructions.
52
	# BigEndian mode with the swl/swr/lwl/lwr instructions.
136
# We have to compile it with mips-sgi-irix5 to get it right.
53
	# We have to compile it with mips-sgi-irix5 to get it right.
137
ifeq (${MACHINE},indy)
-
 
138
 MIPS_TARGET=mips-sgi-irix5
-
 
139
 MIPS_CC_DIR=/usr/local/mips/bin
-
 
140
 MIPS_BINUTILS_DIR=/usr/local/mips/bin
-
 
141
 
54
	
142
 CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -march=r4600
55
	BFD_NAME = elf32-bigmips
143
 BFD = ecoff-bigmips
56
	BFD = ecoff-bigmips
-
 
57
	TARGET = mips-sgi-irix5
-
 
58
	TOOLCHAIN_DIR = /usr/local/mips/bin
144
 KERNEL_LOAD_ADDRESS = 0x88002000
59
	KERNEL_LOAD_ADDRESS = 0x88002000
145
 BFD_NAME=elf32-bigmips
60
	CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -march=r4600
146
endif
61
endif
147
 
-
 
148
ifeq (${MACHINE},lgxemul)
62
ifeq ($(MACHINE}),lgxemul)
149
 CFLAGS += -DHAVE_FPU -DFPU_LAZY -mips3
-
 
150
 BFD = ecoff-littlemips
-
 
151
 KERNEL_LOAD_ADDRESS = 0x80100000
-
 
152
 BFD_NAME=elf32-tradlittlemips
63
	BFD_NAME=elf32-tradlittlemips
-
 
64
	BFD = ecoff-littlemips
-
 
65
	CFLAGS += -DHAVE_FPU -mips3
153
endif
66
endif
154
 
-
 
155
ifeq (${MACHINE},bgxemul)
67
ifeq ($(MACHINE),bgxemul)
156
 MIPS_TARGET=mips-sgi-irix5
-
 
157
 MIPS_CC_DIR=/usr/local/mips/bin
-
 
158
 MIPS_BINUTILS_DIR=/usr/local/mips/bin
-
 
159
 
-
 
160
 CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -mips3
-
 
161
 BFD = ecoff-bigmips
-
 
162
 KERNEL_LOAD_ADDRESS = 0x80100000
-
 
163
 BFD_NAME=elf32-bigmips
68
	BFD_NAME=elf32-bigmips
-
 
69
	BFD = ecoff-bigmips
-
 
70
	TARGET = mips-sgi-irix5
-
 
71
	TOOLCHAIN_DIR = /usr/local/mips/bin
-
 
72
	CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -mips3
164
endif
73
endif
165
 
-
 
-
 
74
ifeq ($(MACHINE),msim4kc)
166
# MSIM needs lwl/swl patch & 4kc instruction patch to work
75
	# MSIM needs lwl/swl patch & 4kc instruction patch to work
167
# otherwise add -mmemcpy -mips3
76
	# otherwise add -mmemcpy -mips3
168
ifeq (${MACHINE},msim4kc)
-
 
169
 BFD = binary
-
 
170
 CFLAGS += -mhard-float -march=4kc 
-
 
171
 KERNEL_LOAD_ADDRESS = 0x80100000
-
 
172
 BFD_NAME=elf32-tradlittlemips
-
 
173
endif
-
 
174
 
77
	
175
ifeq (${MACHINE},msim)
-
 
176
 BFD = binary
-
 
177
 CFLAGS += -mhard-float -mips3
-
 
178
 KERNEL_LOAD_ADDRESS = 0x80100000
-
 
179
 BFD_NAME=elf32-tradlittlemips
78
	BFD_NAME = elf32-tradlittlemips
-
 
79
	BFD = binary
-
 
80
	CFLAGS += -mhard-float -march=4kc 
180
endif
81
endif
181
 
-
 
-
 
82
ifeq ($(MACHINE),simics)
182
# SIMICS 4kc emulation is broken, although for instructions
83
	# SIMICS 4kc emulation is broken, although for instructions
183
# that do not bother us
84
	# that do not bother us
-
 
85
	
184
ifeq (${MACHINE},simics)
86
	BFD_NAME = elf32-tradlittlemips
185
 BFD = elf32-tradlittlemips
87
	BFD = elf32-tradlittlemips
186
 CFLAGS += -mhard-float -mips3
88
	CFLAGS += -mhard-float -mips3
-
 
89
endif
187
 KERNEL_LOAD_ADDRESS = 0x80100000
90
ifeq ($(MACHINE),msim)
188
 BFD_NAME=elf32-tradlittlemips
91
	BFD_NAME = elf32-tradlittlemips
-
 
92
	BFD = binary
-
 
93
	CFLAGS += -mhard-float -mips3
189
endif
94
endif
190
 
95
 
191
arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in
96
## Own configuration directives
-
 
97
#
-
 
98
 
-
 
99
CONFIG_OFW = y
-
 
100
 
192
	$(CC) $(CFLAGS) -C -DBFD=${BFD} -E -x c $< | grep -v "^\#" > $@
101
## Accepted configuration directives
-
 
102
#
-
 
103
 
-
 
104
ifeq ($(CONFIG_FPU_LAZY),y)
-
 
105
	DEFS += -DFPU_LAZY
-
 
106
endif
193
 
107
 
194
arch_sources= \
108
ARCH_SOURCES = \
195
	generic/src/arch/start.S \
109
	arch/$(ARCH)/src/start.S \
196
	generic/src/arch/context.S \
110
	arch/$(ARCH)/src/context.S \
197
	generic/src/arch/panic.S \
111
	arch/$(ARCH)/src/panic.S \
198
	generic/src/arch/mips32.c \
112
	arch/$(ARCH)/src/mips32.c \
199
	generic/src/arch/dummy.S \
113
	arch/$(ARCH)/src/dummy.S \
200
	generic/src/arch/console.c \
114
	arch/$(ARCH)/src/console.c \
201
	generic/src/arch/asm.S \
115
	arch/$(ARCH)/src/asm.S \
202
	generic/src/arch/exception.c \
116
	arch/$(ARCH)/src/exception.c \
203
	generic/src/arch/interrupt.c \
117
	arch/$(ARCH)/src/interrupt.c \
204
	generic/src/arch/cache.c \
118
	arch/$(ARCH)/src/cache.c \
205
	generic/src/arch/cpu/cpu.c \
119
	arch/$(ARCH)/src/cpu/cpu.c \
206
	generic/src/arch/mm/asid.c \
120
	arch/$(ARCH)/src/mm/asid.c \
207
	generic/src/arch/mm/frame.c \
121
	arch/$(ARCH)/src/mm/frame.c \
208
	generic/src/arch/mm/page.c \
122
	arch/$(ARCH)/src/mm/page.c \
209
	generic/src/arch/mm/tlb.c \
123
	arch/$(ARCH)/src/mm/tlb.c \
210
	generic/src/arch/mm/vm.c \
124
	arch/$(ARCH)/src/mm/vm.c \
211
	generic/src/arch/fpu_context.c \
125
	arch/$(ARCH)/src/fpu_context.c \
212
	generic/src/arch/fmath.c \
126
	arch/$(ARCH)/src/fmath.c \
213
	generic/src/arch/drivers/arc.c
127
	arch/$(ARCH)/src/drivers/arc.c