Subversion Repositories HelenOS

Rev

Rev 429 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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