11da177e4SLinus Torvalds# 21da177e4SLinus Torvalds# This file is subject to the terms and conditions of the GNU General Public 31da177e4SLinus Torvalds# License. See the file "COPYING" in the main directory of this archive 41da177e4SLinus Torvalds# for more details. 51da177e4SLinus Torvalds# 61da177e4SLinus Torvalds# Copyright (C) 1994, 95, 96, 2003 by Ralf Baechle 71da177e4SLinus Torvalds# DECStation modifications by Paul M. Antoine, 1996 81da177e4SLinus Torvalds# Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki 91da177e4SLinus Torvalds# 101da177e4SLinus Torvalds# This file is included by the global makefile so that you can add your own 111da177e4SLinus Torvalds# architecture-specific flags and dependencies. Remember to do have actions 121da177e4SLinus Torvalds# for "archclean" cleaning up for this architecture. 131da177e4SLinus Torvalds# 141da177e4SLinus Torvalds 151da177e4SLinus Torvaldsas-option = $(shell if $(CC) $(CFLAGS) $(1) -Wa,-Z -c -o /dev/null \ 161da177e4SLinus Torvalds -xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; \ 171da177e4SLinus Torvalds else echo "$(2)"; fi ;) 181da177e4SLinus Torvalds 191da177e4SLinus Torvaldscflags-y := 201da177e4SLinus Torvalds 211da177e4SLinus Torvalds# 221da177e4SLinus Torvalds# Select the object file format to substitute into the linker script. 231da177e4SLinus Torvalds# 241da177e4SLinus Torvaldsifdef CONFIG_CPU_LITTLE_ENDIAN 251da177e4SLinus Torvalds32bit-tool-prefix = mipsel-linux- 261da177e4SLinus Torvalds64bit-tool-prefix = mips64el-linux- 271da177e4SLinus Torvalds32bit-bfd = elf32-tradlittlemips 281da177e4SLinus Torvalds64bit-bfd = elf64-tradlittlemips 291da177e4SLinus Torvalds32bit-emul = elf32ltsmip 301da177e4SLinus Torvalds64bit-emul = elf64ltsmip 311da177e4SLinus Torvaldselse 321da177e4SLinus Torvalds32bit-tool-prefix = mips-linux- 331da177e4SLinus Torvalds64bit-tool-prefix = mips64-linux- 341da177e4SLinus Torvalds32bit-bfd = elf32-tradbigmips 351da177e4SLinus Torvalds64bit-bfd = elf64-tradbigmips 361da177e4SLinus Torvalds32bit-emul = elf32btsmip 371da177e4SLinus Torvalds64bit-emul = elf64btsmip 381da177e4SLinus Torvaldsendif 391da177e4SLinus Torvalds 40875d43e7SRalf Baechleifdef CONFIG_32BIT 411da177e4SLinus Torvaldsgcc-abi = 32 421da177e4SLinus Torvaldstool-prefix = $(32bit-tool-prefix) 431da177e4SLinus TorvaldsUTS_MACHINE := mips 441da177e4SLinus Torvaldsendif 45875d43e7SRalf Baechleifdef CONFIG_64BIT 461da177e4SLinus Torvaldsgcc-abi = 64 471da177e4SLinus Torvaldstool-prefix = $(64bit-tool-prefix) 481da177e4SLinus TorvaldsUTS_MACHINE := mips64 491da177e4SLinus Torvaldsendif 501da177e4SLinus Torvalds 511da177e4SLinus Torvaldsifdef CONFIG_CROSSCOMPILE 521da177e4SLinus TorvaldsCROSS_COMPILE := $(tool-prefix) 531da177e4SLinus Torvaldsendif 541da177e4SLinus Torvalds 55fe00f943SRalf BaechleCHECKFLAGS-y += -D__linux__ -D__mips__ \ 56fe00f943SRalf Baechle -D_ABIO32=1 \ 57fe00f943SRalf Baechle -D_ABIN32=2 \ 58fe00f943SRalf Baechle -D_ABI64=3 59fe00f943SRalf BaechleCHECKFLAGS-$(CONFIG_32BIT) += -D_MIPS_SIM=_ABIO32 \ 60fe00f943SRalf Baechle -D_MIPS_SZLONG=32 \ 61fe00f943SRalf Baechle -D__PTRDIFF_TYPE__=int 62fe00f943SRalf BaechleCHECKFLAGS-$(CONFIG_64BIT) += -m64 -D_MIPS_SIM=_ABI64 \ 63fe00f943SRalf Baechle -D_MIPS_SZLONG=64 \ 64fe00f943SRalf Baechle -D__PTRDIFF_TYPE__="long int" 65fe00f943SRalf BaechleCHECKFLAGS-$(CONFIG_CPU_BIG_ENDIAN) += -D__MIPSEB__ 66fe00f943SRalf BaechleCHECKFLAGS-$(CONFIG_CPU_LITTLE_ENDIAN) += -D__MIPSEL__ 67fe00f943SRalf Baechle 68fe00f943SRalf BaechleCHECKFLAGS = $(CHECKFLAGS-y) 69fe00f943SRalf Baechle 701da177e4SLinus Torvaldsifdef CONFIG_BUILD_ELF64 711da177e4SLinus Torvaldsgas-abi = 64 721da177e4SLinus Torvaldsld-emul = $(64bit-emul) 731da177e4SLinus Torvaldsvmlinux-32 = vmlinux.32 741da177e4SLinus Torvaldsvmlinux-64 = vmlinux 751da177e4SLinus Torvaldselse 761da177e4SLinus Torvaldsgas-abi = 32 771da177e4SLinus Torvaldsld-emul = $(32bit-emul) 781da177e4SLinus Torvaldsvmlinux-32 = vmlinux 791da177e4SLinus Torvaldsvmlinux-64 = vmlinux.64 801da177e4SLinus Torvalds 81875d43e7SRalf Baechlecflags-$(CONFIG_64BIT) += $(call cc-option,-mno-explicit-relocs) 821da177e4SLinus Torvaldsendif 831da177e4SLinus Torvalds 841da177e4SLinus Torvalds# 851da177e4SLinus Torvalds# GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel 861da177e4SLinus Torvalds# code since it only slows down the whole thing. At some point we might make 871da177e4SLinus Torvalds# use of global pointer optimizations but their use of $28 conflicts with 881da177e4SLinus Torvalds# the current pointer optimization. 891da177e4SLinus Torvalds# 901da177e4SLinus Torvalds# The DECStation requires an ECOFF kernel for remote booting, other MIPS 911da177e4SLinus Torvalds# machines may also. Since BFD is incredibly buggy with respect to 921da177e4SLinus Torvalds# crossformat linking we rely on the elf2ecoff tool for format conversion. 931da177e4SLinus Torvalds# 941da177e4SLinus Torvaldscflags-y += -I $(TOPDIR)/include/asm/gcc 951da177e4SLinus Torvaldscflags-y += -G 0 -mno-abicalls -fno-pic -pipe 961da177e4SLinus Torvaldscflags-y += $(call cc-option, -finline-limit=100000) 979f83d839SThiemo SeuferLDFLAGS_vmlinux += -G 0 -static -n -nostdlib 981da177e4SLinus TorvaldsMODFLAGS += -mlong-calls 991da177e4SLinus Torvalds 100f425a6dcSThiemo Seufer# 101f425a6dcSThiemo Seufer# We explicitly add the endianness specifier if needed, this allows 102f425a6dcSThiemo Seufer# to compile kernels with a toolchain for the other endianness. We 103f425a6dcSThiemo Seufer# carefully avoid to add it redundantly because gcc 3.3/3.4 complains 104f425a6dcSThiemo Seufer# when fed the toolchain default! 105f425a6dcSThiemo Seufer# 10685f14bf2SThiemo Seufercflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB) 10785f14bf2SThiemo Seufercflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL) 108f425a6dcSThiemo Seufer 1091da177e4SLinus Torvaldscflags-$(CONFIG_SB1XXX_CORELIS) += -mno-sched-prolog -fno-omit-frame-pointer 1101da177e4SLinus Torvalds 1111da177e4SLinus Torvalds# 1121da177e4SLinus Torvalds# Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>) 1131da177e4SLinus Torvalds# 1141da177e4SLinus Torvalds# <cpu0>,<isa0> -- preferred CPU and ISA designations (may require 1151da177e4SLinus Torvalds# recent tools) 1161da177e4SLinus Torvalds# <cpu1>,<isa1> -- fallback CPU and ISA designations (have to work 1171da177e4SLinus Torvalds# with up to the oldest supported tools) 1181da177e4SLinus Torvalds# <isa2> -- an ISA designation used as an ABI selector for 1191da177e4SLinus Torvalds# gcc versions that do not support "-mabi=32" 1201da177e4SLinus Torvalds# (depending on the CPU type, either "mips1" or 1211da177e4SLinus Torvalds# "mips2") 1221da177e4SLinus Torvalds# 1231da177e4SLinus Torvaldsset_gccflags = $(shell \ 1241da177e4SLinus Torvaldswhile :; do \ 1251da177e4SLinus Torvalds cpu=$(1); isa=-$(2); \ 1261da177e4SLinus Torvalds for gcc_opt in -march= -mcpu=; do \ 1271da177e4SLinus Torvalds $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ 1281da177e4SLinus Torvalds -xc /dev/null > /dev/null 2>&1 && \ 1291da177e4SLinus Torvalds break 2; \ 1301da177e4SLinus Torvalds done; \ 1311da177e4SLinus Torvalds cpu=$(3); isa=-$(4); \ 1321da177e4SLinus Torvalds for gcc_opt in -march= -mcpu=; do \ 1331da177e4SLinus Torvalds $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ 1341da177e4SLinus Torvalds -xc /dev/null > /dev/null 2>&1 && \ 1351da177e4SLinus Torvalds break 2; \ 1361da177e4SLinus Torvalds done; \ 1371da177e4SLinus Torvalds break; \ 1381da177e4SLinus Torvaldsdone; \ 1391da177e4SLinus Torvaldsgcc_abi=-mabi=$(gcc-abi); gcc_cpu=$$cpu; \ 1401da177e4SLinus Torvaldsif $(CC) $$gcc_abi -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then \ 1411da177e4SLinus Torvalds gcc_isa=$$isa; \ 1421da177e4SLinus Torvaldselse \ 1431da177e4SLinus Torvalds gcc_abi=; gcc_isa=-$(5); \ 1441da177e4SLinus Torvaldsfi; \ 1451da177e4SLinus Torvaldsgas_abi=-Wa,-$(gcc-abi); gas_cpu=$$cpu; gas_isa=-Wa,$$isa; \ 1461da177e4SLinus Torvaldswhile :; do \ 1471da177e4SLinus Torvalds for gas_opt in -Wa,-march= -Wa,-mcpu=; do \ 1481da177e4SLinus Torvalds $(CC) $$gas_abi $$gas_opt$$cpu $$gas_isa -Wa,-Z -c \ 1491da177e4SLinus Torvalds -o /dev/null -xassembler /dev/null > /dev/null 2>&1 && \ 1501da177e4SLinus Torvalds break 2; \ 1511da177e4SLinus Torvalds done; \ 1521da177e4SLinus Torvalds gas_abi=; gas_opt=; gas_cpu=; gas_isa=; \ 1531da177e4SLinus Torvalds break; \ 1541da177e4SLinus Torvaldsdone; \ 1551da177e4SLinus Torvaldsif test "$(gcc-abi)" != "$(gas-abi)"; then \ 1561da177e4SLinus Torvalds gas_abi="-Wa,-$(gas-abi) -Wa,-mgp$(gcc-abi)"; \ 1571da177e4SLinus Torvaldsfi; \ 1581da177e4SLinus Torvaldsif test "$$gcc_opt" = -march= && test -n "$$gcc_abi"; then \ 1591da177e4SLinus Torvalds $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \ 1601da177e4SLinus Torvalds -xc /dev/null > /dev/null 2>&1 && \ 1611da177e4SLinus Torvalds gcc_isa=; \ 1621da177e4SLinus Torvaldsfi; \ 1631da177e4SLinus Torvaldsecho $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_abi $$gas_opt$$gas_cpu $$gas_isa) 1641da177e4SLinus Torvalds 1651da177e4SLinus Torvalds# 1661da177e4SLinus Torvalds# CPU-dependent compiler/assembler options for optimization. 1671da177e4SLinus Torvalds# 1681da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R3000) += \ 1691da177e4SLinus Torvalds $(call set_gccflags,r3000,mips1,r3000,mips1,mips1) 1701da177e4SLinus Torvalds 1711da177e4SLinus Torvaldscflags-$(CONFIG_CPU_TX39XX) += \ 1721da177e4SLinus Torvalds $(call set_gccflags,r3900,mips1,r3000,mips1,mips1) 1731da177e4SLinus Torvalds 1741da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R6000) += \ 1751da177e4SLinus Torvalds $(call set_gccflags,r6000,mips2,r6000,mips2,mips2) \ 1761da177e4SLinus Torvalds -Wa,--trap 1771da177e4SLinus Torvalds 1781da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R4300) += \ 1791da177e4SLinus Torvalds $(call set_gccflags,r4300,mips3,r4300,mips3,mips2) \ 1801da177e4SLinus Torvalds -Wa,--trap 1811da177e4SLinus Torvalds 1821da177e4SLinus Torvaldscflags-$(CONFIG_CPU_VR41XX) += \ 1831da177e4SLinus Torvalds $(call set_gccflags,r4100,mips3,r4600,mips3,mips2) \ 1841da177e4SLinus Torvalds -Wa,--trap 1851da177e4SLinus Torvalds 1861da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R4X00) += \ 1871da177e4SLinus Torvalds $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ 1881da177e4SLinus Torvalds -Wa,--trap 1891da177e4SLinus Torvalds 1901da177e4SLinus Torvaldscflags-$(CONFIG_CPU_TX49XX) += \ 1911da177e4SLinus Torvalds $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ 1921da177e4SLinus Torvalds -Wa,--trap 1931da177e4SLinus Torvalds 1946e760c8dSRalf Baechlecflags-$(CONFIG_CPU_MIPS32_R1) += \ 1951da177e4SLinus Torvalds $(call set_gccflags,mips32,mips32,r4600,mips3,mips2) \ 1961da177e4SLinus Torvalds -Wa,--trap 1971da177e4SLinus Torvalds 198079ef8bbSRalf Baechlecflags-$(CONFIG_CPU_MIPS32_R2) += \ 199079ef8bbSRalf Baechle $(call set_gccflags,mips32r2,mips32r2,r4600,mips3,mips2) \ 200079ef8bbSRalf Baechle -Wa,--trap 201079ef8bbSRalf Baechle 2026e760c8dSRalf Baechlecflags-$(CONFIG_CPU_MIPS64_R1) += \ 2031da177e4SLinus Torvalds $(call set_gccflags,mips64,mips64,r4600,mips3,mips2) \ 2041da177e4SLinus Torvalds -Wa,--trap 2051da177e4SLinus Torvalds 206079ef8bbSRalf Baechlecflags-$(CONFIG_CPU_MIPS64_R2) += \ 207079ef8bbSRalf Baechle $(call set_gccflags,mips64r2,mips64r2,r4600,mips3,mips2) \ 208079ef8bbSRalf Baechle -Wa,--trap 209079ef8bbSRalf Baechle 2101da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R5000) += \ 2111da177e4SLinus Torvalds $(call set_gccflags,r5000,mips4,r5000,mips4,mips2) \ 2121da177e4SLinus Torvalds -Wa,--trap 2131da177e4SLinus Torvalds 2141da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R5432) += \ 2151da177e4SLinus Torvalds $(call set_gccflags,r5400,mips4,r5000,mips4,mips2) \ 2161da177e4SLinus Torvalds -Wa,--trap 2171da177e4SLinus Torvalds 2181da177e4SLinus Torvaldscflags-$(CONFIG_CPU_NEVADA) += \ 2191da177e4SLinus Torvalds $(call set_gccflags,rm5200,mips4,r5000,mips4,mips2) \ 2201da177e4SLinus Torvalds -Wa,--trap 2211da177e4SLinus Torvalds# $(call cc-option,-mmad) 2221da177e4SLinus Torvalds 2231da177e4SLinus Torvaldscflags-$(CONFIG_CPU_RM7000) += \ 2241da177e4SLinus Torvalds $(call set_gccflags,rm7000,mips4,r5000,mips4,mips2) \ 2251da177e4SLinus Torvalds -Wa,--trap 2261da177e4SLinus Torvalds 2271da177e4SLinus Torvaldscflags-$(CONFIG_CPU_RM9000) += \ 2281da177e4SLinus Torvalds $(call set_gccflags,rm9000,mips4,r5000,mips4,mips2) \ 2291da177e4SLinus Torvalds -Wa,--trap 2301da177e4SLinus Torvalds 231bdf21b18SPete Popov 2321da177e4SLinus Torvaldscflags-$(CONFIG_CPU_SB1) += \ 2331da177e4SLinus Torvalds $(call set_gccflags,sb1,mips64,r5000,mips4,mips2) \ 2341da177e4SLinus Torvalds -Wa,--trap 2351da177e4SLinus Torvalds 2361da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R8000) += \ 2371da177e4SLinus Torvalds $(call set_gccflags,r8000,mips4,r8000,mips4,mips2) \ 2381da177e4SLinus Torvalds -Wa,--trap 2391da177e4SLinus Torvalds 2401da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R10000) += \ 2411da177e4SLinus Torvalds $(call set_gccflags,r10000,mips4,r8000,mips4,mips2) \ 2421da177e4SLinus Torvalds -Wa,--trap 2431da177e4SLinus Torvalds 2441da177e4SLinus Torvaldsifdef CONFIG_CPU_SB1 2451da177e4SLinus Torvaldsifdef CONFIG_SB1_PASS_1_WORKAROUNDS 2461da177e4SLinus TorvaldsMODFLAGS += -msb1-pass1-workarounds 2471da177e4SLinus Torvaldsendif 2481da177e4SLinus Torvaldsendif 2491da177e4SLinus Torvalds 2501da177e4SLinus Torvalds# 2511da177e4SLinus Torvalds# Firmware support 2521da177e4SLinus Torvalds# 2531da177e4SLinus Torvaldslibs-$(CONFIG_ARC) += arch/mips/arc/ 2541da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CFE) += arch/mips/sibyte/cfe/ 2551da177e4SLinus Torvalds 2561da177e4SLinus Torvalds# 2571da177e4SLinus Torvalds# Board-dependent options and extra files 2581da177e4SLinus Torvalds# 2591da177e4SLinus Torvalds 2601da177e4SLinus Torvalds# 2611da177e4SLinus Torvalds# Acer PICA 61, Mips Magnum 4000 and Olivetti M700. 2621da177e4SLinus Torvalds# 2631da177e4SLinus Torvaldscore-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/ 2641da177e4SLinus Torvaldscflags-$(CONFIG_MACH_JAZZ) += -Iinclude/asm-mips/mach-jazz 2651da177e4SLinus Torvaldsload-$(CONFIG_MACH_JAZZ) += 0xffffffff80080000 2661da177e4SLinus Torvalds 2671da177e4SLinus Torvalds# 2681da177e4SLinus Torvalds# Common Alchemy Au1x00 stuff 2691da177e4SLinus Torvalds# 2701da177e4SLinus Torvaldscore-$(CONFIG_SOC_AU1X00) += arch/mips/au1000/common/ 2711da177e4SLinus Torvaldscflags-$(CONFIG_SOC_AU1X00) += -Iinclude/asm-mips/mach-au1x00 2721da177e4SLinus Torvalds 2731da177e4SLinus Torvalds# 2741da177e4SLinus Torvalds# AMD Alchemy Pb1000 eval board 2751da177e4SLinus Torvalds# 2761da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1000) += arch/mips/au1000/pb1000/ 2771da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1000) += -Iinclude/asm-mips/mach-pb1x00 2781da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1000) += 0xffffffff80100000 2791da177e4SLinus Torvalds 2801da177e4SLinus Torvalds# 2811da177e4SLinus Torvalds# AMD Alchemy Pb1100 eval board 2821da177e4SLinus Torvalds# 2831da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1100) += arch/mips/au1000/pb1100/ 2841da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1100) += -Iinclude/asm-mips/mach-pb1x00 2851da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1100) += 0xffffffff80100000 2861da177e4SLinus Torvalds 2871da177e4SLinus Torvalds# 2881da177e4SLinus Torvalds# AMD Alchemy Pb1500 eval board 2891da177e4SLinus Torvalds# 2901da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1500) += arch/mips/au1000/pb1500/ 2911da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1500) += -Iinclude/asm-mips/mach-pb1x00 2921da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1500) += 0xffffffff80100000 2931da177e4SLinus Torvalds 2941da177e4SLinus Torvalds# 2951da177e4SLinus Torvalds# AMD Alchemy Pb1550 eval board 2961da177e4SLinus Torvalds# 2971da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1550) += arch/mips/au1000/pb1550/ 2981da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1550) += -Iinclude/asm-mips/mach-pb1x00 2991da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1550) += 0xffffffff80100000 3001da177e4SLinus Torvalds 3011da177e4SLinus Torvalds# 302e3ad1c23SPete Popov# AMD Alchemy Pb1200 eval board 303e3ad1c23SPete Popov# 304e3ad1c23SPete Popovlibs-$(CONFIG_MIPS_PB1200) += arch/mips/au1000/pb1200/ 305e3ad1c23SPete Popovcflags-$(CONFIG_MIPS_PB1200) += -Iinclude/asm-mips/mach-pb1x00 306e3ad1c23SPete Popovload-$(CONFIG_MIPS_PB1200) += 0xffffffff80100000 307e3ad1c23SPete Popov 308e3ad1c23SPete Popov# 3091da177e4SLinus Torvalds# AMD Alchemy Db1000 eval board 3101da177e4SLinus Torvalds# 3111da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1000) += arch/mips/au1000/db1x00/ 3121da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1000) += -Iinclude/asm-mips/mach-db1x00 3131da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1000) += 0xffffffff80100000 3141da177e4SLinus Torvalds 3151da177e4SLinus Torvalds# 3161da177e4SLinus Torvalds# AMD Alchemy Db1100 eval board 3171da177e4SLinus Torvalds# 3181da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1100) += arch/mips/au1000/db1x00/ 3191da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1100) += -Iinclude/asm-mips/mach-db1x00 3201da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1100) += 0xffffffff80100000 3211da177e4SLinus Torvalds 3221da177e4SLinus Torvalds# 3231da177e4SLinus Torvalds# AMD Alchemy Db1500 eval board 3241da177e4SLinus Torvalds# 3251da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1500) += arch/mips/au1000/db1x00/ 3261da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1500) += -Iinclude/asm-mips/mach-db1x00 3271da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1500) += 0xffffffff80100000 3281da177e4SLinus Torvalds 3291da177e4SLinus Torvalds# 3301da177e4SLinus Torvalds# AMD Alchemy Db1550 eval board 3311da177e4SLinus Torvalds# 3321da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1550) += arch/mips/au1000/db1x00/ 3331da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1550) += -Iinclude/asm-mips/mach-db1x00 3341da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1550) += 0xffffffff80100000 3351da177e4SLinus Torvalds 3361da177e4SLinus Torvalds# 337e3ad1c23SPete Popov# AMD Alchemy Db1200 eval board 338e3ad1c23SPete Popov# 339e3ad1c23SPete Popovlibs-$(CONFIG_MIPS_DB1200) += arch/mips/au1000/pb1200/ 340e3ad1c23SPete Popovcflags-$(CONFIG_MIPS_DB1200) += -Iinclude/asm-mips/mach-db1x00 341e3ad1c23SPete Popovload-$(CONFIG_MIPS_DB1200) += 0xffffffff80100000 342e3ad1c23SPete Popov 343e3ad1c23SPete Popov# 3441da177e4SLinus Torvalds# AMD Alchemy Bosporus eval board 3451da177e4SLinus Torvalds# 3461da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_BOSPORUS) += arch/mips/au1000/db1x00/ 3471da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_BOSPORUS) += -Iinclude/asm-mips/mach-db1x00 3481da177e4SLinus Torvaldsload-$(CONFIG_MIPS_BOSPORUS) += 0xffffffff80100000 3491da177e4SLinus Torvalds 3501da177e4SLinus Torvalds# 3511da177e4SLinus Torvalds# AMD Alchemy Mirage eval board 3521da177e4SLinus Torvalds# 3531da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_MIRAGE) += arch/mips/au1000/db1x00/ 3541da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_MIRAGE) += -Iinclude/asm-mips/mach-db1x00 3551da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MIRAGE) += 0xffffffff80100000 3561da177e4SLinus Torvalds 3571da177e4SLinus Torvalds# 3581da177e4SLinus Torvalds# 4G-Systems eval board 3591da177e4SLinus Torvalds# 3601da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_MTX1) += arch/mips/au1000/mtx-1/ 3611da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MTX1) += 0xffffffff80100000 3621da177e4SLinus Torvalds 3631da177e4SLinus Torvalds# 3641da177e4SLinus Torvalds# MyCable eval board 3651da177e4SLinus Torvalds# 3661da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_XXS1500) += arch/mips/au1000/xxs1500/ 3671da177e4SLinus Torvaldsload-$(CONFIG_MIPS_XXS1500) += 0xffffffff80100000 3681da177e4SLinus Torvalds 3691da177e4SLinus Torvalds# 3701da177e4SLinus Torvalds# Cobalt Server 3711da177e4SLinus Torvalds# 3721da177e4SLinus Torvaldscore-$(CONFIG_MIPS_COBALT) += arch/mips/cobalt/ 373c4ed38a0SRalf Baechlecflags-$(CONFIG_MIPS_COBALT) += -Iinclude/asm-mips/cobalt 3741da177e4SLinus Torvaldsload-$(CONFIG_MIPS_COBALT) += 0xffffffff80080000 3751da177e4SLinus Torvalds 3761da177e4SLinus Torvalds# 3771da177e4SLinus Torvalds# DECstation family 3781da177e4SLinus Torvalds# 3791da177e4SLinus Torvaldscore-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/ 3801da177e4SLinus Torvaldscflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec 3811da177e4SLinus Torvaldslibs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/ 3821da177e4SLinus Torvaldsload-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000 3831da177e4SLinus TorvaldsCLEAN_FILES += drivers/tc/lk201-map.c 3841da177e4SLinus Torvalds 3851da177e4SLinus Torvalds# 3861da177e4SLinus Torvalds# Galileo EV64120 Board 3871da177e4SLinus Torvalds# 3881da177e4SLinus Torvaldscore-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/ev64120/ 3891da177e4SLinus Torvaldscore-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/common/ 3901da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_EV64120) += -Iinclude/asm-mips/mach-ev64120 3911da177e4SLinus Torvaldsload-$(CONFIG_MIPS_EV64120) += 0xffffffff80100000 3921da177e4SLinus Torvalds 3931da177e4SLinus Torvalds# 3941da177e4SLinus Torvalds# Galileo EV96100 Board 3951da177e4SLinus Torvalds# 3961da177e4SLinus Torvaldscore-$(CONFIG_MIPS_EV96100) += arch/mips/galileo-boards/ev96100/ 3971da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_EV96100) += -Iinclude/asm-mips/mach-ev96100 3981da177e4SLinus Torvaldsload-$(CONFIG_MIPS_EV96100) += 0xffffffff80100000 3991da177e4SLinus Torvalds 4001da177e4SLinus Torvalds# 4011da177e4SLinus Torvalds# Globespan IVR eval board with QED 5231 CPU 4021da177e4SLinus Torvalds# 4031da177e4SLinus Torvaldscore-$(CONFIG_ITE_BOARD_GEN) += arch/mips/ite-boards/generic/ 4041da177e4SLinus Torvaldscore-$(CONFIG_MIPS_IVR) += arch/mips/ite-boards/ivr/ 4051da177e4SLinus Torvaldsload-$(CONFIG_MIPS_IVR) += 0xffffffff80100000 4061da177e4SLinus Torvalds 4071da177e4SLinus Torvalds# 4081da177e4SLinus Torvalds# ITE 8172 eval board with QED 5231 CPU 4091da177e4SLinus Torvalds# 4101da177e4SLinus Torvaldscore-$(CONFIG_MIPS_ITE8172) += arch/mips/ite-boards/qed-4n-s01b/ 4111da177e4SLinus Torvaldsload-$(CONFIG_MIPS_ITE8172) += 0xffffffff80100000 4121da177e4SLinus Torvalds 4131da177e4SLinus Torvalds# 4141da177e4SLinus Torvalds# For all MIPS, Inc. eval boards 4151da177e4SLinus Torvalds# 4161da177e4SLinus Torvaldscore-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/ 4171da177e4SLinus Torvalds 4181da177e4SLinus Torvalds# 4191da177e4SLinus Torvalds# MIPS Atlas board 4201da177e4SLinus Torvalds# 4211da177e4SLinus Torvaldscore-$(CONFIG_MIPS_ATLAS) += arch/mips/mips-boards/atlas/ 4221da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-atlas 4231da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-mips 4241da177e4SLinus Torvaldsload-$(CONFIG_MIPS_ATLAS) += 0xffffffff80100000 4251da177e4SLinus Torvalds 4261da177e4SLinus Torvalds# 4271da177e4SLinus Torvalds# MIPS Malta board 4281da177e4SLinus Torvalds# 4291da177e4SLinus Torvaldscore-$(CONFIG_MIPS_MALTA) += arch/mips/mips-boards/malta/ 4301da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_MALTA) += -Iinclude/asm-mips/mach-mips 4311da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 4321da177e4SLinus Torvalds 4331da177e4SLinus Torvalds# 4341da177e4SLinus Torvalds# MIPS SEAD board 4351da177e4SLinus Torvalds# 4361da177e4SLinus Torvaldscore-$(CONFIG_MIPS_SEAD) += arch/mips/mips-boards/sead/ 4371da177e4SLinus Torvaldsload-$(CONFIG_MIPS_SEAD) += 0xffffffff80100000 4381da177e4SLinus Torvalds 4391da177e4SLinus Torvalds# 4401da177e4SLinus Torvalds# Momentum Ocelot board 4411da177e4SLinus Torvalds# 4421da177e4SLinus Torvalds# The Ocelot setup.o must be linked early - it does the ioremap() for the 4431da177e4SLinus Torvalds# mips_io_port_base. 4441da177e4SLinus Torvalds# 4451da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT) += arch/mips/gt64120/common/ \ 4461da177e4SLinus Torvalds arch/mips/gt64120/momenco_ocelot/ 4471da177e4SLinus Torvaldscflags-$(CONFIG_MOMENCO_OCELOT) += -Iinclude/asm-mips/mach-ocelot 4481da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT) += 0xffffffff80100000 4491da177e4SLinus Torvalds 4501da177e4SLinus Torvalds# 4511da177e4SLinus Torvalds# Momentum Ocelot-G board 4521da177e4SLinus Torvalds# 4531da177e4SLinus Torvalds# The Ocelot-G setup.o must be linked early - it does the ioremap() for the 4541da177e4SLinus Torvalds# mips_io_port_base. 4551da177e4SLinus Torvalds# 4561da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT_G) += arch/mips/momentum/ocelot_g/ 4571da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT_G) += 0xffffffff80100000 4581da177e4SLinus Torvalds 4591da177e4SLinus Torvalds# 4601da177e4SLinus Torvalds# Momentum Ocelot-C and -CS boards 4611da177e4SLinus Torvalds# 4621da177e4SLinus Torvalds# The Ocelot-C[S] setup.o must be linked early - it does the ioremap() for the 4631da177e4SLinus Torvalds# mips_io_port_base. 4641da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT_C) += arch/mips/momentum/ocelot_c/ 4651da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT_C) += 0xffffffff80100000 4661da177e4SLinus Torvalds 4671da177e4SLinus Torvalds# 4681da177e4SLinus Torvalds# PMC-Sierra Yosemite 4691da177e4SLinus Torvalds# 4701da177e4SLinus Torvaldscore-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ 4711da177e4SLinus Torvaldscflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite 4721da177e4SLinus Torvaldsload-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 4731da177e4SLinus Torvalds 47407119621SRalf Baechle# Qemu simulating MIPS32 4Kc 47507119621SRalf Baechle# 47607119621SRalf Baechlecore-$(CONFIG_QEMU) += arch/mips/qemu/ 47707119621SRalf Baechlecflags-$(CONFIG_QEMU) += -Iinclude/asm-mips/mach-qemu 47807119621SRalf Baechleload-$(CONFIG_QEMU) += 0xffffffff80010000 47907119621SRalf Baechle 4801da177e4SLinus Torvalds# 4811da177e4SLinus Torvalds# Momentum Ocelot-3 4821da177e4SLinus Torvalds# 4831da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT_3) += arch/mips/momentum/ocelot_3/ 4841da177e4SLinus Torvaldscflags-$(CONFIG_MOMENCO_OCELOT_3) += -Iinclude/asm-mips/mach-ocelot3 4851da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT_3) += 0xffffffff80100000 4861da177e4SLinus Torvalds 4871da177e4SLinus Torvalds# 4881da177e4SLinus Torvalds# Momentum Jaguar ATX 4891da177e4SLinus Torvalds# 4901da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_JAGUAR_ATX) += arch/mips/momentum/jaguar_atx/ 4911da177e4SLinus Torvaldscflags-$(CONFIG_MOMENCO_JAGUAR_ATX) += -Iinclude/asm-mips/mach-ja 4921da177e4SLinus Torvalds#ifdef CONFIG_JAGUAR_DMALOW 4931da177e4SLinus Torvalds#load-$(CONFIG_MOMENCO_JAGUAR_ATX) += 0xffffffff88000000 4941da177e4SLinus Torvalds#else 4951da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_JAGUAR_ATX) += 0xffffffff80100000 4961da177e4SLinus Torvalds#endif 4971da177e4SLinus Torvalds 4981da177e4SLinus Torvalds# 4991da177e4SLinus Torvalds# NEC DDB 5001da177e4SLinus Torvalds# 5011da177e4SLinus Torvaldscore-$(CONFIG_DDB5XXX_COMMON) += arch/mips/ddb5xxx/common/ 5021da177e4SLinus Torvalds 5031da177e4SLinus Torvalds# 5041da177e4SLinus Torvalds# NEC DDB Vrc-5074 5051da177e4SLinus Torvalds# 5061da177e4SLinus Torvaldscore-$(CONFIG_DDB5074) += arch/mips/ddb5xxx/ddb5074/ 5071da177e4SLinus Torvaldsload-$(CONFIG_DDB5074) += 0xffffffff80080000 5081da177e4SLinus Torvalds 5091da177e4SLinus Torvalds# 5101da177e4SLinus Torvalds# NEC DDB Vrc-5476 5111da177e4SLinus Torvalds# 5121da177e4SLinus Torvaldscore-$(CONFIG_DDB5476) += arch/mips/ddb5xxx/ddb5476/ 5131da177e4SLinus Torvaldsload-$(CONFIG_DDB5476) += 0xffffffff80080000 5141da177e4SLinus Torvalds 5151da177e4SLinus Torvalds# 5161da177e4SLinus Torvalds# NEC DDB Vrc-5477 5171da177e4SLinus Torvalds# 5181da177e4SLinus Torvaldscore-$(CONFIG_DDB5477) += arch/mips/ddb5xxx/ddb5477/ 5191da177e4SLinus Torvaldsload-$(CONFIG_DDB5477) += 0xffffffff80100000 5201da177e4SLinus Torvalds 5211da177e4SLinus Torvaldscore-$(CONFIG_LASAT) += arch/mips/lasat/ 5221da177e4SLinus Torvaldscflags-$(CONFIG_LASAT) += -Iinclude/asm-mips/mach-lasat 5231da177e4SLinus Torvaldsload-$(CONFIG_LASAT) += 0xffffffff80000000 5241da177e4SLinus Torvalds 5251da177e4SLinus Torvalds# 5261da177e4SLinus Torvalds# Common VR41xx 5271da177e4SLinus Torvalds# 5281da177e4SLinus Torvaldscore-$(CONFIG_MACH_VR41XX) += arch/mips/vr41xx/common/ 5291da177e4SLinus Torvaldscflags-$(CONFIG_MACH_VR41XX) += -Iinclude/asm-mips/mach-vr41xx 5301da177e4SLinus Torvalds 5311da177e4SLinus Torvalds# 5321da177e4SLinus Torvalds# NEC VR4133 5331da177e4SLinus Torvalds# 5341da177e4SLinus Torvaldscore-$(CONFIG_NEC_CMBVR4133) += arch/mips/vr41xx/nec-cmbvr4133/ 5351da177e4SLinus Torvaldsload-$(CONFIG_NEC_CMBVR4133) += 0xffffffff80100000 5361da177e4SLinus Torvalds 5371da177e4SLinus Torvalds# 5381da177e4SLinus Torvalds# ZAO Networks Capcella (VR4131) 5391da177e4SLinus Torvalds# 5401da177e4SLinus Torvaldsload-$(CONFIG_ZAO_CAPCELLA) += 0xffffffff80000000 5411da177e4SLinus Torvalds 5421da177e4SLinus Torvalds# 5431da177e4SLinus Torvalds# Victor MP-C303/304 (VR4122) 5441da177e4SLinus Torvalds# 5451da177e4SLinus Torvaldsload-$(CONFIG_VICTOR_MPC30X) += 0xffffffff80001000 5461da177e4SLinus Torvalds 5471da177e4SLinus Torvalds# 5481da177e4SLinus Torvalds# IBM WorkPad z50 (VR4121) 5491da177e4SLinus Torvalds# 5501da177e4SLinus Torvaldscore-$(CONFIG_IBM_WORKPAD) += arch/mips/vr41xx/ibm-workpad/ 5511da177e4SLinus Torvaldsload-$(CONFIG_IBM_WORKPAD) += 0xffffffff80004000 5521da177e4SLinus Torvalds 5531da177e4SLinus Torvalds# 5541da177e4SLinus Torvalds# CASIO CASSIPEIA E-55/65 (VR4111) 5551da177e4SLinus Torvalds# 5561da177e4SLinus Torvaldscore-$(CONFIG_CASIO_E55) += arch/mips/vr41xx/casio-e55/ 5571da177e4SLinus Torvaldsload-$(CONFIG_CASIO_E55) += 0xffffffff80004000 5581da177e4SLinus Torvalds 5591da177e4SLinus Torvalds# 56063b799f9SYoichi Yuasa# TANBAC VR4131 multichip module(TB0225) and TANBAC VR4131DIMM(TB0229) (VR4131) 5611da177e4SLinus Torvalds# 56263b799f9SYoichi Yuasaload-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000 5631da177e4SLinus Torvalds 5641da177e4SLinus Torvalds# 565bdf21b18SPete Popov# Common Philips PNX8550 566bdf21b18SPete Popov# 567bdf21b18SPete Popovcore-$(CONFIG_SOC_PNX8550) += arch/mips/philips/pnx8550/common/ 568bdf21b18SPete Popovcflags-$(CONFIG_SOC_PNX8550) += -Iinclude/asm-mips/mach-pnx8550 569bdf21b18SPete Popov 570bdf21b18SPete Popov# 571bdf21b18SPete Popov# Philips PNX8550 JBS board 572bdf21b18SPete Popov# 573bdf21b18SPete Popovlibs-$(CONFIG_PNX8550_JBS) += arch/mips/philips/pnx8550/jbs/ 574bdf21b18SPete Popov#cflags-$(CONFIG_PNX8550_JBS) += -Iinclude/asm-mips/mach-pnx8550 575bdf21b18SPete Popovload-$(CONFIG_PNX8550_JBS) += 0xffffffff80060000 576bdf21b18SPete Popov 577bdf21b18SPete Popov# 5781da177e4SLinus Torvalds# SGI IP22 (Indy/Indigo2) 5791da177e4SLinus Torvalds# 5801da177e4SLinus Torvalds# Set the load address to >= 0xffffffff88069000 if you want to leave space for 5811da177e4SLinus Torvalds# symmon, 0xffffffff80002000 for production kernels. Note that the value must 5821da177e4SLinus Torvalds# be aligned to a multiple of the kernel stack size or the handling of the 5831da177e4SLinus Torvalds# current variable will break so for 64-bit kernels we have to raise the start 5841da177e4SLinus Torvalds# address by 8kb. 5851da177e4SLinus Torvalds# 5861da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP22) += arch/mips/sgi-ip22/ 5871da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP22) += -Iinclude/asm-mips/mach-ip22 588875d43e7SRalf Baechleifdef CONFIG_32BIT 5891da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP22) += 0xffffffff88002000 5901da177e4SLinus Torvaldsendif 591875d43e7SRalf Baechleifdef CONFIG_64BIT 5921da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP22) += 0xffffffff88004000 5931da177e4SLinus Torvaldsendif 5941da177e4SLinus Torvalds 5951da177e4SLinus Torvalds# 5961da177e4SLinus Torvalds# SGI-IP27 (Origin200/2000) 5971da177e4SLinus Torvalds# 5981da177e4SLinus Torvalds# Set the load address to >= 0xc000000000300000 if you want to leave space for 5991da177e4SLinus Torvalds# symmon, 0xc00000000001c000 for production kernels. Note that the value must 6001da177e4SLinus Torvalds# be 16kb aligned or the handling of the current variable will break. 6011da177e4SLinus Torvalds# 6021da177e4SLinus Torvaldsifdef CONFIG_SGI_IP27 6031da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ 6041da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27 6051da177e4SLinus Torvaldsifdef CONFIG_BUILD_ELF64 6061da177e4SLinus Torvaldsifdef CONFIG_MAPPED_KERNEL 6071da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xc00000004001c000 6081da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 6091da177e4SLinus Torvaldsdataoffset-$(CONFIG_SGI_IP27) += 0x01000000 6101da177e4SLinus Torvaldselse 6111da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xa80000000001c000 6121da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 6131da177e4SLinus Torvaldsendif 6141da177e4SLinus Torvaldselse 6151da177e4SLinus Torvaldsifdef CONFIG_MAPPED_KERNEL 6161da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xffffffffc001c000 6171da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0xc000000080000000 6181da177e4SLinus Torvaldsdataoffset-$(CONFIG_SGI_IP27) += 0x01000000 6191da177e4SLinus Torvaldselse 6201da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xffffffff8001c000 6211da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0xa800000080000000 6221da177e4SLinus Torvaldsendif 6231da177e4SLinus Torvaldsendif 6241da177e4SLinus Torvaldsendif 6251da177e4SLinus Torvalds 6261da177e4SLinus Torvalds# 6271da177e4SLinus Torvalds# SGI-IP32 (O2) 6281da177e4SLinus Torvalds# 6291da177e4SLinus Torvalds# Set the load address to >= 80069000 if you want to leave space for symmon, 6301da177e4SLinus Torvalds# 0xffffffff80004000 for production kernels. Note that the value must be aligned to 6311da177e4SLinus Torvalds# a multiple of the kernel stack size or the handling of the current variable 6321da177e4SLinus Torvalds# will break. 6331da177e4SLinus Torvalds# 6341da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP32) += arch/mips/sgi-ip32/ 6351da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP32) += -Iinclude/asm-mips/mach-ip32 6361da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP32) += 0xffffffff80004000 6371da177e4SLinus Torvalds 6381da177e4SLinus Torvalds# 6391da177e4SLinus Torvalds# Sibyte SB1250 SOC 6401da177e4SLinus Torvalds# 6411da177e4SLinus Torvalds# This is a LIB so that it links at the end, and initcalls are later 6421da177e4SLinus Torvalds# the sequence; but it is built as an object so that modules don't get 6431da177e4SLinus Torvalds# removed (as happens, even if they have __initcall/module_init) 6441da177e4SLinus Torvalds# 6451da177e4SLinus Torvaldscore-$(CONFIG_SIBYTE_BCM112X) += arch/mips/sibyte/sb1250/ 6461da177e4SLinus Torvaldscflags-$(CONFIG_SIBYTE_BCM112X) += -Iinclude/asm-mips/mach-sibyte 6471da177e4SLinus Torvalds 6481da177e4SLinus Torvaldscore-$(CONFIG_SIBYTE_SB1250) += arch/mips/sibyte/sb1250/ 6491da177e4SLinus Torvaldscflags-$(CONFIG_SIBYTE_SB1250) += -Iinclude/asm-mips/mach-sibyte 6501da177e4SLinus Torvalds 6511da177e4SLinus Torvalds# 6521da177e4SLinus Torvalds# Sibyte BCM91120x (Carmel) board 6531da177e4SLinus Torvalds# Sibyte BCM91120C (CRhine) board 6541da177e4SLinus Torvalds# Sibyte BCM91125C (CRhone) board 6551da177e4SLinus Torvalds# Sibyte BCM91125E (Rhone) board 6561da177e4SLinus Torvalds# Sibyte SWARM board 6571da177e4SLinus Torvalds# 6581da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ 6591da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000 6601da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ 6611da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000 6621da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ 6631da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000 6641da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ 6651da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000 6661da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ 6671da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000 6681da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ 6691da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000 6701da177e4SLinus Torvalds 6711da177e4SLinus Torvalds# 6721da177e4SLinus Torvalds# SNI RM200 PCI 6731da177e4SLinus Torvalds# 6741da177e4SLinus Torvaldscore-$(CONFIG_SNI_RM200_PCI) += arch/mips/sni/ 6751da177e4SLinus Torvaldscflags-$(CONFIG_SNI_RM200_PCI) += -Iinclude/asm-mips/mach-rm200 6761da177e4SLinus Torvaldsload-$(CONFIG_SNI_RM200_PCI) += 0xffffffff80600000 6771da177e4SLinus Torvalds 6781da177e4SLinus Torvalds# 6791da177e4SLinus Torvalds# Toshiba JMR-TX3927 board 6801da177e4SLinus Torvalds# 6811da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/jmr3927/rbhma3100/ \ 6821da177e4SLinus Torvalds arch/mips/jmr3927/common/ 6831da177e4SLinus Torvaldsload-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000 6841da177e4SLinus Torvalds 6851da177e4SLinus Torvalds# 6861da177e4SLinus Torvalds# Toshiba RBTX4927 board or 6871da177e4SLinus Torvalds# Toshiba RBTX4937 board 6881da177e4SLinus Torvalds# 6891da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/toshiba_rbtx4927/ 6901da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/common/ 6911da177e4SLinus Torvaldsload-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 6921da177e4SLinus Torvalds 6931da177e4SLinus Torvaldscflags-y += -Iinclude/asm-mips/mach-generic 6941da177e4SLinus Torvaldsdrivers-$(CONFIG_PCI) += arch/mips/pci/ 6951da177e4SLinus Torvalds 696875d43e7SRalf Baechleifdef CONFIG_32BIT 6971da177e4SLinus Torvaldsifdef CONFIG_CPU_LITTLE_ENDIAN 6981da177e4SLinus TorvaldsJIFFIES = jiffies_64 6991da177e4SLinus Torvaldselse 7001da177e4SLinus TorvaldsJIFFIES = jiffies_64 + 4 7011da177e4SLinus Torvaldsendif 7021da177e4SLinus Torvaldselse 7031da177e4SLinus TorvaldsJIFFIES = jiffies_64 7041da177e4SLinus Torvaldsendif 7051da177e4SLinus Torvalds 7061da177e4SLinus TorvaldsAFLAGS += $(cflags-y) 7071da177e4SLinus TorvaldsCFLAGS += $(cflags-y) 7081da177e4SLinus Torvalds 7091da177e4SLinus TorvaldsLDFLAGS += -m $(ld-emul) 7101da177e4SLinus Torvalds 7111da177e4SLinus TorvaldsOBJCOPYFLAGS += --remove-section=.reginfo 7121da177e4SLinus Torvalds 7131da177e4SLinus Torvalds# 7141da177e4SLinus Torvalds# Choosing incompatible machines durings configuration will result in 7151da177e4SLinus Torvalds# error messages during linking. Select a default linkscript if 7161da177e4SLinus Torvalds# none has been choosen above. 7171da177e4SLinus Torvalds# 7181da177e4SLinus Torvalds 7191da177e4SLinus TorvaldsCPPFLAGS_vmlinux.lds := \ 7201da177e4SLinus Torvalds $(CFLAGS) \ 7211da177e4SLinus Torvalds -D"LOADADDR=$(load-y)" \ 7221da177e4SLinus Torvalds -D"JIFFIES=$(JIFFIES)" \ 7231da177e4SLinus Torvalds -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" 7241da177e4SLinus Torvalds 7251da177e4SLinus Torvaldshead-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o 7261da177e4SLinus Torvalds 7271da177e4SLinus Torvaldslibs-y += arch/mips/lib/ 728875d43e7SRalf Baechlelibs-$(CONFIG_32BIT) += arch/mips/lib-32/ 729875d43e7SRalf Baechlelibs-$(CONFIG_64BIT) += arch/mips/lib-64/ 7301da177e4SLinus Torvalds 7311da177e4SLinus Torvaldscore-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ 7321da177e4SLinus Torvalds 7331da177e4SLinus Torvaldsdrivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ 7341da177e4SLinus Torvalds 7351da177e4SLinus Torvaldsifdef CONFIG_LASAT 7361da177e4SLinus Torvaldsrom.bin rom.sw: vmlinux 7377c6b155fSSam Ravnborg $(Q)$(MAKE) $(build)=arch/mips/lasat/image $@ 7381da177e4SLinus Torvaldsendif 7391da177e4SLinus Torvalds 7401da177e4SLinus Torvalds# 7411da177e4SLinus Torvalds# Some machines like the Indy need 32-bit ELF binaries for booting purposes. 7421da177e4SLinus Torvalds# Other need ECOFF, so we build a 32-bit ELF binary for them which we then 7431da177e4SLinus Torvalds# convert to ECOFF using elf2ecoff. 7441da177e4SLinus Torvalds# 7451da177e4SLinus Torvaldsvmlinux.32: vmlinux 7461da177e4SLinus Torvalds $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@ 7471da177e4SLinus Torvalds 7481da177e4SLinus Torvalds# 7491da177e4SLinus Torvalds# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit 7501da177e4SLinus Torvalds# ELF files from 32-bit files by conversion. 7511da177e4SLinus Torvalds# 7521da177e4SLinus Torvaldsvmlinux.64: vmlinux 7531da177e4SLinus Torvalds $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 7541da177e4SLinus Torvalds 7551da177e4SLinus Torvaldsmakeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1) 7561da177e4SLinus Torvalds 7571da177e4SLinus Torvaldsifdef CONFIG_BOOT_ELF32 7581da177e4SLinus Torvaldsall: $(vmlinux-32) 7591da177e4SLinus Torvaldsendif 7601da177e4SLinus Torvalds 7611da177e4SLinus Torvaldsifdef CONFIG_BOOT_ELF64 7621da177e4SLinus Torvaldsall: $(vmlinux-64) 7631da177e4SLinus Torvaldsendif 7641da177e4SLinus Torvalds 765149f60b3SRalf Baechleifdef CONFIG_MIPS_ATLAS 766149f60b3SRalf Baechleall: vmlinux.srec 767149f60b3SRalf Baechleendif 768149f60b3SRalf Baechle 769149f60b3SRalf Baechleifdef CONFIG_MIPS_MALTA 770149f60b3SRalf Baechleall: vmlinux.srec 771149f60b3SRalf Baechleendif 772149f60b3SRalf Baechle 773149f60b3SRalf Baechleifdef CONFIG_MIPS_SEAD 774149f60b3SRalf Baechleall: vmlinux.srec 775149f60b3SRalf Baechleendif 776149f60b3SRalf Baechle 777154b500bSRalf Baechleifdef CONFIG_QEMU 778154b500bSRalf Baechleall: vmlinux.bin 779154b500bSRalf Baechleendif 780154b500bSRalf Baechle 7811da177e4SLinus Torvaldsifdef CONFIG_SNI_RM200_PCI 7821da177e4SLinus Torvaldsall: vmlinux.ecoff 7831da177e4SLinus Torvaldsendif 7841da177e4SLinus Torvalds 785154b500bSRalf Baechlevmlinux.bin: $(vmlinux-32) 786154b500bSRalf Baechle +@$(call makeboot,$@) 787154b500bSRalf Baechle 7881da177e4SLinus Torvaldsvmlinux.ecoff vmlinux.rm200: $(vmlinux-32) 7891da177e4SLinus Torvalds +@$(call makeboot,$@) 7901da177e4SLinus Torvalds 7911da177e4SLinus Torvaldsvmlinux.srec: $(vmlinux-32) 7921da177e4SLinus Torvalds +@$(call makeboot,$@) 7931da177e4SLinus Torvalds 7941da177e4SLinus TorvaldsCLEAN_FILES += vmlinux.ecoff \ 7951da177e4SLinus Torvalds vmlinux.srec \ 7961da177e4SLinus Torvalds vmlinux.rm200.tmp \ 7971da177e4SLinus Torvalds vmlinux.rm200 7981da177e4SLinus Torvalds 7991da177e4SLinus Torvaldsarchclean: 8001da177e4SLinus Torvalds @$(MAKE) $(clean)=arch/mips/boot 8011da177e4SLinus Torvalds @$(MAKE) $(clean)=arch/mips/lasat 8021da177e4SLinus Torvalds 803048eb582SSam RavnborgCLEAN_FILES += vmlinux.32 \ 8041da177e4SLinus Torvalds vmlinux.64 \ 8051da177e4SLinus Torvalds vmlinux.ecoff 806