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 969f83d839SThiemo SeuferLDFLAGS_vmlinux += -G 0 -static -n -nostdlib 971da177e4SLinus TorvaldsMODFLAGS += -mlong-calls 981da177e4SLinus Torvalds 99f425a6dcSThiemo Seufer# 100f425a6dcSThiemo Seufer# We explicitly add the endianness specifier if needed, this allows 101f425a6dcSThiemo Seufer# to compile kernels with a toolchain for the other endianness. We 102f425a6dcSThiemo Seufer# carefully avoid to add it redundantly because gcc 3.3/3.4 complains 103f425a6dcSThiemo Seufer# when fed the toolchain default! 104f425a6dcSThiemo Seufer# 10585f14bf2SThiemo Seufercflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB) 10685f14bf2SThiemo Seufercflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL) 107f425a6dcSThiemo Seufer 1081da177e4SLinus Torvaldscflags-$(CONFIG_SB1XXX_CORELIS) += -mno-sched-prolog -fno-omit-frame-pointer 1091da177e4SLinus Torvalds 1101da177e4SLinus Torvalds# 1111da177e4SLinus Torvalds# Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>) 1121da177e4SLinus Torvalds# 1131da177e4SLinus Torvalds# <cpu0>,<isa0> -- preferred CPU and ISA designations (may require 1141da177e4SLinus Torvalds# recent tools) 1151da177e4SLinus Torvalds# <cpu1>,<isa1> -- fallback CPU and ISA designations (have to work 1161da177e4SLinus Torvalds# with up to the oldest supported tools) 1171da177e4SLinus Torvalds# <isa2> -- an ISA designation used as an ABI selector for 1181da177e4SLinus Torvalds# gcc versions that do not support "-mabi=32" 1191da177e4SLinus Torvalds# (depending on the CPU type, either "mips1" or 1201da177e4SLinus Torvalds# "mips2") 1211da177e4SLinus Torvalds# 1221da177e4SLinus Torvaldsset_gccflags = $(shell \ 1231da177e4SLinus Torvaldswhile :; do \ 1241da177e4SLinus Torvalds cpu=$(1); isa=-$(2); \ 1251da177e4SLinus Torvalds for gcc_opt in -march= -mcpu=; do \ 1261da177e4SLinus Torvalds $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ 1271da177e4SLinus Torvalds -xc /dev/null > /dev/null 2>&1 && \ 1281da177e4SLinus Torvalds break 2; \ 1291da177e4SLinus Torvalds done; \ 1301da177e4SLinus Torvalds cpu=$(3); isa=-$(4); \ 1311da177e4SLinus Torvalds for gcc_opt in -march= -mcpu=; do \ 1321da177e4SLinus Torvalds $(CC) $$gcc_opt$$cpu $$isa -S -o /dev/null \ 1331da177e4SLinus Torvalds -xc /dev/null > /dev/null 2>&1 && \ 1341da177e4SLinus Torvalds break 2; \ 1351da177e4SLinus Torvalds done; \ 1361da177e4SLinus Torvalds break; \ 1371da177e4SLinus Torvaldsdone; \ 1381da177e4SLinus Torvaldsgcc_abi=-mabi=$(gcc-abi); gcc_cpu=$$cpu; \ 1391da177e4SLinus Torvaldsif $(CC) $$gcc_abi -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then \ 1401da177e4SLinus Torvalds gcc_isa=$$isa; \ 1411da177e4SLinus Torvaldselse \ 1421da177e4SLinus Torvalds gcc_abi=; gcc_isa=-$(5); \ 1431da177e4SLinus Torvaldsfi; \ 1441da177e4SLinus Torvaldsgas_abi=-Wa,-$(gcc-abi); gas_cpu=$$cpu; gas_isa=-Wa,$$isa; \ 1451da177e4SLinus Torvaldswhile :; do \ 1461da177e4SLinus Torvalds for gas_opt in -Wa,-march= -Wa,-mcpu=; do \ 1471da177e4SLinus Torvalds $(CC) $$gas_abi $$gas_opt$$cpu $$gas_isa -Wa,-Z -c \ 1481da177e4SLinus Torvalds -o /dev/null -xassembler /dev/null > /dev/null 2>&1 && \ 1491da177e4SLinus Torvalds break 2; \ 1501da177e4SLinus Torvalds done; \ 1511da177e4SLinus Torvalds gas_abi=; gas_opt=; gas_cpu=; gas_isa=; \ 1521da177e4SLinus Torvalds break; \ 1531da177e4SLinus Torvaldsdone; \ 1541da177e4SLinus Torvaldsif test "$(gcc-abi)" != "$(gas-abi)"; then \ 1551da177e4SLinus Torvalds gas_abi="-Wa,-$(gas-abi) -Wa,-mgp$(gcc-abi)"; \ 1561da177e4SLinus Torvaldsfi; \ 1571da177e4SLinus Torvaldsif test "$$gcc_opt" = -march= && test -n "$$gcc_abi"; then \ 1581da177e4SLinus Torvalds $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \ 1591da177e4SLinus Torvalds -xc /dev/null > /dev/null 2>&1 && \ 1601da177e4SLinus Torvalds gcc_isa=; \ 1611da177e4SLinus Torvaldsfi; \ 1621da177e4SLinus Torvaldsecho $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_abi $$gas_opt$$gas_cpu $$gas_isa) 1631da177e4SLinus Torvalds 1641da177e4SLinus Torvalds# 1651da177e4SLinus Torvalds# CPU-dependent compiler/assembler options for optimization. 1661da177e4SLinus Torvalds# 1671da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R3000) += \ 1681da177e4SLinus Torvalds $(call set_gccflags,r3000,mips1,r3000,mips1,mips1) 1691da177e4SLinus Torvalds 1701da177e4SLinus Torvaldscflags-$(CONFIG_CPU_TX39XX) += \ 1711da177e4SLinus Torvalds $(call set_gccflags,r3900,mips1,r3000,mips1,mips1) 1721da177e4SLinus Torvalds 1731da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R6000) += \ 1741da177e4SLinus Torvalds $(call set_gccflags,r6000,mips2,r6000,mips2,mips2) \ 1751da177e4SLinus Torvalds -Wa,--trap 1761da177e4SLinus Torvalds 1771da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R4300) += \ 1781da177e4SLinus Torvalds $(call set_gccflags,r4300,mips3,r4300,mips3,mips2) \ 1791da177e4SLinus Torvalds -Wa,--trap 1801da177e4SLinus Torvalds 1811da177e4SLinus Torvaldscflags-$(CONFIG_CPU_VR41XX) += \ 1821da177e4SLinus Torvalds $(call set_gccflags,r4100,mips3,r4600,mips3,mips2) \ 1831da177e4SLinus Torvalds -Wa,--trap 1841da177e4SLinus Torvalds 1851da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R4X00) += \ 1861da177e4SLinus Torvalds $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ 1871da177e4SLinus Torvalds -Wa,--trap 1881da177e4SLinus Torvalds 1891da177e4SLinus Torvaldscflags-$(CONFIG_CPU_TX49XX) += \ 1901da177e4SLinus Torvalds $(call set_gccflags,r4600,mips3,r4600,mips3,mips2) \ 1911da177e4SLinus Torvalds -Wa,--trap 1921da177e4SLinus Torvalds 1936e760c8dSRalf Baechlecflags-$(CONFIG_CPU_MIPS32_R1) += \ 1941da177e4SLinus Torvalds $(call set_gccflags,mips32,mips32,r4600,mips3,mips2) \ 1951da177e4SLinus Torvalds -Wa,--trap 1961da177e4SLinus Torvalds 197079ef8bbSRalf Baechlecflags-$(CONFIG_CPU_MIPS32_R2) += \ 198079ef8bbSRalf Baechle $(call set_gccflags,mips32r2,mips32r2,r4600,mips3,mips2) \ 199079ef8bbSRalf Baechle -Wa,--trap 200079ef8bbSRalf Baechle 2016e760c8dSRalf Baechlecflags-$(CONFIG_CPU_MIPS64_R1) += \ 2021da177e4SLinus Torvalds $(call set_gccflags,mips64,mips64,r4600,mips3,mips2) \ 2031da177e4SLinus Torvalds -Wa,--trap 2041da177e4SLinus Torvalds 205079ef8bbSRalf Baechlecflags-$(CONFIG_CPU_MIPS64_R2) += \ 206079ef8bbSRalf Baechle $(call set_gccflags,mips64r2,mips64r2,r4600,mips3,mips2) \ 207079ef8bbSRalf Baechle -Wa,--trap 208079ef8bbSRalf Baechle 2091da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R5000) += \ 2101da177e4SLinus Torvalds $(call set_gccflags,r5000,mips4,r5000,mips4,mips2) \ 2111da177e4SLinus Torvalds -Wa,--trap 2121da177e4SLinus Torvalds 2131da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R5432) += \ 2141da177e4SLinus Torvalds $(call set_gccflags,r5400,mips4,r5000,mips4,mips2) \ 2151da177e4SLinus Torvalds -Wa,--trap 2161da177e4SLinus Torvalds 2171da177e4SLinus Torvaldscflags-$(CONFIG_CPU_NEVADA) += \ 2181da177e4SLinus Torvalds $(call set_gccflags,rm5200,mips4,r5000,mips4,mips2) \ 2191da177e4SLinus Torvalds -Wa,--trap 2201da177e4SLinus Torvalds# $(call cc-option,-mmad) 2211da177e4SLinus Torvalds 2221da177e4SLinus Torvaldscflags-$(CONFIG_CPU_RM7000) += \ 2231da177e4SLinus Torvalds $(call set_gccflags,rm7000,mips4,r5000,mips4,mips2) \ 2241da177e4SLinus Torvalds -Wa,--trap 2251da177e4SLinus Torvalds 2261da177e4SLinus Torvaldscflags-$(CONFIG_CPU_RM9000) += \ 2271da177e4SLinus Torvalds $(call set_gccflags,rm9000,mips4,r5000,mips4,mips2) \ 2281da177e4SLinus Torvalds -Wa,--trap 2291da177e4SLinus Torvalds 230bdf21b18SPete Popov 2311da177e4SLinus Torvaldscflags-$(CONFIG_CPU_SB1) += \ 2321da177e4SLinus Torvalds $(call set_gccflags,sb1,mips64,r5000,mips4,mips2) \ 2331da177e4SLinus Torvalds -Wa,--trap 2341da177e4SLinus Torvalds 2351da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R8000) += \ 2361da177e4SLinus Torvalds $(call set_gccflags,r8000,mips4,r8000,mips4,mips2) \ 2371da177e4SLinus Torvalds -Wa,--trap 2381da177e4SLinus Torvalds 2391da177e4SLinus Torvaldscflags-$(CONFIG_CPU_R10000) += \ 2401da177e4SLinus Torvalds $(call set_gccflags,r10000,mips4,r8000,mips4,mips2) \ 2411da177e4SLinus Torvalds -Wa,--trap 2421da177e4SLinus Torvalds 2431da177e4SLinus Torvaldsifdef CONFIG_CPU_SB1 2441da177e4SLinus Torvaldsifdef CONFIG_SB1_PASS_1_WORKAROUNDS 2451da177e4SLinus TorvaldsMODFLAGS += -msb1-pass1-workarounds 2461da177e4SLinus Torvaldsendif 2471da177e4SLinus Torvaldsendif 2481da177e4SLinus Torvalds 2491da177e4SLinus Torvalds# 2501da177e4SLinus Torvalds# Firmware support 2511da177e4SLinus Torvalds# 2521da177e4SLinus Torvaldslibs-$(CONFIG_ARC) += arch/mips/arc/ 2531da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CFE) += arch/mips/sibyte/cfe/ 2541da177e4SLinus Torvalds 2551da177e4SLinus Torvalds# 2561da177e4SLinus Torvalds# Board-dependent options and extra files 2571da177e4SLinus Torvalds# 2581da177e4SLinus Torvalds 2591da177e4SLinus Torvalds# 2601da177e4SLinus Torvalds# Acer PICA 61, Mips Magnum 4000 and Olivetti M700. 2611da177e4SLinus Torvalds# 2621da177e4SLinus Torvaldscore-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/ 2631da177e4SLinus Torvaldscflags-$(CONFIG_MACH_JAZZ) += -Iinclude/asm-mips/mach-jazz 2641da177e4SLinus Torvaldsload-$(CONFIG_MACH_JAZZ) += 0xffffffff80080000 2651da177e4SLinus Torvalds 2661da177e4SLinus Torvalds# 2671da177e4SLinus Torvalds# Common Alchemy Au1x00 stuff 2681da177e4SLinus Torvalds# 2691da177e4SLinus Torvaldscore-$(CONFIG_SOC_AU1X00) += arch/mips/au1000/common/ 2701da177e4SLinus Torvaldscflags-$(CONFIG_SOC_AU1X00) += -Iinclude/asm-mips/mach-au1x00 2711da177e4SLinus Torvalds 2721da177e4SLinus Torvalds# 2731da177e4SLinus Torvalds# AMD Alchemy Pb1000 eval board 2741da177e4SLinus Torvalds# 2751da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1000) += arch/mips/au1000/pb1000/ 2761da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1000) += -Iinclude/asm-mips/mach-pb1x00 2771da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1000) += 0xffffffff80100000 2781da177e4SLinus Torvalds 2791da177e4SLinus Torvalds# 2801da177e4SLinus Torvalds# AMD Alchemy Pb1100 eval board 2811da177e4SLinus Torvalds# 2821da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1100) += arch/mips/au1000/pb1100/ 2831da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1100) += -Iinclude/asm-mips/mach-pb1x00 2841da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1100) += 0xffffffff80100000 2851da177e4SLinus Torvalds 2861da177e4SLinus Torvalds# 2871da177e4SLinus Torvalds# AMD Alchemy Pb1500 eval board 2881da177e4SLinus Torvalds# 2891da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1500) += arch/mips/au1000/pb1500/ 2901da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1500) += -Iinclude/asm-mips/mach-pb1x00 2911da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1500) += 0xffffffff80100000 2921da177e4SLinus Torvalds 2931da177e4SLinus Torvalds# 2941da177e4SLinus Torvalds# AMD Alchemy Pb1550 eval board 2951da177e4SLinus Torvalds# 2961da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1550) += arch/mips/au1000/pb1550/ 2971da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1550) += -Iinclude/asm-mips/mach-pb1x00 2981da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1550) += 0xffffffff80100000 2991da177e4SLinus Torvalds 3001da177e4SLinus Torvalds# 301e3ad1c23SPete Popov# AMD Alchemy Pb1200 eval board 302e3ad1c23SPete Popov# 303e3ad1c23SPete Popovlibs-$(CONFIG_MIPS_PB1200) += arch/mips/au1000/pb1200/ 304e3ad1c23SPete Popovcflags-$(CONFIG_MIPS_PB1200) += -Iinclude/asm-mips/mach-pb1x00 305e3ad1c23SPete Popovload-$(CONFIG_MIPS_PB1200) += 0xffffffff80100000 306e3ad1c23SPete Popov 307e3ad1c23SPete Popov# 3081da177e4SLinus Torvalds# AMD Alchemy Db1000 eval board 3091da177e4SLinus Torvalds# 3101da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1000) += arch/mips/au1000/db1x00/ 3111da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1000) += -Iinclude/asm-mips/mach-db1x00 3121da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1000) += 0xffffffff80100000 3131da177e4SLinus Torvalds 3141da177e4SLinus Torvalds# 3151da177e4SLinus Torvalds# AMD Alchemy Db1100 eval board 3161da177e4SLinus Torvalds# 3171da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1100) += arch/mips/au1000/db1x00/ 3181da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1100) += -Iinclude/asm-mips/mach-db1x00 3191da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1100) += 0xffffffff80100000 3201da177e4SLinus Torvalds 3211da177e4SLinus Torvalds# 3221da177e4SLinus Torvalds# AMD Alchemy Db1500 eval board 3231da177e4SLinus Torvalds# 3241da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1500) += arch/mips/au1000/db1x00/ 3251da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1500) += -Iinclude/asm-mips/mach-db1x00 3261da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1500) += 0xffffffff80100000 3271da177e4SLinus Torvalds 3281da177e4SLinus Torvalds# 3291da177e4SLinus Torvalds# AMD Alchemy Db1550 eval board 3301da177e4SLinus Torvalds# 3311da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1550) += arch/mips/au1000/db1x00/ 3321da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1550) += -Iinclude/asm-mips/mach-db1x00 3331da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1550) += 0xffffffff80100000 3341da177e4SLinus Torvalds 3351da177e4SLinus Torvalds# 336e3ad1c23SPete Popov# AMD Alchemy Db1200 eval board 337e3ad1c23SPete Popov# 338e3ad1c23SPete Popovlibs-$(CONFIG_MIPS_DB1200) += arch/mips/au1000/pb1200/ 339e3ad1c23SPete Popovcflags-$(CONFIG_MIPS_DB1200) += -Iinclude/asm-mips/mach-db1x00 340e3ad1c23SPete Popovload-$(CONFIG_MIPS_DB1200) += 0xffffffff80100000 341e3ad1c23SPete Popov 342e3ad1c23SPete Popov# 3431da177e4SLinus Torvalds# AMD Alchemy Bosporus eval board 3441da177e4SLinus Torvalds# 3451da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_BOSPORUS) += arch/mips/au1000/db1x00/ 3461da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_BOSPORUS) += -Iinclude/asm-mips/mach-db1x00 3471da177e4SLinus Torvaldsload-$(CONFIG_MIPS_BOSPORUS) += 0xffffffff80100000 3481da177e4SLinus Torvalds 3491da177e4SLinus Torvalds# 3501da177e4SLinus Torvalds# AMD Alchemy Mirage eval board 3511da177e4SLinus Torvalds# 3521da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_MIRAGE) += arch/mips/au1000/db1x00/ 3531da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_MIRAGE) += -Iinclude/asm-mips/mach-db1x00 3541da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MIRAGE) += 0xffffffff80100000 3551da177e4SLinus Torvalds 3561da177e4SLinus Torvalds# 3571da177e4SLinus Torvalds# 4G-Systems eval board 3581da177e4SLinus Torvalds# 3591da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_MTX1) += arch/mips/au1000/mtx-1/ 3601da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MTX1) += 0xffffffff80100000 3611da177e4SLinus Torvalds 3621da177e4SLinus Torvalds# 3631da177e4SLinus Torvalds# MyCable eval board 3641da177e4SLinus Torvalds# 3651da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_XXS1500) += arch/mips/au1000/xxs1500/ 3661da177e4SLinus Torvaldsload-$(CONFIG_MIPS_XXS1500) += 0xffffffff80100000 3671da177e4SLinus Torvalds 3681da177e4SLinus Torvalds# 3691da177e4SLinus Torvalds# Cobalt Server 3701da177e4SLinus Torvalds# 3711da177e4SLinus Torvaldscore-$(CONFIG_MIPS_COBALT) += arch/mips/cobalt/ 37211ed6d5bSRalf Baechlecflags-$(CONFIG_MIPS_COBALT) += -Iinclude/asm-mips/mach-cobalt 3731da177e4SLinus Torvaldsload-$(CONFIG_MIPS_COBALT) += 0xffffffff80080000 3741da177e4SLinus Torvalds 3751da177e4SLinus Torvalds# 3761da177e4SLinus Torvalds# DECstation family 3771da177e4SLinus Torvalds# 3781da177e4SLinus Torvaldscore-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/ 3791da177e4SLinus Torvaldscflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec 3801da177e4SLinus Torvaldslibs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/ 3811da177e4SLinus Torvaldsload-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000 3821da177e4SLinus TorvaldsCLEAN_FILES += drivers/tc/lk201-map.c 3831da177e4SLinus Torvalds 3841da177e4SLinus Torvalds# 3851da177e4SLinus Torvalds# Galileo EV64120 Board 3861da177e4SLinus Torvalds# 3871da177e4SLinus Torvaldscore-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/ev64120/ 3881da177e4SLinus Torvaldscore-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/common/ 3891da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_EV64120) += -Iinclude/asm-mips/mach-ev64120 3901da177e4SLinus Torvaldsload-$(CONFIG_MIPS_EV64120) += 0xffffffff80100000 3911da177e4SLinus Torvalds 3921da177e4SLinus Torvalds# 3931da177e4SLinus Torvalds# Galileo EV96100 Board 3941da177e4SLinus Torvalds# 3951da177e4SLinus Torvaldscore-$(CONFIG_MIPS_EV96100) += arch/mips/galileo-boards/ev96100/ 3961da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_EV96100) += -Iinclude/asm-mips/mach-ev96100 3971da177e4SLinus Torvaldsload-$(CONFIG_MIPS_EV96100) += 0xffffffff80100000 3981da177e4SLinus Torvalds 3991da177e4SLinus Torvalds# 4001da177e4SLinus Torvalds# Globespan IVR eval board with QED 5231 CPU 4011da177e4SLinus Torvalds# 4021da177e4SLinus Torvaldscore-$(CONFIG_ITE_BOARD_GEN) += arch/mips/ite-boards/generic/ 4031da177e4SLinus Torvaldscore-$(CONFIG_MIPS_IVR) += arch/mips/ite-boards/ivr/ 4041da177e4SLinus Torvaldsload-$(CONFIG_MIPS_IVR) += 0xffffffff80100000 4051da177e4SLinus Torvalds 4061da177e4SLinus Torvalds# 4071da177e4SLinus Torvalds# ITE 8172 eval board with QED 5231 CPU 4081da177e4SLinus Torvalds# 4091da177e4SLinus Torvaldscore-$(CONFIG_MIPS_ITE8172) += arch/mips/ite-boards/qed-4n-s01b/ 4101da177e4SLinus Torvaldsload-$(CONFIG_MIPS_ITE8172) += 0xffffffff80100000 4111da177e4SLinus Torvalds 4121da177e4SLinus Torvalds# 4131da177e4SLinus Torvalds# For all MIPS, Inc. eval boards 4141da177e4SLinus Torvalds# 4151da177e4SLinus Torvaldscore-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/ 4161da177e4SLinus Torvalds 4171da177e4SLinus Torvalds# 4181da177e4SLinus Torvalds# MIPS Atlas board 4191da177e4SLinus Torvalds# 4201da177e4SLinus Torvaldscore-$(CONFIG_MIPS_ATLAS) += arch/mips/mips-boards/atlas/ 4211da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-atlas 4221da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-mips 4231da177e4SLinus Torvaldsload-$(CONFIG_MIPS_ATLAS) += 0xffffffff80100000 4241da177e4SLinus Torvalds 4251da177e4SLinus Torvalds# 4261da177e4SLinus Torvalds# MIPS Malta board 4271da177e4SLinus Torvalds# 4281da177e4SLinus Torvaldscore-$(CONFIG_MIPS_MALTA) += arch/mips/mips-boards/malta/ 4291da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_MALTA) += -Iinclude/asm-mips/mach-mips 4301da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 4311da177e4SLinus Torvalds 4321da177e4SLinus Torvalds# 4331da177e4SLinus Torvalds# MIPS SEAD board 4341da177e4SLinus Torvalds# 4351da177e4SLinus Torvaldscore-$(CONFIG_MIPS_SEAD) += arch/mips/mips-boards/sead/ 4361da177e4SLinus Torvaldsload-$(CONFIG_MIPS_SEAD) += 0xffffffff80100000 4371da177e4SLinus Torvalds 4381da177e4SLinus Torvalds# 439c78cbf49SRalf Baechle# MIPS SIM 440c78cbf49SRalf Baechle# 441c78cbf49SRalf Baechlecore-$(CONFIG_MIPS_SIM) += arch/mips/mips-boards/sim/ 442c78cbf49SRalf Baechlecflags-$(CONFIG_MIPS_SIM) += -Iinclude/asm-mips/mach-sim 443c78cbf49SRalf Baechleload-$(CONFIG_MIPS_SIM) += 0x80100000 444c78cbf49SRalf Baechle 445c78cbf49SRalf Baechle# 4461da177e4SLinus Torvalds# Momentum Ocelot board 4471da177e4SLinus Torvalds# 4481da177e4SLinus Torvalds# The Ocelot setup.o must be linked early - it does the ioremap() for the 4491da177e4SLinus Torvalds# mips_io_port_base. 4501da177e4SLinus Torvalds# 4511da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT) += arch/mips/gt64120/common/ \ 4521da177e4SLinus Torvalds arch/mips/gt64120/momenco_ocelot/ 4531da177e4SLinus Torvaldscflags-$(CONFIG_MOMENCO_OCELOT) += -Iinclude/asm-mips/mach-ocelot 4541da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT) += 0xffffffff80100000 4551da177e4SLinus Torvalds 4561da177e4SLinus Torvalds# 4571da177e4SLinus Torvalds# Momentum Ocelot-G board 4581da177e4SLinus Torvalds# 4591da177e4SLinus Torvalds# The Ocelot-G setup.o must be linked early - it does the ioremap() for the 4601da177e4SLinus Torvalds# mips_io_port_base. 4611da177e4SLinus Torvalds# 4621da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT_G) += arch/mips/momentum/ocelot_g/ 4631da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT_G) += 0xffffffff80100000 4641da177e4SLinus Torvalds 4651da177e4SLinus Torvalds# 4661da177e4SLinus Torvalds# Momentum Ocelot-C and -CS boards 4671da177e4SLinus Torvalds# 4681da177e4SLinus Torvalds# The Ocelot-C[S] setup.o must be linked early - it does the ioremap() for the 4691da177e4SLinus Torvalds# mips_io_port_base. 4701da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT_C) += arch/mips/momentum/ocelot_c/ 4711da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT_C) += 0xffffffff80100000 4721da177e4SLinus Torvalds 4731da177e4SLinus Torvalds# 4741da177e4SLinus Torvalds# PMC-Sierra Yosemite 4751da177e4SLinus Torvalds# 4761da177e4SLinus Torvaldscore-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ 4771da177e4SLinus Torvaldscflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite 4781da177e4SLinus Torvaldsload-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 4791da177e4SLinus Torvalds 48007119621SRalf Baechle# Qemu simulating MIPS32 4Kc 48107119621SRalf Baechle# 48207119621SRalf Baechlecore-$(CONFIG_QEMU) += arch/mips/qemu/ 48307119621SRalf Baechlecflags-$(CONFIG_QEMU) += -Iinclude/asm-mips/mach-qemu 48407119621SRalf Baechleload-$(CONFIG_QEMU) += 0xffffffff80010000 48507119621SRalf Baechle 4861da177e4SLinus Torvalds# 4871da177e4SLinus Torvalds# Momentum Ocelot-3 4881da177e4SLinus Torvalds# 4891da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_OCELOT_3) += arch/mips/momentum/ocelot_3/ 4901da177e4SLinus Torvaldscflags-$(CONFIG_MOMENCO_OCELOT_3) += -Iinclude/asm-mips/mach-ocelot3 4911da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_OCELOT_3) += 0xffffffff80100000 4921da177e4SLinus Torvalds 4931da177e4SLinus Torvalds# 4941da177e4SLinus Torvalds# Momentum Jaguar ATX 4951da177e4SLinus Torvalds# 4961da177e4SLinus Torvaldscore-$(CONFIG_MOMENCO_JAGUAR_ATX) += arch/mips/momentum/jaguar_atx/ 4971da177e4SLinus Torvaldscflags-$(CONFIG_MOMENCO_JAGUAR_ATX) += -Iinclude/asm-mips/mach-ja 4981da177e4SLinus Torvalds#ifdef CONFIG_JAGUAR_DMALOW 4991da177e4SLinus Torvalds#load-$(CONFIG_MOMENCO_JAGUAR_ATX) += 0xffffffff88000000 5001da177e4SLinus Torvalds#else 5011da177e4SLinus Torvaldsload-$(CONFIG_MOMENCO_JAGUAR_ATX) += 0xffffffff80100000 5021da177e4SLinus Torvalds#endif 5031da177e4SLinus Torvalds 5041da177e4SLinus Torvalds# 5051da177e4SLinus Torvalds# NEC DDB 5061da177e4SLinus Torvalds# 5071da177e4SLinus Torvaldscore-$(CONFIG_DDB5XXX_COMMON) += arch/mips/ddb5xxx/common/ 5081da177e4SLinus Torvalds 5091da177e4SLinus Torvalds# 5101da177e4SLinus Torvalds# NEC DDB Vrc-5074 5111da177e4SLinus Torvalds# 5121da177e4SLinus Torvaldscore-$(CONFIG_DDB5074) += arch/mips/ddb5xxx/ddb5074/ 5131da177e4SLinus Torvaldsload-$(CONFIG_DDB5074) += 0xffffffff80080000 5141da177e4SLinus Torvalds 5151da177e4SLinus Torvalds# 5161da177e4SLinus Torvalds# NEC DDB Vrc-5476 5171da177e4SLinus Torvalds# 5181da177e4SLinus Torvaldscore-$(CONFIG_DDB5476) += arch/mips/ddb5xxx/ddb5476/ 5191da177e4SLinus Torvaldsload-$(CONFIG_DDB5476) += 0xffffffff80080000 5201da177e4SLinus Torvalds 5211da177e4SLinus Torvalds# 5221da177e4SLinus Torvalds# NEC DDB Vrc-5477 5231da177e4SLinus Torvalds# 5241da177e4SLinus Torvaldscore-$(CONFIG_DDB5477) += arch/mips/ddb5xxx/ddb5477/ 5251da177e4SLinus Torvaldsload-$(CONFIG_DDB5477) += 0xffffffff80100000 5261da177e4SLinus Torvalds 5271da177e4SLinus Torvaldscore-$(CONFIG_LASAT) += arch/mips/lasat/ 5281da177e4SLinus Torvaldscflags-$(CONFIG_LASAT) += -Iinclude/asm-mips/mach-lasat 5291da177e4SLinus Torvaldsload-$(CONFIG_LASAT) += 0xffffffff80000000 5301da177e4SLinus Torvalds 5311da177e4SLinus Torvalds# 5321da177e4SLinus Torvalds# Common VR41xx 5331da177e4SLinus Torvalds# 5341da177e4SLinus Torvaldscore-$(CONFIG_MACH_VR41XX) += arch/mips/vr41xx/common/ 5351da177e4SLinus Torvaldscflags-$(CONFIG_MACH_VR41XX) += -Iinclude/asm-mips/mach-vr41xx 5361da177e4SLinus Torvalds 5371da177e4SLinus Torvalds# 5381da177e4SLinus Torvalds# NEC VR4133 5391da177e4SLinus Torvalds# 5401da177e4SLinus Torvaldscore-$(CONFIG_NEC_CMBVR4133) += arch/mips/vr41xx/nec-cmbvr4133/ 5411da177e4SLinus Torvaldsload-$(CONFIG_NEC_CMBVR4133) += 0xffffffff80100000 5421da177e4SLinus Torvalds 5431da177e4SLinus Torvalds# 5441da177e4SLinus Torvalds# ZAO Networks Capcella (VR4131) 5451da177e4SLinus Torvalds# 5461da177e4SLinus Torvaldsload-$(CONFIG_ZAO_CAPCELLA) += 0xffffffff80000000 5471da177e4SLinus Torvalds 5481da177e4SLinus Torvalds# 5491da177e4SLinus Torvalds# Victor MP-C303/304 (VR4122) 5501da177e4SLinus Torvalds# 5511da177e4SLinus Torvaldsload-$(CONFIG_VICTOR_MPC30X) += 0xffffffff80001000 5521da177e4SLinus Torvalds 5531da177e4SLinus Torvalds# 5541da177e4SLinus Torvalds# IBM WorkPad z50 (VR4121) 5551da177e4SLinus Torvalds# 5561da177e4SLinus Torvaldscore-$(CONFIG_IBM_WORKPAD) += arch/mips/vr41xx/ibm-workpad/ 5571da177e4SLinus Torvaldsload-$(CONFIG_IBM_WORKPAD) += 0xffffffff80004000 5581da177e4SLinus Torvalds 5591da177e4SLinus Torvalds# 5601da177e4SLinus Torvalds# CASIO CASSIPEIA E-55/65 (VR4111) 5611da177e4SLinus Torvalds# 5621da177e4SLinus Torvaldscore-$(CONFIG_CASIO_E55) += arch/mips/vr41xx/casio-e55/ 5631da177e4SLinus Torvaldsload-$(CONFIG_CASIO_E55) += 0xffffffff80004000 5641da177e4SLinus Torvalds 5651da177e4SLinus Torvalds# 56663b799f9SYoichi Yuasa# TANBAC VR4131 multichip module(TB0225) and TANBAC VR4131DIMM(TB0229) (VR4131) 5671da177e4SLinus Torvalds# 56863b799f9SYoichi Yuasaload-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000 5691da177e4SLinus Torvalds 5701da177e4SLinus Torvalds# 571bdf21b18SPete Popov# Common Philips PNX8550 572bdf21b18SPete Popov# 573bdf21b18SPete Popovcore-$(CONFIG_SOC_PNX8550) += arch/mips/philips/pnx8550/common/ 574bdf21b18SPete Popovcflags-$(CONFIG_SOC_PNX8550) += -Iinclude/asm-mips/mach-pnx8550 575bdf21b18SPete Popov 576bdf21b18SPete Popov# 577bdf21b18SPete Popov# Philips PNX8550 JBS board 578bdf21b18SPete Popov# 579bdf21b18SPete Popovlibs-$(CONFIG_PNX8550_JBS) += arch/mips/philips/pnx8550/jbs/ 580bdf21b18SPete Popov#cflags-$(CONFIG_PNX8550_JBS) += -Iinclude/asm-mips/mach-pnx8550 581bdf21b18SPete Popovload-$(CONFIG_PNX8550_JBS) += 0xffffffff80060000 582bdf21b18SPete Popov 583bdf21b18SPete Popov# 5841da177e4SLinus Torvalds# SGI IP22 (Indy/Indigo2) 5851da177e4SLinus Torvalds# 5861da177e4SLinus Torvalds# Set the load address to >= 0xffffffff88069000 if you want to leave space for 5871da177e4SLinus Torvalds# symmon, 0xffffffff80002000 for production kernels. Note that the value must 5881da177e4SLinus Torvalds# be aligned to a multiple of the kernel stack size or the handling of the 5891da177e4SLinus Torvalds# current variable will break so for 64-bit kernels we have to raise the start 5901da177e4SLinus Torvalds# address by 8kb. 5911da177e4SLinus Torvalds# 5921da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP22) += arch/mips/sgi-ip22/ 5931da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP22) += -Iinclude/asm-mips/mach-ip22 594875d43e7SRalf Baechleifdef CONFIG_32BIT 5951da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP22) += 0xffffffff88002000 5961da177e4SLinus Torvaldsendif 597875d43e7SRalf Baechleifdef CONFIG_64BIT 5981da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP22) += 0xffffffff88004000 5991da177e4SLinus Torvaldsendif 6001da177e4SLinus Torvalds 6011da177e4SLinus Torvalds# 6021da177e4SLinus Torvalds# SGI-IP27 (Origin200/2000) 6031da177e4SLinus Torvalds# 6041da177e4SLinus Torvalds# Set the load address to >= 0xc000000000300000 if you want to leave space for 6051da177e4SLinus Torvalds# symmon, 0xc00000000001c000 for production kernels. Note that the value must 6061da177e4SLinus Torvalds# be 16kb aligned or the handling of the current variable will break. 6071da177e4SLinus Torvalds# 6081da177e4SLinus Torvaldsifdef CONFIG_SGI_IP27 6091da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ 6101da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27 6111da177e4SLinus Torvaldsifdef CONFIG_BUILD_ELF64 6121da177e4SLinus Torvaldsifdef CONFIG_MAPPED_KERNEL 6131da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xc00000004001c000 6141da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 6151da177e4SLinus Torvaldsdataoffset-$(CONFIG_SGI_IP27) += 0x01000000 6161da177e4SLinus Torvaldselse 6171da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xa80000000001c000 6181da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 6191da177e4SLinus Torvaldsendif 6201da177e4SLinus Torvaldselse 6211da177e4SLinus Torvaldsifdef CONFIG_MAPPED_KERNEL 6221da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xffffffffc001c000 6231da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0xc000000080000000 6241da177e4SLinus Torvaldsdataoffset-$(CONFIG_SGI_IP27) += 0x01000000 6251da177e4SLinus Torvaldselse 6261da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xffffffff8001c000 6271da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0xa800000080000000 6281da177e4SLinus Torvaldsendif 6291da177e4SLinus Torvaldsendif 6301da177e4SLinus Torvaldsendif 6311da177e4SLinus Torvalds 6321da177e4SLinus Torvalds# 6331da177e4SLinus Torvalds# SGI-IP32 (O2) 6341da177e4SLinus Torvalds# 6351da177e4SLinus Torvalds# Set the load address to >= 80069000 if you want to leave space for symmon, 6361da177e4SLinus Torvalds# 0xffffffff80004000 for production kernels. Note that the value must be aligned to 6371da177e4SLinus Torvalds# a multiple of the kernel stack size or the handling of the current variable 6381da177e4SLinus Torvalds# will break. 6391da177e4SLinus Torvalds# 6401da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP32) += arch/mips/sgi-ip32/ 6411da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP32) += -Iinclude/asm-mips/mach-ip32 6421da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP32) += 0xffffffff80004000 6431da177e4SLinus Torvalds 6441da177e4SLinus Torvalds# 6451da177e4SLinus Torvalds# Sibyte SB1250 SOC 6461da177e4SLinus Torvalds# 6471da177e4SLinus Torvalds# This is a LIB so that it links at the end, and initcalls are later 6481da177e4SLinus Torvalds# the sequence; but it is built as an object so that modules don't get 6491da177e4SLinus Torvalds# removed (as happens, even if they have __initcall/module_init) 6501da177e4SLinus Torvalds# 6511da177e4SLinus Torvaldscore-$(CONFIG_SIBYTE_BCM112X) += arch/mips/sibyte/sb1250/ 652f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_BCM112X) += -Iinclude/asm-mips/mach-sibyte \ 653f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL 6541da177e4SLinus Torvalds 6551da177e4SLinus Torvaldscore-$(CONFIG_SIBYTE_SB1250) += arch/mips/sibyte/sb1250/ 656f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_SB1250) += -Iinclude/asm-mips/mach-sibyte \ 657f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL 658f137e463SAndrew Isaacson 659f137e463SAndrew Isaacsoncore-$(CONFIG_SIBYTE_BCM1x55) += arch/mips/sibyte/bcm1480/ 660f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_BCM1x55) += -Iinclude/asm-mips/mach-sibyte \ 661f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1480_ALL 662f137e463SAndrew Isaacson 663f137e463SAndrew Isaacsoncore-$(CONFIG_SIBYTE_BCM1x80) += arch/mips/sibyte/bcm1480/ 664f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_BCM1x80) += -Iinclude/asm-mips/mach-sibyte \ 665f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1480_ALL 6661da177e4SLinus Torvalds 6671da177e4SLinus Torvalds# 6681da177e4SLinus Torvalds# Sibyte BCM91120x (Carmel) board 6691da177e4SLinus Torvalds# Sibyte BCM91120C (CRhine) board 6701da177e4SLinus Torvalds# Sibyte BCM91125C (CRhone) board 6711da177e4SLinus Torvalds# Sibyte BCM91125E (Rhone) board 6721da177e4SLinus Torvalds# Sibyte SWARM board 6739a6dcea1SAndrew Isaacson# Sibyte BCM91x80 (BigSur) board 6741da177e4SLinus Torvalds# 6751da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ 6761da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000 6771da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ 6781da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000 6791da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ 6801da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000 6811da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ 6821da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000 6831da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ 6841da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000 6851da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ 6861da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000 6879a6dcea1SAndrew Isaacsonlibs-$(CONFIG_SIBYTE_BIGSUR) += arch/mips/sibyte/swarm/ 6889a6dcea1SAndrew Isaacsonload-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000 6891da177e4SLinus Torvalds 6901da177e4SLinus Torvalds# 6911da177e4SLinus Torvalds# SNI RM200 PCI 6921da177e4SLinus Torvalds# 6931da177e4SLinus Torvaldscore-$(CONFIG_SNI_RM200_PCI) += arch/mips/sni/ 6941da177e4SLinus Torvaldscflags-$(CONFIG_SNI_RM200_PCI) += -Iinclude/asm-mips/mach-rm200 6951da177e4SLinus Torvaldsload-$(CONFIG_SNI_RM200_PCI) += 0xffffffff80600000 6961da177e4SLinus Torvalds 6971da177e4SLinus Torvalds# 6981da177e4SLinus Torvalds# Toshiba JMR-TX3927 board 6991da177e4SLinus Torvalds# 7001da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/jmr3927/rbhma3100/ \ 7011da177e4SLinus Torvalds arch/mips/jmr3927/common/ 7025135b0cdSRalf Baechlecflags-$(CONFIG_TOSHIBA_JMR3927) += -Iinclude/asm-mips/mach-jmr3927 7031da177e4SLinus Torvaldsload-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000 7041da177e4SLinus Torvalds 7051da177e4SLinus Torvalds# 7061da177e4SLinus Torvalds# Toshiba RBTX4927 board or 7071da177e4SLinus Torvalds# Toshiba RBTX4937 board 7081da177e4SLinus Torvalds# 7091da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/toshiba_rbtx4927/ 7101da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/common/ 7111da177e4SLinus Torvaldsload-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 7121da177e4SLinus Torvalds 71323fbee9dSRalf Baechle# 71423fbee9dSRalf Baechle# Toshiba RBTX4938 board 71523fbee9dSRalf Baechle# 71623fbee9dSRalf Baechlecore-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/toshiba_rbtx4938/ 71723fbee9dSRalf Baechlecore-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/common/ 71823fbee9dSRalf Baechleload-$(CONFIG_TOSHIBA_RBTX4938) += 0xffffffff80100000 71923fbee9dSRalf Baechle 7201da177e4SLinus Torvaldscflags-y += -Iinclude/asm-mips/mach-generic 7211da177e4SLinus Torvaldsdrivers-$(CONFIG_PCI) += arch/mips/pci/ 7221da177e4SLinus Torvalds 723875d43e7SRalf Baechleifdef CONFIG_32BIT 7241da177e4SLinus Torvaldsifdef CONFIG_CPU_LITTLE_ENDIAN 7251da177e4SLinus TorvaldsJIFFIES = jiffies_64 7261da177e4SLinus Torvaldselse 7271da177e4SLinus TorvaldsJIFFIES = jiffies_64 + 4 7281da177e4SLinus Torvaldsendif 7291da177e4SLinus Torvaldselse 7301da177e4SLinus TorvaldsJIFFIES = jiffies_64 7311da177e4SLinus Torvaldsendif 7321da177e4SLinus Torvalds 7331da177e4SLinus TorvaldsAFLAGS += $(cflags-y) 7341da177e4SLinus TorvaldsCFLAGS += $(cflags-y) 7351da177e4SLinus Torvalds 7361da177e4SLinus TorvaldsLDFLAGS += -m $(ld-emul) 7371da177e4SLinus Torvalds 7381da177e4SLinus TorvaldsOBJCOPYFLAGS += --remove-section=.reginfo 7391da177e4SLinus Torvalds 7401da177e4SLinus Torvalds# 7411da177e4SLinus Torvalds# Choosing incompatible machines durings configuration will result in 7421da177e4SLinus Torvalds# error messages during linking. Select a default linkscript if 7431da177e4SLinus Torvalds# none has been choosen above. 7441da177e4SLinus Torvalds# 7451da177e4SLinus Torvalds 7461da177e4SLinus TorvaldsCPPFLAGS_vmlinux.lds := \ 7471da177e4SLinus Torvalds $(CFLAGS) \ 7481da177e4SLinus Torvalds -D"LOADADDR=$(load-y)" \ 7491da177e4SLinus Torvalds -D"JIFFIES=$(JIFFIES)" \ 7501da177e4SLinus Torvalds -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" 7511da177e4SLinus Torvalds 7521da177e4SLinus Torvaldshead-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o 7531da177e4SLinus Torvalds 7541da177e4SLinus Torvaldslibs-y += arch/mips/lib/ 755875d43e7SRalf Baechlelibs-$(CONFIG_32BIT) += arch/mips/lib-32/ 756875d43e7SRalf Baechlelibs-$(CONFIG_64BIT) += arch/mips/lib-64/ 7571da177e4SLinus Torvalds 7581da177e4SLinus Torvaldscore-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ 7591da177e4SLinus Torvalds 7601da177e4SLinus Torvaldsdrivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ 7611da177e4SLinus Torvalds 7621da177e4SLinus Torvaldsifdef CONFIG_LASAT 7631da177e4SLinus Torvaldsrom.bin rom.sw: vmlinux 7647c6b155fSSam Ravnborg $(Q)$(MAKE) $(build)=arch/mips/lasat/image $@ 7651da177e4SLinus Torvaldsendif 7661da177e4SLinus Torvalds 7671da177e4SLinus Torvalds# 7681da177e4SLinus Torvalds# Some machines like the Indy need 32-bit ELF binaries for booting purposes. 7691da177e4SLinus Torvalds# Other need ECOFF, so we build a 32-bit ELF binary for them which we then 7701da177e4SLinus Torvalds# convert to ECOFF using elf2ecoff. 7711da177e4SLinus Torvalds# 7721da177e4SLinus Torvaldsvmlinux.32: vmlinux 7731da177e4SLinus Torvalds $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@ 7741da177e4SLinus Torvalds 7751da177e4SLinus Torvalds# 7761da177e4SLinus Torvalds# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit 7771da177e4SLinus Torvalds# ELF files from 32-bit files by conversion. 7781da177e4SLinus Torvalds# 7791da177e4SLinus Torvaldsvmlinux.64: vmlinux 7801da177e4SLinus Torvalds $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 7811da177e4SLinus Torvalds 7821da177e4SLinus Torvaldsmakeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1) 7831da177e4SLinus Torvalds 7841da177e4SLinus Torvaldsifdef CONFIG_BOOT_ELF32 7851da177e4SLinus Torvaldsall: $(vmlinux-32) 7861da177e4SLinus Torvaldsendif 7871da177e4SLinus Torvalds 7881da177e4SLinus Torvaldsifdef CONFIG_BOOT_ELF64 7891da177e4SLinus Torvaldsall: $(vmlinux-64) 7901da177e4SLinus Torvaldsendif 7911da177e4SLinus Torvalds 792149f60b3SRalf Baechleifdef CONFIG_MIPS_ATLAS 793149f60b3SRalf Baechleall: vmlinux.srec 794149f60b3SRalf Baechleendif 795149f60b3SRalf Baechle 796149f60b3SRalf Baechleifdef CONFIG_MIPS_MALTA 797149f60b3SRalf Baechleall: vmlinux.srec 798149f60b3SRalf Baechleendif 799149f60b3SRalf Baechle 800149f60b3SRalf Baechleifdef CONFIG_MIPS_SEAD 801149f60b3SRalf Baechleall: vmlinux.srec 802149f60b3SRalf Baechleendif 803149f60b3SRalf Baechle 804154b500bSRalf Baechleifdef CONFIG_QEMU 805154b500bSRalf Baechleall: vmlinux.bin 806154b500bSRalf Baechleendif 807154b500bSRalf Baechle 8081da177e4SLinus Torvaldsifdef CONFIG_SNI_RM200_PCI 8091da177e4SLinus Torvaldsall: vmlinux.ecoff 8101da177e4SLinus Torvaldsendif 8111da177e4SLinus Torvalds 812154b500bSRalf Baechlevmlinux.bin: $(vmlinux-32) 813154b500bSRalf Baechle +@$(call makeboot,$@) 814154b500bSRalf Baechle 8151da177e4SLinus Torvaldsvmlinux.ecoff vmlinux.rm200: $(vmlinux-32) 8161da177e4SLinus Torvalds +@$(call makeboot,$@) 8171da177e4SLinus Torvalds 8181da177e4SLinus Torvaldsvmlinux.srec: $(vmlinux-32) 8191da177e4SLinus Torvalds +@$(call makeboot,$@) 8201da177e4SLinus Torvalds 8211da177e4SLinus TorvaldsCLEAN_FILES += vmlinux.ecoff \ 8221da177e4SLinus Torvalds vmlinux.srec \ 8231da177e4SLinus Torvalds vmlinux.rm200.tmp \ 8241da177e4SLinus Torvalds vmlinux.rm200 8251da177e4SLinus Torvalds 8261da177e4SLinus Torvaldsarchclean: 8271da177e4SLinus Torvalds @$(MAKE) $(clean)=arch/mips/boot 8281da177e4SLinus Torvalds @$(MAKE) $(clean)=arch/mips/lasat 8291da177e4SLinus Torvalds 830048eb582SSam RavnborgCLEAN_FILES += vmlinux.32 \ 8311da177e4SLinus Torvalds vmlinux.64 \ 8321da177e4SLinus Torvalds vmlinux.ecoff 833