Changeset 389f41e in mainline
- Timestamp:
- 2005-11-08T11:57:23Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5f85c91
- Parents:
- 5b65205
- Files:
-
- 30 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r5b65205 r389f41e 143 143 144 144 arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in 145 $(CC) $(DEFS) $(CFLAGS) -E -x c $< | grep -v "^\#" > $@145 $(CC) $(DEFS) -DBFD=\"$(BFD)\" $(CFLAGS) -E -x c $< | grep -v "^\#" > $@ 146 146 147 147 generic/src/debug/real_map.bin: depend arch/$(ARCH)/_link.ld $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) -
arch/amd64/Makefile.inc
r5b65205 r389f41e 32 32 BFD_NAME = elf64-x86-64 33 33 BFD_ARCH = i386:x86-64 34 BFD = binary 34 35 TARGET = amd64-linux-gnu 35 36 TOOLCHAIN_DIR = /usr/local/amd64/bin -
arch/amd64/_link.ld.in
r5b65205 r389f41e 13 13 #include <arch/mm/page.h> 14 14 15 OUTPUT_FORMAT( binary)15 OUTPUT_FORMAT(BFD) 16 16 ENTRY(kernel_image_start) 17 17 -
arch/amd64/boot/Makefile
r5b65205 r389f41e 1 .PHONY: nothing build clean 2 3 nothing: 1 .PHONY: build clean 4 2 5 3 build: boot.bin 6 4 dd if=boot.bin of=../../../image.bin bs=512 conv=sync 7 -cat ../../../kernel.bin >> ../../../image.bin5 -cat ../../../kernel.bin >> ../../../image.bin 8 6 dd if=/dev/zero of=../../../image.bin bs=1 seek=1474559 count=1 9 7 10 8 boot.bin: boot.o 11 ld-T boot.ld -entry _start_0x7c00 --oformat binary boot.o -o $@9 $(LD) -T boot.ld -entry _start_0x7c00 --oformat binary boot.o -o $@ 12 10 13 11 boot.o: boot.S 14 gcc -E -DKERNEL_SIZE=$(KERNEL_SIZE) boot.S >boot.s15 asboot.s -o $@12 $(CC) -E -DKERNEL_SIZE=$(KERNEL_SIZE) boot.S > boot.s 13 $(AS) boot.s -o $@ 16 14 rm boot.s 17 15 18 16 clean: 19 -rm *.o *.bin17 -rm -f boot.o boot.bin ../../../image.bin -
arch/ia32/Makefile.inc
r5b65205 r389f41e 32 32 BFD_NAME = elf32-i386 33 33 BFD_ARCH = i386 34 BFD = binary 34 35 TARGET = i686-pc-linux-gnu 35 36 TOOLCHAIN_DIR = /usr/local/i686/bin … … 47 48 ifeq ($(CPU),athlon-xp) 48 49 CFLAGS += -march=athlon-xp -mmmx -msse -m3dnow 49 DEFS += -DFENCES= 48650 DEFS += -DFENCES=p3 50 51 CONFIG_SMP = n 51 52 CONFIG_HT = n … … 53 54 ifeq ($(CPU),athlon-mp) 54 55 CFLAGS += -march=athlon-mp -mmmx -msse -m3dnow 55 DEFS += -DFENCES=486 56 DEFS += -DFENCES=p3 57 CONFIG_HT = n 56 58 endif 57 59 ifeq ($(CPU),pentium3) 58 CFLAGS += -march=pentium3 -mmmx -msse -msse2 59 DEFS += -DFENCES=486 60 CFLAGS += -march=pentium3 -mmmx -msse 61 DEFS += -DFENCES=p3 62 CONFIG_HT = n 63 endif 64 ifeq ($(CPU),prescott) 65 CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3 66 DEFS += -DFENCES=p4 60 67 endif 61 68 ifeq ($(CPU),pentium4) 62 CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse369 CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 63 70 DEFS += -DFENCES=p4 64 71 endif -
arch/ia32/_link.ld.in
r5b65205 r389f41e 13 13 #include <arch/mm/page.h> 14 14 15 OUTPUT_FORMAT( binary)15 OUTPUT_FORMAT(BFD) 16 16 ENTRY(kernel_image_start) 17 17 -
arch/ia32/include/barrier.h
r5b65205 r389f41e 44 44 #define CS_LEAVE_BARRIER() __asm__ volatile ("" ::: "memory") 45 45 46 #ifdef __STRONG_ORDERING__ 47 48 #define memory_barrier() 49 #define read_barrier() 50 #define write_barrier() 51 46 #if (FENCES == p4) 47 # define memory_barrier() __asm__ volatile ("mfence\n" ::: "memory") 48 # define read_barrier() __asm__ volatile ("sfence\n" ::: "memory") 49 # define write_barrier() __asm__ volatile ("lfence\n" ::: "memory") 50 #elif (FENCES == p3) 51 # define memory_barrier() __asm__ volatile ("xchgl %%eax,%%eax\n" ::: "memory") 52 # define read_barrier() __asm__ volatile ("sfence\n" ::: "memory") 53 # define write_barrier() __asm__ volatile ("xchgl %%eax,%%eax\n" ::: "memory") 52 54 #else 53 54 #define memory_barrier() __asm__ volatile ("mfence\n" ::: "memory") 55 #define read_barrier() __asm__ volatile ("sfence\n" ::: "memory") 56 #define write_barrier() __asm__ volatile ("lfence\n" ::: "memory") 57 55 # error Unsupported FENCES value 58 56 #endif 59 57 -
arch/ia64/Makefile.inc
r5b65205 r389f41e 32 32 BFD_NAME = elf64-little 33 33 BFD_ARCH = ia64-elf64 34 BFD = elf64-ia64-little 34 35 TARGET = ia64-pc-linux-gnu 35 36 TOOLCHAIN_DIR = /usr/local/ia64/bin -
arch/ia64/_link.ld.in
r5b65205 r389f41e 9 9 #define __ASM__ 10 10 11 OUTPUT_FORMAT( elf64-ia64-little)11 OUTPUT_FORMAT(BFD) 12 12 ENTRY(kernel_image_start) 13 13 -
arch/mips32/Makefile.inc
r5b65205 r389f41e 30 30 # 31 31 32 BFD_NAME = elf32-i38633 32 BFD_ARCH = mips 34 33 TARGET = mipsel-linux-gnu … … 38 37 # 39 38 40 ifndef CPU41 CPU = pentium439 ifndef MACHINE 40 MACHINE = msim 42 41 endif 43 42 44 ## Accepted CPUs 43 KERNEL_LOAD_ADDRESS = 0x80100000 44 CFLAGS += -mno-abicalls -G 0 -fno-zero-initialized-in-bss 45 DEFS += -DMACHINE=${MACHINE} -DKERNEL_LOAD_ADDRESS=${KERNEL_LOAD_ADDRESS} 46 47 ## Accepted MACHINEs 45 48 # 46 49 47 ifeq ($(CPU),athlon-xp) 48 CFLAGS += -march=athlon-xp -mmmx -msse -m3dnow 49 DEFS += -DFENCES=486 50 CONFIG_SMP = n 51 CONFIG_HT = n 50 ifeq ($(MACHINE),indy) 51 # GCC 4.0.1 compiled for mipsEL has problems compiling in 52 # BigEndian mode with the swl/swr/lwl/lwr instructions. 53 # We have to compile it with mips-sgi-irix5 to get it right. 54 55 BFD_NAME = elf32-bigmips 56 BFD = ecoff-bigmips 57 TARGET = mips-sgi-irix5 58 TOOLCHAIN_DIR = /usr/local/mips/bin 59 KERNEL_LOAD_ADDRESS = 0x88002000 60 CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -march=r4600 52 61 endif 53 ifeq ($(CPU),athlon-mp) 54 CFLAGS += -march=athlon-mp -mmmx -msse -m3dnow 55 DEFS += -DFENCES=486 62 ifeq ($(MACHINE}),lgxemul) 63 BFD_NAME=elf32-tradlittlemips 64 BFD = ecoff-littlemips 65 CFLAGS += -DHAVE_FPU -mips3 56 66 endif 57 ifeq ($(CPU),pentium3) 58 CFLAGS += -march=pentium3 -mmmx -msse -msse2 59 DEFS += -DFENCES=486 67 ifeq ($(MACHINE),bgxemul) 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 60 73 endif 61 ifeq ($(CPU),pentium4) 62 CFLAGS += -march=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3 63 DEFS += -DFENCES=p4 74 ifeq ($(MACHINE),msim4kc) 75 # MSIM needs lwl/swl patch & 4kc instruction patch to work 76 # otherwise add -mmemcpy -mips3 77 78 BFD_NAME = elf32-tradlittlemips 79 BFD = binary 80 CFLAGS += -mhard-float -march=4kc 81 endif 82 ifeq ($(MACHINE),simics) 83 # SIMICS 4kc emulation is broken, although for instructions 84 # that do not bother us 85 86 BFD_NAME = elf32-tradlittlemips 87 BFD = elf32-tradlittlemips 88 CFLAGS += -mhard-float -mips3 89 endif 90 ifeq ($(MACHINE),msim) 91 BFD_NAME = elf32-tradlittlemips 92 BFD = binary 93 CFLAGS += -mhard-float -mips3 64 94 endif 65 95 … … 67 97 # 68 98 69 CONFIG_ ACPI= y99 CONFIG_OFW = y 70 100 71 101 ## Accepted configuration directives 72 102 # 73 103 74 ifeq ($(CONFIG_SMP),y)75 DEFS += -DSMP76 endif77 ifeq ($(CONFIG_HT),y)78 DEFS += -DHT79 endif80 104 ifeq ($(CONFIG_FPU_LAZY),y) 81 105 DEFS += -DFPU_LAZY … … 83 107 84 108 ARCH_SOURCES = \ 85 arch/$(ARCH)/src/context.s \ 86 arch/$(ARCH)/src/debug/panic.s \ 87 arch/$(ARCH)/src/delay.s \ 109 arch/$(ARCH)/src/start.S \ 110 arch/$(ARCH)/src/context.S \ 111 arch/$(ARCH)/src/panic.S \ 112 arch/$(ARCH)/src/mips32.c \ 113 arch/$(ARCH)/src/dummy.S \ 114 arch/$(ARCH)/src/console.c \ 88 115 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 \ 116 arch/$(ARCH)/src/exception.c \ 98 117 arch/$(ARCH)/src/interrupt.c \ 99 arch/$(ARCH)/src/pm.c \ 100 arch/$(ARCH)/src/userspace.c \ 118 arch/$(ARCH)/src/cache.c \ 101 119 arch/$(ARCH)/src/cpu/cpu.c \ 120 arch/$(ARCH)/src/mm/asid.c \ 102 121 arch/$(ARCH)/src/mm/frame.c \ 103 arch/$(ARCH)/src/mm/memory_init.c \104 122 arch/$(ARCH)/src/mm/page.c \ 105 123 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 135 # BigEndian mode with the swl/swr/lwl/lwr instructions. 136 # 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 142 CFLAGS += -EB -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -march=r4600 143 BFD = ecoff-bigmips 144 KERNEL_LOAD_ADDRESS = 0x88002000 145 BFD_NAME=elf32-bigmips 146 endif 147 148 ifeq (${MACHINE},lgxemul) 149 CFLAGS += -DHAVE_FPU -DFPU_LAZY -mips3 150 BFD = ecoff-littlemips 151 KERNEL_LOAD_ADDRESS = 0x80100000 152 BFD_NAME=elf32-tradlittlemips 153 endif 154 155 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 164 endif 165 166 # MSIM needs lwl/swl patch & 4kc instruction patch to work 167 # 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 175 ifeq (${MACHINE},msim) 176 BFD = binary 177 CFLAGS += -mhard-float -mips3 178 KERNEL_LOAD_ADDRESS = 0x80100000 179 BFD_NAME=elf32-tradlittlemips 180 endif 181 182 # SIMICS 4kc emulation is broken, although for instructions 183 # that do not bother us 184 ifeq (${MACHINE},simics) 185 BFD = elf32-tradlittlemips 186 CFLAGS += -mhard-float -mips3 187 KERNEL_LOAD_ADDRESS = 0x80100000 188 BFD_NAME=elf32-tradlittlemips 189 endif 190 191 arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in 192 $(CC) $(CFLAGS) -C -DBFD=${BFD} -E -x c $< | grep -v "^\#" > $@ 193 194 arch_sources= \ 195 generic/src/arch/start.S \ 196 generic/src/arch/context.S \ 197 generic/src/arch/panic.S \ 198 generic/src/arch/mips32.c \ 199 generic/src/arch/dummy.S \ 200 generic/src/arch/console.c \ 201 generic/src/arch/asm.S \ 202 generic/src/arch/exception.c \ 203 generic/src/arch/interrupt.c \ 204 generic/src/arch/cache.c \ 205 generic/src/arch/cpu/cpu.c \ 206 generic/src/arch/mm/asid.c \ 207 generic/src/arch/mm/frame.c \ 208 generic/src/arch/mm/page.c \ 209 generic/src/arch/mm/tlb.c \ 210 generic/src/arch/mm/vm.c \ 211 generic/src/arch/fpu_context.c \ 212 generic/src/arch/fmath.c \ 213 generic/src/arch/drivers/arc.c 124 arch/$(ARCH)/src/mm/vm.c \ 125 arch/$(ARCH)/src/fpu_context.c \ 126 arch/$(ARCH)/src/fmath.c \ 127 arch/$(ARCH)/src/drivers/arc.c -
arch/mips32/_link.ld.in
r5b65205 r389f41e 10 10 11 11 OUTPUT_FORMAT(BFD) 12 13 12 OUTPUT_ARCH(mips) 14 13 -
arch/mips32/boot/Makefile
r5b65205 r389f41e 1 MIPS_BINUTILS_DIR=/usr/local/mipsel/bin 2 MIPS_TARGET=mipsel-linux-gnu 1 .PHONY: build clean 3 2 4 .PHONY: nothing build 5 6 nothing: 3 CFLAGS = -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mips3 -I../include 7 4 8 5 build: boot.bin 9 6 cp boot.bin ../../../load.bin 10 7 11 AS=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-as 12 CC=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-gcc 13 LD=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-ld 8 boot.bin: boot.o 9 $(LD) -e start -T _link.ld boot.o -o $@ 14 10 15 AFLAGS=-mips2 -I../../../generic/include 16 LFLAGS=--oformat=binary -e start -T _link.ld 17 18 .S.o: 19 $(CC) $(ASFLAGS) -c -o $@ $< 20 21 boot.bin: boot.o 22 $(LD) $(LFLAGS) $< -o $@ 23 11 boot.o: boot.S 12 $(CC) $(CFLAGS) -c boot.S -o $@ 24 13 25 14 clean: 26 -rm *.o *.bin15 -rm -f boot.o boot.bin ../../../load.bin -
arch/mips32/boot/boot.S
r5b65205 r389f41e 33 33 .set nomacro 34 34 35 #include <arch/asm/boot.h> 36 37 #ifndef KERNEL_LOAD_ADDRESS 38 # define KERNEL_LOAD_ADDRESS 0x80100000 39 #endif 35 #define KERNEL_LOAD_ADDRESS 0x80100000 40 36 41 37 .global start -
arch/ppc32/Makefile.inc
r5b65205 r389f41e 32 32 BFD_NAME = elf32-powerpc 33 33 BFD_ARCH = powerpc 34 BFD = elf32-powerpc 34 35 TARGET = ppc-linux-gnu 35 36 TOOLCHAIN_DIR = /usr/local/ppc/bin -
arch/ppc32/_link.ld.in
r5b65205 r389f41e 9 9 #define __ASM__ 10 10 11 OUTPUT_FORMAT( "elf32-powerpc")11 OUTPUT_FORMAT(BFD) 12 12 ENTRY(kernel_image_start) 13 13 -
arch/sparc64/Makefile.inc
r5b65205 r389f41e 32 32 BFD_NAME = elf64-sparc 33 33 BFD_ARCH = sparc 34 BFD = elf64-sparc 34 35 TARGET = sparc64-linux-gnu 35 36 TOOLCHAIN_DIR = /usr/local/sparc64/bin -
arch/sparc64/_link.ld.in
r5b65205 r389f41e 9 9 #define __ASM__ 10 10 11 OUTPUT_FORMAT( "elf64-sparc")11 OUTPUT_FORMAT(BFD) 12 12 ENTRY(kernel_image_start) 13 13 -
build.ia32
r5b65205 r389f41e 3 3 function syntax { 4 4 echo "Syntax:" 5 echo " build.<arch> [-compiler <compiler>] [-cpu <cpu>] "5 echo " build.<arch> [-compiler <compiler>] [-cpu <cpu>] [-machine <machine>]" 6 6 echo 7 7 echo "<arch> ... amd64, *ia32, ia64, mips32, ppc32, sparc64" 8 8 echo "<compiler> ... native, *cross" 9 echo "<cpu> ... for ia32: athlon-xp, athlon-mp, pentium3, *pentium4" 9 echo "<cpu> ... for ia32: athlon-xp, athlon-mp, pentium3, *pentium4, prescott" 10 echo "<machine> ... for mips32: *msim, msim4kc, simics, lgxemul, bgxemul, indy" 10 11 echo 11 12 } … … 21 22 case "$1" in 22 23 -compiler) 24 if [ -z "$2" ]; then 25 syntax 26 exit 1 27 fi 23 28 ARGS="$ARGS COMPILER=$2" 24 29 shift 25 30 ;; 26 31 -cpu) 32 if [ -z "$2" ]; then 33 syntax 34 exit 1 35 fi 27 36 ARGS="$ARGS CPU=$2" 37 shift 38 ;; 39 -machine) 40 if [ -z "$2" ]; then 41 syntax 42 exit 1 43 fi 44 ARGS="$ARGS MACHINE=$2" 28 45 shift 29 46 ;;
Note:
See TracChangeset
for help on using the changeset viewer.