1 # 1 # 2 # arch/sh/Makefile << 3 # << 4 # Copyright (C) 1999 Kaz Kojima << 5 # Copyright (C) 2002 - 2008 Paul Mundt << 6 # Copyright (C) 2002 M. R. Brown << 7 # << 8 # This file is subject to the terms and condit 2 # This file is subject to the terms and conditions of the GNU General Public 9 # License. See the file "COPYING" in the main 3 # License. See the file "COPYING" in the main directory of this archive 10 # for more details. 4 # for more details. 11 # 5 # 12 ifdef cross_compiling !! 6 # Copyright (C) 1994, 1995, 1996 by Ralf Baechle 13 ifeq ($(CROSS_COMPILE),) !! 7 # DECStation modifications by Paul M. Antoine, 1996 14 CROSS_COMPILE := $(call cc-cross-prefix, s !! 8 # Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki 15 endif !! 9 # 16 endif !! 10 # This file is included by the global makefile so that you can add your own 17 !! 11 # architecture-specific flags and dependencies. Remember to do have actions 18 KBUILD_DEFCONFIG := shx3_defconfig !! 12 # for "archclean" and "archdep" for cleaning up and making dependencies for 19 !! 13 # this architecture 20 isa-y := any !! 14 # 21 isa-$(CONFIG_SH_DSP) := sh !! 15 22 isa-$(CONFIG_CPU_SH2) := sh2 !! 16 # 23 isa-$(CONFIG_CPU_SH2A) := sh2 !! 17 # Select the object file format to substitute into the linker script. 24 isa-$(CONFIG_CPU_SH3) := sh3 !! 18 # 25 isa-$(CONFIG_CPU_SH4) := sh4 !! 19 ifdef CONFIG_CPU_LITTLE_ENDIAN 26 isa-$(CONFIG_CPU_SH4A) := sh4 !! 20 tool-prefix = mipsel-linux- 27 isa-$(CONFIG_CPU_SH4AL_DSP) := sh4 !! 21 ld-emul = elf32ltsmip 28 << 29 isa-$(CONFIG_SH_DSP) := $(i << 30 isa-y := $(i << 31 << 32 cflags-$(CONFIG_CPU_SH2) := $(c << 33 cflags-$(CONFIG_CPU_J2) += $(c << 34 cflags-$(CONFIG_CPU_SH2A) += $(c << 35 $(c << 36 $(c << 37 cflags-$(CONFIG_CPU_SH3) := $(c << 38 cflags-$(CONFIG_CPU_SH4) := $(c << 39 $(call cc-option,-mno-implicit-fp,-m4- << 40 cflags-$(CONFIG_CPU_SH4A) += $(c << 41 $(c << 42 cflags-$(CONFIG_CPU_SH4AL_DSP) += $(c << 43 << 44 ifeq ($(cflags-y),) << 45 # << 46 # In the case where we are stuck with a compil << 47 # restricted to a particular ISA, a favourite << 48 # extensive multilib targets are not provided, << 49 # regarding FP generation. This is intentional << 50 # orders of magnitude less than GCC's default << 51 # with a large number of multilib targets bett << 52 # correctly for the target in mind. << 53 # << 54 cflags-y += $(shell $(CC) $(KBUILD_CFLA << 55 grep nofpu | sed q | sed << 56 # At this point, anything goes. << 57 isaflags-y := $(call as-option,-Wa$(comma << 58 else 22 else >> 23 tool-prefix = mips-linux- >> 24 ld-emul = elf32btsmip >> 25 endif >> 26 >> 27 ifdef CONFIG_CROSSCOMPILE >> 28 CROSS_COMPILE = $(tool-prefix) >> 29 endif >> 30 >> 31 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot >> 32 >> 33 # >> 34 # >> 35 # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel >> 36 # code since it only slows down the whole thing. At some point we might make >> 37 # use of global pointer optimizations but their use of $28 conflicts with >> 38 # the current pointer optimization. >> 39 # >> 40 # The DECStation requires an ECOFF kernel for remote booting, other MIPS >> 41 # machines may also. Since BFD is incredibly buggy with respect to >> 42 # crossformat linking we rely on the elf2ecoff tool for format conversion. 59 # 43 # 60 # -Wa,-isa= tuning implies -Wa,-dsp for the ve !! 44 GCCFLAGS := -I $(TOPDIR)/include/asm/gcc 61 # support it, while -Wa,-dsp by itself limits !! 45 GCCFLAGS += -G 0 -mno-abicalls -fno-pic -pipe 62 # on certain CPU subtypes. Try the ISA variant !! 46 GCCFLAGS += $(call check_gcc, -finline-limit=100000,) 63 # fall back on -Wa,-dsp for the old binutils v !! 47 LINKFLAGS += -G 0 -static -n 64 # opcodes, we always want the best ISA tuning !! 48 MODFLAGS += -mlong-calls 65 # will provide. !! 49 66 # !! 50 ifdef CONFIG_DEBUG_INFO 67 isaflags-y := $(call as-option,-Wa$(comma !! 51 GCCFLAGS += -g 68 !! 52 ifdef CONFIG_SB1XXX_CORELIS 69 isaflags-$(CONFIG_SH_DSP) := \ !! 53 GCCFLAGS += -mno-sched-prolog -fno-omit-frame-pointer 70 $(call as-option,-Wa$(comma)-isa=$(isa !! 54 endif 71 endif !! 55 endif 72 << 73 cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb << 74 cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml << 75 << 76 cflags-y += $(call cc-option,-mno-fdpic << 77 cflags-y += $(isaflags-y) -ffreestandin << 78 << 79 OBJCOPYFLAGS := -O binary -R .note -R .note << 80 -R .stab -R .stabstr -S << 81 << 82 # Give the various platforms the opportunity t << 83 defaultimage-y << 84 defaultimage-$(CONFIG_SH_SH7785LCR) << 85 defaultimage-$(CONFIG_SH_RSK) << 86 defaultimage-$(CONFIG_SH_URQUELL) << 87 defaultimage-$(CONFIG_SH_MIGOR) << 88 defaultimage-$(CONFIG_SH_AP325RXA) << 89 defaultimage-$(CONFIG_SH_SH7757LCR) << 90 defaultimage-$(CONFIG_SH_7724_SOLUTION_ENGINE) << 91 defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) << 92 defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE) << 93 << 94 # Set some sensible Kbuild defaults << 95 boot := arch/sh/boot << 96 KBUILD_IMAGE := $(boot)/$(defaultim << 97 56 98 # 57 # 99 # Choosing incompatible machines durings confi !! 58 # Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>) 100 # error messages during linking. << 101 # 59 # 102 UTS_MACHINE := sh !! 60 # <cpu0>,<isa0> -- preferred CPU and ISA designations (may require 103 LDFLAGS_vmlinux += -e _stext !! 61 # recent tools) >> 62 # <cpu1>,<isa1> -- fallback CPU and ISA designations (have to work >> 63 # with up to the oldest supported tools) >> 64 # <isa2> -- an ISA designation used as an ABI selector for >> 65 # gcc versions that do not support "-mabi=32" >> 66 # (depending on the CPU type, either "mips1" or >> 67 # "mips2") >> 68 # >> 69 set_gccflags = $(shell \ >> 70 while :; do \ >> 71 cpu=$(1); isa=-$(2); \ >> 72 for gcc_opt in -march= -mcpu=; do \ >> 73 $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ >> 74 -xc /dev/null > /dev/null 2>&1 && \ >> 75 break 2; \ >> 76 done; \ >> 77 cpu=$(3); isa=-$(4); \ >> 78 for gcc_opt in -march= -mcpu=; do \ >> 79 $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ >> 80 -xc /dev/null > /dev/null 2>&1 && \ >> 81 break 2; \ >> 82 done; \ >> 83 break; \ >> 84 done; \ >> 85 gcc_abi=-mabi=32; gcc_cpu=$$cpu; \ >> 86 if $(CC) $$gcc_abi -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then \ >> 87 gcc_isa=$$isa; \ >> 88 else \ >> 89 gcc_abi=; gcc_isa=-$(5); \ >> 90 fi; \ >> 91 gas_abi=-Wa,-32; gas_cpu=$$cpu; gas_isa=-Wa,$$isa; \ >> 92 while :; do \ >> 93 for gas_opt in -Wa,-march= -Wa,-mcpu=; do \ >> 94 $(CC) $$gas_abi $$gas_opt$$cpu $$gas_isa -Wa,-Z -c \ >> 95 -o /dev/null -xassembler /dev/null > /dev/null 2>&1 && \ >> 96 break 2; \ >> 97 done; \ >> 98 gas_abi=; gas_opt=; gas_cpu=; gas_isa=; \ >> 99 break; \ >> 100 done; \ >> 101 if test "$$gcc_opt" = -march= && test -n "$$gcc_abi"; then \ >> 102 $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \ >> 103 -xc /dev/null > /dev/null 2>&1 && \ >> 104 gcc_isa=; \ >> 105 fi; \ >> 106 echo $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_abi $$gas_opt$$gas_cpu $$gas_isa) 104 107 105 ifdef CONFIG_CPU_LITTLE_ENDIAN !! 108 # 106 ld-bfd := elf32-sh-linux !! 109 # CPU-dependent compiler/assembler options for optimization. 107 LDFLAGS_vmlinux += --defsym jiffies=ji !! 110 # 108 KBUILD_LDFLAGS += -EL !! 111 ifdef CONFIG_CPU_R3000 >> 112 GCCFLAGS += $(call set_gccflags,r3000,mips1,r3000,mips1,mips1) >> 113 endif >> 114 ifdef CONFIG_CPU_TX39XX >> 115 GCCFLAGS += $(call set_gccflags,r3900,mips1,r3000,mips1,mips1) >> 116 endif >> 117 ifdef CONFIG_CPU_R6000 >> 118 GCCFLAGS += $(call set_gccflags,r6000,mips2,r6000,mips2,mips2) \ >> 119 -Wa,--trap >> 120 endif >> 121 ifdef CONFIG_CPU_R4300 >> 122 GCCFLAGS += $(call set_gccflags,r4300,mips3,r4300,mips3,mips2) \ >> 123 -Wa,--trap >> 124 endif >> 125 ifdef CONFIG_CPU_VR41XX >> 126 GCCFLAGS += $(call set_gccflags,r4100,mips3,r4600,mips3,mips2) \ >> 127 -Wa,--trap >> 128 endif >> 129 ifdef CONFIG_CPU_R4X00 >> 130 GCCFLAGS += $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ >> 131 -Wa,--trap >> 132 endif >> 133 ifdef CONFIG_CPU_TX49XX >> 134 GCCFLAGS += $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ >> 135 -Wa,--trap >> 136 endif >> 137 ifdef CONFIG_CPU_MIPS32 >> 138 GCCFLAGS += $(call set_gccflags,mips32,mips32,r4600,mips3,mips2) \ >> 139 -Wa,--trap >> 140 endif >> 141 ifdef CONFIG_CPU_MIPS64 >> 142 GCCFLAGS += $(call set_gccflags,mips64,mips64,r4600,mips3,mips2) \ >> 143 -Wa,--trap >> 144 endif >> 145 ifdef CONFIG_CPU_R5000 >> 146 GCCFLAGS += $(call set_gccflags,r5000,mips4,r5000,mips4,mips2) \ >> 147 -Wa,--trap >> 148 endif >> 149 ifdef CONFIG_CPU_R5432 >> 150 GCCFLAGS += $(call set_gccflags,r5400,mips4,r5000,mips4,mips2) \ >> 151 -Wa,--trap >> 152 endif >> 153 ifdef CONFIG_CPU_NEVADA >> 154 GCCFLAGS += $(call set_gccflags,rm5200,mips4,r5000,mips4,mips2) \ >> 155 -Wa,--trap >> 156 #GCCFLAGS += $(call check_gcc,-mmad,) >> 157 endif >> 158 ifdef CONFIG_CPU_RM7000 >> 159 GCCFLAGS += $(call set_gccflags,rm7000,mips4,r5000,mips4,mips2) \ >> 160 -Wa,--trap >> 161 endif >> 162 ifdef CONFIG_CPU_RM9000 >> 163 GCCFLAGS += $(call set_gccflags,rm9000,mips4,r5000,mips4,mips2) \ >> 164 -Wa,--trap >> 165 endif >> 166 ifdef CONFIG_CPU_SB1 >> 167 GCCFLAGS += $(call set_gccflags,sb1,mips64,r5000,mips4,mips2) \ >> 168 -Wa,--trap >> 169 ifdef CONFIG_SB1_PASS_1_WORKAROUNDS >> 170 MODFLAGS += -msb1-pass1-workarounds >> 171 endif >> 172 endif >> 173 >> 174 AFLAGS += $(GCCFLAGS) >> 175 CFLAGS += $(GCCFLAGS) >> 176 >> 177 LD += -m $(ld-emul) >> 178 >> 179 >> 180 # >> 181 # We unconditionally build the math emulator >> 182 # >> 183 CORE_FILES += arch/mips/math-emu/fpu_emulator.o >> 184 SUBDIRS += arch/mips/math-emu >> 185 >> 186 # >> 187 # ramdisk/initrd support >> 188 # You need a compressed ramdisk image, named ramdisk.gz in >> 189 # arch/mips/ramdisk >> 190 # >> 191 ifdef CONFIG_EMBEDDED_RAMDISK >> 192 CORE_FILES += arch/mips/ramdisk/ramdisk.o >> 193 SUBDIRS += arch/mips/ramdisk >> 194 endif >> 195 >> 196 >> 197 # >> 198 # Board-dependent options and extra files >> 199 # >> 200 >> 201 # >> 202 # Acer PICA 61, Mips Magnum 4000 and Olivetti M700. >> 203 # >> 204 ifdef CONFIG_MIPS_JAZZ >> 205 CORE_FILES += arch/mips/jazz/jazz.o >> 206 SUBDIRS += arch/mips/jazz arch/mips/arc >> 207 LIBS += arch/mips/arc/arclib.a >> 208 LOADADDR := 0x80080000 >> 209 endif >> 210 >> 211 # >> 212 # Au1000 (Alchemy Semi PB1000) eval board >> 213 # >> 214 ifdef CONFIG_MIPS_PB1000 >> 215 LIBS += arch/mips/au1000/pb1000/pb1000.o \ >> 216 arch/mips/au1000/common/au1000.o >> 217 SUBDIRS += arch/mips/au1000/pb1000 arch/mips/au1000/common >> 218 LOADADDR := 0x80100000 >> 219 endif >> 220 >> 221 # >> 222 # Au1100 (Alchemy Semi PB1100) eval board >> 223 # >> 224 ifdef CONFIG_MIPS_PB1100 >> 225 LIBS += arch/mips/au1000/pb1100/pb1100.o \ >> 226 arch/mips/au1000/common/au1000.o >> 227 SUBDIRS += arch/mips/au1000/pb1100 arch/mips/au1000/common >> 228 LOADADDR += 0x80100000 >> 229 endif >> 230 >> 231 # >> 232 # Au1500 (Alchemy Semi PB1500) eval board >> 233 # >> 234 ifdef CONFIG_MIPS_PB1500 >> 235 LIBS += arch/mips/au1000/pb1500/pb1500.o \ >> 236 arch/mips/au1000/common/au1000.o >> 237 SUBDIRS += arch/mips/au1000/pb1500 arch/mips/au1000/common >> 238 LOADADDR := 0x80100000 >> 239 endif >> 240 >> 241 # >> 242 # Au1x00 (AMD/Alchemy) eval boards >> 243 # >> 244 ifdef CONFIG_MIPS_DB1000 >> 245 LIBS += arch/mips/au1000/db1x00/db1x00.o \ >> 246 arch/mips/au1000/common/au1000.o >> 247 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 248 LOADADDR += 0x80100000 >> 249 endif >> 250 >> 251 ifdef CONFIG_MIPS_DB1500 >> 252 LIBS += arch/mips/au1000/db1x00/db1x00.o \ >> 253 arch/mips/au1000/common/au1000.o >> 254 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 255 LOADADDR += 0x80100000 >> 256 endif >> 257 >> 258 ifdef CONFIG_MIPS_DB1550 >> 259 LIBS += arch/mips/au1000/db1x00/db1x00.o \ >> 260 arch/mips/au1000/common/au1000.o >> 261 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 262 LOADADDR += 0x80100000 >> 263 endif >> 264 >> 265 ifdef CONFIG_MIPS_DB1100 >> 266 LIBS += arch/mips/au1000/db1x00/db1x00.o \ >> 267 arch/mips/au1000/common/au1000.o >> 268 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 269 LOADADDR += 0x80100000 >> 270 endif >> 271 >> 272 ifdef CONFIG_MIPS_HYDROGEN3 >> 273 LIBS += arch/mips/au1000/hydrogen3/hydrogen3.o \ >> 274 arch/mips/au1000/common/au1000.o >> 275 SUBDIRS += arch/mips/au1000/hydrogen3 arch/mips/au1000/common >> 276 LOADADDR += 0x80100000 >> 277 endif >> 278 >> 279 ifdef CONFIG_MIPS_BOSPORUS >> 280 LIBS += arch/mips/au1000/db1x00/db1x00.o \ >> 281 arch/mips/au1000/common/au1000.o >> 282 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 283 LOADADDR += 0x80100000 >> 284 endif >> 285 >> 286 ifdef CONFIG_MIPS_MIRAGE >> 287 LIBS += arch/mips/au1000/db1x00/db1x00.o \ >> 288 arch/mips/au1000/common/au1000.o >> 289 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 290 LOADADDR += 0x80100000 >> 291 endif >> 292 >> 293 ifdef CONFIG_MIPS_XXS1500 >> 294 LIBS += arch/mips/au1000/xxs1500/xxs1500.o \ >> 295 arch/mips/au1000/common/au1000.o >> 296 SUBDIRS += arch/mips/au1000/xxs1500 arch/mips/au1000/common >> 297 LOADADDR += 0x80100000 >> 298 endif >> 299 >> 300 ifdef CONFIG_MIPS_MTX1 >> 301 LIBS += arch/mips/au1000/mtx-1/mtx-1.o \ >> 302 arch/mips/au1000/common/au1000.o >> 303 SUBDIRS += arch/mips/au1000/mtx-1 arch/mips/au1000/common >> 304 LOADADDR += 0x80100000 >> 305 endif >> 306 >> 307 ifdef CONFIG_MIPS_PB1550 >> 308 LIBS += arch/mips/au1000/pb1550/pb1550.o \ >> 309 arch/mips/au1000/common/au1000.o >> 310 SUBDIRS += arch/mips/au1000/pb1550 arch/mips/au1000/common >> 311 LOADADDR += 0x80100000 >> 312 endif >> 313 >> 314 >> 315 # >> 316 # Cogent CSB250 >> 317 # >> 318 ifdef CONFIG_COGENT_CSB250 >> 319 LIBS += arch/mips/au1000/csb250/csb250.o \ >> 320 arch/mips/au1000/common/au1000.o >> 321 SUBDIRS += arch/mips/au1000/csb250 arch/mips/au1000/common >> 322 LOADADDR := 0x80100000 >> 323 endif >> 324 >> 325 ifdef CONFIG_PCI >> 326 CORE_FILES += arch/mips/pci/pci-core.o >> 327 SUBDIRS += arch/mips/pci >> 328 endif >> 329 >> 330 # >> 331 # Algorithmics P4032 >> 332 # >> 333 ifdef CONFIG_ALGOR_P4032 >> 334 CORE_FILES += arch/mips/algor/algor.o >> 335 SUBDIRS += arch/mips/algor >> 336 LOADADDR := 0x80000000 >> 337 endif >> 338 >> 339 # >> 340 # Baget/MIPS >> 341 # >> 342 ifdef CONFIG_BAGET_MIPS >> 343 SUBDIRS += arch/mips/baget arch/mips/baget/prom >> 344 LIBS += arch/mips/baget/baget.a arch/mips/baget/prom/bagetlib.a >> 345 LOADADDR := 0x80001000 >> 346 endif >> 347 >> 348 # >> 349 # Cobalt Server >> 350 # >> 351 ifdef CONFIG_MIPS_COBALT >> 352 SUBDIRS += arch/mips/cobalt >> 353 CORE_FILES += arch/mips/cobalt/cobalt.o >> 354 LOADADDR := 0x80080000 >> 355 endif >> 356 >> 357 # >> 358 # DECstation family >> 359 # >> 360 ifdef CONFIG_DECSTATION >> 361 CORE_FILES += arch/mips/dec/dec.o >> 362 SUBDIRS += arch/mips/dec arch/mips/dec/prom >> 363 LIBS += arch/mips/dec/prom/rexlib.a >> 364 LOADADDR := 0x80040000 >> 365 endif >> 366 >> 367 # >> 368 # Galileo EV64120 Board >> 369 # >> 370 ifdef CONFIG_MIPS_EV64120 >> 371 LIBS += arch/mips/gt64120/common/gt64120.o \ >> 372 arch/mips/gt64120/ev64120/ev64120.o >> 373 SUBDIRS += arch/mips/gt64120/common arch/mips/gt64120/ev64120 >> 374 LOADADDR := 0x80100000 >> 375 endif >> 376 >> 377 # >> 378 # Galileo EV96100 Board >> 379 # >> 380 ifdef CONFIG_MIPS_EV96100 >> 381 LIBS += arch/mips/galileo-boards/ev96100/ev96100.o >> 382 SUBDIRS += arch/mips/galileo-boards/ev96100 >> 383 LOADADDR := 0x80100000 >> 384 endif >> 385 >> 386 # >> 387 # Globespan IVR eval board with QED 5231 CPU >> 388 # >> 389 ifdef CONFIG_MIPS_IVR >> 390 LIBS += arch/mips/ite-boards/ivr/ivr.o \ >> 391 arch/mips/ite-boards/generic/it8172.o >> 392 SUBDIRS += arch/mips/ite-boards/generic arch/mips/ite-boards/ivr >> 393 LOADADDR := 0x80100000 >> 394 endif >> 395 >> 396 # >> 397 # HP LaserJet >> 398 # >> 399 ifdef CONFIG_HP_LASERJET >> 400 SUBDIRS += arch/mips/hp-lj >> 401 LIBS += arch/mips/hp-lj/hp-lj.o >> 402 LOADADDR := 0x80030000 >> 403 endif >> 404 >> 405 # >> 406 # ITE 8172 eval board with QED 5231 CPU >> 407 # >> 408 ifdef CONFIG_MIPS_ITE8172 >> 409 LIBS += arch/mips/ite-boards/qed-4n-s01b/ite.o \ >> 410 arch/mips/ite-boards/generic/it8172.o >> 411 SUBDIRS += arch/mips/ite-boards/generic arch/mips/ite-boards/qed-4n-s01b >> 412 LOADADDR := 0x80100000 >> 413 endif >> 414 >> 415 # >> 416 # MIPS Atlas board >> 417 # >> 418 ifdef CONFIG_MIPS_ATLAS >> 419 LIBS += arch/mips/mips-boards/atlas/atlas.o \ >> 420 arch/mips/mips-boards/generic/mipsboards.o >> 421 SUBDIRS += arch/mips/mips-boards/generic arch/mips/mips-boards/atlas >> 422 LOADADDR := 0x80100000 >> 423 endif >> 424 >> 425 # >> 426 # MIPS Malta board >> 427 # >> 428 ifdef CONFIG_MIPS_MALTA >> 429 LIBS += arch/mips/mips-boards/malta/malta.o \ >> 430 arch/mips/mips-boards/generic/mipsboards.o >> 431 SUBDIRS += arch/mips/mips-boards/malta arch/mips/mips-boards/generic >> 432 LOADADDR := 0x80100000 >> 433 endif >> 434 >> 435 # >> 436 # MIPS SEAD board >> 437 # >> 438 ifdef CONFIG_MIPS_SEAD >> 439 LIBS += arch/mips/mips-boards/sead/sead.o \ >> 440 arch/mips/mips-boards/generic/mipsboards.o >> 441 SUBDIRS += arch/mips/mips-boards/generic arch/mips/mips-boards/sead >> 442 LOADADDR := 0x80100000 >> 443 endif >> 444 >> 445 # >> 446 # Momentum Ocelot board >> 447 # >> 448 ifdef CONFIG_MOMENCO_OCELOT >> 449 # The Ocelot setup.o must be linked early - it does the ioremap() for the >> 450 # mips_io_port_base. >> 451 CORE_FILES += arch/mips/gt64120/common/gt64120.o \ >> 452 arch/mips/gt64120/momenco_ocelot/momenco_ocelot.o >> 453 SUBDIRS += arch/mips/gt64120/common arch/mips/gt64120/momenco_ocelot >> 454 LOADADDR := 0x80100000 >> 455 endif >> 456 >> 457 # >> 458 # Momentum Ocelot-G board >> 459 # >> 460 ifdef CONFIG_MOMENCO_OCELOT_G >> 461 # The Ocelot-G setup.o must be linked early - it does the ioremap() for the >> 462 # mips_io_port_base. >> 463 CORE_FILES += arch/mips/momentum/ocelot_g/ocelot_g.o >> 464 SUBDIRS += arch/mips/momentum/ocelot_g >> 465 LOADADDR := 0x80100000 >> 466 endif >> 467 >> 468 # >> 469 # Momentum Ocelot-C and -CS boards >> 470 # >> 471 ifdef CONFIG_MOMENCO_OCELOT_C >> 472 # The Ocelot-C[S] setup.o must be linked early - it does the ioremap() for the >> 473 # mips_io_port_base. >> 474 CORE_FILES += arch/mips/momentum/ocelot_c/ocelot_c.o >> 475 SUBDIRS += arch/mips/momentum/ocelot_c >> 476 LOADADDR := 0x80100000 >> 477 endif >> 478 >> 479 ifdef CONFIG_PMC_BIG_SUR >> 480 CORE_FILES += arch/mips/pmc-sierra/big_sur/big_sur.o >> 481 SUBDIRS += arch/mips/pmc-sierra/big_sur >> 482 LOADADDR := 0x80100000 >> 483 endif >> 484 >> 485 ifdef CONFIG_PMC_STRETCH >> 486 CORE_FILES += arch/mips/pmc-sierra/stretch/stretch.o >> 487 SUBDIRS += arch/mips/pmc-sierra/stretch >> 488 LOADADDR := 0x80200000 >> 489 endif >> 490 >> 491 ifdef CONFIG_MOMENCO_JAGUAR_ATX >> 492 LIBS += arch/mips/momentum/jaguar_atx/jaguar_atx.o >> 493 SUBDIRS += arch/mips/momentum/jaguar_atx >> 494 ifdef CONFIG_JAGUAR_DMALOW >> 495 LOADADDR := 0x88000000 109 else 496 else 110 ld-bfd := elf32-shbig-linux !! 497 LOADADDR := 0x80100000 111 LDFLAGS_vmlinux += --defsym jiffies=ji !! 498 endif 112 KBUILD_LDFLAGS += -EB !! 499 endif >> 500 >> 501 # >> 502 # NEC DDB Vrc-5074 >> 503 # >> 504 ifdef CONFIG_DDB5074 >> 505 SUBDIRS += arch/mips/ddb5xxx/common arch/mips/ddb5xxx/ddb5074 >> 506 LIBS += arch/mips/ddb5xxx/common/ddb5xxx.o arch/mips/ddb5xxx/ddb5074/ddb5074.o >> 507 LOADADDR := 0x80080000 >> 508 endif >> 509 >> 510 # >> 511 # NEC DDB Vrc-5476 >> 512 # >> 513 ifdef CONFIG_DDB5476 >> 514 SUBDIRS += arch/mips/ddb5xxx/common arch/mips/ddb5xxx/ddb5476 >> 515 LIBS += arch/mips/ddb5xxx/common/ddb5xxx.o \ >> 516 arch/mips/ddb5xxx/ddb5476/ddb5476.o >> 517 LOADADDR := 0x80080000 >> 518 endif >> 519 >> 520 # >> 521 # NEC DDB Vrc-5477 >> 522 # >> 523 ifdef CONFIG_DDB5477 >> 524 SUBDIRS += arch/mips/ddb5xxx/common arch/mips/ddb5xxx/ddb5477 >> 525 LIBS += arch/mips/ddb5xxx/common/ddb5xxx.o \ >> 526 arch/mips/ddb5xxx/ddb5477/ddb5477.o >> 527 LOADADDR := 0x80100000 >> 528 endif >> 529 >> 530 ifdef CONFIG_LASAT >> 531 LIBS += arch/mips/lasat/lasatkern.o >> 532 SUBDIRS += arch/mips/lasat >> 533 LOADADDR += 0x80000000 >> 534 endif >> 535 # >> 536 # NEC Osprey (vr4181) board >> 537 # >> 538 ifdef CONFIG_NEC_OSPREY >> 539 SUBDIRS += arch/mips/vr4181/common arch/mips/vr4181/osprey >> 540 LIBS += arch/mips/vr4181/common/vr4181.o \ >> 541 arch/mips/vr4181/osprey/osprey.o >> 542 LOADADDR := 0x80002000 113 endif 543 endif 114 544 115 export ld-bfd !! 545 # >> 546 # NEC Eagle/Hawk (VR4122/VR4131) board >> 547 # >> 548 ifdef CONFIG_NEC_EAGLE >> 549 SUBDIRS += arch/mips/vr41xx/common \ >> 550 arch/mips/vr41xx/nec-eagle >> 551 CORE_FILES += arch/mips/vr41xx/common/vr41xx.o \ >> 552 arch/mips/vr41xx/nec-eagle/eagle.o >> 553 LOADADDR := 0x80000000 >> 554 endif >> 555 >> 556 # >> 557 # ZAO Networks Capcella (VR4131) >> 558 # >> 559 ifdef CONFIG_ZAO_CAPCELLA >> 560 SUBDIRS += arch/mips/vr41xx/common \ >> 561 arch/mips/vr41xx/zao-capcella >> 562 CORE_FILES += arch/mips/vr41xx/common/vr41xx.o \ >> 563 arch/mips/vr41xx/zao-capcella/capcella.o >> 564 LOADADDR := 0x80000000 >> 565 endif >> 566 >> 567 # >> 568 # Victor MP-C303/304 (VR4122) >> 569 # >> 570 ifdef CONFIG_VICTOR_MPC30X >> 571 SUBDIRS += arch/mips/vr41xx/common \ >> 572 arch/mips/vr41xx/victor-mpc30x >> 573 CORE_FILES += arch/mips/vr41xx/common/vr41xx.o \ >> 574 arch/mips/vr41xx/victor-mpc30x/mpc30x.o >> 575 LOADADDR := 0x80001000 >> 576 endif >> 577 >> 578 # >> 579 # IBM WorkPad z50 (VR4121) >> 580 # >> 581 ifdef CONFIG_IBM_WORKPAD >> 582 SUBDIRS += arch/mips/vr41xx/common \ >> 583 arch/mips/vr41xx/ibm-workpad >> 584 CORE_FILES += arch/mips/vr41xx/common/vr41xx.o \ >> 585 arch/mips/vr41xx/ibm-workpad/workpad.o >> 586 LOADADDR += 0x80004000 >> 587 endif >> 588 >> 589 # >> 590 # CASIO CASSIPEIA E-55/65 (VR4111) >> 591 # >> 592 ifdef CONFIG_CASIO_E55 >> 593 SUBDIRS += arch/mips/vr41xx/common \ >> 594 arch/mips/vr41xx/casio-e55 >> 595 CORE_FILES += arch/mips/vr41xx/common/vr41xx.o \ >> 596 arch/mips/vr41xx/casio-e55/e55.o >> 597 LOADADDR += 0x80004000 >> 598 endif >> 599 >> 600 # >> 601 # TANBAC TB0226 Mbase (VR4131) >> 602 # >> 603 ifdef CONFIG_TANBAC_TB0226 >> 604 SUBDIRS += arch/mips/vr41xx/common \ >> 605 arch/mips/vr41xx/tanbac-tb0226 >> 606 CORE_FILES += arch/mips/vr41xx/common/vr41xx.o \ >> 607 arch/mips/vr41xx/tanbac-tb0226/tb0226.o >> 608 LOADADDR := 0x80000000 >> 609 endif >> 610 >> 611 # >> 612 # TANBAC TB0229 (VR4131DIMM) >> 613 # >> 614 ifdef CONFIG_TANBAC_TB0229 >> 615 SUBDIRS += arch/mips/vr41xx/common \ >> 616 arch/mips/vr41xx/tanbac-tb0229 >> 617 CORE_FILES += arch/mips/vr41xx/common/vr41xx.o \ >> 618 arch/mips/vr41xx/tanbac-tb0229/tb0229.o >> 619 LOADADDR := 0x80000000 >> 620 endif >> 621 >> 622 # >> 623 # Philips Nino >> 624 # >> 625 ifdef CONFIG_NINO >> 626 CORE_FILES += arch/mips/philips/nino/nino.o >> 627 SUBDIRS += arch/mips/philips/nino >> 628 LOADADDR := 0x80000000 >> 629 endif 116 630 117 # Mach groups !! 631 # 118 machdir-$(CONFIG_SOLUTION_ENGINE) !! 632 # SGI IP22 (Indy/Indigo2) 119 machdir-$(CONFIG_SH_DREAMCAST) !! 633 # 120 machdir-$(CONFIG_SH_SH03) !! 634 ifdef CONFIG_SGI_IP22 121 machdir-$(CONFIG_SH_MIGOR) !! 635 CORE_FILES += arch/mips/sgi-ip22/ip22-kern.o 122 machdir-$(CONFIG_SH_KFR2R09) !! 636 LIBS += arch/mips/arc/arclib.a 123 machdir-$(CONFIG_SH_ECOVEC) !! 637 SUBDIRS += arch/mips/sgi-ip22 arch/mips/arc 124 machdir-$(CONFIG_SH_SDK7786) !! 638 # 125 machdir-$(CONFIG_SH_X3PROTO) !! 639 # Set LOADADDR to >= 0x88069000 if you want to leave space for symmon, 126 machdir-$(CONFIG_SH_LANDISK) !! 640 # 0x88002000 for production kernels. Note that the value must be 127 machdir-y !! 641 # 8kb aligned or the handling of the current variable will break. >> 642 # >> 643 LOADADDR := 0x88002000 >> 644 endif 128 645 129 # 646 # 130 # CPU header paths !! 647 # Sibyte SB1250 SOC and Broadcom (SiByte) BCM112x SOCs 131 # 648 # 132 # These are ordered by optimization level. A C !! 649 ifneq ($(CONFIG_SIBYTE_SB1250)$(CONFIG_SIBYTE_BCM112X),) 133 # of another (ie, SH-2A / SH-2), is picked up !! 650 # This is a LIB so that it links at the end, and initcalls are later 134 # levels of genericness if nothing more suitab !! 651 # the sequence; but it is built as an object so that modules don't get 135 # hierarchy. !! 652 # removed (as happens, even if they have __initcall/module_init) >> 653 LIBS += arch/mips/sibyte/sb1250/sb1250.o >> 654 SUBDIRS += arch/mips/sibyte/sb1250 >> 655 LOADADDR := 0x80100000 >> 656 endif >> 657 136 # 658 # 137 # As an example, in order of preference, SH-2A !! 659 # Sibyte boards: 138 # 660 # 139 cpuincdir-$(CONFIG_CPU_SH2A) += cpu-sh2a !! 661 # BCM91250A (SWARM), 140 cpuincdir-$(CONFIG_CPU_SH2) += cpu-sh2 !! 662 # BCM91250E (Sentosa), 141 cpuincdir-$(CONFIG_CPU_SH3) += cpu-sh3 !! 663 # BCM91120C (CRhine), 142 cpuincdir-$(CONFIG_CPU_SH4A) += cpu-sh4a !! 664 # BCM91120x (Carmel), 143 cpuincdir-$(CONFIG_CPU_SH4) += cpu-sh4 !! 665 # BCM91125C (CRhone), 144 cpuincdir-y += cpu-common !! 666 # BCM91125E (Rhone). >> 667 # >> 668 ifdef CONFIG_SIBYTE_BOARD >> 669 LIBS += arch/mips/sibyte/swarm/sbswarm.a >> 670 SUBDIRS += arch/mips/sibyte/swarm >> 671 endif 145 672 146 drivers-y += arch/sh/dri !! 673 # >> 674 # Sibyte CFE firmware >> 675 # >> 676 ifdef CONFIG_SIBYTE_CFE >> 677 LIBS += arch/mips/sibyte/cfe/cfe.a >> 678 SUBDIRS += arch/mips/sibyte/cfe >> 679 endif 147 680 148 KBUILD_CPPFLAGS += $(addprefix -I $(sr !! 681 # 149 KBUILD_CFLAGS += -pipe $(cflags-y) !! 682 # SNI RM200 PCI 150 KBUILD_AFLAGS += $(cflags-y) !! 683 # >> 684 ifdef CONFIG_SNI_RM200_PCI >> 685 CORE_FILES += arch/mips/sni/sni.o >> 686 SUBDIRS += arch/mips/sni arch/mips/arc >> 687 LIBS += arch/mips/arc/arclib.a >> 688 LOADADDR := 0x80080000 >> 689 endif 151 690 152 ifeq ($(CONFIG_MCOUNT),y) !! 691 # 153 KBUILD_CFLAGS += -pg !! 692 # Toshiba JMR-TX3927 board >> 693 # >> 694 ifdef CONFIG_TOSHIBA_JMR3927 >> 695 CORE_FILES += arch/mips/jmr3927/rbhma3100/jmr3927.o \ >> 696 arch/mips/jmr3927/common/tx3927.o >> 697 SUBDIRS += arch/mips/jmr3927/rbhma3100 arch/mips/jmr3927/common >> 698 LOADADDR := 0x80050000 154 endif 699 endif 155 700 156 ifeq ($(CONFIG_DWARF_UNWINDER),y) !! 701 # 157 KBUILD_CFLAGS += -fasynchronous-unwind-table !! 702 # Toshiba RBTX4927 board or >> 703 # Toshiba RBTX4937 board >> 704 # >> 705 ifdef CONFIG_TOSHIBA_RBTX4927 >> 706 MIPS = arch/mips >> 707 CEC = tx4927 >> 708 COMMON = $(MIPS)/$(CEC)/common >> 709 BOARD = $(MIPS)/$(CEC)/toshiba_rbtx4927 >> 710 LIBS += $(BOARD)/toshiba_rbtx4927.o $(COMMON)/tx4927.o >> 711 SUBDIRS += $(BOARD) $(COMMON) >> 712 LOADADDR += 0x80020000 158 endif 713 endif 159 714 160 libs-y := arch/sh/lib/ $(libs !! 715 # >> 716 # Choosing incompatible machines durings configuration will result in >> 717 # error messages during linking. Select a default linkscript if >> 718 # none has been choosen above. >> 719 # >> 720 vmlinux: arch/$(ARCH)/ld.script >> 721 >> 722 arch/$(ARCH)/ld.script: arch/$(ARCH)/ld.script.in arch/$(ARCH)/Makefile >> 723 sed -e 's/@@LOADADDR@@/$(LOADADDR)/' <$< >$@ >> 724 LINKFLAGS += -T arch/$(ARCH)/ld.script >> 725 >> 726 HEAD := arch/mips/kernel/head.o arch/mips/kernel/init_task.o 161 727 162 BOOT_TARGETS = uImage uImage.bz2 uImage.gz uIm !! 728 SUBDIRS := $(addprefix arch/mips/, tools) $(SUBDIRS) $(addprefix arch/mips/, kernel mm lib) 163 uImage.srec uImage.bin zImage v !! 729 CORE_FILES := arch/mips/kernel/kernel.o arch/mips/mm/mm.o $(CORE_FILES) 164 romImage !! 730 LIBS := arch/mips/lib/lib.a $(LIBS) 165 PHONY += $(BOOT_TARGETS) << 166 731 167 all: $(notdir $(KBUILD_IMAGE)) !! 732 ifdef CONFIG_BAGET_MIPS 168 733 169 $(BOOT_TARGETS): vmlinux !! 734 BAGETBOOT = $(MAKE) -C arch/$(ARCH)/baget 170 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ !! 735 >> 736 balo: vmlinux >> 737 $(BAGETBOOT) balo >> 738 >> 739 endif >> 740 >> 741 ifdef CONFIG_MIPS_EV64120 >> 742 gboot: vmlinux >> 743 $(MAKE) -C arch/$(ARCH)/galileo-boards/ev64120/compressed >> 744 endif >> 745 >> 746 ifdef CONFIG_LASAT >> 747 rom.bin rom.sw: vmlinux >> 748 $(MAKE) -C arch/$(ARCH)/lasat/image $@ >> 749 endif 171 750 172 compressed: zImage !! 751 boot: mips-boot 173 752 174 archprepare: !! 753 mips-boot: vmlinux 175 $(Q)$(MAKE) $(build)=arch/sh/tools inc !! 754 @$(MAKEBOOT) boot 176 755 177 archheaders: !! 756 vmlinux.ecoff: vmlinux 178 $(Q)$(MAKE) $(build)=arch/sh/kernel/sy !! 757 @$(MAKEBOOT) $@ 179 758 180 define archhelp !! 759 vmlinux.srec: vmlinux 181 @echo ' zImage - C !! 760 @$(MAKEBOOT) $@ 182 @echo ' romImage - C !! 761 183 @echo ' vmlinux.srec - C !! 762 archclean: 184 @echo ' vmlinux.bin - C !! 763 @$(MAKEBOOT) clean 185 @echo '* uImage - A !! 764 rm -f arch/$(ARCH)/ld.script 186 @echo ' uImage.srec - C !! 765 $(MAKE) -C arch/$(ARCH)/tools clean 187 @echo ' uImage.bin - K !! 766 $(MAKE) -C arch/mips/baget clean 188 @echo '* uImage.gz - K !! 767 $(MAKE) -C arch/mips/lasat clean 189 @echo ' uImage.bz2 - K !! 768 190 @echo ' uImage.lzma - K !! 769 archmrproper: 191 @echo ' uImage.xz - K !! 770 @$(MAKEBOOT) mrproper 192 @echo ' uImage.lzo - K !! 771 $(RM) $(TOPDIR)/include/asm-$(ARCH)/offset.h 193 endef !! 772 $(MAKE) -C arch/$(ARCH)/tools mrproper >> 773 >> 774 archdep: >> 775 if [ ! -f $(TOPDIR)/include/asm-$(ARCH)/offset.h ]; then \ >> 776 touch $(TOPDIR)/include/asm-$(ARCH)/offset.h; \ >> 777 fi; >> 778 @$(MAKEBOOT) dep
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.