1 # This file is included by the global makefile << 2 # architecture-specific flags and dependencies << 3 # 1 # 4 # This file is subject to the terms and condit 2 # This file is subject to the terms and conditions of the GNU General Public 5 # License. See the file "COPYING" in the main 3 # License. See the file "COPYING" in the main directory of this archive 6 # for more details. 4 # for more details. 7 # 5 # 8 # Copyright (C) 1994 by Linus Torvalds !! 6 # Copyright (C) 1994, 95, 96, 2003 by Ralf Baechle 9 # Changes for PPC by Gary Thomas !! 7 # DECStation modifications by Paul M. Antoine, 1996 10 # Rewritten by Cort Dougan and Paul Mackerras !! 8 # Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki >> 9 # >> 10 # This file is included by the global makefile so that you can add your own >> 11 # architecture-specific flags and dependencies. Remember to do have actions >> 12 # for "archclean" cleaning up for this architecture. 11 # 13 # 12 14 13 ifdef cross_compiling !! 15 KBUILD_DEFCONFIG := ip22_defconfig >> 16 >> 17 # >> 18 # Select the object file format to substitute into the linker script. >> 19 # >> 20 ifdef CONFIG_CPU_LITTLE_ENDIAN >> 21 32bit-tool-archpref = mipsel >> 22 64bit-tool-archpref = mips64el >> 23 32bit-bfd = elf32-tradlittlemips >> 24 64bit-bfd = elf64-tradlittlemips >> 25 32bit-emul = elf32ltsmip >> 26 64bit-emul = elf64ltsmip >> 27 else >> 28 32bit-tool-archpref = mips >> 29 64bit-tool-archpref = mips64 >> 30 32bit-bfd = elf32-tradbigmips >> 31 64bit-bfd = elf64-tradbigmips >> 32 32bit-emul = elf32btsmip >> 33 64bit-emul = elf64btsmip >> 34 endif >> 35 >> 36 ifdef CONFIG_32BIT >> 37 tool-archpref = $(32bit-tool-archpref) >> 38 UTS_MACHINE := mips >> 39 endif >> 40 ifdef CONFIG_64BIT >> 41 tool-archpref = $(64bit-tool-archpref) >> 42 UTS_MACHINE := mips64 >> 43 endif >> 44 >> 45 ifneq ($(SUBARCH),$(ARCH)) 14 ifeq ($(CROSS_COMPILE),) 46 ifeq ($(CROSS_COMPILE),) 15 # Auto detect cross compiler prefix. !! 47 CROSS_COMPILE := $(call cc-cross-prefix, $(tool-archpref)-linux- $(tool-archpref)-linux-gnu- $(tool-archpref)-unknown-linux-gnu-) 16 # Look for: (powerpc(64(le)?)?)(-unknown)? << 17 CC_ARCHES := powerpc powerpc64 powerpc64le << 18 CC_SUFFIXES := linux linux-gnu unknown-lin << 19 CROSS_COMPILE := $(call cc-cross-prefix, $ << 20 $(foreach s,$(CC_SUFFIX << 21 endif 48 endif 22 endif 49 endif 23 50 24 HAS_BIARCH := $(call cc-option-yn, -m32) !! 51 cflags-y := -ffunction-sections >> 52 cflags-y += $(call cc-option, -mno-check-zero-division) 25 53 26 # Set default 32 bits cross compilers for vdso !! 54 ifdef CONFIG_32BIT 27 CROSS32_COMPILE ?= !! 55 ld-emul = $(32bit-emul) >> 56 vmlinux-32 = vmlinux >> 57 vmlinux-64 = vmlinux.64 28 58 29 # If we're on a ppc/ppc64/ppc64le machine use !! 59 cflags-y += -mabi=32 30 # ppc64le_defconfig because we have nothing be !! 60 endif 31 uname := $(shell uname -m) << 32 KBUILD_DEFCONFIG := $(if $(filter ppc%,$(uname << 33 61 34 new_nm := $(shell if $(NM) --help 2>&1 | grep !! 62 ifdef CONFIG_64BIT >> 63 ld-emul = $(64bit-emul) >> 64 vmlinux-32 = vmlinux.32 >> 65 vmlinux-64 = vmlinux 35 66 36 ifeq ($(new_nm),y) !! 67 cflags-y += -mabi=64 37 NM := $(NM) --synthetic << 38 endif 68 endif 39 69 40 # BITS is used as extension for files which ar !! 70 all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32) 41 # and a 64 bit version to simplify shared Make !! 71 all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64) 42 # e.g.: obj-y += foo_$(BITS).o << 43 export BITS << 44 72 45 ifdef CONFIG_PPC64 !! 73 # 46 BITS := 64 !! 74 # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel 47 else !! 75 # code since it only slows down the whole thing. At some point we might make 48 BITS := 32 !! 76 # use of global pointer optimizations but their use of $28 conflicts with 49 endif !! 77 # the current pointer optimization. >> 78 # >> 79 # The DECStation requires an ECOFF kernel for remote booting, other MIPS >> 80 # machines may also. Since BFD is incredibly buggy with respect to >> 81 # crossformat linking we rely on the elf2ecoff tool for format conversion. >> 82 # >> 83 cflags-y += -G 0 -mno-abicalls -fno-pic -pipe >> 84 cflags-y += -msoft-float >> 85 LDFLAGS_vmlinux += -G 0 -static -n -nostdlib >> 86 MODFLAGS += -mlong-calls 50 87 51 machine-y = ppc !! 88 cflags-y += -ffreestanding 52 machine-$(CONFIG_PPC64) += 64 << 53 machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le << 54 UTS_MACHINE := $(subst $(space),,$(machine-y)) << 55 << 56 ifeq ($(CONFIG_PPC64)$(CONFIG_LD_IS_BFD),yy) << 57 # Have the linker provide sfpr if possible. << 58 # There is a corresponding test in arch/powerp << 59 KBUILD_LDFLAGS_MODULE += --save-restore-funcs << 60 else << 61 KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crts << 62 endif << 63 89 64 ifdef CONFIG_CPU_LITTLE_ENDIAN !! 90 # 65 KBUILD_CFLAGS += -mlittle-endian !! 91 # We explicitly add the endianness specifier if needed, this allows 66 KBUILD_LDFLAGS += -EL !! 92 # to compile kernels with a toolchain for the other endianness. We 67 LDEMULATION := lppc !! 93 # carefully avoid to add it redundantly because gcc 3.3/3.4 complains 68 GNUTARGET := powerpcle !! 94 # when fed the toolchain default! 69 MULTIPLEWORD := -mno-multiple !! 95 # 70 KBUILD_CFLAGS_MODULE += $(call cc-option,-mno- !! 96 # Certain gcc versions upto gcc 4.1.1 (probably 4.2-subversion as of 71 else !! 97 # 2006-10-10 don't properly change the predefined symbols if -EB / -EL 72 KBUILD_CFLAGS += $(call cc-option,-mbig-endian !! 98 # are used, so we kludge that here. A bug has been filed at 73 KBUILD_LDFLAGS += -EB !! 99 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29413. 74 LDEMULATION := ppc !! 100 # 75 GNUTARGET := powerpc !! 101 undef-all += -UMIPSEB -U_MIPSEB -U__MIPSEB -U__MIPSEB__ 76 MULTIPLEWORD := -mmultiple !! 102 undef-all += -UMIPSEL -U_MIPSEL -U__MIPSEL -U__MIPSEL__ 77 endif !! 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) >> 109 >> 110 cflags-$(CONFIG_SB1XXX_CORELIS) += $(call cc-option,-mno-sched-prolog) \ >> 111 -fno-omit-frame-pointer 78 112 79 ifdef CONFIG_PPC64 !! 113 # 80 ifndef CONFIG_CC_IS_CLANG !! 114 # CPU-dependent compiler/assembler options for optimization. 81 cflags-$(CONFIG_PPC64_ELF_ABI_V1) += $(c !! 115 # 82 cflags-$(CONFIG_PPC64_ELF_ABI_V1) += $(c !! 116 cflags-$(CONFIG_CPU_R3000) += -march=r3000 83 aflags-$(CONFIG_PPC64_ELF_ABI_V1) += $(c !! 117 cflags-$(CONFIG_CPU_TX39XX) += -march=r3900 84 aflags-$(CONFIG_PPC64_ELF_ABI_V2) += -ma !! 118 cflags-$(CONFIG_CPU_R6000) += -march=r6000 -Wa,--trap >> 119 cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap >> 120 cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap >> 121 cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap >> 122 cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap >> 123 # only gcc >= 4.4 have the loongson-specific support >> 124 cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap >> 125 cflags-$(CONFIG_CPU_LOONGSON2E) += \ >> 126 $(call cc-option,-march=loongson2e,-march=r4600) >> 127 >> 128 cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ >> 129 -Wa,-mips32 -Wa,--trap >> 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) \ >> 138 -Wa,--trap >> 139 cflags-$(CONFIG_CPU_R5500) += $(call cc-option,-march=r5500,-march=r5000) \ >> 140 -Wa,--trap >> 141 cflags-$(CONFIG_CPU_NEVADA) += $(call cc-option,-march=rm5200,-march=r5000) \ >> 142 -Wa,--trap >> 143 cflags-$(CONFIG_CPU_RM7000) += $(call cc-option,-march=rm7000,-march=r5000) \ >> 144 -Wa,--trap >> 145 cflags-$(CONFIG_CPU_RM9000) += $(call cc-option,-march=rm9000,-march=r5000) \ >> 146 -Wa,--trap >> 147 cflags-$(CONFIG_CPU_SB1) += $(call cc-option,-march=sb1,-march=r5000) \ >> 148 -Wa,--trap >> 149 cflags-$(CONFIG_CPU_R8000) += -march=r8000 -Wa,--trap >> 150 cflags-$(CONFIG_CPU_R10000) += $(call cc-option,-march=r10000,-march=r8000) \ >> 151 -Wa,--trap >> 152 cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += $(call cc-option,-march=octeon) -Wa,--trap >> 153 ifeq (,$(findstring march=octeon, $(cflags-$(CONFIG_CPU_CAVIUM_OCTEON)))) >> 154 cflags-$(CONFIG_CPU_CAVIUM_OCTEON) += -Wa,-march=octeon >> 155 endif >> 156 >> 157 cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,) >> 158 cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,) >> 159 cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,) >> 160 >> 161 ifdef CONFIG_CPU_SB1 >> 162 ifdef CONFIG_SB1_PASS_1_WORKAROUNDS >> 163 MODFLAGS += -msb1-pass1-workarounds 85 endif 164 endif 86 endif 165 endif 87 166 88 ifndef CONFIG_CC_IS_CLANG !! 167 # 89 cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mn !! 168 # Firmware support 90 endif !! 169 # >> 170 libs-$(CONFIG_ARC) += arch/mips/fw/arc/ >> 171 libs-$(CONFIG_CFE) += arch/mips/fw/cfe/ >> 172 libs-$(CONFIG_SNIPROM) += arch/mips/fw/sni/ >> 173 libs-y += arch/mips/fw/lib/ 91 174 92 cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(c !! 175 # 93 cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml !! 176 # Board-dependent options and extra files 94 aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(c !! 177 # 95 aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml << 96 178 97 ifeq ($(HAS_BIARCH),y) !! 179 # 98 KBUILD_CFLAGS += -m$(BITS) !! 180 # Texas Instruments AR7 99 KBUILD_AFLAGS += -m$(BITS) !! 181 # 100 KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION) !! 182 core-$(CONFIG_AR7) += arch/mips/ar7/ 101 endif !! 183 cflags-$(CONFIG_AR7) += -I$(srctree)/arch/mips/include/asm/mach-ar7 >> 184 load-$(CONFIG_AR7) += 0xffffffff94100000 102 185 103 cflags-$(CONFIG_STACKPROTECTOR) += -mstack-pro !! 186 # 104 ifdef CONFIG_PPC64 !! 187 # Acer PICA 61, Mips Magnum 4000 and Olivetti M700. 105 cflags-$(CONFIG_STACKPROTECTOR) += -mstack-pro !! 188 # 106 else !! 189 core-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/ 107 cflags-$(CONFIG_STACKPROTECTOR) += -mstack-pro !! 190 cflags-$(CONFIG_MACH_JAZZ) += -I$(srctree)/arch/mips/include/asm/mach-jazz 108 endif !! 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 109 357 110 LDFLAGS_vmlinux-y := -Bstatic !! 358 # 111 LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie !! 359 # Basler eXcite 112 LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) += -z no !! 360 # 113 LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y) !! 361 core-$(CONFIG_BASLER_EXCITE) += arch/mips/basler/excite/ 114 !! 362 cflags-$(CONFIG_BASLER_EXCITE) += -I$(srctree)/arch/mips/include/asm/mach-excite 115 ifdef CONFIG_PPC64 !! 363 load-$(CONFIG_BASLER_EXCITE) += 0x80100000 116 ifndef CONFIG_PPC_KERNEL_PCREL !! 364 117 # -mcmodel=medium breaks modules becau !! 365 # 118 # the TOC pointer to create pointers w !! 366 # LASAT platforms 119 # percpu data area are created by this !! 367 # 120 # !! 368 core-$(CONFIG_LASAT) += arch/mips/lasat/ 121 # The kernel module loader relocates t !! 369 cflags-$(CONFIG_LASAT) += -I$(srctree)/arch/mips/include/asm/mach-lasat 122 # original location (starting with 0xd !! 370 load-$(CONFIG_LASAT) += 0xffffffff80000000 123 # kernel percpu data space (starting w !! 371 124 # 64bit relocation for this to work, h !! 372 # 125 KBUILD_CFLAGS_MODULE += -mcmodel=large !! 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) >> 402 # >> 403 load-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000 >> 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 126 endif 456 endif >> 457 ifdef CONFIG_64BIT >> 458 load-$(CONFIG_SGI_IP22) += 0xffffffff88004000 127 endif 459 endif 128 460 129 CFLAGS-$(CONFIG_PPC64) := $(call cc-option,-m !! 461 # 130 ifdef CONFIG_PPC64_ELF_ABI_V2 !! 462 # SGI-IP27 (Origin200/2000) 131 CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-m !! 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 132 else 475 else 133 ifndef CONFIG_CC_IS_CLANG !! 476 load-$(CONFIG_SGI_IP27) += 0xa80000000001c000 134 CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-m !! 477 OBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 135 CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-m << 136 endif 478 endif 137 endif 479 endif 138 CFLAGS-$(CONFIG_PPC64) += -mcmodel=medium << 139 CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-m << 140 CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-m << 141 480 142 # Clang unconditionally reserves r2 on ppc32 a !! 481 # 143 # https://llvm.org/pr39555 !! 482 # SGI IP28 (Indigo2 R10k) 144 CFLAGS-$(CONFIG_PPC32) := $(call cc-option, - !! 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 145 536 146 # Clang doesn't support -mmultiple / -mno-mult !! 537 # 147 # https://llvm.org/pr39556 !! 538 # Sibyte BCM91120x (Carmel) board 148 CFLAGS-$(CONFIG_PPC32) += $(call cc-option, $ !! 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 149 559 150 CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-m !! 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 151 566 152 CC_FLAGS_FPU := $(call cc-option,-m !! 567 # 153 CC_FLAGS_NO_FPU := $(call cc-option,-m !! 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 154 573 155 ifdef CONFIG_FUNCTION_TRACER !! 574 # 156 ifdef CONFIG_ARCH_USING_PATCHABLE_FUNCTION_ENT !! 575 # SNI RM 157 KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTI !! 576 # 158 CC_FLAGS_FTRACE := -fpatchable-function-entry= !! 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 159 else 581 else 160 CC_FLAGS_FTRACE := -pg !! 582 load-$(CONFIG_SNI_RM) += 0xffffffff80030000 161 ifdef CONFIG_MPROFILE_KERNEL << 162 CC_FLAGS_FTRACE += -mprofile-kernel << 163 endif << 164 endif << 165 endif 583 endif >> 584 all-$(CONFIG_SNI_RM) := vmlinux.ecoff 166 585 167 CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CO !! 586 # 168 AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CO !! 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 169 595 170 CFLAGS-y += $(CONFIG_TUNE_CPU) !! 596 # >> 597 # Toshiba JMR-TX3927 board >> 598 # >> 599 core-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/txx9/jmr3927/ 171 600 172 asinstr := $(call as-instr,lis 9$(comma)foo@hi !! 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 173 607 174 KBUILD_CPPFLAGS += -I $(srctree)/arch/powerpc !! 608 # 175 KBUILD_AFLAGS += $(AFLAGS-y) !! 609 # Toshiba RBTX49XX boards 176 KBUILD_CFLAGS += $(CC_FLAGS_NO_FPU) !! 610 # 177 KBUILD_CFLAGS += $(CFLAGS-y) !! 611 core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/txx9/rbtx4927/ 178 CPP = $(CC) -E $(KBUILD_CFLAGS) !! 612 core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/txx9/rbtx4938/ >> 613 core-$(CONFIG_TOSHIBA_RBTX4939) += arch/mips/txx9/rbtx4939/ 179 614 180 CHECKFLAGS += -m$(BITS) -D__powerpc__ -D_ !! 615 # 181 ifdef CONFIG_CPU_BIG_ENDIAN !! 616 # Cavium Octeon 182 CHECKFLAGS += -D__BIG_ENDIAN__ !! 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 183 else 623 else 184 CHECKFLAGS += -D__LITTLE_ENDIAN__ !! 624 load-$(CONFIG_CPU_CAVIUM_OCTEON) += 0xffffffff81100000 185 endif 625 endif 186 626 187 ifdef CONFIG_476FPE_ERR46 !! 627 cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic 188 KBUILD_LDFLAGS_MODULE += --ppc476-work !! 628 drivers-$(CONFIG_PCI) += arch/mips/pci/ 189 -T $(srctree)/arch/powerpc/pla !! 629 >> 630 # >> 631 # Automatically detect the build format. By default we choose >> 632 # the elf format according to the load address. >> 633 # We can always force a build with a 64-bits symbol format by >> 634 # passing 'KBUILD_SYM32=no' option to the make's command line. >> 635 # >> 636 ifdef CONFIG_64BIT >> 637 ifndef KBUILD_SYM32 >> 638 ifeq ($(shell expr $(load-y) \< 0xffffffff80000000), 0) >> 639 KBUILD_SYM32 = y >> 640 endif >> 641 endif >> 642 >> 643 ifeq ($(KBUILD_SYM32)$(call cc-option-yn,-msym32), yy) >> 644 cflags-y += -msym32 -DKBUILD_64BIT_SYM32 >> 645 else >> 646 ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y) >> 647 $(error CONFIG_CPU_DADDI_WORKAROUNDS unsupported without -msym32) >> 648 endif >> 649 endif 190 endif 650 endif 191 651 192 # No prefix or pcrel !! 652 KBUILD_AFLAGS += $(cflags-y) 193 ifdef CONFIG_PPC_KERNEL_PREFIXED !! 653 KBUILD_CFLAGS += $(cflags-y) 194 KBUILD_CFLAGS += $(call cc-option,-mprefixed) !! 654 KBUILD_CPPFLAGS += -D"VMLINUX_LOAD_ADDRESS=$(load-y)" 195 else !! 655 KBUILD_CPPFLAGS += -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" 196 KBUILD_CFLAGS += $(call cc-option,-mno-prefixe !! 656 >> 657 LDFLAGS += -m $(ld-emul) >> 658 >> 659 ifdef CONFIG_MIPS >> 660 CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ >> 661 egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ >> 662 sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/") >> 663 ifdef CONFIG_64BIT >> 664 CHECKFLAGS += -m64 197 endif 665 endif 198 ifdef CONFIG_PPC_KERNEL_PCREL << 199 KBUILD_CFLAGS += $(call cc-option,-mpcrel) << 200 else << 201 KBUILD_CFLAGS += $(call cc-option,-mno-pcrel) << 202 endif 666 endif 203 667 204 # No AltiVec or VSX or MMA instructions when b !! 668 OBJCOPYFLAGS += --remove-section=.reginfo 205 KBUILD_CFLAGS += $(call cc-option,-mno-altivec << 206 KBUILD_CFLAGS += $(call cc-option,-mno-vsx) << 207 KBUILD_CFLAGS += $(call cc-option,-mno-mma) << 208 << 209 # No SPE instruction when building kernel << 210 # (We use all available options to help semi-b << 211 KBUILD_CFLAGS += $(call cc-option,-mno-spe) << 212 KBUILD_CFLAGS += $(call cc-option,-mspe=no) << 213 << 214 # Don't emit .eh_frame since we have no use fo << 215 KBUILD_CFLAGS += -fno-asynchronous-unwind-tabl << 216 << 217 # Never use string load/store instructions as << 218 # often slow when they are implemented at all << 219 KBUILD_CFLAGS += $(call cc-option,-m << 220 << 221 KBUILD_AFLAGS += $(aflags-y) << 222 KBUILD_CFLAGS += $(cflags-y) << 223 << 224 # Default to zImage, override when needed << 225 all: zImage << 226 << 227 # With make 3.82 we cannot mix normal and wild << 228 BOOT_TARGETS1 := zImage zImage.initrd uImage << 229 BOOT_TARGETS2 := zImage% dtbImage% treeImage.% << 230 << 231 PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2) << 232 << 233 boot := arch/powerpc/boot << 234 << 235 $(BOOT_TARGETS1): vmlinux << 236 $(Q)$(MAKE) $(build)=$(boot) $(patsubs << 237 $(BOOT_TARGETS2): vmlinux << 238 $(Q)$(MAKE) $(build)=$(boot) $(patsubs << 239 << 240 << 241 PHONY += bootwrapper_install << 242 bootwrapper_install: << 243 $(Q)$(MAKE) $(build)=$(boot) $(patsubs << 244 << 245 include $(srctree)/scripts/Makefile.defconf << 246 << 247 generated_configs += ppc64le_defconfig << 248 ppc64le_defconfig: << 249 $(call merge_into_defconfig,ppc64_defc << 250 << 251 generated_configs += ppc64le_guest_defconfig << 252 ppc64le_guest_defconfig: << 253 $(call merge_into_defconfig,ppc64_defc << 254 << 255 generated_configs += ppc64_guest_defconfig << 256 ppc64_guest_defconfig: << 257 $(call merge_into_defconfig,ppc64_defc << 258 << 259 generated_configs += pseries_le_defconfig << 260 pseries_le_defconfig: ppc64le_guest_defconfig << 261 << 262 generated_configs += pseries_defconfig << 263 pseries_defconfig: ppc64le_guest_defconfig << 264 << 265 generated_configs += powernv_be_defconfig << 266 powernv_be_defconfig: << 267 $(call merge_into_defconfig,powernv_de << 268 << 269 generated_configs += mpc85xx_defconfig << 270 mpc85xx_defconfig: << 271 $(call merge_into_defconfig,mpc85xx_ba << 272 85xx-32bit 85xx-hw fsl-emb-non << 273 << 274 generated_configs += mpc85xx_smp_defconfig << 275 mpc85xx_smp_defconfig: << 276 $(call merge_into_defconfig,mpc85xx_ba << 277 85xx-32bit 85xx-smp 85xx-hw fs << 278 << 279 generated_configs += corenet32_smp_defconfig << 280 corenet32_smp_defconfig: << 281 $(call merge_into_defconfig,corenet_ba << 282 85xx-32bit 85xx-smp 85xx-hw fs << 283 << 284 generated_configs += corenet64_smp_defconfig << 285 corenet64_smp_defconfig: << 286 $(call merge_into_defconfig,corenet_ba << 287 85xx-64bit 85xx-smp altivec 85 << 288 << 289 generated_configs += mpc86xx_defconfig << 290 mpc86xx_defconfig: << 291 $(call merge_into_defconfig,mpc86xx_ba << 292 86xx-hw fsl-emb-nonhw) << 293 << 294 generated_configs += mpc86xx_smp_defconfig << 295 mpc86xx_smp_defconfig: << 296 $(call merge_into_defconfig,mpc86xx_ba << 297 86xx-smp 86xx-hw fsl-emb-nonhw << 298 << 299 generated_configs += ppc32_allmodconfig << 300 ppc32_allmodconfig: << 301 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 302 -f $(srctree)/Makefile allmodc << 303 << 304 generated_configs += ppc44x_allmodconfig << 305 ppc44x_allmodconfig: << 306 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 307 -f $(srctree)/Makefile allmodc << 308 << 309 generated_configs += ppc8xx_allmodconfig << 310 ppc8xx_allmodconfig: << 311 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 312 -f $(srctree)/Makefile allmodc << 313 << 314 generated_configs += ppc85xx_allmodconfig << 315 ppc85xx_allmodconfig: << 316 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 317 -f $(srctree)/Makefile allmodc << 318 << 319 generated_configs += ppc_defconfig << 320 ppc_defconfig: << 321 $(call merge_into_defconfig,book3s_32. << 322 << 323 generated_configs += ppc64le_allmodconfig << 324 ppc64le_allmodconfig: << 325 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 326 -f $(srctree)/Makefile allmodc << 327 << 328 generated_configs += ppc64le_allnoconfig << 329 ppc64le_allnoconfig: << 330 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 331 -f $(srctree)/Makefile allnoco << 332 << 333 generated_configs += ppc64_book3e_allmodconfig << 334 ppc64_book3e_allmodconfig: << 335 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 336 -f $(srctree)/Makefile allmodc << 337 << 338 generated_configs += ppc32_randconfig << 339 ppc32_randconfig: << 340 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 341 -f $(srctree)/Makefile randcon << 342 << 343 generated_configs += ppc64_randconfig << 344 ppc64_randconfig: << 345 $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre << 346 -f $(srctree)/Makefile randcon << 347 669 348 PHONY += $(generated_configs) !! 670 head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o 349 671 350 define archhelp !! 672 libs-y += arch/mips/lib/ 351 echo '* zImage - Build default imag << 352 echo ' zImage.* - Compressed kernel << 353 echo ' uImage - U-Boot native imag << 354 echo ' cuImage.<dt> - Backwards compatib << 355 echo ' versions which do << 356 echo ' dtbImage.<dt> - zImage with an emb << 357 echo ' simpleImage.<dt> - Firmware independ << 358 echo ' treeImage.<dt> - Support for older << 359 echo ' install - Install kernel usi << 360 echo ' (your) ~/bin/$(INS << 361 echo ' (distribution) /sb << 362 echo ' install to $$(INST << 363 echo ' *_defconfig - Select default con << 364 echo '' << 365 echo ' Targets with <dt> embed a device tre << 366 echo ' These targets support board with fir << 367 echo ' support passing a device tree direct << 368 echo ' name of a dts file from the arch/pow << 369 echo ' (minus the .dts extension).' << 370 echo << 371 $(foreach cfg,$(generated_configs), << 372 printf " %-27s - Build for %s\\n" $(cfg) << 373 endef << 374 673 375 PHONY += install !! 674 core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ 376 install: << 377 $(call cmd,install) << 378 675 379 ifeq ($(KBUILD_EXTMOD),) !! 676 drivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ 380 # We need to generate vdso-offsets.h before co !! 677 381 # In order to do that, we should use the archp !! 678 # suspend and hibernation support 382 # asm-offsets.h is included in some files used !! 679 drivers-$(CONFIG_PM) += arch/mips/power/ 383 # asm-offsets.h is built in prepare0, for whic !! 680 384 # Therefore we need to generate the header aft !! 681 ifdef CONFIG_LASAT 385 # this hack. !! 682 rom.bin rom.sw: vmlinux 386 prepare: vdso_prepare !! 683 $(Q)$(MAKE) $(build)=arch/mips/lasat/image $@ 387 vdso_prepare: prepare0 !! 684 endif 388 $(if $(CONFIG_VDSO32),$(Q)$(MAKE) \ !! 685 389 $(build)=arch/powerpc/kernel/v !! 686 # 390 $(if $(CONFIG_PPC64),$(Q)$(MAKE) \ !! 687 # Some machines like the Indy need 32-bit ELF binaries for booting purposes. 391 $(build)=arch/powerpc/kernel/v !! 688 # Other need ECOFF, so we build a 32-bit ELF binary for them which we then 392 endif !! 689 # convert to ECOFF using elf2ecoff. 393 !! 690 # 394 archprepare: checkbin !! 691 vmlinux.32: vmlinux 395 !! 692 $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@ 396 archheaders: !! 693 397 $(Q)$(MAKE) $(build)=arch/powerpc/kern !! 694 # 398 !! 695 # The 64-bit ELF tools are pretty broken so at this time we generate 64-bit 399 ifdef CONFIG_STACKPROTECTOR !! 696 # ELF files from 32-bit files by conversion. 400 prepare: stack_protector_prepare !! 697 # 401 !! 698 vmlinux.64: vmlinux 402 PHONY += stack_protector_prepare !! 699 $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 403 stack_protector_prepare: prepare0 !! 700 404 ifdef CONFIG_PPC64 !! 701 makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1) 405 $(eval KBUILD_CFLAGS += -mstack-protec !! 702 406 else !! 703 all: $(all-y) 407 $(eval KBUILD_CFLAGS += -mstack-protec !! 704 >> 705 vmlinux.bin: $(vmlinux-32) >> 706 +@$(call makeboot,$@) >> 707 >> 708 vmlinux.ecoff: $(vmlinux-32) >> 709 +@$(call makeboot,$@) >> 710 >> 711 vmlinux.srec: $(vmlinux-32) >> 712 +@$(call makeboot,$@) >> 713 >> 714 CLEAN_FILES += vmlinux.ecoff \ >> 715 vmlinux.srec >> 716 >> 717 archprepare: >> 718 ifdef CONFIG_MIPS32_N32 >> 719 @echo ' Checking missing-syscalls for N32' >> 720 $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=n32" 408 endif 721 endif >> 722 ifdef CONFIG_MIPS32_O32 >> 723 @echo ' Checking missing-syscalls for O32' >> 724 $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=32" 409 endif 725 endif 410 726 411 PHONY += checkbin !! 727 install: 412 checkbin: !! 728 $(Q)install -D -m 755 vmlinux $(INSTALL_PATH)/vmlinux-$(KERNELRELEASE) 413 @if test "x${CONFIG_FTRACE_MCOUNT_USE_ !! 729 $(Q)install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE) 414 "x${CONFIG_LD_IS_BFD}" = "xy" !! 730 $(Q)install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE) 415 "${CONFIG_LD_VERSION}" = "2370 !! 731 416 echo -n '*** binutils 2.37 dro !! 732 archclean: 417 echo 'is unable to handle.' ; !! 733 @$(MAKE) $(clean)=arch/mips/boot 418 echo '*** Please use a differe !! 734 @$(MAKE) $(clean)=arch/mips/lasat 419 false ; \ !! 735 420 fi !! 736 define archhelp >> 737 echo ' install - install kernel into $(INSTALL_PATH)' >> 738 echo ' vmlinux.ecoff - ECOFF boot image' >> 739 echo ' vmlinux.bin - Raw binary boot image' >> 740 echo ' vmlinux.srec - SREC boot image' >> 741 echo >> 742 echo ' These will be default as apropriate for a configured platform.' >> 743 endef >> 744 >> 745 CLEAN_FILES += vmlinux.32 \ >> 746 vmlinux.64 \ >> 747 vmlinux.ecoff
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.