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 Torvaldscflags-y := 161da177e4SLinus Torvalds 171da177e4SLinus Torvalds# 181da177e4SLinus Torvalds# Select the object file format to substitute into the linker script. 191da177e4SLinus Torvalds# 201da177e4SLinus Torvaldsifdef CONFIG_CPU_LITTLE_ENDIAN 211da177e4SLinus Torvalds32bit-tool-prefix = mipsel-linux- 221da177e4SLinus Torvalds64bit-tool-prefix = mips64el-linux- 231da177e4SLinus Torvalds32bit-bfd = elf32-tradlittlemips 241da177e4SLinus Torvalds64bit-bfd = elf64-tradlittlemips 251da177e4SLinus Torvalds32bit-emul = elf32ltsmip 261da177e4SLinus Torvalds64bit-emul = elf64ltsmip 271da177e4SLinus Torvaldselse 281da177e4SLinus Torvalds32bit-tool-prefix = mips-linux- 291da177e4SLinus Torvalds64bit-tool-prefix = mips64-linux- 301da177e4SLinus Torvalds32bit-bfd = elf32-tradbigmips 311da177e4SLinus Torvalds64bit-bfd = elf64-tradbigmips 321da177e4SLinus Torvalds32bit-emul = elf32btsmip 331da177e4SLinus Torvalds64bit-emul = elf64btsmip 341da177e4SLinus Torvaldsendif 351da177e4SLinus Torvalds 36875d43e7SRalf Baechleifdef CONFIG_32BIT 371da177e4SLinus Torvaldstool-prefix = $(32bit-tool-prefix) 381da177e4SLinus TorvaldsUTS_MACHINE := mips 391da177e4SLinus Torvaldsendif 40875d43e7SRalf Baechleifdef CONFIG_64BIT 411da177e4SLinus Torvaldstool-prefix = $(64bit-tool-prefix) 421da177e4SLinus TorvaldsUTS_MACHINE := mips64 431da177e4SLinus Torvaldsendif 441da177e4SLinus Torvalds 451da177e4SLinus Torvaldsifdef CONFIG_CROSSCOMPILE 461da177e4SLinus TorvaldsCROSS_COMPILE := $(tool-prefix) 471da177e4SLinus Torvaldsendif 481da177e4SLinus Torvalds 498145095cSRalf Baechleifdef CONFIG_32BIT 501da177e4SLinus Torvaldsld-emul = $(32bit-emul) 511da177e4SLinus Torvaldsvmlinux-32 = vmlinux 521da177e4SLinus Torvaldsvmlinux-64 = vmlinux.64 5359b3e8e9SRalf Baechle 5459b3e8e9SRalf Baechlecflags-y += -mabi=32 558145095cSRalf Baechleendif 561da177e4SLinus Torvalds 578145095cSRalf Baechleifdef CONFIG_64BIT 588145095cSRalf Baechleld-emul = $(64bit-emul) 598145095cSRalf Baechlevmlinux-32 = vmlinux.32 608145095cSRalf Baechlevmlinux-64 = vmlinux 618145095cSRalf Baechle 6259b3e8e9SRalf Baechlecflags-y += -mabi=64 6359b3e8e9SRalf Baechleendif 6459b3e8e9SRalf Baechle 658496b401SRalf Baechleall-$(CONFIG_BOOT_ELF32) := $(vmlinux-32) 668496b401SRalf Baechleall-$(CONFIG_BOOT_ELF64) := $(vmlinux-64) 671da177e4SLinus Torvalds 681da177e4SLinus Torvalds# 691da177e4SLinus Torvalds# GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel 701da177e4SLinus Torvalds# code since it only slows down the whole thing. At some point we might make 711da177e4SLinus Torvalds# use of global pointer optimizations but their use of $28 conflicts with 721da177e4SLinus Torvalds# the current pointer optimization. 731da177e4SLinus Torvalds# 741da177e4SLinus Torvalds# The DECStation requires an ECOFF kernel for remote booting, other MIPS 751da177e4SLinus Torvalds# machines may also. Since BFD is incredibly buggy with respect to 761da177e4SLinus Torvalds# crossformat linking we rely on the elf2ecoff tool for format conversion. 771da177e4SLinus Torvalds# 781da177e4SLinus Torvaldscflags-y += -G 0 -mno-abicalls -fno-pic -pipe 796218cf44SRalf Baechlecflags-y += -msoft-float 809f83d839SThiemo SeuferLDFLAGS_vmlinux += -G 0 -static -n -nostdlib 811da177e4SLinus TorvaldsMODFLAGS += -mlong-calls 821da177e4SLinus Torvalds 8372fbfb26SRalf Baechlecflags-y += -ffreestanding 8472fbfb26SRalf Baechle 85f425a6dcSThiemo Seufer# 86f425a6dcSThiemo Seufer# We explicitly add the endianness specifier if needed, this allows 87f425a6dcSThiemo Seufer# to compile kernels with a toolchain for the other endianness. We 88f425a6dcSThiemo Seufer# carefully avoid to add it redundantly because gcc 3.3/3.4 complains 89f425a6dcSThiemo Seufer# when fed the toolchain default! 90f425a6dcSThiemo Seufer# 91f9405412SRalf Baechle# Certain gcc versions upto gcc 4.1.1 (probably 4.2-subversion as of 9259c51591SMichael Opdenacker# 2006-10-10 don't properly change the predefined symbols if -EB / -EL 93f9405412SRalf Baechle# are used, so we kludge that here. A bug has been filed at 94f9405412SRalf Baechle# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29413. 95f9405412SRalf Baechle# 96f9405412SRalf Baechleundef-all += -UMIPSEB -U_MIPSEB -U__MIPSEB -U__MIPSEB__ 97f9405412SRalf Baechleundef-all += -UMIPSEL -U_MIPSEL -U__MIPSEL -U__MIPSEL__ 98f9405412SRalf Baechlepredef-be += -DMIPSEB -D_MIPSEB -D__MIPSEB -D__MIPSEB__ 99f9405412SRalf Baechlepredef-le += -DMIPSEL -D_MIPSEL -D__MIPSEL -D__MIPSEL__ 100f9405412SRalf Baechlecflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB $(undef-all) $(predef-be)) 101f9405412SRalf Baechlecflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL $(undef-all) $(predef-le)) 102f425a6dcSThiemo Seufer 1039693a853SFranck Bui-Huucflags-$(CONFIG_CPU_HAS_SMARTMIPS) += $(call cc-option,-msmartmips) 1049693a853SFranck Bui-Huu 1059007c9a2SRalf Baechlecflags-$(CONFIG_SB1XXX_CORELIS) += $(call cc-option,-mno-sched-prolog) \ 1069007c9a2SRalf Baechle -fno-omit-frame-pointer 1071da177e4SLinus Torvalds 1081da177e4SLinus Torvalds# 1091da177e4SLinus Torvalds# CPU-dependent compiler/assembler options for optimization. 1101da177e4SLinus Torvalds# 11159b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_R3000) += -march=r3000 11259b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_TX39XX) += -march=r3900 11359b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_R6000) += -march=r6000 -Wa,--trap 11459b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap 11559b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap 11659b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap 11759b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap 1182a21c730SFuxin Zhangcflags-$(CONFIG_CPU_LOONGSON2) += -march=r4600 -Wa,--trap 1199200c0b2SRalf Baechlecflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 12059b3e8e9SRalf Baechle -Wa,-mips32 -Wa,--trap 1219200c0b2SRalf Baechlecflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 12259b3e8e9SRalf Baechle -Wa,-mips32r2 -Wa,--trap 1239200c0b2SRalf Baechlecflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ 12459b3e8e9SRalf Baechle -Wa,-mips64 -Wa,--trap 1259200c0b2SRalf Baechlecflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ 12659b3e8e9SRalf Baechle -Wa,-mips64r2 -Wa,--trap 12759b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap 128c9e321e0SRalf Baechlecflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \ 1291da177e4SLinus Torvalds -Wa,--trap 130c9e321e0SRalf Baechlecflags-$(CONFIG_CPU_NEVADA) += $(call cc-option,-march=rm5200,-march=r5000) \ 1311da177e4SLinus Torvalds -Wa,--trap 13259b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_RM7000) += $(call cc-option,-march=rm7000,-march=r5000) \ 1331da177e4SLinus Torvalds -Wa,--trap 13459b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_RM9000) += $(call cc-option,-march=rm9000,-march=r5000) \ 1351da177e4SLinus Torvalds -Wa,--trap 13659b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_SB1) += $(call cc-option,-march=sb1,-march=r5000) \ 1371da177e4SLinus Torvalds -Wa,--trap 13859b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_R8000) += -march=r8000 -Wa,--trap 13959b3e8e9SRalf Baechlecflags-$(CONFIG_CPU_R10000) += $(call cc-option,-march=r10000,-march=r8000) \ 1401da177e4SLinus Torvalds -Wa,--trap 1411da177e4SLinus Torvalds 1421da177e4SLinus Torvaldsifdef CONFIG_CPU_SB1 1431da177e4SLinus Torvaldsifdef CONFIG_SB1_PASS_1_WORKAROUNDS 1441da177e4SLinus TorvaldsMODFLAGS += -msb1-pass1-workarounds 1451da177e4SLinus Torvaldsendif 1461da177e4SLinus Torvaldsendif 1471da177e4SLinus Torvalds 1481da177e4SLinus Torvalds# 1491da177e4SLinus Torvalds# Firmware support 1501da177e4SLinus Torvalds# 1512f56cfddSAurelien Jarnolibs-$(CONFIG_ARC) += arch/mips/fw/arc/ 152df78b5c8SAurelien Jarnolibs-$(CONFIG_CFE) += arch/mips/fw/cfe/ 1531da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CFE) += arch/mips/sibyte/cfe/ 1541da177e4SLinus Torvalds 1551da177e4SLinus Torvalds# 1561da177e4SLinus Torvalds# Board-dependent options and extra files 1571da177e4SLinus Torvalds# 1581da177e4SLinus Torvalds 1591da177e4SLinus Torvalds# 1601da177e4SLinus Torvalds# Acer PICA 61, Mips Magnum 4000 and Olivetti M700. 1611da177e4SLinus Torvalds# 1621da177e4SLinus Torvaldscore-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/ 1631da177e4SLinus Torvaldscflags-$(CONFIG_MACH_JAZZ) += -Iinclude/asm-mips/mach-jazz 1641da177e4SLinus Torvaldsload-$(CONFIG_MACH_JAZZ) += 0xffffffff80080000 1651da177e4SLinus Torvalds 1661da177e4SLinus Torvalds# 1671da177e4SLinus Torvalds# Common Alchemy Au1x00 stuff 1681da177e4SLinus Torvalds# 1691da177e4SLinus Torvaldscore-$(CONFIG_SOC_AU1X00) += arch/mips/au1000/common/ 1701da177e4SLinus Torvaldscflags-$(CONFIG_SOC_AU1X00) += -Iinclude/asm-mips/mach-au1x00 1711da177e4SLinus Torvalds 1721da177e4SLinus Torvalds# 1731da177e4SLinus Torvalds# AMD Alchemy Pb1000 eval board 1741da177e4SLinus Torvalds# 1751da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1000) += arch/mips/au1000/pb1000/ 1761da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1000) += -Iinclude/asm-mips/mach-pb1x00 1771da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1000) += 0xffffffff80100000 1781da177e4SLinus Torvalds 1791da177e4SLinus Torvalds# 1801da177e4SLinus Torvalds# AMD Alchemy Pb1100 eval board 1811da177e4SLinus Torvalds# 1821da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1100) += arch/mips/au1000/pb1100/ 1831da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1100) += -Iinclude/asm-mips/mach-pb1x00 1841da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1100) += 0xffffffff80100000 1851da177e4SLinus Torvalds 1861da177e4SLinus Torvalds# 1871da177e4SLinus Torvalds# AMD Alchemy Pb1500 eval board 1881da177e4SLinus Torvalds# 1891da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1500) += arch/mips/au1000/pb1500/ 1901da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1500) += -Iinclude/asm-mips/mach-pb1x00 1911da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1500) += 0xffffffff80100000 1921da177e4SLinus Torvalds 1931da177e4SLinus Torvalds# 1941da177e4SLinus Torvalds# AMD Alchemy Pb1550 eval board 1951da177e4SLinus Torvalds# 1961da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_PB1550) += arch/mips/au1000/pb1550/ 1971da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_PB1550) += -Iinclude/asm-mips/mach-pb1x00 1981da177e4SLinus Torvaldsload-$(CONFIG_MIPS_PB1550) += 0xffffffff80100000 1991da177e4SLinus Torvalds 2001da177e4SLinus Torvalds# 201e3ad1c23SPete Popov# AMD Alchemy Pb1200 eval board 202e3ad1c23SPete Popov# 203e3ad1c23SPete Popovlibs-$(CONFIG_MIPS_PB1200) += arch/mips/au1000/pb1200/ 204e3ad1c23SPete Popovcflags-$(CONFIG_MIPS_PB1200) += -Iinclude/asm-mips/mach-pb1x00 205e3ad1c23SPete Popovload-$(CONFIG_MIPS_PB1200) += 0xffffffff80100000 206e3ad1c23SPete Popov 207e3ad1c23SPete Popov# 2081da177e4SLinus Torvalds# AMD Alchemy Db1000 eval board 2091da177e4SLinus Torvalds# 2101da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1000) += arch/mips/au1000/db1x00/ 2111da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1000) += -Iinclude/asm-mips/mach-db1x00 2121da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1000) += 0xffffffff80100000 2131da177e4SLinus Torvalds 2141da177e4SLinus Torvalds# 2151da177e4SLinus Torvalds# AMD Alchemy Db1100 eval board 2161da177e4SLinus Torvalds# 2171da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1100) += arch/mips/au1000/db1x00/ 2181da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1100) += -Iinclude/asm-mips/mach-db1x00 2191da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1100) += 0xffffffff80100000 2201da177e4SLinus Torvalds 2211da177e4SLinus Torvalds# 2221da177e4SLinus Torvalds# AMD Alchemy Db1500 eval board 2231da177e4SLinus Torvalds# 2241da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1500) += arch/mips/au1000/db1x00/ 2251da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1500) += -Iinclude/asm-mips/mach-db1x00 2261da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1500) += 0xffffffff80100000 2271da177e4SLinus Torvalds 2281da177e4SLinus Torvalds# 2291da177e4SLinus Torvalds# AMD Alchemy Db1550 eval board 2301da177e4SLinus Torvalds# 2311da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_DB1550) += arch/mips/au1000/db1x00/ 2321da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_DB1550) += -Iinclude/asm-mips/mach-db1x00 2331da177e4SLinus Torvaldsload-$(CONFIG_MIPS_DB1550) += 0xffffffff80100000 2341da177e4SLinus Torvalds 2351da177e4SLinus Torvalds# 236e3ad1c23SPete Popov# AMD Alchemy Db1200 eval board 237e3ad1c23SPete Popov# 238e3ad1c23SPete Popovlibs-$(CONFIG_MIPS_DB1200) += arch/mips/au1000/pb1200/ 239e3ad1c23SPete Popovcflags-$(CONFIG_MIPS_DB1200) += -Iinclude/asm-mips/mach-db1x00 240e3ad1c23SPete Popovload-$(CONFIG_MIPS_DB1200) += 0xffffffff80100000 241e3ad1c23SPete Popov 242e3ad1c23SPete Popov# 2431da177e4SLinus Torvalds# AMD Alchemy Bosporus eval board 2441da177e4SLinus Torvalds# 2451da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_BOSPORUS) += arch/mips/au1000/db1x00/ 2461da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_BOSPORUS) += -Iinclude/asm-mips/mach-db1x00 2471da177e4SLinus Torvaldsload-$(CONFIG_MIPS_BOSPORUS) += 0xffffffff80100000 2481da177e4SLinus Torvalds 2491da177e4SLinus Torvalds# 2501da177e4SLinus Torvalds# AMD Alchemy Mirage eval board 2511da177e4SLinus Torvalds# 2521da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_MIRAGE) += arch/mips/au1000/db1x00/ 2531da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_MIRAGE) += -Iinclude/asm-mips/mach-db1x00 2541da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MIRAGE) += 0xffffffff80100000 2551da177e4SLinus Torvalds 2561da177e4SLinus Torvalds# 2571da177e4SLinus Torvalds# 4G-Systems eval board 2581da177e4SLinus Torvalds# 2591da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_MTX1) += arch/mips/au1000/mtx-1/ 2601da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MTX1) += 0xffffffff80100000 2611da177e4SLinus Torvalds 2621da177e4SLinus Torvalds# 2631da177e4SLinus Torvalds# MyCable eval board 2641da177e4SLinus Torvalds# 2651da177e4SLinus Torvaldslibs-$(CONFIG_MIPS_XXS1500) += arch/mips/au1000/xxs1500/ 2661da177e4SLinus Torvaldsload-$(CONFIG_MIPS_XXS1500) += 0xffffffff80100000 2671da177e4SLinus Torvalds 2681da177e4SLinus Torvalds# 2691da177e4SLinus Torvalds# Cobalt Server 2701da177e4SLinus Torvalds# 2711da177e4SLinus Torvaldscore-$(CONFIG_MIPS_COBALT) += arch/mips/cobalt/ 27211ed6d5bSRalf Baechlecflags-$(CONFIG_MIPS_COBALT) += -Iinclude/asm-mips/mach-cobalt 2731da177e4SLinus Torvaldsload-$(CONFIG_MIPS_COBALT) += 0xffffffff80080000 2741da177e4SLinus Torvalds 2751da177e4SLinus Torvalds# 2761da177e4SLinus Torvalds# DECstation family 2771da177e4SLinus Torvalds# 2781da177e4SLinus Torvaldscore-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/ 2791da177e4SLinus Torvaldscflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec 2801da177e4SLinus Torvaldslibs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/ 2811da177e4SLinus Torvaldsload-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000 2821da177e4SLinus TorvaldsCLEAN_FILES += drivers/tc/lk201-map.c 2831da177e4SLinus Torvalds 2841da177e4SLinus Torvalds# 285a240a469SMark.Zhan# Wind River PPMC Board (4KC + GT64120) 286a240a469SMark.Zhan# 287a240a469SMark.Zhancore-$(CONFIG_WR_PPMC) += arch/mips/gt64120/wrppmc/ 288a240a469SMark.Zhancflags-$(CONFIG_WR_PPMC) += -Iinclude/asm-mips/mach-wrppmc 289a240a469SMark.Zhanload-$(CONFIG_WR_PPMC) += 0xffffffff80100000 290a240a469SMark.Zhan 291a240a469SMark.Zhan# 29242d226c7SSongmao Tian# lemote fulong mini-PC board 29342d226c7SSongmao Tian# 29442d226c7SSongmao Tiancore-$(CONFIG_LEMOTE_FULONG) +=arch/mips/lemote/lm2e/ 29542d226c7SSongmao Tianload-$(CONFIG_LEMOTE_FULONG) +=0xffffffff80100000 29642d226c7SSongmao Tiancflags-$(CONFIG_LEMOTE_FULONG) += -Iinclude/asm-mips/mach-lemote 29742d226c7SSongmao Tian 29842d226c7SSongmao Tian# 2991da177e4SLinus Torvalds# For all MIPS, Inc. eval boards 3001da177e4SLinus Torvalds# 3011da177e4SLinus Torvaldscore-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/ 3021da177e4SLinus Torvalds 3031da177e4SLinus Torvalds# 3041da177e4SLinus Torvalds# MIPS Atlas board 3051da177e4SLinus Torvalds# 3061da177e4SLinus Torvaldscore-$(CONFIG_MIPS_ATLAS) += arch/mips/mips-boards/atlas/ 3071da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-atlas 3081da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_ATLAS) += -Iinclude/asm-mips/mach-mips 3091da177e4SLinus Torvaldsload-$(CONFIG_MIPS_ATLAS) += 0xffffffff80100000 3108496b401SRalf Baechleall-$(CONFIG_MIPS_ATLAS) := vmlinux.srec 3111da177e4SLinus Torvalds 3121da177e4SLinus Torvalds# 3131da177e4SLinus Torvalds# MIPS Malta board 3141da177e4SLinus Torvalds# 3151da177e4SLinus Torvaldscore-$(CONFIG_MIPS_MALTA) += arch/mips/mips-boards/malta/ 3161da177e4SLinus Torvaldscflags-$(CONFIG_MIPS_MALTA) += -Iinclude/asm-mips/mach-mips 3171da177e4SLinus Torvaldsload-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 3188496b401SRalf Baechleall-$(CONFIG_MIPS_MALTA) := vmlinux.srec 3191da177e4SLinus Torvalds 3201da177e4SLinus Torvalds# 3211da177e4SLinus Torvalds# MIPS SEAD board 3221da177e4SLinus Torvalds# 3231da177e4SLinus Torvaldscore-$(CONFIG_MIPS_SEAD) += arch/mips/mips-boards/sead/ 32409f451bfSMaciej W. Rozyckicflags-$(CONFIG_MIPS_SEAD) += -Iinclude/asm-mips/mach-mips 3251da177e4SLinus Torvaldsload-$(CONFIG_MIPS_SEAD) += 0xffffffff80100000 3268496b401SRalf Baechleall-$(CONFIG_MIPS_SEAD) := vmlinux.srec 3271da177e4SLinus Torvalds 3281da177e4SLinus Torvalds# 329c78cbf49SRalf Baechle# MIPS SIM 330c78cbf49SRalf Baechle# 331f6e2373aSRalf Baechlecore-$(CONFIG_MIPS_SIM) += arch/mips/mipssim/ 3329a0f3b73SYoichi Yuasacflags-$(CONFIG_MIPS_SIM) += -Iinclude/asm-mips/mach-mipssim 333c78cbf49SRalf Baechleload-$(CONFIG_MIPS_SIM) += 0x80100000 334c78cbf49SRalf Baechle 335c78cbf49SRalf Baechle# 3369267a30dSMarc St-Jean# PMC-Sierra MSP SOCs 3379267a30dSMarc St-Jean# 3389267a30dSMarc St-Jeancore-$(CONFIG_PMC_MSP) += arch/mips/pmc-sierra/msp71xx/ 3399267a30dSMarc St-Jeancflags-$(CONFIG_PMC_MSP) += -Iinclude/asm-mips/pmc-sierra/msp71xx \ 3409267a30dSMarc St-Jean -mno-branch-likely 3419267a30dSMarc St-Jeanload-$(CONFIG_PMC_MSP) += 0xffffffff80100000 3429267a30dSMarc St-Jean 3439267a30dSMarc St-Jean# 3441da177e4SLinus Torvalds# PMC-Sierra Yosemite 3451da177e4SLinus Torvalds# 3461da177e4SLinus Torvaldscore-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ 3471da177e4SLinus Torvaldscflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite 3481da177e4SLinus Torvaldsload-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 3491da177e4SLinus Torvalds 35014cd8015SRalf Baechle# 35107119621SRalf Baechle# Qemu simulating MIPS32 4Kc 35207119621SRalf Baechle# 35307119621SRalf Baechlecore-$(CONFIG_QEMU) += arch/mips/qemu/ 35407119621SRalf Baechlecflags-$(CONFIG_QEMU) += -Iinclude/asm-mips/mach-qemu 35507119621SRalf Baechleload-$(CONFIG_QEMU) += 0xffffffff80010000 3568496b401SRalf Baechleall-$(CONFIG_QEMU) := vmlinux.bin 35707119621SRalf Baechle 3581da177e4SLinus Torvalds# 35935189fadSRalf Baechle# Basler eXcite 36035189fadSRalf Baechle# 36135189fadSRalf Baechlecore-$(CONFIG_BASLER_EXCITE) += arch/mips/basler/excite/ 36235189fadSRalf Baechlecflags-$(CONFIG_BASLER_EXCITE) += -Iinclude/asm-mips/mach-excite 36335189fadSRalf Baechleload-$(CONFIG_BASLER_EXCITE) += 0x80100000 36435189fadSRalf Baechle 36535189fadSRalf Baechle# 3661f21d2bdSBrian Murphy# LASAT platforms 3671f21d2bdSBrian Murphy# 3681f21d2bdSBrian Murphycore-$(CONFIG_LASAT) += arch/mips/lasat/ 3691f21d2bdSBrian Murphycflags-$(CONFIG_LASAT) += -Iinclude/asm-mips/mach-lasat 3701f21d2bdSBrian Murphyload-$(CONFIG_LASAT) += 0xffffffff80000000 3711f21d2bdSBrian Murphy 3721f21d2bdSBrian Murphy# 3731da177e4SLinus Torvalds# Common VR41xx 3741da177e4SLinus Torvalds# 3751da177e4SLinus Torvaldscore-$(CONFIG_MACH_VR41XX) += arch/mips/vr41xx/common/ 3761da177e4SLinus Torvaldscflags-$(CONFIG_MACH_VR41XX) += -Iinclude/asm-mips/mach-vr41xx 3771da177e4SLinus Torvalds 3781da177e4SLinus Torvalds# 3791da177e4SLinus Torvalds# NEC VR4133 3801da177e4SLinus Torvalds# 3811da177e4SLinus Torvaldscore-$(CONFIG_NEC_CMBVR4133) += arch/mips/vr41xx/nec-cmbvr4133/ 3821da177e4SLinus Torvaldsload-$(CONFIG_NEC_CMBVR4133) += 0xffffffff80100000 3831da177e4SLinus Torvalds 3841da177e4SLinus Torvalds# 3851da177e4SLinus Torvalds# ZAO Networks Capcella (VR4131) 3861da177e4SLinus Torvalds# 3871da177e4SLinus Torvaldsload-$(CONFIG_ZAO_CAPCELLA) += 0xffffffff80000000 3881da177e4SLinus Torvalds 3891da177e4SLinus Torvalds# 3901da177e4SLinus Torvalds# Victor MP-C303/304 (VR4122) 3911da177e4SLinus Torvalds# 3921da177e4SLinus Torvaldsload-$(CONFIG_VICTOR_MPC30X) += 0xffffffff80001000 3931da177e4SLinus Torvalds 3941da177e4SLinus Torvalds# 3951da177e4SLinus Torvalds# IBM WorkPad z50 (VR4121) 3961da177e4SLinus Torvalds# 3971da177e4SLinus Torvaldscore-$(CONFIG_IBM_WORKPAD) += arch/mips/vr41xx/ibm-workpad/ 3981da177e4SLinus Torvaldsload-$(CONFIG_IBM_WORKPAD) += 0xffffffff80004000 3991da177e4SLinus Torvalds 4001da177e4SLinus Torvalds# 4011da177e4SLinus Torvalds# CASIO CASSIPEIA E-55/65 (VR4111) 4021da177e4SLinus Torvalds# 4031da177e4SLinus Torvaldscore-$(CONFIG_CASIO_E55) += arch/mips/vr41xx/casio-e55/ 4041da177e4SLinus Torvaldsload-$(CONFIG_CASIO_E55) += 0xffffffff80004000 4051da177e4SLinus Torvalds 4061da177e4SLinus Torvalds# 40763b799f9SYoichi Yuasa# TANBAC VR4131 multichip module(TB0225) and TANBAC VR4131DIMM(TB0229) (VR4131) 4081da177e4SLinus Torvalds# 40963b799f9SYoichi Yuasaload-$(CONFIG_TANBAC_TB022X) += 0xffffffff80000000 4101da177e4SLinus Torvalds 4111da177e4SLinus Torvalds# 412bdf21b18SPete Popov# Common Philips PNX8550 413bdf21b18SPete Popov# 414bdf21b18SPete Popovcore-$(CONFIG_SOC_PNX8550) += arch/mips/philips/pnx8550/common/ 415bdf21b18SPete Popovcflags-$(CONFIG_SOC_PNX8550) += -Iinclude/asm-mips/mach-pnx8550 416bdf21b18SPete Popov 417bdf21b18SPete Popov# 418bdf21b18SPete Popov# Philips PNX8550 JBS board 419bdf21b18SPete Popov# 420bdf21b18SPete Popovlibs-$(CONFIG_PNX8550_JBS) += arch/mips/philips/pnx8550/jbs/ 421bdf21b18SPete Popov#cflags-$(CONFIG_PNX8550_JBS) += -Iinclude/asm-mips/mach-pnx8550 422bdf21b18SPete Popovload-$(CONFIG_PNX8550_JBS) += 0xffffffff80060000 423bdf21b18SPete Popov 424f0647a52SVitaly Wool# Philips PNX8550 STB810 board 425f0647a52SVitaly Wool# 426f0647a52SVitaly Woollibs-$(CONFIG_PNX8550_STB810) += arch/mips/philips/pnx8550/stb810/ 427f0647a52SVitaly Woolload-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000 428f0647a52SVitaly Wool 429355c471fSdmitry pervushin# NEC EMMA2RH boards 430355c471fSdmitry pervushin# 431355c471fSdmitry pervushincore-$(CONFIG_EMMA2RH) += arch/mips/emma2rh/common/ 432355c471fSdmitry pervushincflags-$(CONFIG_EMMA2RH) += -Iinclude/asm-mips/mach-emma2rh 433355c471fSdmitry pervushin 434355c471fSdmitry pervushin# NEC EMMA2RH Mark-eins 435355c471fSdmitry pervushincore-$(CONFIG_MARKEINS) += arch/mips/emma2rh/markeins/ 436355c471fSdmitry pervushinload-$(CONFIG_MARKEINS) += 0xffffffff88100000 437355c471fSdmitry pervushin 438bdf21b18SPete Popov# 4391da177e4SLinus Torvalds# SGI IP22 (Indy/Indigo2) 4401da177e4SLinus Torvalds# 4411da177e4SLinus Torvalds# Set the load address to >= 0xffffffff88069000 if you want to leave space for 4421da177e4SLinus Torvalds# symmon, 0xffffffff80002000 for production kernels. Note that the value must 4431da177e4SLinus Torvalds# be aligned to a multiple of the kernel stack size or the handling of the 4441da177e4SLinus Torvalds# current variable will break so for 64-bit kernels we have to raise the start 4451da177e4SLinus Torvalds# address by 8kb. 4461da177e4SLinus Torvalds# 4471da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP22) += arch/mips/sgi-ip22/ 4481da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP22) += -Iinclude/asm-mips/mach-ip22 449875d43e7SRalf Baechleifdef CONFIG_32BIT 4501da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP22) += 0xffffffff88002000 4511da177e4SLinus Torvaldsendif 452875d43e7SRalf Baechleifdef CONFIG_64BIT 4531da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP22) += 0xffffffff88004000 4541da177e4SLinus Torvaldsendif 4551da177e4SLinus Torvalds 4561da177e4SLinus Torvalds# 4571da177e4SLinus Torvalds# SGI-IP27 (Origin200/2000) 4581da177e4SLinus Torvalds# 4591da177e4SLinus Torvalds# Set the load address to >= 0xc000000000300000 if you want to leave space for 4601da177e4SLinus Torvalds# symmon, 0xc00000000001c000 for production kernels. Note that the value must 4611da177e4SLinus Torvalds# be 16kb aligned or the handling of the current variable will break. 4621da177e4SLinus Torvalds# 4631da177e4SLinus Torvaldsifdef CONFIG_SGI_IP27 4641da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ 4651da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27 4661da177e4SLinus Torvaldsifdef CONFIG_MAPPED_KERNEL 4671da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xc00000004001c000 4681da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 4691da177e4SLinus Torvaldsdataoffset-$(CONFIG_SGI_IP27) += 0x01000000 4701da177e4SLinus Torvaldselse 4711da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP27) += 0xa80000000001c000 4721da177e4SLinus TorvaldsOBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 4731da177e4SLinus Torvaldsendif 4741da177e4SLinus Torvaldsendif 4751da177e4SLinus Torvalds 4761da177e4SLinus Torvalds# 4771da177e4SLinus Torvalds# SGI-IP32 (O2) 4781da177e4SLinus Torvalds# 4791da177e4SLinus Torvalds# Set the load address to >= 80069000 if you want to leave space for symmon, 4801da177e4SLinus Torvalds# 0xffffffff80004000 for production kernels. Note that the value must be aligned to 4811da177e4SLinus Torvalds# a multiple of the kernel stack size or the handling of the current variable 4821da177e4SLinus Torvalds# will break. 4831da177e4SLinus Torvalds# 4841da177e4SLinus Torvaldscore-$(CONFIG_SGI_IP32) += arch/mips/sgi-ip32/ 4851da177e4SLinus Torvaldscflags-$(CONFIG_SGI_IP32) += -Iinclude/asm-mips/mach-ip32 4861da177e4SLinus Torvaldsload-$(CONFIG_SGI_IP32) += 0xffffffff80004000 4871da177e4SLinus Torvalds 4881da177e4SLinus Torvalds# 489d619f38fSMark Mason# Sibyte SB1250/BCM1480 SOC 4901da177e4SLinus Torvalds# 4911da177e4SLinus Torvalds# This is a LIB so that it links at the end, and initcalls are later 4921da177e4SLinus Torvalds# the sequence; but it is built as an object so that modules don't get 4931da177e4SLinus Torvalds# removed (as happens, even if they have __initcall/module_init) 4941da177e4SLinus Torvalds# 4951da177e4SLinus Torvaldscore-$(CONFIG_SIBYTE_BCM112X) += arch/mips/sibyte/sb1250/ 496d619f38fSMark Masoncore-$(CONFIG_SIBYTE_BCM112X) += arch/mips/sibyte/common/ 497f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_BCM112X) += -Iinclude/asm-mips/mach-sibyte \ 498f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL 4991da177e4SLinus Torvalds 5001da177e4SLinus Torvaldscore-$(CONFIG_SIBYTE_SB1250) += arch/mips/sibyte/sb1250/ 501d619f38fSMark Masoncore-$(CONFIG_SIBYTE_SB1250) += arch/mips/sibyte/common/ 502f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_SB1250) += -Iinclude/asm-mips/mach-sibyte \ 503f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL 504f137e463SAndrew Isaacson 505f137e463SAndrew Isaacsoncore-$(CONFIG_SIBYTE_BCM1x55) += arch/mips/sibyte/bcm1480/ 506d619f38fSMark Masoncore-$(CONFIG_SIBYTE_BCM1x55) += arch/mips/sibyte/common/ 507f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_BCM1x55) += -Iinclude/asm-mips/mach-sibyte \ 508f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1480_ALL 509f137e463SAndrew Isaacson 510f137e463SAndrew Isaacsoncore-$(CONFIG_SIBYTE_BCM1x80) += arch/mips/sibyte/bcm1480/ 511d619f38fSMark Masoncore-$(CONFIG_SIBYTE_BCM1x80) += arch/mips/sibyte/common/ 512f137e463SAndrew Isaacsoncflags-$(CONFIG_SIBYTE_BCM1x80) += -Iinclude/asm-mips/mach-sibyte \ 513f137e463SAndrew Isaacson -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1480_ALL 5141da177e4SLinus Torvalds 5151da177e4SLinus Torvalds# 5161da177e4SLinus Torvalds# Sibyte BCM91120x (Carmel) board 5171da177e4SLinus Torvalds# Sibyte BCM91120C (CRhine) board 5181da177e4SLinus Torvalds# Sibyte BCM91125C (CRhone) board 5191da177e4SLinus Torvalds# Sibyte BCM91125E (Rhone) board 5201da177e4SLinus Torvalds# Sibyte SWARM board 5219a6dcea1SAndrew Isaacson# Sibyte BCM91x80 (BigSur) board 5221da177e4SLinus Torvalds# 5231da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ 5241da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000 5251da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ 5261da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000 5271da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ 5281da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000 5291da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ 5301da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000 5311da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ 5321da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000 5331da177e4SLinus Torvaldslibs-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ 5341da177e4SLinus Torvaldsload-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000 5359a6dcea1SAndrew Isaacsonlibs-$(CONFIG_SIBYTE_BIGSUR) += arch/mips/sibyte/swarm/ 5369a6dcea1SAndrew Isaacsonload-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000 5371da177e4SLinus Torvalds 5381da177e4SLinus Torvalds# 5391c0c13ebSAurelien Jarno# Broadcom BCM47XX boards 5401c0c13ebSAurelien Jarno# 5411c0c13ebSAurelien Jarnocore-$(CONFIG_BCM47XX) += arch/mips/bcm47xx/ 5421c0c13ebSAurelien Jarnocflags-$(CONFIG_BCM47XX) += -Iinclude/asm-mips/mach-bcm47xx 5431c0c13ebSAurelien Jarnoload-$(CONFIG_BCM47XX) := 0xffffffff80001000 5441c0c13ebSAurelien Jarno 5451c0c13ebSAurelien Jarno# 54614b36af4SThomas Bogendoerfer# SNI RM 5471da177e4SLinus Torvalds# 54814b36af4SThomas Bogendoerfercore-$(CONFIG_SNI_RM) += arch/mips/sni/ 54914b36af4SThomas Bogendoerfercflags-$(CONFIG_SNI_RM) += -Iinclude/asm-mips/mach-rm 55014b36af4SThomas Bogendoerferload-$(CONFIG_SNI_RM) += 0xffffffff80600000 5518496b401SRalf Baechleall-$(CONFIG_SNI_RM) := vmlinux.ecoff 5521da177e4SLinus Torvalds 5531da177e4SLinus Torvalds# 5541da177e4SLinus Torvalds# Toshiba JMR-TX3927 board 5551da177e4SLinus Torvalds# 5561da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/jmr3927/rbhma3100/ \ 5571da177e4SLinus Torvalds arch/mips/jmr3927/common/ 5585135b0cdSRalf Baechlecflags-$(CONFIG_TOSHIBA_JMR3927) += -Iinclude/asm-mips/mach-jmr3927 5591da177e4SLinus Torvaldsload-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000 5601da177e4SLinus Torvalds 5611da177e4SLinus Torvalds# 5621da177e4SLinus Torvalds# Toshiba RBTX4927 board or 5631da177e4SLinus Torvalds# Toshiba RBTX4937 board 5641da177e4SLinus Torvalds# 5651da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/toshiba_rbtx4927/ 5661da177e4SLinus Torvaldscore-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/common/ 5675ddcb3c3SAtsushi Nemotocflags-$(CONFIG_TOSHIBA_RBTX4927) += -Iinclude/asm-mips/mach-tx49xx 5681da177e4SLinus Torvaldsload-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 5691da177e4SLinus Torvalds 57023fbee9dSRalf Baechle# 57123fbee9dSRalf Baechle# Toshiba RBTX4938 board 57223fbee9dSRalf Baechle# 57323fbee9dSRalf Baechlecore-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/toshiba_rbtx4938/ 57423fbee9dSRalf Baechlecore-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/common/ 5755ddcb3c3SAtsushi Nemotocflags-$(CONFIG_TOSHIBA_RBTX4938) += -Iinclude/asm-mips/mach-tx49xx 57623fbee9dSRalf Baechleload-$(CONFIG_TOSHIBA_RBTX4938) += 0xffffffff80100000 57723fbee9dSRalf Baechle 5781da177e4SLinus Torvaldscflags-y += -Iinclude/asm-mips/mach-generic 5791da177e4SLinus Torvaldsdrivers-$(CONFIG_PCI) += arch/mips/pci/ 5801da177e4SLinus Torvalds 581875d43e7SRalf Baechleifdef CONFIG_32BIT 5821da177e4SLinus Torvaldsifdef CONFIG_CPU_LITTLE_ENDIAN 5831da177e4SLinus TorvaldsJIFFIES = jiffies_64 5841da177e4SLinus Torvaldselse 5851da177e4SLinus TorvaldsJIFFIES = jiffies_64 + 4 5861da177e4SLinus Torvaldsendif 5871da177e4SLinus Torvaldselse 5881da177e4SLinus TorvaldsJIFFIES = jiffies_64 5891da177e4SLinus Torvaldsendif 5901da177e4SLinus Torvalds 591adff90a9SFranck Bui-Huu# 592adff90a9SFranck Bui-Huu# Automatically detect the build format. By default we choose 593adff90a9SFranck Bui-Huu# the elf format according to the load address. 594adff90a9SFranck Bui-Huu# We can always force a build with a 64-bits symbol format by 595054c51b4SFranck Bui-Huu# passing 'KBUILD_SYM32=no' option to the make's command line. 596adff90a9SFranck Bui-Huu# 597adff90a9SFranck Bui-Huuifdef CONFIG_64BIT 598054c51b4SFranck Bui-Huu ifndef KBUILD_SYM32 599adff90a9SFranck Bui-Huu ifeq ($(shell expr $(load-y) \< 0xffffffff80000000), 0) 600054c51b4SFranck Bui-Huu KBUILD_SYM32 = y 601adff90a9SFranck Bui-Huu endif 602adff90a9SFranck Bui-Huu endif 603adff90a9SFranck Bui-Huu 604054c51b4SFranck Bui-Huu ifeq ($(KBUILD_SYM32), y) 605e58d95abSFranck Bui-Huu ifeq ($(call cc-option-yn,-msym32), y) 606054c51b4SFranck Bui-Huu cflags-y += -msym32 -DKBUILD_64BIT_SYM32 607adff90a9SFranck Bui-Huu endif 608adff90a9SFranck Bui-Huu endif 609e58d95abSFranck Bui-Huuendif 610adff90a9SFranck Bui-Huu 6111da177e4SLinus TorvaldsAFLAGS += $(cflags-y) 6129267a30dSMarc St-JeanCFLAGS += $(cflags-y) \ 6139267a30dSMarc St-Jean -D"VMLINUX_LOAD_ADDRESS=$(load-y)" 6141da177e4SLinus Torvalds 6151da177e4SLinus TorvaldsLDFLAGS += -m $(ld-emul) 6161da177e4SLinus Torvalds 61759b3e8e9SRalf Baechleifdef CONFIG_MIPS 61859b3e8e9SRalf BaechleCHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \ 61948c35b2dSAlexey Dobriyan egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ 6202a2c3e45SAtsushi Nemoto sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/") 6212a2c3e45SAtsushi Nemotoifdef CONFIG_64BIT 6222a2c3e45SAtsushi NemotoCHECKFLAGS += -m64 6232a2c3e45SAtsushi Nemotoendif 62459b3e8e9SRalf Baechleendif 62559b3e8e9SRalf Baechle 6261da177e4SLinus TorvaldsOBJCOPYFLAGS += --remove-section=.reginfo 6271da177e4SLinus Torvalds 6281da177e4SLinus Torvalds# 6291da177e4SLinus Torvalds# Choosing incompatible machines durings configuration will result in 6301da177e4SLinus Torvalds# error messages during linking. Select a default linkscript if 6311da177e4SLinus Torvalds# none has been choosen above. 6321da177e4SLinus Torvalds# 6331da177e4SLinus Torvalds 6341da177e4SLinus TorvaldsCPPFLAGS_vmlinux.lds := \ 6351da177e4SLinus Torvalds $(CFLAGS) \ 6361da177e4SLinus Torvalds -D"LOADADDR=$(load-y)" \ 6371da177e4SLinus Torvalds -D"JIFFIES=$(JIFFIES)" \ 6381da177e4SLinus Torvalds -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)" 6391da177e4SLinus Torvalds 6401da177e4SLinus Torvaldshead-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o 6411da177e4SLinus Torvalds 6421da177e4SLinus Torvaldslibs-y += arch/mips/lib/ 6431da177e4SLinus Torvalds 6441da177e4SLinus Torvaldscore-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ 6451da177e4SLinus Torvalds 6461da177e4SLinus Torvaldsdrivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ 6471da177e4SLinus Torvalds 6481f21d2bdSBrian Murphyifdef CONFIG_LASAT 6491f21d2bdSBrian Murphyrom.bin rom.sw: vmlinux 6501f21d2bdSBrian Murphy $(Q)$(MAKE) $(build)=arch/mips/lasat/image $@ 6511f21d2bdSBrian Murphyendif 6521f21d2bdSBrian Murphy 6531da177e4SLinus Torvalds# 6541da177e4SLinus Torvalds# Some machines like the Indy need 32-bit ELF binaries for booting purposes. 6551da177e4SLinus Torvalds# Other need ECOFF, so we build a 32-bit ELF binary for them which we then 6561da177e4SLinus Torvalds# convert to ECOFF using elf2ecoff. 6571da177e4SLinus Torvalds# 6581da177e4SLinus Torvaldsvmlinux.32: vmlinux 6591da177e4SLinus Torvalds $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@ 6601da177e4SLinus Torvalds 6611da177e4SLinus Torvalds# 6621da177e4SLinus Torvalds# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit 6631da177e4SLinus Torvalds# ELF files from 32-bit files by conversion. 6641da177e4SLinus Torvalds# 6651da177e4SLinus Torvaldsvmlinux.64: vmlinux 6661da177e4SLinus Torvalds $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 6671da177e4SLinus Torvalds 6681da177e4SLinus Torvaldsmakeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1) 6691da177e4SLinus Torvalds 6708496b401SRalf Baechleall: $(all-y) 6711da177e4SLinus Torvalds 672154b500bSRalf Baechlevmlinux.bin: $(vmlinux-32) 673154b500bSRalf Baechle +@$(call makeboot,$@) 674154b500bSRalf Baechle 675b8828d3eSYoichi Yuasavmlinux.ecoff: $(vmlinux-32) 6761da177e4SLinus Torvalds +@$(call makeboot,$@) 6771da177e4SLinus Torvalds 6781da177e4SLinus Torvaldsvmlinux.srec: $(vmlinux-32) 6791da177e4SLinus Torvalds +@$(call makeboot,$@) 6801da177e4SLinus Torvalds 6811da177e4SLinus TorvaldsCLEAN_FILES += vmlinux.ecoff \ 682b8828d3eSYoichi Yuasa vmlinux.srec 6831da177e4SLinus Torvalds 684e48ce6b8SAtsushi Nemotoarchprepare: 685e48ce6b8SAtsushi Nemotoifdef CONFIG_MIPS32_N32 686e48ce6b8SAtsushi Nemoto @echo ' Checking missing-syscalls for N32' 687e48ce6b8SAtsushi Nemoto $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=n32" 688e48ce6b8SAtsushi Nemotoendif 689e48ce6b8SAtsushi Nemotoifdef CONFIG_MIPS32_O32 690e48ce6b8SAtsushi Nemoto @echo ' Checking missing-syscalls for O32' 691e48ce6b8SAtsushi Nemoto $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=32" 692e48ce6b8SAtsushi Nemotoendif 693e48ce6b8SAtsushi Nemoto 6941da177e4SLinus Torvaldsarchclean: 6951da177e4SLinus Torvalds @$(MAKE) $(clean)=arch/mips/boot 6961f21d2bdSBrian Murphy @$(MAKE) $(clean)=arch/mips/lasat 6971da177e4SLinus Torvalds 698e7865765SRalf Baechledefine archhelp 699e7865765SRalf Baechle echo ' vmlinux.ecoff - ECOFF boot image' 700e7865765SRalf Baechle echo ' vmlinux.bin - Raw binary boot image' 701e7865765SRalf Baechle echo ' vmlinux.srec - SREC boot image' 702e7865765SRalf Baechle echo 703e7865765SRalf Baechle echo ' These will be default as apropriate for a configured platform.' 704e7865765SRalf Baechleendef 705e7865765SRalf Baechle 706048eb582SSam RavnborgCLEAN_FILES += vmlinux.32 \ 7071da177e4SLinus Torvalds vmlinux.64 \ 7081da177e4SLinus Torvalds vmlinux.ecoff 709