Subversion Repositories HelenOS

Rev

Rev 329 | Rev 332 | 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
1 jermar 2
 
130 decky 3
MIPS_CC_DIR=/usr/local/mipsel/bin
4
MIPS_BINUTILS_DIR=/usr/local/mipsel/bin
1 jermar 5
 
6
CC=$(MIPS_CC_DIR)/$(MIPS_TARGET)-gcc
7
AS=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-as
8
LD=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-ld
293 palkovsky 9
OBJDUMP=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objdump
268 palkovsky 10
OBJCOPY=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objcopy
11
BFD_NAME=elf32-tradlittlemips
12
BFD_ARCH=mips
1 jermar 13
 
329 palkovsky 14
DEFS=-DARCH=$(ARCH) -DMACHINE=${MACHINE} -DKERNEL_LOAD_ADDRESS=${KERNEL_LOAD_ADDRESS}
15
CFLAGS=$(DEFS) -mno-abicalls -G 0 -nostdlib -fno-builtin -O2  -fno-zero-initialized-in-bss 
16
LFLAGS=-M -N
1 jermar 17
 
326 palkovsky 18
# It seems that on big endian either GCC or the simulators
19
# have the swl/swr/lwl/lwr instructions wrong. Just for sure,
20
# disable it with -mmemcpy (force calling memcpy instead of inlining)
21
 
22
ifeq (${MACHINE},indy)
329 palkovsky 23
 CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -march=r4600
24
 BFD = ecoff-bigmips
25
 KERNEL_LOAD_ADDRESS = 0x88002000
326 palkovsky 26
endif
27
 
28
ifeq (${MACHINE},lgxemul)
329 palkovsky 29
 CFLAGS += -DHAVE_FPU -DFPU_LAZY -mips3
326 palkovsky 30
 BFD = ecoff-littlemips
330 palkovsky 31
 KERNEL_LOAD_ADDRESS = 0x80100000
326 palkovsky 32
endif
33
 
34
ifeq (${MACHINE},bgxemul)
329 palkovsky 35
 CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -mips3
326 palkovsky 36
 BFD = ecoff-bigmips
330 palkovsky 37
 KERNEL_LOAD_ADDRESS = 0x80100000
326 palkovsky 38
endif
39
 
329 palkovsky 40
# MSIM needs lwl/swl patch & 4kc instruction patch to work
41
# otherwise add -mmemcpy -mips3
326 palkovsky 42
ifeq (${MACHINE},msim)
43
 BFD = binary
329 palkovsky 44
 CFLAGS += -msoft-float -march=4kc 
330 palkovsky 45
 KERNEL_LOAD_ADDRESS = 0x80100000
326 palkovsky 46
endif
47
 
329 palkovsky 48
# SIMICS 4kc emulation is broken, although for instructions
49
# that do not bother us
326 palkovsky 50
ifeq (${MACHINE},simics)
51
 BFD = elf32-little
329 palkovsky 52
 CFLAGS += -msoft-float -mips3
330 palkovsky 53
 KERNEL_LOAD_ADDRESS = 0x80100000
326 palkovsky 54
endif
55
 
56
../arch/$(ARCH)/_link.ld: ../arch/$(ARCH)/_link.ld.in
57
	$(CC) $(CFLAGS) -C -DBFD=${BFD} -E -x c $< | grep -v "^\#" > $@
58
 
1 jermar 59
arch_sources= \
60
	arch/start.S \
61
	arch/context.S \
313 palkovsky 62
	arch/panic.S \
1 jermar 63
	arch/mips.c \
313 palkovsky 64
	arch/dummy.S \
324 palkovsky 65
	arch/console.c \
313 palkovsky 66
	arch/asm.S \
1 jermar 67
	arch/exception.c \
68
	arch/interrupt.c \
69
	arch/cache.c \
70
	arch/cpu/cpu.c \
71
	arch/mm/frame.c \
72
	arch/mm/page.c \
52 vana 73
	arch/mm/tlb.c \
230 cejka 74
	arch/fpu_context.c \
75
	arch/fmath.c