Makefile revision 079ef8bb809c701fa0ab09d8984262693b854f94
1# 2# This file is subject to the terms and conditions of the GNU General Public 3# License. See the file "COPYING" in the main directory of this archive 4# for more details. 5# 6# Copyright (C) 1994, 95, 96, 2003 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" cleaning up for this architecture. 13# 14 15as-option = $(shell if $(CC) $(CFLAGS) $(1) -Wa,-Z -c -o /dev/null \ 16 -xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; \ 17 else echo "$(2)"; fi ;) 18 19cflags-y := 20 21# 22# Select the object file format to substitute into the linker script. 23# 24ifdef CONFIG_CPU_LITTLE_ENDIAN 2532bit-tool-prefix = mipsel-linux- 2664bit-tool-prefix = mips64el-linux- 2732bit-bfd = elf32-tradlittlemips 2864bit-bfd = elf64-tradlittlemips 2932bit-emul = elf32ltsmip 3064bit-emul = elf64ltsmip 31else 3232bit-tool-prefix = mips-linux- 3364bit-tool-prefix = mips64-linux- 3432bit-bfd = elf32-tradbigmips 3564bit-bfd = elf64-tradbigmips 3632bit-emul = elf32btsmip 3764bit-emul = elf64btsmip 38endif 39 40ifdef CONFIG_32BIT 41gcc-abi = 32 42tool-prefix = $(32bit-tool-prefix) 43UTS_MACHINE := mips 44endif 45ifdef CONFIG_64BIT 46gcc-abi = 64 47tool-prefix = $(64bit-tool-prefix) 48UTS_MACHINE := mips64 49endif 50 51ifdef CONFIG_CROSSCOMPILE 52CROSS_COMPILE := $(tool-prefix) 53endif 54 55CHECKFLAGS-y += -D__linux__ -D__mips__ \ 56 -D_ABIO32=1 \ 57 -D_ABIN32=2 \ 58 -D_ABI64=3 59CHECKFLAGS-$(CONFIG_32BIT) += -D_MIPS_SIM=_ABIO32 \ 60 -D_MIPS_SZLONG=32 \ 61 -D__PTRDIFF_TYPE__=int 62CHECKFLAGS-$(CONFIG_64BIT) += -m64 -D_MIPS_SIM=_ABI64 \ 63 -D_MIPS_SZLONG=64 \ 64 -D__PTRDIFF_TYPE__="long int" 65CHECKFLAGS-$(CONFIG_CPU_BIG_ENDIAN) += -D__MIPSEB__ 66CHECKFLAGS-$(CONFIG_CPU_LITTLE_ENDIAN) += -D__MIPSEL__ 67 68CHECKFLAGS = $(CHECKFLAGS-y) 69 70ifdef CONFIG_BUILD_ELF64 71gas-abi = 64 72ld-emul = $(64bit-emul) 73vmlinux-32 = vmlinux.32 74vmlinux-64 = vmlinux 75else 76gas-abi = 32 77ld-emul = $(32bit-emul) 78vmlinux-32 = vmlinux 79vmlinux-64 = vmlinux.64 80 81cflags-$(CONFIG_64BIT) += $(call cc-option,-mno-explicit-relocs) 82endif 83 84# 85# GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel 86# code since it only slows down the whole thing. At some point we might make 87# use of global pointer optimizations but their use of $28 conflicts with 88# the current pointer optimization. 89# 90# The DECStation requires an ECOFF kernel for remote booting, other MIPS 91# machines may also. Since BFD is incredibly buggy with respect to 92# crossformat linking we rely on the elf2ecoff tool for format conversion. 93# 94cflags-y += -I $(TOPDIR)/include/asm/gcc 95cflags-y += -G 0 -mno-abicalls -fno-pic -pipe 96cflags-y += $(call cc-option, -finline-limit=100000) 97LDFLAGS_vmlinux += -G 0 -static -n -nostdlib 98MODFLAGS += -mlong-calls 99 100# 101# We explicitly add the endianness specifier if needed, this allows 102# to compile kernels with a toolchain for the other endianness. We 103# carefully avoid to add it redundantly because gcc 3.3/3.4 complains 104# when fed the toolchain default! 105# 106cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB) 107cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL) 108 109cflags-$(CONFIG_SB1XXX_CORELIS) += -mno-sched-prolog -fno-omit-frame-pointer 110 111# 112# Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>) 113# 114# <cpu0>,<isa0> -- preferred CPU and ISA designations (may require 115# recent tools) 116# <cpu1>,<isa1> -- fallback CPU and ISA designations (have to work 117# with up to the oldest supported tools) 118# <isa2> -- an ISA designation used as an ABI selector for 119# gcc versions that do not support "-mabi=32" 120# (depending on the CPU type, either "mips1" or 121# "mips2") 122# 123set_gccflags = $(shell \ 124while :; do \ 125 cpu=$(1); isa=-$(2); \ 126 for gcc_opt in -march= -mcpu=; do \ 127 $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ 128 -xc /dev/null > /dev/null 2>&1 && \ 129 break 2; \ 130 done; \ 131 cpu=$(3); isa=-$(4); \ 132 for gcc_opt in -march= -mcpu=; do \ 133 $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ 134 -xc /dev/null > /dev/null 2>&1 && \ 135 break 2; \ 136 done; \ 137 break; \ 138done; \ 139gcc_abi=-mabi=$(gcc-abi); gcc_cpu=$$cpu; \ 140if $(CC) $$gcc_abi -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then \ 141 gcc_isa=$$isa; \ 142else \ 143 gcc_abi=; gcc_isa=-$(5); \ 144fi; \ 145gas_abi=-Wa,-$(gcc-abi); gas_cpu=$$cpu; gas_isa=-Wa,$$isa; \ 146while :; do \ 147 for gas_opt in -Wa,-march= -Wa,-mcpu=; do \ 148 $(CC) $$gas_abi $$gas_opt$$cpu $$gas_isa -Wa,-Z -c \ 149 -o /dev/null -xassembler /dev/null > /dev/null 2>&1 && \ 150 break 2; \ 151 done; \ 152 gas_abi=; gas_opt=; gas_cpu=; gas_isa=; \ 153 break; \ 154done; \ 155if test "$(gcc-abi)" != "$(gas-abi)"; then \ 156 gas_abi="-Wa,-$(gas-abi) -Wa,-mgp$(gcc-abi)"; \ 157fi; \ 158if test "$$gcc_opt" = -march= && test -n "$$gcc_abi"; then \ 159 $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \ 160 -xc /dev/null > /dev/null 2>&1 && \ 161 gcc_isa=; \ 162fi; \ 163echo $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_abi $$gas_opt$$gas_cpu $$gas_isa) 164 165# 166# CPU-dependent compiler/assembler options for optimization. 167# 168cflags-$(CONFIG_CPU_R3000) += \ 169 $(call set_gccflags,r3000,mips1,r3000,mips1,mips1) 170 171cflags-$(CONFIG_CPU_TX39XX) += \ 172 $(call set_gccflags,r3900,mips1,r3000,mips1,mips1) 173 174cflags-$(CONFIG_CPU_R6000) += \ 175 $(call set_gccflags,r6000,mips2,r6000,mips2,mips2) \ 176 -Wa,--trap 177 178cflags-$(CONFIG_CPU_R4300) += \ 179 $(call set_gccflags,r4300,mips3,r4300,mips3,mips2) \ 180 -Wa,--trap 181 182cflags-$(CONFIG_CPU_VR41XX) += \ 183 $(call set_gccflags,r4100,mips3,r4600,mips3,mips2) \ 184 -Wa,--trap 185 186cflags-$(CONFIG_CPU_R4X00) += \ 187 $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ 188 -Wa,--trap 189 190cflags-$(CONFIG_CPU_TX49XX) += \ 191 $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ 192 -Wa,--trap 193 194cflags-$(CONFIG_CPU_MIPS32_R1) += \ 195 $(call set_gccflags,mips32,mips32,r4600,mips3,mips2) \ 196 -Wa,--trap 197 198cflags-$(CONFIG_CPU_MIPS32_R2) += \ 199 $(call set_gccflags,mips32r2,mips32r2,r4600,mips3,mips2) \ 200 -Wa,--trap 201 202cflags-$(CONFIG_CPU_MIPS64_R1) += \ 203 $(call set_gccflags,mips64,mips64,r4600,mips3,mips2) \ 204 -Wa,--trap 205 206cflags-$(CONFIG_CPU_MIPS64_R2) += \ 207 $(call set_gccflags,mips64r2,mips64r2,r4600,mips3,mips2) \ 208 -Wa,--trap 209 210cflags-$(CONFIG_CPU_R5000) += \ 211 $(call set_gccflags,r5000,mips4,r5000,mips4,mips2) \ 212 -Wa,--trap 213 214cflags-$(CONFIG_CPU_R5432) += \ 215 $(call set_gccflags,r5400,mips4,r5000,mips4,mips2) \ 216 -Wa,--trap 217 218cflags-$(CONFIG_CPU_NEVADA) += \ 219 $(call set_gccflags,rm5200,mips4,r5000,mips4,mips2) \ 220 -Wa,--trap 221# $(call cc-option,-mmad) 222 223cflags-$(CONFIG_CPU_RM7000) += \ 224 $(call set_gccflags,rm7000,mips4,r5000,mips4,mips2) \ 225 -Wa,--trap 226 227cflags-$(CONFIG_CPU_RM9000) += \ 228 $(call set_gccflags,rm9000,mips4,r5000,mips4,mips2) \ 229 -Wa,--trap 230 231cflags-$(CONFIG_CPU_SB1) += \ 232 $(call set_gccflags,sb1,mips64,r5000,mips4,mips2) \ 233 -Wa,--trap 234 235cflags-$(CONFIG_CPU_R8000) += \ 236 $(call set_gccflags,r8000,mips4,r8000,mips4,mips2) \ 237 -Wa,--trap 238 239cflags-$(CONFIG_CPU_R10000) += \ 240 $(call set_gccflags,r10000,mips4,r8000,mips4,mips2) \ 241 -Wa,--trap 242 243ifdef CONFIG_CPU_SB1 244ifdef CONFIG_SB1_PASS_1_WORKAROUNDS 245MODFLAGS += -msb1-pass1-workarounds 246endif 247endif 248 249# 250# Firmware support 251# 252libs-$(CONFIG_ARC) += arch/mips/arc/ 253libs-$(CONFIG_SIBYTE_CFE) += arch/mips/sibyte/cfe/ 254 255# 256# Board-dependent options and extra files 257# 258 259# 260# Acer PICA 61, Mips Magnum 4000 and Olivetti M700. 261# 262core-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/ 263cflags-$(CONFIG_MACH_JAZZ) += -Iinclude/asm-mips/mach-jazz 264load-$(CONFIG_MACH_JAZZ) += 0xffffffff80080000 265 266# 267# Common Alchemy Au1x00 stuff 268# 269core-$(CONFIG_SOC_AU1X00) += arch/mips/au1000/common/ 270cflags-$(CONFIG_SOC_AU1X00) += -Iinclude/asm-mips/mach-au1x00 271 272# 273# AMD Alchemy Pb1000 eval board 274# 275libs-$(CONFIG_MIPS_PB1000) += arch/mips/au1000/pb1000/ 276cflags-$(CONFIG_MIPS_PB1000) += -Iinclude/asm-mips/mach-pb1x00 277load-$(CONFIG_MIPS_PB1000) += 0xffffffff80100000 278 279# 280# AMD Alchemy Pb1100 eval board 281# 282libs-$(CONFIG_MIPS_PB1100) += arch/mips/au1000/pb1100/ 283cflags-$(CONFIG_MIPS_PB1100) += -Iinclude/asm-mips/mach-pb1x00 284load-$(CONFIG_MIPS_PB1100) += 0xffffffff80100000 285 286# 287# AMD Alchemy Pb1500 eval board 288# 289libs-$(CONFIG_MIPS_PB1500) += arch/mips/au1000/pb1500/ 290cflags-$(CONFIG_MIPS_PB1500) += -Iinclude/asm-mips/mach-pb1x00 291load-$(CONFIG_MIPS_PB1500) += 0xffffffff80100000 292 293# 294# AMD Alchemy Pb1550 eval board 295# 296libs-$(CONFIG_MIPS_PB1550) += arch/mips/au1000/pb1550/ 297cflags-$(CONFIG_MIPS_PB1550) += -Iinclude/asm-mips/mach-pb1x00 298load-$(CONFIG_MIPS_PB1550) += 0xffffffff80100000 299 300# 301# AMD Alchemy Pb1200 eval board 302# 303libs-$(CONFIG_MIPS_PB1200) += arch/mips/au1000/pb1200/ 304cflags-$(CONFIG_MIPS_PB1200) += -Iinclude/asm-mips/mach-pb1x00 305load-$(CONFIG_MIPS_PB1200) += 0xffffffff80100000 306 307# 308# AMD Alchemy Db1000 eval board 309# 310libs-$(CONFIG_MIPS_DB1000) += arch/mips/au1000/db1x00/ 311cflags-$(CONFIG_MIPS_DB1000) += -Iinclude/asm-mips/mach-db1x00 312load-$(CONFIG_MIPS_DB1000) += 0xffffffff80100000 313 314# 315# AMD Alchemy Db1100 eval board 316# 317libs-$(CONFIG_MIPS_DB1100) += arch/mips/au1000/db1x00/ 318cflags-$(CONFIG_MIPS_DB1100) += -Iinclude/asm-mips/mach-db1x00 319load-$(CONFIG_MIPS_DB1100) += 0xffffffff80100000 320 321# 322# AMD Alchemy Db1500 eval board 323# 324libs-$(CONFIG_MIPS_DB1500) += arch/mips/au1000/db1x00/ 325cflags-$(CONFIG_MIPS_DB1500) += -Iinclude/asm-mips/mach-db1x00 326load-$(CONFIG_MIPS_DB1500) += 0xffffffff80100000 327 328# 329# AMD Alchemy Db1550 eval board 330# 331libs-$(CONFIG_MIPS_DB1550) += arch/mips/au1000/db1x00/ 332cflags-$(CONFIG_MIPS_DB1550) += -Iinclude/asm-mips/mach-db1x00 333load-$(CONFIG_MIPS_DB1550) += 0xffffffff80100000 334 335# 336# AMD Alchemy Db1200 eval board 337# 338libs-$(CONFIG_MIPS_DB1200) += arch/mips/au1000/pb1200/ 339cflags-$(CONFIG_MIPS_DB1200) += -Iinclude/asm-mips/mach-db1x00 340load-$(CONFIG_MIPS_DB1200) += 0xffffffff80100000 341 342# 343# AMD Alchemy Bosporus eval board 344# 345libs-$(CONFIG_MIPS_BOSPORUS) += arch/mips/au1000/db1x00/ 346cflags-$(CONFIG_MIPS_BOSPORUS) += -Iinclude/asm-mips/mach-db1x00 347load-$(CONFIG_MIPS_BOSPORUS) += 0xffffffff80100000 348 349# 350# AMD Alchemy Mirage eval board 351# 352libs-$(CONFIG_MIPS_MIRAGE) += arch/mips/au1000/db1x00/ 353cflags-$(CONFIG_MIPS_MIRAGE) += -Iinclude/asm-mips/mach-db1x00 354load-$(CONFIG_MIPS_MIRAGE) += 0xffffffff80100000 355 356# 357# 4G-Systems eval board 358# 359libs-$(CONFIG_MIPS_MTX1) += arch/mips/au1000/mtx-1/ 360load-$(CONFIG_MIPS_MTX1) += 0xffffffff80100000 361 362# 363# MyCable eval board 364# 365libs-$(CONFIG_MIPS_XXS1500) += arch/mips/au1000/xxs1500/ 366load-$(CONFIG_MIPS_XXS1500) += 0xffffffff80100000 367 368# 369# Cobalt Server 370# 371core-$(CONFIG_MIPS_COBALT) += arch/mips/cobalt/ 372cflags-$(CONFIG_MIPS_COBALT) += -Iinclude/asm-mips/cobalt 373load-$(CONFIG_MIPS_COBALT) += 0xffffffff80080000 374 375# 376# DECstation family 377# 378core-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/ 379cflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec 380libs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/ 381load-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000 382CLEAN_FILES += drivers/tc/lk201-map.c 383 384# 385# Galileo EV64120 Board 386# 387core-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/ev64120/ 388core-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/common/ 389cflags-$(CONFIG_MIPS_EV64120) += -Iinclude/asm-mips/mach-ev64120 390load-$(CONFIG_MIPS_EV64120) += 0xffffffff80100000 391 392# 393# Galileo EV96100 Board 394# 395core-$(CONFIG_MIPS_EV96100) += arch/mips/galileo-boards/ev96100/ 396cflags-$(CONFIG_MIPS_EV96100) += -Iinclude/asm-mips/mach-ev96100 397load-$(CONFIG_MIPS_EV96100) += 0xffffffff80100000 398 399# 400# Globespan IVR eval board with QED 5231 CPU 401# 402core-$(CONFIG_ITE_BOARD_GEN) += arch/mips/ite-boards/generic/ 403core-$(CONFIG_MIPS_IVR) += arch/mips/ite-boards/ivr/ 404load-$(CONFIG_MIPS_IVR) += 0xffffffff80100000 405 406# 407# ITE 8172 eval board with QED 5231 CPU 408# 409core-$(CONFIG_MIPS_ITE8172) += arch/mips/ite-boards/qed-4n-s01b/ 410load-$(CONFIG_MIPS_ITE8172) += 0xffffffff80100000 411 412# 413# For all MIPS, Inc. eval boards 414# 415core-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/ 416 417# 418# MIPS Atlas board 419# 420core-$(CONFIG_MIPS_ATLAS) += arch/mips/mips-boards/atlas/ 421cflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-atlas 422cflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-mips 423load-$(CONFIG_MIPS_ATLAS) += 0xffffffff80100000 424 425# 426# MIPS Malta board 427# 428core-$(CONFIG_MIPS_MALTA) += arch/mips/mips-boards/malta/ 429cflags-$(CONFIG_MIPS_MALTA) += -Iinclude/asm-mips/mach-mips 430load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 431 432# 433# MIPS SEAD board 434# 435core-$(CONFIG_MIPS_SEAD) += arch/mips/mips-boards/sead/ 436load-$(CONFIG_MIPS_SEAD) += 0xffffffff80100000 437 438# 439# Momentum Ocelot board 440# 441# The Ocelot setup.o must be linked early - it does the ioremap() for the 442# mips_io_port_base. 443# 444core-$(CONFIG_MOMENCO_OCELOT) += arch/mips/gt64120/common/ \ 445 arch/mips/gt64120/momenco_ocelot/ 446cflags-$(CONFIG_MOMENCO_OCELOT) += -Iinclude/asm-mips/mach-ocelot 447load-$(CONFIG_MOMENCO_OCELOT) += 0xffffffff80100000 448 449# 450# Momentum Ocelot-G board 451# 452# The Ocelot-G setup.o must be linked early - it does the ioremap() for the 453# mips_io_port_base. 454# 455core-$(CONFIG_MOMENCO_OCELOT_G) += arch/mips/momentum/ocelot_g/ 456load-$(CONFIG_MOMENCO_OCELOT_G) += 0xffffffff80100000 457 458# 459# Momentum Ocelot-C and -CS boards 460# 461# The Ocelot-C[S] setup.o must be linked early - it does the ioremap() for the 462# mips_io_port_base. 463core-$(CONFIG_MOMENCO_OCELOT_C) += arch/mips/momentum/ocelot_c/ 464load-$(CONFIG_MOMENCO_OCELOT_C) += 0xffffffff80100000 465 466# 467# PMC-Sierra Yosemite 468# 469core-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ 470cflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite 471load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 472 473# Qemu simulating MIPS32 4Kc 474# 475core-$(CONFIG_QEMU) += arch/mips/qemu/ 476cflags-$(CONFIG_QEMU) += -Iinclude/asm-mips/mach-qemu 477load-$(CONFIG_QEMU) += 0xffffffff80010000 478 479# 480# Momentum Ocelot-3 481# 482core-$(CONFIG_MOMENCO_OCELOT_3) += arch/mips/momentum/ocelot_3/ 483cflags-$(CONFIG_MOMENCO_OCELOT_3) += -Iinclude/asm-mips/mach-ocelot3 484load-$(CONFIG_MOMENCO_OCELOT_3) += 0xffffffff80100000 485 486# 487# Momentum Jaguar ATX 488# 489core-$(CONFIG_MOMENCO_JAGUAR_ATX) += arch/mips/momentum/jaguar_atx/ 490cflags-$(CONFIG_MOMENCO_JAGUAR_ATX) += -Iinclude/asm-mips/mach-ja 491#ifdef CONFIG_JAGUAR_DMALOW 492#load-$(CONFIG_MOMENCO_JAGUAR_ATX) += 0xffffffff88000000 493#else 494load-$(CONFIG_MOMENCO_JAGUAR_ATX) += 0xffffffff80100000 495#endif 496 497# 498# NEC DDB 499# 500core-$(CONFIG_DDB5XXX_COMMON) += arch/mips/ddb5xxx/common/ 501 502# 503# NEC DDB Vrc-5074 504# 505core-$(CONFIG_DDB5074) += arch/mips/ddb5xxx/ddb5074/ 506load-$(CONFIG_DDB5074) += 0xffffffff80080000 507 508# 509# NEC DDB Vrc-5476 510# 511core-$(CONFIG_DDB5476) += arch/mips/ddb5xxx/ddb5476/ 512load-$(CONFIG_DDB5476) += 0xffffffff80080000 513 514# 515# NEC DDB Vrc-5477 516# 517core-$(CONFIG_DDB5477) += arch/mips/ddb5xxx/ddb5477/ 518load-$(CONFIG_DDB5477) += 0xffffffff80100000 519 520core-$(CONFIG_LASAT) += arch/mips/lasat/ 521cflags-$(CONFIG_LASAT) += -Iinclude/asm-mips/mach-lasat 522load-$(CONFIG_LASAT) += 0xffffffff80000000 523 524# 525# Common VR41xx 526# 527core-$(CONFIG_MACH_VR41XX) += arch/mips/vr41xx/common/ 528cflags-$(CONFIG_MACH_VR41XX) += -Iinclude/asm-mips/mach-vr41xx 529 530# 531# NEC VR4133 532# 533core-$(CONFIG_NEC_CMBVR4133) += arch/mips/vr41xx/nec-cmbvr4133/ 534load-$(CONFIG_NEC_CMBVR4133) += 0xffffffff80100000 535 536# 537# ZAO Networks Capcella (VR4131) 538# 539load-$(CONFIG_ZAO_CAPCELLA) += 0xffffffff80000000 540 541# 542# Victor MP-C303/304 (VR4122) 543# 544load-$(CONFIG_VICTOR_MPC30X) += 0xffffffff80001000 545 546# 547# IBM WorkPad z50 (VR4121) 548# 549core-$(CONFIG_IBM_WORKPAD) += arch/mips/vr41xx/ibm-workpad/ 550load-$(CONFIG_IBM_WORKPAD) += 0xffffffff80004000 551 552# 553# CASIO CASSIPEIA E-55/65 (VR4111) 554# 555core-$(CONFIG_CASIO_E55) += arch/mips/vr41xx/casio-e55/ 556load-$(CONFIG_CASIO_E55) += 0xffffffff80004000 557 558# 559# TANBAC VR4131 multichip module(TB0225) and TANBAC VR4131DIMM(TB0229) (VR4131) 560# 561load-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000 562 563# 564# SGI IP22 (Indy/Indigo2) 565# 566# Set the load address to >= 0xffffffff88069000 if you want to leave space for 567# symmon, 0xffffffff80002000 for production kernels. Note that the value must 568# be aligned to a multiple of the kernel stack size or the handling of the 569# current variable will break so for 64-bit kernels we have to raise the start 570# address by 8kb. 571# 572core-$(CONFIG_SGI_IP22) += arch/mips/sgi-ip22/ 573cflags-$(CONFIG_SGI_IP22) += -Iinclude/asm-mips/mach-ip22 574ifdef CONFIG_32BIT 575load-$(CONFIG_SGI_IP22) += 0xffffffff88002000 576endif 577ifdef CONFIG_64BIT 578load-$(CONFIG_SGI_IP22) += 0xffffffff88004000 579endif 580 581# 582# SGI-IP27 (Origin200/2000) 583# 584# Set the load address to >= 0xc000000000300000 if you want to leave space for 585# symmon, 0xc00000000001c000 for production kernels. Note that the value must 586# be 16kb aligned or the handling of the current variable will break. 587# 588ifdef CONFIG_SGI_IP27 589core-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ 590cflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27 591ifdef CONFIG_BUILD_ELF64 592ifdef CONFIG_MAPPED_KERNEL 593load-$(CONFIG_SGI_IP27) += 0xc00000004001c000 594OBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 595dataoffset-$(CONFIG_SGI_IP27) += 0x01000000 596else 597load-$(CONFIG_SGI_IP27) += 0xa80000000001c000 598OBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 599endif 600else 601ifdef CONFIG_MAPPED_KERNEL 602load-$(CONFIG_SGI_IP27) += 0xffffffffc001c000 603OBJCOPYFLAGS := --change-addresses=0xc000000080000000 604dataoffset-$(CONFIG_SGI_IP27) += 0x01000000 605else 606load-$(CONFIG_SGI_IP27) += 0xffffffff8001c000 607OBJCOPYFLAGS := --change-addresses=0xa800000080000000 608endif 609endif 610endif 611 612# 613# SGI-IP32 (O2) 614# 615# Set the load address to >= 80069000 if you want to leave space for symmon, 616# 0xffffffff80004000 for production kernels. Note that the value must be aligned to 617# a multiple of the kernel stack size or the handling of the current variable 618# will break. 619# 620core-$(CONFIG_SGI_IP32) += arch/mips/sgi-ip32/ 621cflags-$(CONFIG_SGI_IP32) += -Iinclude/asm-mips/mach-ip32 622load-$(CONFIG_SGI_IP32) += 0xffffffff80004000 623 624# 625# Sibyte SB1250 SOC 626# 627# This is a LIB so that it links at the end, and initcalls are later 628# the sequence; but it is built as an object so that modules don't get 629# removed (as happens, even if they have __initcall/module_init) 630# 631core-$(CONFIG_SIBYTE_BCM112X) += arch/mips/sibyte/sb1250/ 632cflags-$(CONFIG_SIBYTE_BCM112X) += -Iinclude/asm-mips/mach-sibyte 633 634core-$(CONFIG_SIBYTE_SB1250) += arch/mips/sibyte/sb1250/ 635cflags-$(CONFIG_SIBYTE_SB1250) += -Iinclude/asm-mips/mach-sibyte 636 637# 638# Sibyte BCM91120x (Carmel) board 639# Sibyte BCM91120C (CRhine) board 640# Sibyte BCM91125C (CRhone) board 641# Sibyte BCM91125E (Rhone) board 642# Sibyte SWARM board 643# 644libs-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ 645load-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000 646libs-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ 647load-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000 648libs-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ 649load-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000 650libs-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ 651load-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000 652libs-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ 653load-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000 654libs-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ 655load-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000 656 657# 658# SNI RM200 PCI 659# 660core-$(CONFIG_SNI_RM200_PCI) += arch/mips/sni/ 661cflags-$(CONFIG_SNI_RM200_PCI) += -Iinclude/asm-mips/mach-rm200 662load-$(CONFIG_SNI_RM200_PCI) += 0xffffffff80600000 663 664# 665# Toshiba JMR-TX3927 board 666# 667core-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/jmr3927/rbhma3100/ \ 668 arch/mips/jmr3927/common/ 669load-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000 670 671# 672# Toshiba RBTX4927 board or 673# Toshiba RBTX4937 board 674# 675core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/toshiba_rbtx4927/ 676core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/common/ 677load-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 678 679cflags-y += -Iinclude/asm-mips/mach-generic 680drivers-$(CONFIG_PCI) += arch/mips/pci/ 681 682ifdef CONFIG_32BIT 683ifdef CONFIG_CPU_LITTLE_ENDIAN 684JIFFIES = jiffies_64 685else 686JIFFIES = jiffies_64 + 4 687endif 688else 689JIFFIES = jiffies_64 690endif 691 692AFLAGS += $(cflags-y) 693CFLAGS += $(cflags-y) 694 695LDFLAGS += -m $(ld-emul) 696 697OBJCOPYFLAGS += --remove-section=.reginfo 698 699# 700# Choosing incompatible machines durings configuration will result in 701# error messages during linking. Select a default linkscript if 702# none has been choosen above. 703# 704 705CPPFLAGS_vmlinux.lds := \ 706 $(CFLAGS) \ 707 -D"LOADADDR=$(load-y)" \ 708 -D"JIFFIES=$(JIFFIES)" \ 709 -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" 710 711head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o 712 713libs-y += arch/mips/lib/ 714libs-$(CONFIG_32BIT) += arch/mips/lib-32/ 715libs-$(CONFIG_64BIT) += arch/mips/lib-64/ 716 717core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ 718 719drivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ 720 721ifdef CONFIG_LASAT 722rom.bin rom.sw: vmlinux 723 $(Q)$(MAKE) $(build)=arch/mips/lasat/image $@ 724endif 725 726# 727# Some machines like the Indy need 32-bit ELF binaries for booting purposes. 728# Other need ECOFF, so we build a 32-bit ELF binary for them which we then 729# convert to ECOFF using elf2ecoff. 730# 731vmlinux.32: vmlinux 732 $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@ 733 734# 735# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit 736# ELF files from 32-bit files by conversion. 737# 738vmlinux.64: vmlinux 739 $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 740 741makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1) 742 743ifdef CONFIG_BOOT_ELF32 744all: $(vmlinux-32) 745endif 746 747ifdef CONFIG_BOOT_ELF64 748all: $(vmlinux-64) 749endif 750 751ifdef CONFIG_MIPS_ATLAS 752all: vmlinux.srec 753endif 754 755ifdef CONFIG_MIPS_MALTA 756all: vmlinux.srec 757endif 758 759ifdef CONFIG_MIPS_SEAD 760all: vmlinux.srec 761endif 762 763ifdef CONFIG_SNI_RM200_PCI 764all: vmlinux.ecoff 765endif 766 767vmlinux.ecoff vmlinux.rm200: $(vmlinux-32) 768 +@$(call makeboot,$@) 769 770vmlinux.srec: $(vmlinux-32) 771 +@$(call makeboot,$@) 772 773CLEAN_FILES += vmlinux.ecoff \ 774 vmlinux.srec \ 775 vmlinux.rm200.tmp \ 776 vmlinux.rm200 777 778archclean: 779 @$(MAKE) $(clean)=arch/mips/boot 780 @$(MAKE) $(clean)=arch/mips/lasat 781 782 783CLEAN_FILES += vmlinux.32 \ 784 vmlinux.64 \ 785 vmlinux.ecoff 786