1 # 1 # 2 # This file is subject to the terms and condit 2 # This file is subject to the terms and conditions of the GNU General Public 3 # License. See the file "COPYING" in the main 3 # License. See the file "COPYING" in the main directory of this archive 4 # for more details. 4 # for more details. 5 # 5 # 6 # Copyright (C) 1994, 95, 96, 2003 by Ralf Bae 6 # Copyright (C) 1994, 95, 96, 2003 by Ralf Baechle 7 # DECStation modifications by Paul M. Antoine, 7 # DECStation modifications by Paul M. Antoine, 1996 8 # Copyright (C) 2002, 2003, 2004 Maciej W. Ro 8 # Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki 9 # 9 # 10 # This file is included by the global makefile 10 # This file is included by the global makefile so that you can add your own 11 # architecture-specific flags and dependencies !! 11 # architecture-specific flags and dependencies. Remember to do have actions >> 12 # for "archclean" cleaning up for this architecture. 12 # 13 # 13 14 14 archscripts: scripts_basic !! 15 KBUILD_DEFCONFIG := ip22_defconfig 15 $(Q)$(MAKE) $(build)=arch/mips/tools e << 16 ifeq ($(CONFIG_CPU_LOONGSON3_WORKAROUNDS),y) << 17 $(Q)$(MAKE) $(build)=arch/mips/tools l << 18 endif << 19 $(Q)$(MAKE) $(build)=arch/mips/boot/to << 20 << 21 KBUILD_DEFCONFIG := 32r2el_defconfig << 22 KBUILD_DTBS := dtbs << 23 16 24 # 17 # 25 # Select the object file format to substitute 18 # Select the object file format to substitute into the linker script. 26 # 19 # 27 ifdef CONFIG_CPU_LITTLE_ENDIAN 20 ifdef CONFIG_CPU_LITTLE_ENDIAN 28 32bit-tool-archpref = mipsel 21 32bit-tool-archpref = mipsel 29 64bit-tool-archpref = mips64el 22 64bit-tool-archpref = mips64el 30 32bit-bfd = elf32-tradlittlemips 23 32bit-bfd = elf32-tradlittlemips 31 64bit-bfd = elf64-tradlittlemips 24 64bit-bfd = elf64-tradlittlemips 32 32bit-emul = elf32ltsmip 25 32bit-emul = elf32ltsmip 33 64bit-emul = elf64ltsmip 26 64bit-emul = elf64ltsmip 34 else 27 else 35 32bit-tool-archpref = mips 28 32bit-tool-archpref = mips 36 64bit-tool-archpref = mips64 29 64bit-tool-archpref = mips64 37 32bit-bfd = elf32-tradbigmips 30 32bit-bfd = elf32-tradbigmips 38 64bit-bfd = elf64-tradbigmips 31 64bit-bfd = elf64-tradbigmips 39 32bit-emul = elf32btsmip 32 32bit-emul = elf32btsmip 40 64bit-emul = elf64btsmip 33 64bit-emul = elf64btsmip 41 endif 34 endif 42 35 43 ifdef CONFIG_32BIT 36 ifdef CONFIG_32BIT 44 tool-archpref = $(32bit-tool-archpre 37 tool-archpref = $(32bit-tool-archpref) 45 UTS_MACHINE := mips 38 UTS_MACHINE := mips 46 endif 39 endif 47 ifdef CONFIG_64BIT 40 ifdef CONFIG_64BIT 48 tool-archpref = $(64bit-tool-archpre 41 tool-archpref = $(64bit-tool-archpref) 49 UTS_MACHINE := mips64 42 UTS_MACHINE := mips64 50 endif 43 endif 51 44 52 ifdef cross_compiling !! 45 ifneq ($(SUBARCH),$(ARCH)) 53 ifeq ($(CROSS_COMPILE),) 46 ifeq ($(CROSS_COMPILE),) 54 CROSS_COMPILE := $(call cc-cross-prefix, $ 47 CROSS_COMPILE := $(call cc-cross-prefix, $(tool-archpref)-linux- $(tool-archpref)-linux-gnu- $(tool-archpref)-unknown-linux-gnu-) 55 endif 48 endif 56 endif 49 endif 57 50 58 ifdef CONFIG_FUNCTION_GRAPH_TRACER !! 51 cflags-y := -ffunction-sections 59 ifndef KBUILD_MCOUNT_RA_ADDRESS << 60 ifeq ($(call cc-option-yn,-mmcount-ra-addr << 61 cflags-y += -mmcount-ra-address -DKBUILD << 62 endif << 63 endif << 64 endif << 65 cflags-y += $(call cc-option, -mno-check-zero- 52 cflags-y += $(call cc-option, -mno-check-zero-division) 66 53 67 ifdef CONFIG_32BIT 54 ifdef CONFIG_32BIT 68 ld-emul = $(32bit-emul) 55 ld-emul = $(32bit-emul) 69 vmlinux-32 = vmlinux 56 vmlinux-32 = vmlinux 70 vmlinux-64 = vmlinux.64 57 vmlinux-64 = vmlinux.64 71 58 72 cflags-y += -mabi=32 59 cflags-y += -mabi=32 73 endif 60 endif 74 61 75 ifdef CONFIG_64BIT 62 ifdef CONFIG_64BIT 76 ld-emul = $(64bit-emul) 63 ld-emul = $(64bit-emul) 77 vmlinux-32 = vmlinux.32 64 vmlinux-32 = vmlinux.32 78 vmlinux-64 = vmlinux 65 vmlinux-64 = vmlinux 79 66 80 cflags-y += -mabi=64 67 cflags-y += -mabi=64 81 endif 68 endif 82 69 83 all-$(CONFIG_BOOT_ELF32) := $(vmlinux-3 70 all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32) 84 all-$(CONFIG_BOOT_ELF64) := $(vmlinux-6 71 all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64) 85 all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz << 86 72 87 # 73 # 88 # GCC uses -G 0 -mabicalls -fpic as default. 74 # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel 89 # code since it only slows down the whole thin 75 # code since it only slows down the whole thing. At some point we might make 90 # use of global pointer optimizations but thei 76 # use of global pointer optimizations but their use of $28 conflicts with 91 # the current pointer optimization. 77 # the current pointer optimization. 92 # 78 # 93 # The DECStation requires an ECOFF kernel for 79 # The DECStation requires an ECOFF kernel for remote booting, other MIPS 94 # machines may also. Since BFD is incredibly 80 # machines may also. Since BFD is incredibly buggy with respect to 95 # crossformat linking we rely on the elf2ecoff 81 # crossformat linking we rely on the elf2ecoff tool for format conversion. 96 # 82 # 97 cflags-y += -G 0 -mno-a 83 cflags-y += -G 0 -mno-abicalls -fno-pic -pipe 98 cflags-y += -msoft-floa !! 84 cflags-y += -msoft-float 99 LDFLAGS_vmlinux += -G 0 -stati 85 LDFLAGS_vmlinux += -G 0 -static -n -nostdlib 100 KBUILD_AFLAGS_MODULE += -mlong-call !! 86 MODFLAGS += -mlong-calls 101 KBUILD_CFLAGS_MODULE += -mlong-call << 102 << 103 ifeq ($(CONFIG_RELOCATABLE),y) << 104 LDFLAGS_vmlinux += --emit-relo << 105 endif << 106 87 107 cflags-y += -ffreestanding 88 cflags-y += -ffreestanding 108 89 109 cflags-$(CONFIG_CPU_BIG_ENDIAN) += -EB !! 90 # 110 cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -EL !! 91 # We explicitly add the endianness specifier if needed, this allows >> 92 # to compile kernels with a toolchain for the other endianness. We >> 93 # carefully avoid to add it redundantly because gcc 3.3/3.4 complains >> 94 # when fed the toolchain default! >> 95 # >> 96 # Certain gcc versions upto gcc 4.1.1 (probably 4.2-subversion as of >> 97 # 2006-10-10 don't properly change the predefined symbols if -EB / -EL >> 98 # are used, so we kludge that here. A bug has been filed at >> 99 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29413. >> 100 # >> 101 undef-all += -UMIPSEB -U_MIPSEB -U__MIPSEB -U__MIPSEB__ >> 102 undef-all += -UMIPSEL -U_MIPSEL -U__MIPSEL -U__MIPSEL__ >> 103 predef-be += -DMIPSEB -D_MIPSEB -D__MIPSEB -D__MIPSEB__ >> 104 predef-le += -DMIPSEL -D_MIPSEL -D__MIPSEL -D__MIPSEL__ >> 105 cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB $(undef-all) $(predef-be)) >> 106 cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL $(undef-all) $(predef-le)) >> 107 >> 108 cflags-$(CONFIG_CPU_HAS_SMARTMIPS) += $(call cc-option,-msmartmips) 111 109 112 cflags-$(CONFIG_SB1XXX_CORELIS) += $(call cc-o 110 cflags-$(CONFIG_SB1XXX_CORELIS) += $(call cc-option,-mno-sched-prolog) \ 113 -fno-omit-f 111 -fno-omit-frame-pointer 114 112 115 # Some distribution-specific toolchains might << 116 # option during the build, which adds a simple << 117 # of every function. This stack probe is to e << 118 # stack space, else a SEGV is generated. This << 119 # as kernel stacks are small, placed in unmapp << 120 # grow when overflowed. Especially on SGI IP2 << 121 # lead to a NULL pointer dereference in _raw_s << 122 # << 123 # In disassembly, this stack probe appears at << 124 # sd zero,<offset>(sp) << 125 # Where <offset> is a negative value. << 126 # << 127 cflags-y += -fno-stack-check << 128 << 129 # binutils from v2.35 when built with --enable << 130 # supports an -mfix-loongson3-llsc flag which << 131 # instruction to work around a CPU bug (see __ << 132 # for a description). << 133 # << 134 # We disable this in order to prevent the asse << 135 # instruction that labels refer to, ie. if we << 136 # << 137 # 1: ll v0, 0(a0) << 138 # << 139 # ...then with the assembler fix applied the l << 140 # instruction inserted by the assembler, and i << 141 # exception table the table would no longer co << 142 # instruction. << 143 # << 144 # Avoid this by explicitly disabling that asse << 145 # << 146 cflags-y += $(call cc-option,-Wa$(comma)-mno-f << 147 << 148 # 113 # 149 # CPU-dependent compiler/assembler options for 114 # CPU-dependent compiler/assembler options for optimization. 150 # 115 # 151 cflags-$(CONFIG_CPU_R3000) += $(call cc-o !! 116 cflags-$(CONFIG_CPU_R3000) += -march=r3000 152 cflags-$(CONFIG_CPU_R4300) += $(call cc-o !! 117 cflags-$(CONFIG_CPU_TX39XX) += -march=r3900 153 cflags-$(CONFIG_CPU_R4X00) += $(call cc-o !! 118 cflags-$(CONFIG_CPU_R6000) += -march=r6000 -Wa,--trap 154 cflags-$(CONFIG_CPU_TX49XX) += $(call cc-o !! 119 cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap 155 cflags-$(CONFIG_CPU_MIPS32_R1) += -march=mips !! 120 cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap 156 cflags-$(CONFIG_CPU_MIPS32_R2) += -march=mips !! 121 cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap 157 cflags-$(CONFIG_CPU_MIPS32_R5) += -march=mips !! 122 cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap 158 cflags-$(CONFIG_CPU_MIPS32_R6) += -march=mips !! 123 # only gcc >= 4.4 have the loongson-specific support 159 cflags-$(CONFIG_CPU_MIPS64_R1) += -march=mips !! 124 cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap 160 cflags-$(CONFIG_CPU_MIPS64_R2) += -march=mips !! 125 cflags-$(CONFIG_CPU_LOONGSON2E) += \ 161 cflags-$(CONFIG_CPU_MIPS64_R5) += -march=mips !! 126 $(call cc-option,-march=loongson2e,-march=r4600) 162 cflags-$(CONFIG_CPU_MIPS64_R6) += -march=mips !! 127 163 cflags-$(CONFIG_CPU_P5600) += $(call cc-o !! 128 cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 164 -Wa,--trap -modd-spreg !! 129 -Wa,-mips32 -Wa,--trap 165 cflags-$(CONFIG_CPU_R5000) += $(call cc-o !! 130 cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ >> 131 -Wa,-mips32r2 -Wa,--trap >> 132 cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ >> 133 -Wa,-mips64 -Wa,--trap >> 134 cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ >> 135 -Wa,-mips64r2 -Wa,--trap >> 136 cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap >> 137 cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \ 166 -Wa,--trap 138 -Wa,--trap 167 cflags-$(CONFIG_CPU_R5500) += $(call cc-o !! 139 cflags-$(CONFIG_CPU_R5500) += $(call cc-option,-march=r5500,-march=r5000) \ 168 -Wa,--trap 140 -Wa,--trap 169 cflags-$(CONFIG_CPU_NEVADA) += $(call cc-o !! 141 cflags-$(CONFIG_CPU_NEVADA) += $(call cc-option,-march=rm5200,-march=r5000) \ 170 -Wa,--trap 142 -Wa,--trap 171 cflags-$(CONFIG_CPU_RM7000) += $(call cc-o !! 143 cflags-$(CONFIG_CPU_RM7000) += $(call cc-option,-march=rm7000,-march=r5000) \ 172 -Wa,--trap 144 -Wa,--trap 173 cflags-$(CONFIG_CPU_SB1) += $(call cc-o !! 145 cflags-$(CONFIG_CPU_RM9000) += $(call cc-option,-march=rm9000,-march=r5000) \ 174 -Wa,--trap 146 -Wa,--trap 175 cflags-$(CONFIG_CPU_SB1) += $(call cc-o !! 147 cflags-$(CONFIG_CPU_SB1) += $(call cc-option,-march=sb1,-march=r5000) \ 176 cflags-$(CONFIG_CPU_SB1) += $(call cc-o << 177 cflags-$(CONFIG_CPU_R10000) += $(call cc-o << 178 -Wa,--trap 148 -Wa,--trap 179 cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += -march=o !! 149 cflags-$(CONFIG_CPU_R8000) += -march=r8000 -Wa,--trap 180 cflags-$(CONFIG_CAVIUM_CN63XXP1) += -Wa,-mfix- !! 150 cflags-$(CONFIG_CPU_R10000) += $(call cc-option,-march=r10000,-march=r8000) \ 181 cflags-$(CONFIG_CPU_BMIPS) += -march=mips !! 151 -Wa,--trap 182 !! 152 cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += $(call cc-option,-march=octeon) -Wa,--trap 183 cflags-$(CONFIG_CPU_LOONGSON2E) += \ !! 153 ifeq (,$(findstring march=octeon, $(cflags-$(CONFIG_CPU_CAVIUM_OCTEON)))) 184 $(call cc-option,-marc !! 154 cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += -Wa,-march=octeon 185 cflags-$(CONFIG_CPU_LOONGSON2F) += \ !! 155 endif 186 $(call cc-option,-marc << 187 # Some -march= flags enable MMI instructions, << 188 # support being enabled alongside -msoft-float << 189 cflags-$(CONFIG_CPU_LOONGSON2EF) += $(call cc- << 190 cflags-$(CONFIG_CPU_LOONGSON64) += \ << 191 $(call cc-option,-marc << 192 cflags-$(CONFIG_CPU_LOONGSON64) += $(call cc-o << 193 156 194 cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(c 157 cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,) 195 cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(c 158 cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,) 196 cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(c 159 cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,) 197 ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS << 198 cflags-$(CONFIG_CPU_NOP_WORKAROUNDS) += -Wa,-m << 199 cflags-$(CONFIG_CPU_JUMP_WORKAROUNDS) += -Wa,- << 200 endif << 201 160 202 # !! 161 ifdef CONFIG_CPU_SB1 203 # Some versions of binutils, not currently mai !! 162 ifdef CONFIG_SB1_PASS_1_WORKAROUNDS 204 # an -mfix-loongson3-llsc flag which emits a s !! 163 MODFLAGS += -msb1-pass1-workarounds 205 # to work around a CPU bug (see __SYNC_loongso !! 164 endif 206 # description). !! 165 endif 207 # << 208 # We disable this in order to prevent the asse << 209 # instruction that labels refer to, ie. if we << 210 # << 211 # 1: ll v0, 0(a0) << 212 # << 213 # ...then with the assembler fix applied the l << 214 # instruction inserted by the assembler, and i << 215 # exception table the table would no longer co << 216 # instruction. << 217 # << 218 # Avoid this by explicitly disabling that asse << 219 # binutils does not merge support for the flag << 220 # this later - for now it ensures vendor toolc << 221 # << 222 cflags-$(CONFIG_CPU_LOONGSON64) += $(call as-o << 223 << 224 # For smartmips configurations, there are hund << 225 # in assembly and header files. smartmips is o << 226 # and there is no support for 64-bit. Various << 227 # similar directives in the kernel will spam t << 228 # Warning: the `smartmips' extension requires << 229 # or << 230 # Warning: the 64-bit MIPS architecture does n << 231 # Pass -Wa,--no-warn to disable all assembler << 232 # been fixed properly. << 233 mips-cflags := $(c << 234 ifeq ($(CONFIG_CPU_HAS_SMARTMIPS),y) << 235 smartmips-ase := $(c << 236 cflags-$(smartmips-ase) += -ms << 237 endif << 238 ifeq ($(CONFIG_CPU_MICROMIPS),y) << 239 micromips-ase := $(c << 240 cflags-$(micromips-ase) += -mm << 241 endif << 242 ifeq ($(CONFIG_CPU_HAS_MSA),y) << 243 toolchain-msa := $(c << 244 cflags-$(toolchain-msa) += -DT << 245 endif << 246 toolchain-virt := $(c << 247 cflags-$(toolchain-virt) += -DT << 248 # For -mmicromips, use -Wa,-fatal-warnings to << 249 # only warns << 250 xpa-cflags-y := $(m << 251 xpa-cflags-$(micromips-ase) += -mm << 252 toolchain-xpa := $(c << 253 cflags-$(toolchain-xpa) += -DT << 254 toolchain-crc := $(c << 255 cflags-$(toolchain-crc) += -DT << 256 toolchain-dsp := $(c << 257 cflags-$(toolchain-dsp) += -DT << 258 toolchain-ginv := $(c << 259 cflags-$(toolchain-ginv) += -DT << 260 166 261 # 167 # 262 # Firmware support 168 # Firmware support 263 # 169 # 264 libs-$(CONFIG_FW_ARC) += arch/mips/f !! 170 libs-$(CONFIG_ARC) += arch/mips/fw/arc/ 265 libs-$(CONFIG_FW_CFE) += arch/mips/f !! 171 libs-$(CONFIG_CFE) += arch/mips/fw/cfe/ 266 libs-$(CONFIG_FW_SNIPROM) += arch/mips/f !! 172 libs-$(CONFIG_SNIPROM) += arch/mips/fw/sni/ 267 libs-y += arch/mips/f 173 libs-y += arch/mips/fw/lib/ 268 174 269 # 175 # 270 # Kernel compression !! 176 # Board-dependent options and extra files >> 177 # >> 178 >> 179 # >> 180 # Texas Instruments AR7 >> 181 # >> 182 core-$(CONFIG_AR7) += arch/mips/ar7/ >> 183 cflags-$(CONFIG_AR7) += -I$(srctree)/arch/mips/include/asm/mach-ar7 >> 184 load-$(CONFIG_AR7) += 0xffffffff94100000 >> 185 >> 186 # >> 187 # Acer PICA 61, Mips Magnum 4000 and Olivetti M700. >> 188 # >> 189 core-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/ >> 190 cflags-$(CONFIG_MACH_JAZZ) += -I$(srctree)/arch/mips/include/asm/mach-jazz >> 191 load-$(CONFIG_MACH_JAZZ) += 0xffffffff80080000 >> 192 >> 193 # >> 194 # Common Alchemy Au1x00 stuff >> 195 # >> 196 core-$(CONFIG_SOC_AU1X00) += arch/mips/alchemy/common/ >> 197 >> 198 # >> 199 # AMD Alchemy Pb1000 eval board >> 200 # >> 201 core-$(CONFIG_MIPS_PB1000) += arch/mips/alchemy/devboards/ >> 202 cflags-$(CONFIG_MIPS_PB1000) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 >> 203 load-$(CONFIG_MIPS_PB1000) += 0xffffffff80100000 >> 204 >> 205 # >> 206 # AMD Alchemy Pb1100 eval board >> 207 # >> 208 core-$(CONFIG_MIPS_PB1100) += arch/mips/alchemy/devboards/ >> 209 cflags-$(CONFIG_MIPS_PB1100) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 >> 210 load-$(CONFIG_MIPS_PB1100) += 0xffffffff80100000 >> 211 >> 212 # >> 213 # AMD Alchemy Pb1500 eval board >> 214 # >> 215 core-$(CONFIG_MIPS_PB1500) += arch/mips/alchemy/devboards/ >> 216 cflags-$(CONFIG_MIPS_PB1500) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 >> 217 load-$(CONFIG_MIPS_PB1500) += 0xffffffff80100000 >> 218 >> 219 # >> 220 # AMD Alchemy Pb1550 eval board >> 221 # >> 222 core-$(CONFIG_MIPS_PB1550) += arch/mips/alchemy/devboards/ >> 223 cflags-$(CONFIG_MIPS_PB1550) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 >> 224 load-$(CONFIG_MIPS_PB1550) += 0xffffffff80100000 >> 225 >> 226 # >> 227 # AMD Alchemy Pb1200 eval board >> 228 # >> 229 core-$(CONFIG_MIPS_PB1200) += arch/mips/alchemy/devboards/ >> 230 cflags-$(CONFIG_MIPS_PB1200) += -I$(srctree)/arch/mips/include/asm/mach-pb1x00 >> 231 load-$(CONFIG_MIPS_PB1200) += 0xffffffff80100000 >> 232 >> 233 # >> 234 # AMD Alchemy Db1000 eval board >> 235 # >> 236 core-$(CONFIG_MIPS_DB1000) += arch/mips/alchemy/devboards/ >> 237 cflags-$(CONFIG_MIPS_DB1000) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 >> 238 load-$(CONFIG_MIPS_DB1000) += 0xffffffff80100000 >> 239 >> 240 # >> 241 # AMD Alchemy Db1100 eval board >> 242 # >> 243 core-$(CONFIG_MIPS_DB1100) += arch/mips/alchemy/devboards/ >> 244 cflags-$(CONFIG_MIPS_DB1100) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 >> 245 load-$(CONFIG_MIPS_DB1100) += 0xffffffff80100000 >> 246 >> 247 # >> 248 # AMD Alchemy Db1500 eval board >> 249 # >> 250 core-$(CONFIG_MIPS_DB1500) += arch/mips/alchemy/devboards/ >> 251 cflags-$(CONFIG_MIPS_DB1500) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 >> 252 load-$(CONFIG_MIPS_DB1500) += 0xffffffff80100000 >> 253 >> 254 # >> 255 # AMD Alchemy Db1550 eval board >> 256 # >> 257 core-$(CONFIG_MIPS_DB1550) += arch/mips/alchemy/devboards/ >> 258 cflags-$(CONFIG_MIPS_DB1550) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 >> 259 load-$(CONFIG_MIPS_DB1550) += 0xffffffff80100000 >> 260 >> 261 # >> 262 # AMD Alchemy Db1200 eval board >> 263 # >> 264 core-$(CONFIG_MIPS_DB1200) += arch/mips/alchemy/devboards/ >> 265 cflags-$(CONFIG_MIPS_DB1200) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 >> 266 load-$(CONFIG_MIPS_DB1200) += 0xffffffff80100000 >> 267 >> 268 # >> 269 # AMD Alchemy Bosporus eval board >> 270 # >> 271 core-$(CONFIG_MIPS_BOSPORUS) += arch/mips/alchemy/devboards/ >> 272 cflags-$(CONFIG_MIPS_BOSPORUS) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 >> 273 load-$(CONFIG_MIPS_BOSPORUS) += 0xffffffff80100000 >> 274 >> 275 # >> 276 # AMD Alchemy Mirage eval board >> 277 # >> 278 core-$(CONFIG_MIPS_MIRAGE) += arch/mips/alchemy/devboards/ >> 279 cflags-$(CONFIG_MIPS_MIRAGE) += -I$(srctree)/arch/mips/include/asm/mach-db1x00 >> 280 load-$(CONFIG_MIPS_MIRAGE) += 0xffffffff80100000 >> 281 >> 282 # >> 283 # 4G-Systems eval board >> 284 # >> 285 libs-$(CONFIG_MIPS_MTX1) += arch/mips/alchemy/mtx-1/ >> 286 load-$(CONFIG_MIPS_MTX1) += 0xffffffff80100000 >> 287 >> 288 # >> 289 # MyCable eval board >> 290 # >> 291 libs-$(CONFIG_MIPS_XXS1500) += arch/mips/alchemy/xxs1500/ >> 292 load-$(CONFIG_MIPS_XXS1500) += 0xffffffff80100000 >> 293 >> 294 # must be last for Alchemy systems for GPIO to work properly >> 295 cflags-$(CONFIG_SOC_AU1X00) += -I$(srctree)/arch/mips/include/asm/mach-au1x00 >> 296 >> 297 >> 298 # >> 299 # Cobalt Server >> 300 # >> 301 core-$(CONFIG_MIPS_COBALT) += arch/mips/cobalt/ >> 302 cflags-$(CONFIG_MIPS_COBALT) += -I$(srctree)/arch/mips/include/asm/mach-cobalt >> 303 load-$(CONFIG_MIPS_COBALT) += 0xffffffff80080000 >> 304 >> 305 # >> 306 # DECstation family >> 307 # >> 308 core-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/ >> 309 cflags-$(CONFIG_MACH_DECSTATION)+= -I$(srctree)/arch/mips/include/asm/mach-dec >> 310 libs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/ >> 311 load-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000 >> 312 >> 313 # >> 314 # Wind River PPMC Board (4KC + GT64120) >> 315 # >> 316 core-$(CONFIG_WR_PPMC) += arch/mips/gt64120/wrppmc/ >> 317 cflags-$(CONFIG_WR_PPMC) += -I$(srctree)/arch/mips/include/asm/mach-wrppmc >> 318 load-$(CONFIG_WR_PPMC) += 0xffffffff80100000 >> 319 >> 320 # >> 321 # Loongson family >> 322 # >> 323 core-$(CONFIG_MACH_LOONGSON) +=arch/mips/loongson/ >> 324 cflags-$(CONFIG_MACH_LOONGSON) += -I$(srctree)/arch/mips/include/asm/mach-loongson \ >> 325 -mno-branch-likely >> 326 load-$(CONFIG_LEMOTE_FULOONG2E) +=0xffffffff80100000 >> 327 >> 328 # >> 329 # MIPS Malta board >> 330 # >> 331 core-$(CONFIG_MIPS_MALTA) += arch/mips/mti-malta/ >> 332 cflags-$(CONFIG_MIPS_MALTA) += -I$(srctree)/arch/mips/include/asm/mach-malta >> 333 load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 >> 334 all-$(CONFIG_MIPS_MALTA) := vmlinux.bin >> 335 >> 336 # >> 337 # MIPS SIM >> 338 # >> 339 core-$(CONFIG_MIPS_SIM) += arch/mips/mipssim/ >> 340 cflags-$(CONFIG_MIPS_SIM) += -I$(srctree)/arch/mips/include/asm/mach-mipssim >> 341 load-$(CONFIG_MIPS_SIM) += 0x80100000 >> 342 >> 343 # >> 344 # PMC-Sierra MSP SOCs >> 345 # >> 346 core-$(CONFIG_PMC_MSP) += arch/mips/pmc-sierra/msp71xx/ >> 347 cflags-$(CONFIG_PMC_MSP) += -I$(srctree)/arch/mips/include/asm/pmc-sierra/msp71xx \ >> 348 -mno-branch-likely >> 349 load-$(CONFIG_PMC_MSP) += 0xffffffff80100000 >> 350 >> 351 # >> 352 # PMC-Sierra Yosemite >> 353 # >> 354 core-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ >> 355 cflags-$(CONFIG_PMC_YOSEMITE) += -I$(srctree)/arch/mips/include/asm/mach-yosemite >> 356 load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 >> 357 >> 358 # >> 359 # Basler eXcite >> 360 # >> 361 core-$(CONFIG_BASLER_EXCITE) += arch/mips/basler/excite/ >> 362 cflags-$(CONFIG_BASLER_EXCITE) += -I$(srctree)/arch/mips/include/asm/mach-excite >> 363 load-$(CONFIG_BASLER_EXCITE) += 0x80100000 >> 364 >> 365 # >> 366 # LASAT platforms >> 367 # >> 368 core-$(CONFIG_LASAT) += arch/mips/lasat/ >> 369 cflags-$(CONFIG_LASAT) += -I$(srctree)/arch/mips/include/asm/mach-lasat >> 370 load-$(CONFIG_LASAT) += 0xffffffff80000000 >> 371 >> 372 # >> 373 # Common VR41xx >> 374 # >> 375 core-$(CONFIG_MACH_VR41XX) += arch/mips/vr41xx/common/ >> 376 cflags-$(CONFIG_MACH_VR41XX) += -I$(srctree)/arch/mips/include/asm/mach-vr41xx >> 377 >> 378 # >> 379 # ZAO Networks Capcella (VR4131) >> 380 # >> 381 load-$(CONFIG_ZAO_CAPCELLA) += 0xffffffff80000000 >> 382 >> 383 # >> 384 # Victor MP-C303/304 (VR4122) >> 385 # >> 386 load-$(CONFIG_VICTOR_MPC30X) += 0xffffffff80001000 >> 387 >> 388 # >> 389 # IBM WorkPad z50 (VR4121) >> 390 # >> 391 core-$(CONFIG_IBM_WORKPAD) += arch/mips/vr41xx/ibm-workpad/ >> 392 load-$(CONFIG_IBM_WORKPAD) += 0xffffffff80004000 >> 393 >> 394 # >> 395 # CASIO CASSIPEIA E-55/65 (VR4111) >> 396 # >> 397 core-$(CONFIG_CASIO_E55) += arch/mips/vr41xx/casio-e55/ >> 398 load-$(CONFIG_CASIO_E55) += 0xffffffff80004000 >> 399 >> 400 # >> 401 # TANBAC VR4131 multichip module(TB0225) and TANBAC VR4131DIMM(TB0229) (VR4131) 271 # 402 # 272 ifdef CONFIG_SYS_SUPPORTS_ZBOOT !! 403 load-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000 273 COMPRESSION_FNAME = vmlinuz !! 404 >> 405 # NXP STB225 >> 406 core-$(CONFIG_SOC_PNX833X) += arch/mips/nxp/pnx833x/common/ >> 407 cflags-$(CONFIG_SOC_PNX833X) += -Iarch/mips/include/asm/mach-pnx833x >> 408 libs-$(CONFIG_NXP_STB220) += arch/mips/nxp/pnx833x/stb22x/ >> 409 load-$(CONFIG_NXP_STB220) += 0xffffffff80001000 >> 410 libs-$(CONFIG_NXP_STB225) += arch/mips/nxp/pnx833x/stb22x/ >> 411 load-$(CONFIG_NXP_STB225) += 0xffffffff80001000 >> 412 >> 413 # >> 414 # Common NXP PNX8550 >> 415 # >> 416 core-$(CONFIG_SOC_PNX8550) += arch/mips/nxp/pnx8550/common/ >> 417 cflags-$(CONFIG_SOC_PNX8550) += -I$(srctree)/arch/mips/include/asm/mach-pnx8550 >> 418 >> 419 # >> 420 # NXP PNX8550 JBS board >> 421 # >> 422 libs-$(CONFIG_PNX8550_JBS) += arch/mips/nxp/pnx8550/jbs/ >> 423 #cflags-$(CONFIG_PNX8550_JBS) += -I$(srctree)/arch/mips/include/asm/mach-pnx8550 >> 424 load-$(CONFIG_PNX8550_JBS) += 0xffffffff80060000 >> 425 >> 426 # NXP PNX8550 STB810 board >> 427 # >> 428 libs-$(CONFIG_PNX8550_STB810) += arch/mips/nxp/pnx8550/stb810/ >> 429 load-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000 >> 430 >> 431 # >> 432 # Common NEC EMMAXXX >> 433 # >> 434 core-$(CONFIG_SOC_EMMA2RH) += arch/mips/emma/common/ >> 435 cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh >> 436 >> 437 # >> 438 # NEC EMMA2RH Mark-eins >> 439 # >> 440 core-$(CONFIG_NEC_MARKEINS) += arch/mips/emma/markeins/ >> 441 load-$(CONFIG_NEC_MARKEINS) += 0xffffffff88100000 >> 442 >> 443 # >> 444 # SGI IP22 (Indy/Indigo2) >> 445 # >> 446 # Set the load address to >= 0xffffffff88069000 if you want to leave space for >> 447 # symmon, 0xffffffff80002000 for production kernels. Note that the value must >> 448 # be aligned to a multiple of the kernel stack size or the handling of the >> 449 # current variable will break so for 64-bit kernels we have to raise the start >> 450 # address by 8kb. >> 451 # >> 452 core-$(CONFIG_SGI_IP22) += arch/mips/sgi-ip22/ >> 453 cflags-$(CONFIG_SGI_IP22) += -I$(srctree)/arch/mips/include/asm/mach-ip22 >> 454 ifdef CONFIG_32BIT >> 455 load-$(CONFIG_SGI_IP22) += 0xffffffff88002000 >> 456 endif >> 457 ifdef CONFIG_64BIT >> 458 load-$(CONFIG_SGI_IP22) += 0xffffffff88004000 >> 459 endif >> 460 >> 461 # >> 462 # SGI-IP27 (Origin200/2000) >> 463 # >> 464 # Set the load address to >= 0xc000000000300000 if you want to leave space for >> 465 # symmon, 0xc00000000001c000 for production kernels. Note that the value must >> 466 # be 16kb aligned or the handling of the current variable will break. >> 467 # >> 468 ifdef CONFIG_SGI_IP27 >> 469 core-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ >> 470 cflags-$(CONFIG_SGI_IP27) += -I$(srctree)/arch/mips/include/asm/mach-ip27 >> 471 ifdef CONFIG_MAPPED_KERNEL >> 472 load-$(CONFIG_SGI_IP27) += 0xc00000004001c000 >> 473 OBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 >> 474 dataoffset-$(CONFIG_SGI_IP27) += 0x01000000 274 else 475 else 275 COMPRESSION_FNAME = vmlinux !! 476 load-$(CONFIG_SGI_IP27) += 0xa80000000001c000 >> 477 OBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 >> 478 endif 276 endif 479 endif 277 480 278 # 481 # 279 # Board-dependent options and extra files !! 482 # SGI IP28 (Indigo2 R10k) >> 483 # >> 484 # Set the load address to >= 0xa800000020080000 if you want to leave space for >> 485 # symmon, 0xa800000020004000 for production kernels ? Note that the value must >> 486 # be 16kb aligned or the handling of the current variable will break. >> 487 # Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys >> 488 # >> 489 ifdef CONFIG_SGI_IP28 >> 490 ifeq ($(call cc-option-yn,-mr10k-cache-barrier=store), n) >> 491 $(error gcc doesn't support needed option -mr10k-cache-barrier=store) >> 492 endif >> 493 endif >> 494 core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ >> 495 cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=store -I$(srctree)/arch/mips/include/asm/mach-ip28 >> 496 load-$(CONFIG_SGI_IP28) += 0xa800000020004000 >> 497 >> 498 # >> 499 # SGI-IP32 (O2) >> 500 # >> 501 # Set the load address to >= 80069000 if you want to leave space for symmon, >> 502 # 0xffffffff80004000 for production kernels. Note that the value must be aligned to >> 503 # a multiple of the kernel stack size or the handling of the current variable >> 504 # will break. >> 505 # >> 506 core-$(CONFIG_SGI_IP32) += arch/mips/sgi-ip32/ >> 507 cflags-$(CONFIG_SGI_IP32) += -I$(srctree)/arch/mips/include/asm/mach-ip32 >> 508 load-$(CONFIG_SGI_IP32) += 0xffffffff80004000 >> 509 >> 510 # >> 511 # Sibyte SB1250/BCM1480 SOC >> 512 # >> 513 # This is a LIB so that it links at the end, and initcalls are later >> 514 # the sequence; but it is built as an object so that modules don't get >> 515 # removed (as happens, even if they have __initcall/module_init) >> 516 # >> 517 core-$(CONFIG_SIBYTE_BCM112X) += arch/mips/sibyte/sb1250/ >> 518 core-$(CONFIG_SIBYTE_BCM112X) += arch/mips/sibyte/common/ >> 519 cflags-$(CONFIG_SIBYTE_BCM112X) += -I$(srctree)/arch/mips/include/asm/mach-sibyte \ >> 520 -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL >> 521 >> 522 core-$(CONFIG_SIBYTE_SB1250) += arch/mips/sibyte/sb1250/ >> 523 core-$(CONFIG_SIBYTE_SB1250) += arch/mips/sibyte/common/ >> 524 cflags-$(CONFIG_SIBYTE_SB1250) += -I$(srctree)/arch/mips/include/asm/mach-sibyte \ >> 525 -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL >> 526 >> 527 core-$(CONFIG_SIBYTE_BCM1x55) += arch/mips/sibyte/bcm1480/ >> 528 core-$(CONFIG_SIBYTE_BCM1x55) += arch/mips/sibyte/common/ >> 529 cflags-$(CONFIG_SIBYTE_BCM1x55) += -I$(srctree)/arch/mips/include/asm/mach-sibyte \ >> 530 -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1480_ALL >> 531 >> 532 core-$(CONFIG_SIBYTE_BCM1x80) += arch/mips/sibyte/bcm1480/ >> 533 core-$(CONFIG_SIBYTE_BCM1x80) += arch/mips/sibyte/common/ >> 534 cflags-$(CONFIG_SIBYTE_BCM1x80) += -I$(srctree)/arch/mips/include/asm/mach-sibyte \ >> 535 -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1480_ALL >> 536 >> 537 # >> 538 # Sibyte BCM91120x (Carmel) board >> 539 # Sibyte BCM91120C (CRhine) board >> 540 # Sibyte BCM91125C (CRhone) board >> 541 # Sibyte BCM91125E (Rhone) board >> 542 # Sibyte SWARM board >> 543 # Sibyte BCM91x80 (BigSur) board >> 544 # >> 545 core-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ >> 546 load-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000 >> 547 core-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ >> 548 load-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000 >> 549 core-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ >> 550 load-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000 >> 551 core-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ >> 552 load-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000 >> 553 core-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ >> 554 load-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000 >> 555 core-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ >> 556 load-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000 >> 557 core-$(CONFIG_SIBYTE_BIGSUR) += arch/mips/sibyte/swarm/ >> 558 load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000 >> 559 >> 560 # >> 561 # Broadcom BCM47XX boards >> 562 # >> 563 core-$(CONFIG_BCM47XX) += arch/mips/bcm47xx/ >> 564 cflags-$(CONFIG_BCM47XX) += -I$(srctree)/arch/mips/include/asm/mach-bcm47xx >> 565 load-$(CONFIG_BCM47XX) := 0xffffffff80001000 >> 566 >> 567 # >> 568 # Broadcom BCM63XX boards >> 569 # >> 570 core-$(CONFIG_BCM63XX) += arch/mips/bcm63xx/ >> 571 cflags-$(CONFIG_BCM63XX) += -I$(srctree)/arch/mips/include/asm/mach-bcm63xx/ >> 572 load-$(CONFIG_BCM63XX) := 0xffffffff80010000 >> 573 >> 574 # >> 575 # SNI RM >> 576 # >> 577 core-$(CONFIG_SNI_RM) += arch/mips/sni/ >> 578 cflags-$(CONFIG_SNI_RM) += -I$(srctree)/arch/mips/include/asm/mach-rm >> 579 ifdef CONFIG_CPU_LITTLE_ENDIAN >> 580 load-$(CONFIG_SNI_RM) += 0xffffffff80600000 >> 581 else >> 582 load-$(CONFIG_SNI_RM) += 0xffffffff80030000 >> 583 endif >> 584 all-$(CONFIG_SNI_RM) := vmlinux.ecoff >> 585 >> 586 # >> 587 # Common TXx9 >> 588 # >> 589 core-$(CONFIG_MACH_TX39XX) += arch/mips/txx9/generic/ >> 590 cflags-$(CONFIG_MACH_TX39XX) += -I$(srctree)/arch/mips/include/asm/mach-tx39xx >> 591 load-$(CONFIG_MACH_TX39XX) += 0xffffffff80050000 >> 592 core-$(CONFIG_MACH_TX49XX) += arch/mips/txx9/generic/ >> 593 cflags-$(CONFIG_MACH_TX49XX) += -I$(srctree)/arch/mips/include/asm/mach-tx49xx >> 594 load-$(CONFIG_MACH_TX49XX) += 0xffffffff80100000 >> 595 >> 596 # >> 597 # Toshiba JMR-TX3927 board >> 598 # >> 599 core-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/txx9/jmr3927/ >> 600 >> 601 # >> 602 # Routerboard 532 board >> 603 # >> 604 core-$(CONFIG_MIKROTIK_RB532) += arch/mips/rb532/ >> 605 cflags-$(CONFIG_MIKROTIK_RB532) += -I$(srctree)/arch/mips/include/asm/mach-rc32434 >> 606 load-$(CONFIG_MIKROTIK_RB532) += 0xffffffff80101000 >> 607 >> 608 # >> 609 # Toshiba RBTX49XX boards 280 # 610 # 281 include $(srctree)/arch/mips/Kbuild.platforms !! 611 core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/txx9/rbtx4927/ >> 612 core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/txx9/rbtx4938/ >> 613 core-$(CONFIG_TOSHIBA_RBTX4939) += arch/mips/txx9/rbtx4939/ 282 614 283 ifdef CONFIG_PHYSICAL_START !! 615 # 284 load-y = $(CO !! 616 # Cavium Octeon >> 617 # >> 618 core-$(CONFIG_CPU_CAVIUM_OCTEON) += arch/mips/cavium-octeon/ >> 619 cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += -I$(srctree)/arch/mips/include/asm/mach-cavium-octeon >> 620 core-$(CONFIG_CPU_CAVIUM_OCTEON) += arch/mips/cavium-octeon/executive/ >> 621 ifdef CONFIG_CAVIUM_OCTEON_2ND_KERNEL >> 622 load-$(CONFIG_CPU_CAVIUM_OCTEON) += 0xffffffff84100000 >> 623 else >> 624 load-$(CONFIG_CPU_CAVIUM_OCTEON) += 0xffffffff81100000 285 endif 625 endif 286 626 287 entry-y = $(shell $(ob << 288 cflags-y += -I$(srctree 627 cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic 289 drivers-$(CONFIG_PCI) += arch/mips/p 628 drivers-$(CONFIG_PCI) += arch/mips/pci/ 290 629 291 # 630 # 292 # Automatically detect the build format. By de 631 # Automatically detect the build format. By default we choose 293 # the elf format according to the load address 632 # the elf format according to the load address. 294 # We can always force a build with a 64-bits s 633 # We can always force a build with a 64-bits symbol format by 295 # passing 'KBUILD_SYM32=no' option to the make 634 # passing 'KBUILD_SYM32=no' option to the make's command line. 296 # 635 # 297 ifdef CONFIG_64BIT 636 ifdef CONFIG_64BIT 298 ifndef KBUILD_SYM32 637 ifndef KBUILD_SYM32 299 ifeq ($(shell expr $(load-y) \< 0xffffffff 638 ifeq ($(shell expr $(load-y) \< 0xffffffff80000000), 0) 300 KBUILD_SYM32 = $(call cc-option-yn, -msy !! 639 KBUILD_SYM32 = y 301 endif 640 endif 302 endif 641 endif 303 642 304 ifeq ($(KBUILD_SYM32), y) !! 643 ifeq ($(KBUILD_SYM32)$(call cc-option-yn,-msym32), yy) 305 cflags-$(KBUILD_SYM32) += -msym32 -DKBUILD !! 644 cflags-y += -msym32 -DKBUILD_64BIT_SYM32 306 else 645 else 307 ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y) 646 ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y) 308 $(error CONFIG_CPU_DADDI_WORKAROUNDS uns 647 $(error CONFIG_CPU_DADDI_WORKAROUNDS unsupported without -msym32) 309 endif 648 endif 310 endif 649 endif 311 endif 650 endif 312 651 313 # When linking a 32-bit executable the LLVM li << 314 # 32-bit load address that has been sign-exten << 315 # remove the upper 32 bits then, as it is safe << 316 # linkers. << 317 ifdef CONFIG_64BIT << 318 load-ld = $(load-y) << 319 else << 320 load-ld = $(subst 0xff << 321 endif << 322 << 323 KBUILD_AFLAGS += $(cflags-y) 652 KBUILD_AFLAGS += $(cflags-y) 324 KBUILD_CFLAGS += $(cflags-y) 653 KBUILD_CFLAGS += $(cflags-y) 325 KBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(lo !! 654 KBUILD_CPPFLAGS += -D"VMLINUX_LOAD_ADDRESS=$(load-y)" 326 KBUILD_CPPFLAGS += -DDATAOFFSET=$(if $(dataoff !! 655 KBUILD_CPPFLAGS += -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" 327 656 328 bootvars-y = VMLINUX_LOAD_ADDRESS=$(load- !! 657 LDFLAGS += -m $(ld-emul) 329 LINKER_LOAD_ADDRESS=$(load-l !! 658 330 VMLINUX_ENTRY_ADDRESS=$(entr !! 659 ifdef CONFIG_MIPS 331 PLATFORM="$(platform-y)" \ !! 660 CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ 332 ITS_INPUTS="$(its-y)" !! 661 egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ 333 ifdef CONFIG_32BIT !! 662 sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/") 334 bootvars-y += ADDR_BITS=32 << 335 endif << 336 ifdef CONFIG_64BIT 663 ifdef CONFIG_64BIT 337 bootvars-y += ADDR_BITS=64 !! 664 CHECKFLAGS += -m64 338 endif 665 endif 339 << 340 # This is required to get dwarf unwinding tabl << 341 # instead of .eh_frame so we don't discard the << 342 KBUILD_CFLAGS += -fno-asynchronous-unwind-tabl << 343 << 344 KBUILD_LDFLAGS += -m $(ld-emul) << 345 << 346 ifdef need-compiler << 347 CHECKFLAGS += $(shell $(CC) $(KBUILD_CPPFLAGS) << 348 grep -E -vw '__GNUC_(MINOR_|PATCHLEVEL << 349 sed -e "s/^\#define /-D'/" -e "s/ /'=' << 350 endif 666 endif 351 667 352 OBJCOPYFLAGS += --remove-section=.r 668 OBJCOPYFLAGS += --remove-section=.reginfo 353 669 >> 670 head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o >> 671 354 libs-y += arch/mips/lib/ 672 libs-y += arch/mips/lib/ 355 libs-$(CONFIG_MIPS_FP_SUPPORT) += arch/mips/ma << 356 673 357 drivers-y += arch/mips/c !! 674 core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ >> 675 >> 676 drivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ 358 677 359 # suspend and hibernation support 678 # suspend and hibernation support 360 drivers-$(CONFIG_PM) += arch/mips/power/ 679 drivers-$(CONFIG_PM) += arch/mips/power/ 361 680 362 # boot image targets (arch/mips/boot/) !! 681 ifdef CONFIG_LASAT 363 boot-y := vmlinux.bin !! 682 rom.bin rom.sw: vmlinux 364 boot-y += vmlinux.ecoff !! 683 $(Q)$(MAKE) $(build)=arch/mips/lasat/image $@ 365 boot-y += vmlinux.srec !! 684 endif 366 boot-y += uImage << 367 boot-y += uImage.bin << 368 boot-y += uImage.bz2 << 369 boot-y += uImage.gz << 370 boot-y += uImage.lzma << 371 boot-y += uImage.lzo << 372 boot-y += vmlinux.itb << 373 boot-y += vmlinux.gz.itb << 374 boot-y += vmlinux.bz2.itb << 375 boot-y += vmlinux.lzma.itb << 376 boot-y += vmlinux.lzo.itb << 377 << 378 # compressed boot image targets (arch/mips/boo << 379 bootz-y := vmlinuz << 380 bootz-y += vmlinuz.bin << 381 bootz-y += vmlinuz.ecoff << 382 bootz-y += vmlinuz.srec << 383 bootz-y += uzImage.bin << 384 bootz-y += vmlinuz.itb << 385 685 386 # 686 # 387 # Some machines like the Indy need 32-bit ELF 687 # Some machines like the Indy need 32-bit ELF binaries for booting purposes. 388 # Other need ECOFF, so we build a 32-bit ELF b 688 # Other need ECOFF, so we build a 32-bit ELF binary for them which we then 389 # convert to ECOFF using elf2ecoff. 689 # convert to ECOFF using elf2ecoff. 390 # 690 # 391 quiet_cmd_32 = OBJCOPY $@ << 392 cmd_32 = $(OBJCOPY) -O $(32bit-bfd) $( << 393 vmlinux.32: vmlinux 691 vmlinux.32: vmlinux 394 $(call cmd,32) !! 692 $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@ 395 693 396 # 694 # 397 # The 64-bit ELF tools are pretty broken so at 695 # The 64-bit ELF tools are pretty broken so at this time we generate 64-bit 398 # ELF files from 32-bit files by conversion. 696 # ELF files from 32-bit files by conversion. 399 # 697 # 400 quiet_cmd_64 = OBJCOPY $@ << 401 cmd_64 = $(OBJCOPY) -O $(64bit-bfd) $( << 402 vmlinux.64: vmlinux 698 vmlinux.64: vmlinux 403 $(call cmd,64) !! 699 $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 404 700 405 all: $(all-y) $(KBUILD_DTBS) !! 701 makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1) 406 702 407 # boot !! 703 all: $(all-y) 408 $(boot-y): $(vmlinux-32) FORCE << 409 $(Q)$(MAKE) $(build)=arch/mips/boot VM << 410 $(bootvars-y) arch/mips/boot/$ << 411 << 412 ifdef CONFIG_SYS_SUPPORTS_ZBOOT << 413 # boot/compressed << 414 $(bootz-y): $(vmlinux-32) FORCE << 415 $(Q)$(MAKE) $(build)=arch/mips/boot/co << 416 $(bootvars-y) 32bit-bfd=$(32bi << 417 else << 418 vmlinuz: FORCE << 419 @echo ' CONFIG_SYS_SUPPORTS_ZBOOT is << 420 /bin/false << 421 endif << 422 704 >> 705 vmlinux.bin: $(vmlinux-32) >> 706 +@$(call makeboot,$@) 423 707 424 CLEAN_FILES += vmlinux.32 vmlinux.64 !! 708 vmlinux.ecoff: $(vmlinux-32) >> 709 +@$(call makeboot,$@) 425 710 426 # device-trees !! 711 vmlinux.srec: $(vmlinux-32) 427 core-y += arch/mips/boot/dts/ !! 712 +@$(call makeboot,$@) >> 713 >> 714 CLEAN_FILES += vmlinux.ecoff \ >> 715 vmlinux.srec 428 716 429 archprepare: 717 archprepare: 430 ifdef CONFIG_MIPS32_N32 718 ifdef CONFIG_MIPS32_N32 431 @$(kecho) ' Checking missing-syscalls !! 719 @echo ' Checking missing-syscalls for N32' 432 $(Q)$(MAKE) $(build)=. missing-syscall !! 720 $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=n32" 433 endif 721 endif 434 ifdef CONFIG_MIPS32_O32 722 ifdef CONFIG_MIPS32_O32 435 @$(kecho) ' Checking missing-syscalls !! 723 @echo ' Checking missing-syscalls for O32' 436 $(Q)$(MAKE) $(build)=. missing-syscall !! 724 $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=32" 437 endif 725 endif 438 726 439 install: 727 install: 440 $(Q)install -D -m 755 vmlinux $(INSTAL 728 $(Q)install -D -m 755 vmlinux $(INSTALL_PATH)/vmlinux-$(KERNELRELEASE) 441 ifdef CONFIG_SYS_SUPPORTS_ZBOOT << 442 $(Q)install -D -m 755 vmlinuz $(INSTAL << 443 endif << 444 $(Q)install -D -m 644 .config $(INSTAL 729 $(Q)install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE) 445 $(Q)install -D -m 644 System.map $(INS 730 $(Q)install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE) 446 731 447 archheaders: !! 732 archclean: 448 $(Q)$(MAKE) $(build)=arch/mips/kernel/ !! 733 @$(MAKE) $(clean)=arch/mips/boot >> 734 @$(MAKE) $(clean)=arch/mips/lasat 449 735 450 define archhelp 736 define archhelp 451 echo ' install - install 737 echo ' install - install kernel into $(INSTALL_PATH)' 452 echo ' vmlinux.ecoff - ECOFF b 738 echo ' vmlinux.ecoff - ECOFF boot image' 453 echo ' vmlinux.bin - Raw bin 739 echo ' vmlinux.bin - Raw binary boot image' 454 echo ' vmlinux.srec - SREC bo 740 echo ' vmlinux.srec - SREC boot image' 455 echo ' vmlinux.32 - 64-bit << 456 echo ' vmlinuz - Compres << 457 echo ' vmlinuz.ecoff - ECOFF z << 458 echo ' vmlinuz.bin - Raw bin << 459 echo ' vmlinuz.srec - SREC zb << 460 echo ' uImage - U-Boot << 461 echo ' uImage.bin - U-Boot << 462 echo ' uImage.bz2 - U-Boot << 463 echo ' uImage.gz - U-Boot << 464 echo ' uImage.lzma - U-Boot << 465 echo ' uImage.lzo - U-Boot << 466 echo ' uzImage.bin - U-Boot << 467 echo << 468 echo ' These will be default as appro << 469 echo << 470 echo ' If you are targeting a system << 471 echo ' configure the kernel for a giv << 472 echo << 473 echo ' {micro32,32,64}{r1,r2,r6}{el,} << 474 echo 741 echo 475 echo ' Where BOARDS is some subset of !! 742 echo ' These will be default as apropriate for a configured platform.' 476 for board in $(sort $(BOARDS)); do ech << 477 echo << 478 echo ' Specifically the following gen << 479 echo ' supported:' << 480 echo << 481 $(foreach cfg,$(generic_defconfigs), << 482 printf " %-24s - Build generic kern << 483 echo << 484 echo ' The following legacy default c << 485 echo ' generic and can still be used: << 486 echo << 487 $(foreach cfg,$(sort $(legacy_defconfi << 488 printf " %-24s - Build $($(cfg)-y)\ << 489 echo << 490 echo ' Otherwise, the following defau << 491 endef << 492 << 493 generic_config_dir = $(srctree)/arch/$(ARCH)/c << 494 generic_defconfigs := << 495 << 496 # << 497 # If the user generates a generic kernel confi << 498 # list of boards to include the config fragmen << 499 # available board config fragments. << 500 # << 501 ifeq ($(BOARDS),) << 502 BOARDS = $(patsubst board-%.config,%,$(notdir << 503 endif << 504 << 505 # << 506 # Generic kernel configurations which merge ge << 507 # appropriate config fragments from arch/mips/ << 508 # the ability to easily configure the kernel f << 509 # endianness & set of boards without duplicati << 510 # hundreds of defconfig files. << 511 # << 512 define gen_generic_defconfigs << 513 $(foreach bits,$(1),$(foreach rev,$(2),$(forea << 514 target := $(bits)$(rev)$(filter el,$(endian))_ << 515 generic_defconfigs += $$(target) << 516 $$(target): $(generic_config_dir)/$(bits)$(rev << 517 $$(target): $(generic_config_dir)/$(endian).co << 518 ))) << 519 endef 743 endef 520 744 521 $(eval $(call gen_generic_defconfigs,32 64,r1 !! 745 CLEAN_FILES += vmlinux.32 \ 522 $(eval $(call gen_generic_defconfigs,micro32,r !! 746 vmlinux.64 \ 523 !! 747 vmlinux.ecoff 524 define describe_generic_defconfig << 525 $(subst 32r,MIPS32 r,$(subst 64r,MIPS64 r,$(su << 526 endef << 527 << 528 .PHONY: $(generic_defconfigs) << 529 $(generic_defconfigs): << 530 $(Q)$(CONFIG_SHELL) $(srctree)/scripts << 531 -m -O $(objtree) $(srctree)/ar << 532 grep -Ev '^#' << 533 $(Q)cp $(KCONFIG_CONFIG) $(objtree)/.c << 534 $(Q)$(MAKE) -f $(srctree)/Makefile old << 535 KCONFIG_CONFIG=$(objtree)/.con << 536 $(Q)$(CONFIG_SHELL) $(srctree)/arch/$( << 537 $(srctree) $(objtree) $(objtre << 538 "$(origin BOARDS)" $(BOARDS) << 539 $(Q)$(MAKE) -f $(srctree)/Makefile old << 540 << 541 # << 542 # Prevent generic merge_config rules attemptin << 543 # << 544 $(generic_config_dir)/%.config: ; << 545 << 546 # << 547 # Prevent direct use of generic_defconfig, whi << 548 # basis of the various ISA-specific targets ge << 549 # << 550 .PHONY: generic_defconfig << 551 generic_defconfig: << 552 $(Q)echo "generic_defconfig is not int << 553 $(Q)echo "used via an ISA-specific tar << 554 $(Q)echo << 555 $(Q)for cfg in $(generic_defconfigs); << 556 $(Q)echo << 557 $(Q)false << 558 << 559 # << 560 # Legacy defconfig compatibility - these targe << 561 # now that the boards have been converted to u << 562 # wrappers around the generic rules above. << 563 # << 564 legacy_defconfigs += ocelot_defc << 565 ocelot_defconfig-y := 32r2el_defc << 566 << 567 legacy_defconfigs += sead3_defco << 568 sead3_defconfig-y := 32r2el_defc << 569 << 570 legacy_defconfigs += sead3micro_ << 571 sead3micro_defconfig-y := micro32r2el << 572 << 573 legacy_defconfigs += xilfpga_def << 574 xilfpga_defconfig-y := 32r2el_defc << 575 << 576 legacy_defconfigs += pistachio_d << 577 pistachio_defconfig-y := 32r2el_defc << 578 << 579 .PHONY: $(legacy_defconfigs) << 580 $(legacy_defconfigs): << 581 $(Q)$(MAKE) -f $(srctree)/Makefile $($ <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.