Subversion Repositories HelenOS

Rev

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

Rev Author Line No. Line
130 decky 1
MIPS_TARGET=mipsel-linux-gnu
2
MIPS_CC_DIR=/usr/local/mipsel/bin
3
MIPS_BINUTILS_DIR=/usr/local/mipsel/bin
1 jermar 4
 
5
CC=$(MIPS_CC_DIR)/$(MIPS_TARGET)-gcc
6
AS=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-as
7
LD=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-ld
293 palkovsky 8
OBJDUMP=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objdump
268 palkovsky 9
OBJCOPY=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objcopy
10
BFD_ARCH=mips
1 jermar 11
 
329 palkovsky 12
DEFS=-DARCH=$(ARCH) -DMACHINE=${MACHINE} -DKERNEL_LOAD_ADDRESS=${KERNEL_LOAD_ADDRESS}
13
CFLAGS=$(DEFS) -mno-abicalls -G 0 -nostdlib -fno-builtin -O2  -fno-zero-initialized-in-bss 
14
LFLAGS=-M -N
332 palkovsky 15
BFD_ARCH=mips
1 jermar 16
 
332 palkovsky 17
# GCC 4.0.1 compiled for mipsEL has problems compiling in 
18
# BigEndian mode with the swl/swr/lwl/lwr instructions.
19
# We have to compile it with mips-sgi-irix5 to get it right.
20
ifeq (${MACHINE},indy)
21
 MIPS_TARGET=mips-sgi-irix5
22
 MIPS_CC_DIR=/usr/local/mips/bin
23
 MIPS_BINUTILS_DIR=/usr/local/mips/bin
326 palkovsky 24
 
332 palkovsky 25
 CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -march=r4600
329 palkovsky 26
 BFD = ecoff-bigmips
27
 KERNEL_LOAD_ADDRESS = 0x88002000
339 palkovsky 28
 BFD_NAME=elf32-bigmips
326 palkovsky 29
endif
30
 
31
ifeq (${MACHINE},lgxemul)
329 palkovsky 32
 CFLAGS += -DHAVE_FPU -DFPU_LAZY -mips3
326 palkovsky 33
 BFD = ecoff-littlemips
330 palkovsky 34
 KERNEL_LOAD_ADDRESS = 0x80100000
332 palkovsky 35
 BFD_NAME=elf32-little
326 palkovsky 36
endif
37
 
38
ifeq (${MACHINE},bgxemul)
332 palkovsky 39
 MIPS_TARGET=mips-sgi-irix5
40
 MIPS_CC_DIR=/usr/local/mips/bin
41
 MIPS_BINUTILS_DIR=/usr/local/mips/bin
42
 
43
 CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -mips3
326 palkovsky 44
 BFD = ecoff-bigmips
330 palkovsky 45
 KERNEL_LOAD_ADDRESS = 0x80100000
339 palkovsky 46
 BFD_NAME=elf32-bigmips
326 palkovsky 47
endif
48
 
329 palkovsky 49
# MSIM needs lwl/swl patch & 4kc instruction patch to work
50
# otherwise add -mmemcpy -mips3
364 palkovsky 51
ifeq (${MACHINE},msim4kc)
326 palkovsky 52
 BFD = binary
329 palkovsky 53
 CFLAGS += -msoft-float -march=4kc 
330 palkovsky 54
 KERNEL_LOAD_ADDRESS = 0x80100000
332 palkovsky 55
 BFD_NAME=elf32-little
326 palkovsky 56
endif
57
 
364 palkovsky 58
ifeq (${MACHINE},msim)
59
 BFD = binary
60
 CFLAGS += -msoft-float -mips3
61
 KERNEL_LOAD_ADDRESS = 0x80100000
62
 BFD_NAME=elf32-little
63
endif
64
 
329 palkovsky 65
# SIMICS 4kc emulation is broken, although for instructions
66
# that do not bother us
326 palkovsky 67
ifeq (${MACHINE},simics)
68
 BFD = elf32-little
329 palkovsky 69
 CFLAGS += -msoft-float -mips3
330 palkovsky 70
 KERNEL_LOAD_ADDRESS = 0x80100000
332 palkovsky 71
 BFD_NAME=elf32-little
326 palkovsky 72
endif
73
 
74
../arch/$(ARCH)/_link.ld: ../arch/$(ARCH)/_link.ld.in
75
	$(CC) $(CFLAGS) -C -DBFD=${BFD} -E -x c $< | grep -v "^\#" > $@
76
 
1 jermar 77
arch_sources= \
78
	arch/start.S \
79
	arch/context.S \
313 palkovsky 80
	arch/panic.S \
342 jermar 81
	arch/mips32.c \
313 palkovsky 82
	arch/dummy.S \
324 palkovsky 83
	arch/console.c \
313 palkovsky 84
	arch/asm.S \
1 jermar 85
	arch/exception.c \
86
	arch/interrupt.c \
87
	arch/cache.c \
88
	arch/cpu/cpu.c \
89
	arch/mm/frame.c \
90
	arch/mm/page.c \
52 vana 91
	arch/mm/tlb.c \
230 cejka 92
	arch/fpu_context.c \
332 palkovsky 93
	arch/fmath.c \
94
	arch/drivers/arc.c