1 # SPDX-License-Identifier: GPL-2.0-only !! 1 # 2 OBJCOPYFLAGS :=-O binary !! 2 # This file is subject to the terms and conditions of the GNU General Public 3 GZFLAGS :=-9 !! 3 # License. See the file "COPYING" in the main directory of this archive >> 4 # for more details. >> 5 # >> 6 # Copyright (C) 1994, 1995, 1996 by Ralf Baechle >> 7 # DECStation modifications by Paul M. Antoine, 1996 >> 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" and "archdep" for cleaning up and making dependencies for >> 13 # this architecture >> 14 # >> 15 >> 16 # >> 17 # Select the object file format to substitute into the linker script. >> 18 # >> 19 ifdef CONFIG_CPU_LITTLE_ENDIAN >> 20 tool-prefix = mipsel-linux- >> 21 ld-emul = elf32ltsmip >> 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. >> 43 # >> 44 GCCFLAGS := -I $(TOPDIR)/include/asm/gcc >> 45 GCCFLAGS += -G 0 -mno-abicalls -fno-pic -pipe >> 46 GCCFLAGS += $(call check_gcc, -finline-limit=100000,) >> 47 LINKFLAGS += -G 0 -static -n >> 48 MODFLAGS += -mlong-calls >> 49 >> 50 ifdef CONFIG_DEBUG_INFO >> 51 GCCFLAGS += -g >> 52 ifdef CONFIG_SB1XXX_CORELIS >> 53 GCCFLAGS += -mno-sched-prolog -fno-omit-frame-pointer >> 54 endif >> 55 endif >> 56 >> 57 # >> 58 # Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>) >> 59 # >> 60 # <cpu0>,<isa0> -- preferred CPU and ISA designations (may require >> 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) >> 107 >> 108 # >> 109 # CPU-dependent compiler/assembler options for optimization. >> 110 # >> 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 4 210 5 ifdef CONFIG_CPU_HAS_FPU !! 211 # 6 FPUEXT = f !! 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 7 endif 219 endif 8 220 9 ifdef CONFIG_CPU_HAS_VDSP !! 221 # 10 VDSPEXT = v !! 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 11 endif 229 endif 12 230 13 ifdef CONFIG_CPU_HAS_TEE !! 231 # 14 TEEEXT = t !! 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 15 endif 239 endif 16 240 17 ifdef CONFIG_CPU_CK610 !! 241 # 18 CPUTYPE = ck610 !! 242 # Au1x00 (AMD/Alchemy) eval boards 19 CSKYABI = abiv1 !! 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 20 endif 249 endif 21 250 22 ifdef CONFIG_CPU_CK810 !! 251 ifdef CONFIG_MIPS_DB1500 23 CPUTYPE = ck810 !! 252 LIBS += arch/mips/au1000/db1x00/db1x00.o \ 24 CSKYABI = abiv2 !! 253 arch/mips/au1000/common/au1000.o >> 254 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 255 LOADADDR += 0x80100000 25 endif 256 endif 26 257 27 ifdef CONFIG_CPU_CK807 !! 258 ifdef CONFIG_MIPS_DB1550 28 CPUTYPE = ck807 !! 259 LIBS += arch/mips/au1000/db1x00/db1x00.o \ 29 CSKYABI = abiv2 !! 260 arch/mips/au1000/common/au1000.o >> 261 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 262 LOADADDR += 0x80100000 30 endif 263 endif 31 264 32 ifdef CONFIG_CPU_CK860 !! 265 ifdef CONFIG_MIPS_DB1100 33 CPUTYPE = ck860 !! 266 LIBS += arch/mips/au1000/db1x00/db1x00.o \ 34 CSKYABI = abiv2 !! 267 arch/mips/au1000/common/au1000.o >> 268 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 269 LOADADDR += 0x80100000 35 endif 270 endif 36 271 37 ifneq ($(CSKYABI),) !! 272 ifdef CONFIG_MIPS_HYDROGEN3 38 MCPU_STR = $(CPUTYPE)$(FPUEXT)$(VDSPEXT)$(TEEE !! 273 LIBS += arch/mips/au1000/hydrogen3/hydrogen3.o \ 39 KBUILD_CFLAGS += -mcpu=$(CPUTYPE) -Wa,-mcpu=$( !! 274 arch/mips/au1000/common/au1000.o 40 KBUILD_CFLAGS += -DCSKYCPU_DEF_NAME=\"$(MCPU_S !! 275 SUBDIRS += arch/mips/au1000/hydrogen3 arch/mips/au1000/common 41 KBUILD_CFLAGS += -msoft-float -mdiv !! 276 LOADADDR += 0x80100000 42 KBUILD_CFLAGS += -fno-tree-vectorize << 43 endif 277 endif 44 278 45 KBUILD_CFLAGS += -pipe !! 279 ifdef CONFIG_MIPS_BOSPORUS 46 ifeq ($(CSKYABI),abiv2) !! 280 LIBS += arch/mips/au1000/db1x00/db1x00.o \ 47 KBUILD_CFLAGS += -mno-stack-size !! 281 arch/mips/au1000/common/au1000.o >> 282 SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common >> 283 LOADADDR += 0x80100000 48 endif 284 endif 49 285 50 ifdef CONFIG_FRAME_POINTER !! 286 ifdef CONFIG_MIPS_MIRAGE 51 KBUILD_CFLAGS += -mbacktrace !! 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 52 endif 291 endif 53 292 54 abidirs := $(patsubst %,arch/csky/%/,$(CSKYABI !! 293 ifdef CONFIG_MIPS_XXS1500 55 KBUILD_CFLAGS += $(patsubst %,-I$(srctree)/%in !! 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 56 356 57 KBUILD_CPPFLAGS += -mlittle-endian !! 357 # 58 LDFLAGS += -EL !! 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 59 424 60 KBUILD_AFLAGS += $(KBUILD_CFLAGS) !! 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 61 434 62 core-y += arch/csky/$(CSKYABI)/ !! 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 63 444 64 libs-y += arch/csky/lib/ \ !! 445 # 65 $(shell $(CC) $(KBUILD_CFLAGS) $(KCFLA !! 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 >> 496 else >> 497 LOADADDR := 0x80100000 >> 498 endif >> 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 >> 543 endif >> 544 >> 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 >> 630 >> 631 # >> 632 # SGI IP22 (Indy/Indigo2) >> 633 # >> 634 ifdef CONFIG_SGI_IP22 >> 635 CORE_FILES += arch/mips/sgi-ip22/ip22-kern.o >> 636 LIBS += arch/mips/arc/arclib.a >> 637 SUBDIRS += arch/mips/sgi-ip22 arch/mips/arc >> 638 # >> 639 # Set LOADADDR to >= 0x88069000 if you want to leave space for symmon, >> 640 # 0x88002000 for production kernels. Note that the value must be >> 641 # 8kb aligned or the handling of the current variable will break. >> 642 # >> 643 LOADADDR := 0x88002000 >> 644 endif >> 645 >> 646 # >> 647 # Sibyte SB1250 SOC and Broadcom (SiByte) BCM112x SOCs >> 648 # >> 649 ifneq ($(CONFIG_SIBYTE_SB1250)$(CONFIG_SIBYTE_BCM112X),) >> 650 # This is a LIB so that it links at the end, and initcalls are later >> 651 # the sequence; but it is built as an object so that modules don't get >> 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 >> 658 # >> 659 # Sibyte boards: >> 660 # >> 661 # BCM91250A (SWARM), >> 662 # BCM91250E (Sentosa), >> 663 # BCM91120C (CRhine), >> 664 # BCM91120x (Carmel), >> 665 # BCM91125C (CRhone), >> 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 >> 672 >> 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 >> 680 >> 681 # >> 682 # SNI RM200 PCI >> 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 >> 690 >> 691 # >> 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 >> 699 endif >> 700 >> 701 # >> 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 >> 713 endif >> 714 >> 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 >> 727 >> 728 SUBDIRS := $(addprefix arch/mips/, tools) $(SUBDIRS) $(addprefix arch/mips/, kernel mm lib) >> 729 CORE_FILES := arch/mips/kernel/kernel.o arch/mips/mm/mm.o $(CORE_FILES) >> 730 LIBS := arch/mips/lib/lib.a $(LIBS) >> 731 >> 732 ifdef CONFIG_BAGET_MIPS >> 733 >> 734 BAGETBOOT = $(MAKE) -C arch/$(ARCH)/baget >> 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 66 750 67 boot := arch/csky/boot !! 751 boot: mips-boot 68 752 69 all: zImage !! 753 mips-boot: vmlinux >> 754 @$(MAKEBOOT) boot 70 755 71 zImage Image uImage: vmlinux !! 756 vmlinux.ecoff: vmlinux 72 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ !! 757 @$(MAKEBOOT) $@ 73 758 74 define archhelp !! 759 vmlinux.srec: vmlinux 75 echo '* zImage - Compressed kernel im !! 760 @$(MAKEBOOT) $@ 76 echo ' Image - Uncompressed kernel !! 761 77 echo ' uImage - U-Boot wrapped zImag !! 762 archclean: 78 endef !! 763 @$(MAKEBOOT) clean >> 764 rm -f arch/$(ARCH)/ld.script >> 765 $(MAKE) -C arch/$(ARCH)/tools clean >> 766 $(MAKE) -C arch/mips/baget clean >> 767 $(MAKE) -C arch/mips/lasat clean >> 768 >> 769 archmrproper: >> 770 @$(MAKEBOOT) mrproper >> 771 $(RM) $(TOPDIR)/include/asm-$(ARCH)/offset.h >> 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.