18c2ecf20Sopenharmony_ci# 28c2ecf20Sopenharmony_ci# This file is subject to the terms and conditions of the GNU General Public 38c2ecf20Sopenharmony_ci# License. See the file "COPYING" in the main directory of this archive 48c2ecf20Sopenharmony_ci# for more details. 58c2ecf20Sopenharmony_ci# 68c2ecf20Sopenharmony_ci# Copyright (C) 1994, 95, 96, 2003 by Ralf Baechle 78c2ecf20Sopenharmony_ci# DECStation modifications by Paul M. Antoine, 1996 88c2ecf20Sopenharmony_ci# Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki 98c2ecf20Sopenharmony_ci# 108c2ecf20Sopenharmony_ci# This file is included by the global makefile so that you can add your own 118c2ecf20Sopenharmony_ci# architecture-specific flags and dependencies. Remember to do have actions 128c2ecf20Sopenharmony_ci# for "archclean" cleaning up for this architecture. 138c2ecf20Sopenharmony_ci# 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciarchscripts: scripts_basic 168c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/mips/tools elf-entry 178c2ecf20Sopenharmony_ciifeq ($(CONFIG_CPU_LOONGSON3_WORKAROUNDS),y) 188c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/mips/tools loongson3-llsc-check 198c2ecf20Sopenharmony_ciendif 208c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/mips/boot/tools relocs 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciKBUILD_DEFCONFIG := 32r2el_defconfig 238c2ecf20Sopenharmony_ciKBUILD_DTBS := dtbs 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci# 268c2ecf20Sopenharmony_ci# Select the object file format to substitute into the linker script. 278c2ecf20Sopenharmony_ci# 288c2ecf20Sopenharmony_ciifdef CONFIG_CPU_LITTLE_ENDIAN 298c2ecf20Sopenharmony_ci32bit-tool-archpref = mipsel 308c2ecf20Sopenharmony_ci64bit-tool-archpref = mips64el 318c2ecf20Sopenharmony_ci32bit-bfd = elf32-tradlittlemips 328c2ecf20Sopenharmony_ci64bit-bfd = elf64-tradlittlemips 338c2ecf20Sopenharmony_ci32bit-emul = elf32ltsmip 348c2ecf20Sopenharmony_ci64bit-emul = elf64ltsmip 358c2ecf20Sopenharmony_cielse 368c2ecf20Sopenharmony_ci32bit-tool-archpref = mips 378c2ecf20Sopenharmony_ci64bit-tool-archpref = mips64 388c2ecf20Sopenharmony_ci32bit-bfd = elf32-tradbigmips 398c2ecf20Sopenharmony_ci64bit-bfd = elf64-tradbigmips 408c2ecf20Sopenharmony_ci32bit-emul = elf32btsmip 418c2ecf20Sopenharmony_ci64bit-emul = elf64btsmip 428c2ecf20Sopenharmony_ciendif 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciifdef CONFIG_32BIT 458c2ecf20Sopenharmony_citool-archpref = $(32bit-tool-archpref) 468c2ecf20Sopenharmony_ciUTS_MACHINE := mips 478c2ecf20Sopenharmony_ciendif 488c2ecf20Sopenharmony_ciifdef CONFIG_64BIT 498c2ecf20Sopenharmony_citool-archpref = $(64bit-tool-archpref) 508c2ecf20Sopenharmony_ciUTS_MACHINE := mips64 518c2ecf20Sopenharmony_ciendif 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciifneq ($(SUBARCH),$(ARCH)) 548c2ecf20Sopenharmony_ci ifeq ($(CROSS_COMPILE),) 558c2ecf20Sopenharmony_ci CROSS_COMPILE := $(call cc-cross-prefix, $(tool-archpref)-linux- $(tool-archpref)-linux-gnu- $(tool-archpref)-unknown-linux-gnu-) 568c2ecf20Sopenharmony_ci endif 578c2ecf20Sopenharmony_ciendif 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ciifdef CONFIG_FUNCTION_GRAPH_TRACER 608c2ecf20Sopenharmony_ci ifndef KBUILD_MCOUNT_RA_ADDRESS 618c2ecf20Sopenharmony_ci ifeq ($(call cc-option-yn,-mmcount-ra-address), y) 628c2ecf20Sopenharmony_ci cflags-y += -mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS 638c2ecf20Sopenharmony_ci endif 648c2ecf20Sopenharmony_ci endif 658c2ecf20Sopenharmony_ciendif 668c2ecf20Sopenharmony_cicflags-y += $(call cc-option, -mno-check-zero-division) 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ciifdef CONFIG_32BIT 698c2ecf20Sopenharmony_cild-emul = $(32bit-emul) 708c2ecf20Sopenharmony_civmlinux-32 = vmlinux 718c2ecf20Sopenharmony_civmlinux-64 = vmlinux.64 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_cicflags-y += -mabi=32 748c2ecf20Sopenharmony_ciendif 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciifdef CONFIG_64BIT 778c2ecf20Sopenharmony_cild-emul = $(64bit-emul) 788c2ecf20Sopenharmony_civmlinux-32 = vmlinux.32 798c2ecf20Sopenharmony_civmlinux-64 = vmlinux 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_cicflags-y += -mabi=64 828c2ecf20Sopenharmony_ciendif 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ciall-$(CONFIG_BOOT_ELF32) := $(vmlinux-32) 858c2ecf20Sopenharmony_ciall-$(CONFIG_BOOT_ELF64) := $(vmlinux-64) 868c2ecf20Sopenharmony_ciall-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci# 898c2ecf20Sopenharmony_ci# GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel 908c2ecf20Sopenharmony_ci# code since it only slows down the whole thing. At some point we might make 918c2ecf20Sopenharmony_ci# use of global pointer optimizations but their use of $28 conflicts with 928c2ecf20Sopenharmony_ci# the current pointer optimization. 938c2ecf20Sopenharmony_ci# 948c2ecf20Sopenharmony_ci# The DECStation requires an ECOFF kernel for remote booting, other MIPS 958c2ecf20Sopenharmony_ci# machines may also. Since BFD is incredibly buggy with respect to 968c2ecf20Sopenharmony_ci# crossformat linking we rely on the elf2ecoff tool for format conversion. 978c2ecf20Sopenharmony_ci# 988c2ecf20Sopenharmony_cicflags-y += -G 0 -mno-abicalls -fno-pic -pipe 998c2ecf20Sopenharmony_cicflags-y += -msoft-float 1008c2ecf20Sopenharmony_ciLDFLAGS_vmlinux += -G 0 -static -n -nostdlib 1018c2ecf20Sopenharmony_ciKBUILD_AFLAGS_MODULE += -mlong-calls 1028c2ecf20Sopenharmony_ciKBUILD_CFLAGS_MODULE += -mlong-calls 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ciifeq ($(CONFIG_RELOCATABLE),y) 1058c2ecf20Sopenharmony_ciLDFLAGS_vmlinux += --emit-relocs 1068c2ecf20Sopenharmony_ciendif 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci# 1098c2ecf20Sopenharmony_ci# pass -msoft-float to GAS if it supports it. However on newer binutils 1108c2ecf20Sopenharmony_ci# (specifically newer than 2.24.51.20140728) we then also need to explicitly 1118c2ecf20Sopenharmony_ci# set ".set hardfloat" in all files which manipulate floating point registers. 1128c2ecf20Sopenharmony_ci# 1138c2ecf20Sopenharmony_ciifneq ($(call as-option,-Wa$(comma)-msoft-float,),) 1148c2ecf20Sopenharmony_ci cflags-y += -DGAS_HAS_SET_HARDFLOAT -Wa,-msoft-float 1158c2ecf20Sopenharmony_ciendif 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_cicflags-y += -ffreestanding 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_BIG_ENDIAN) += -EB 1208c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -EL 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_cicflags-$(CONFIG_SB1XXX_CORELIS) += $(call cc-option,-mno-sched-prolog) \ 1238c2ecf20Sopenharmony_ci -fno-omit-frame-pointer 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci# Some distribution-specific toolchains might pass the -fstack-check 1268c2ecf20Sopenharmony_ci# option during the build, which adds a simple stack-probe at the beginning 1278c2ecf20Sopenharmony_ci# of every function. This stack probe is to ensure that there is enough 1288c2ecf20Sopenharmony_ci# stack space, else a SEGV is generated. This is not desirable for MIPS 1298c2ecf20Sopenharmony_ci# as kernel stacks are small, placed in unmapped virtual memory, and do not 1308c2ecf20Sopenharmony_ci# grow when overflowed. Especially on SGI IP27 platforms, this check will 1318c2ecf20Sopenharmony_ci# lead to a NULL pointer dereference in _raw_spin_lock_irq. 1328c2ecf20Sopenharmony_ci# 1338c2ecf20Sopenharmony_ci# In disassembly, this stack probe appears at the top of a function as: 1348c2ecf20Sopenharmony_ci# sd zero,<offset>(sp) 1358c2ecf20Sopenharmony_ci# Where <offset> is a negative value. 1368c2ecf20Sopenharmony_ci# 1378c2ecf20Sopenharmony_cicflags-y += -fno-stack-check 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci# binutils from v2.35 when built with --enable-mips-fix-loongson3-llsc=yes, 1408c2ecf20Sopenharmony_ci# supports an -mfix-loongson3-llsc flag which emits a sync prior to each ll 1418c2ecf20Sopenharmony_ci# instruction to work around a CPU bug (see __SYNC_loongson3_war in asm/sync.h 1428c2ecf20Sopenharmony_ci# for a description). 1438c2ecf20Sopenharmony_ci# 1448c2ecf20Sopenharmony_ci# We disable this in order to prevent the assembler meddling with the 1458c2ecf20Sopenharmony_ci# instruction that labels refer to, ie. if we label an ll instruction: 1468c2ecf20Sopenharmony_ci# 1478c2ecf20Sopenharmony_ci# 1: ll v0, 0(a0) 1488c2ecf20Sopenharmony_ci# 1498c2ecf20Sopenharmony_ci# ...then with the assembler fix applied the label may actually point at a sync 1508c2ecf20Sopenharmony_ci# instruction inserted by the assembler, and if we were using the label in an 1518c2ecf20Sopenharmony_ci# exception table the table would no longer contain the address of the ll 1528c2ecf20Sopenharmony_ci# instruction. 1538c2ecf20Sopenharmony_ci# 1548c2ecf20Sopenharmony_ci# Avoid this by explicitly disabling that assembler behaviour. 1558c2ecf20Sopenharmony_ci# 1568c2ecf20Sopenharmony_cicflags-y += $(call as-option,-Wa$(comma)-mno-fix-loongson3-llsc,) 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci# 1598c2ecf20Sopenharmony_ci# CPU-dependent compiler/assembler options for optimization. 1608c2ecf20Sopenharmony_ci# 1618c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_R3000) += -march=r3000 1628c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_TX39XX) += -march=r3900 1638c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap 1648c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap 1658c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap 1668c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS32_R1) += -march=mips32 -Wa,--trap 1678c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS32_R2) += -march=mips32r2 -Wa,--trap 1688c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS32_R5) += -march=mips32r5 -Wa,--trap -modd-spreg 1698c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS32_R6) += -march=mips32r6 -Wa,--trap -modd-spreg 1708c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS64_R1) += -march=mips64 -Wa,--trap 1718c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS64_R2) += -march=mips64r2 -Wa,--trap 1728c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS64_R5) += -march=mips64r5 -Wa,--trap 1738c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_MIPS64_R6) += -march=mips64r6 -Wa,--trap 1748c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_P5600) += -march=p5600 -Wa,--trap -modd-spreg 1758c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap 1768c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_R5500) += $(call cc-option,-march=r5500,-march=r5000) \ 1778c2ecf20Sopenharmony_ci -Wa,--trap 1788c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_NEVADA) += $(call cc-option,-march=rm5200,-march=r5000) \ 1798c2ecf20Sopenharmony_ci -Wa,--trap 1808c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_RM7000) += $(call cc-option,-march=rm7000,-march=r5000) \ 1818c2ecf20Sopenharmony_ci -Wa,--trap 1828c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_SB1) += $(call cc-option,-march=sb1,-march=r5000) \ 1838c2ecf20Sopenharmony_ci -Wa,--trap 1848c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_SB1) += $(call cc-option,-mno-mdmx) 1858c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_SB1) += $(call cc-option,-mno-mips3d) 1868c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_R10000) += $(call cc-option,-march=r10000,-march=r8000) \ 1878c2ecf20Sopenharmony_ci -Wa,--trap 1888c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_CAVIUM_OCTEON) += $(call cc-option,-march=octeon) -Wa,--trap 1898c2ecf20Sopenharmony_ciifeq (,$(findstring march=octeon, $(cflags-$(CONFIG_CPU_CAVIUM_OCTEON)))) 1908c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_CAVIUM_OCTEON) += -Wa,-march=octeon 1918c2ecf20Sopenharmony_ciendif 1928c2ecf20Sopenharmony_cicflags-$(CONFIG_CAVIUM_CN63XXP1) += -Wa,-mfix-cn63xxp1 1938c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_BMIPS) += -march=mips32 -Wa,-mips32 -Wa,--trap 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,) 1968c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,) 1978c2ecf20Sopenharmony_cicflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,) 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci# For smartmips configurations, there are hundreds of warnings due to ISA overrides 2008c2ecf20Sopenharmony_ci# in assembly and header files. smartmips is only supported for MIPS32r1 onwards 2018c2ecf20Sopenharmony_ci# and there is no support for 64-bit. Various '.set mips2' or '.set mips3' or 2028c2ecf20Sopenharmony_ci# similar directives in the kernel will spam the build logs with the following warnings: 2038c2ecf20Sopenharmony_ci# Warning: the `smartmips' extension requires MIPS32 revision 1 or greater 2048c2ecf20Sopenharmony_ci# or 2058c2ecf20Sopenharmony_ci# Warning: the 64-bit MIPS architecture does not support the `smartmips' extension 2068c2ecf20Sopenharmony_ci# Pass -Wa,--no-warn to disable all assembler warnings until the kernel code has 2078c2ecf20Sopenharmony_ci# been fixed properly. 2088c2ecf20Sopenharmony_cimips-cflags := $(cflags-y) 2098c2ecf20Sopenharmony_ciifeq ($(CONFIG_CPU_HAS_SMARTMIPS),y) 2108c2ecf20Sopenharmony_cismartmips-ase := $(call cc-option-yn,$(mips-cflags) -msmartmips) 2118c2ecf20Sopenharmony_cicflags-$(smartmips-ase) += -msmartmips -Wa,--no-warn 2128c2ecf20Sopenharmony_ciendif 2138c2ecf20Sopenharmony_ciifeq ($(CONFIG_CPU_MICROMIPS),y) 2148c2ecf20Sopenharmony_cimicromips-ase := $(call cc-option-yn,$(mips-cflags) -mmicromips) 2158c2ecf20Sopenharmony_cicflags-$(micromips-ase) += -mmicromips 2168c2ecf20Sopenharmony_ciendif 2178c2ecf20Sopenharmony_ciifeq ($(CONFIG_CPU_HAS_MSA),y) 2188c2ecf20Sopenharmony_citoolchain-msa := $(call cc-option-yn,$(mips-cflags) -mhard-float -mfp64 -Wa$(comma)-mmsa) 2198c2ecf20Sopenharmony_cicflags-$(toolchain-msa) += -DTOOLCHAIN_SUPPORTS_MSA 2208c2ecf20Sopenharmony_ciendif 2218c2ecf20Sopenharmony_citoolchain-virt := $(call cc-option-yn,$(mips-cflags) -mvirt) 2228c2ecf20Sopenharmony_cicflags-$(toolchain-virt) += -DTOOLCHAIN_SUPPORTS_VIRT 2238c2ecf20Sopenharmony_ci# For -mmicromips, use -Wa,-fatal-warnings to catch unsupported -mxpa which 2248c2ecf20Sopenharmony_ci# only warns 2258c2ecf20Sopenharmony_cixpa-cflags-y := $(mips-cflags) 2268c2ecf20Sopenharmony_cixpa-cflags-$(micromips-ase) += -mmicromips -Wa$(comma)-fatal-warnings 2278c2ecf20Sopenharmony_citoolchain-xpa := $(call cc-option-yn,$(xpa-cflags-y) -mxpa) 2288c2ecf20Sopenharmony_cicflags-$(toolchain-xpa) += -DTOOLCHAIN_SUPPORTS_XPA 2298c2ecf20Sopenharmony_citoolchain-crc := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mcrc) 2308c2ecf20Sopenharmony_cicflags-$(toolchain-crc) += -DTOOLCHAIN_SUPPORTS_CRC 2318c2ecf20Sopenharmony_citoolchain-dsp := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mdsp) 2328c2ecf20Sopenharmony_cicflags-$(toolchain-dsp) += -DTOOLCHAIN_SUPPORTS_DSP 2338c2ecf20Sopenharmony_citoolchain-ginv := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mginv) 2348c2ecf20Sopenharmony_cicflags-$(toolchain-ginv) += -DTOOLCHAIN_SUPPORTS_GINV 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci# 2378c2ecf20Sopenharmony_ci# Firmware support 2388c2ecf20Sopenharmony_ci# 2398c2ecf20Sopenharmony_cilibs-$(CONFIG_FW_ARC) += arch/mips/fw/arc/ 2408c2ecf20Sopenharmony_cilibs-$(CONFIG_FW_CFE) += arch/mips/fw/cfe/ 2418c2ecf20Sopenharmony_cilibs-$(CONFIG_FW_SNIPROM) += arch/mips/fw/sni/ 2428c2ecf20Sopenharmony_cilibs-y += arch/mips/fw/lib/ 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci# 2458c2ecf20Sopenharmony_ci# Kernel compression 2468c2ecf20Sopenharmony_ci# 2478c2ecf20Sopenharmony_ciifdef CONFIG_SYS_SUPPORTS_ZBOOT 2488c2ecf20Sopenharmony_ciCOMPRESSION_FNAME = vmlinuz 2498c2ecf20Sopenharmony_cielse 2508c2ecf20Sopenharmony_ciCOMPRESSION_FNAME = vmlinux 2518c2ecf20Sopenharmony_ciendif 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci# 2548c2ecf20Sopenharmony_ci# Board-dependent options and extra files 2558c2ecf20Sopenharmony_ci# 2568c2ecf20Sopenharmony_ciinclude arch/mips/Kbuild.platforms 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ciifdef CONFIG_PHYSICAL_START 2598c2ecf20Sopenharmony_ciload-y = $(CONFIG_PHYSICAL_START) 2608c2ecf20Sopenharmony_ciendif 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_cientry-y = $(shell $(objtree)/arch/mips/tools/elf-entry vmlinux) 2638c2ecf20Sopenharmony_cicflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic 2648c2ecf20Sopenharmony_cidrivers-$(CONFIG_PCI) += arch/mips/pci/ 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci# 2678c2ecf20Sopenharmony_ci# Automatically detect the build format. By default we choose 2688c2ecf20Sopenharmony_ci# the elf format according to the load address. 2698c2ecf20Sopenharmony_ci# We can always force a build with a 64-bits symbol format by 2708c2ecf20Sopenharmony_ci# passing 'KBUILD_SYM32=no' option to the make's command line. 2718c2ecf20Sopenharmony_ci# 2728c2ecf20Sopenharmony_ciifdef CONFIG_64BIT 2738c2ecf20Sopenharmony_ci ifndef KBUILD_SYM32 2748c2ecf20Sopenharmony_ci ifeq ($(shell expr $(load-y) \< 0xffffffff80000000), 0) 2758c2ecf20Sopenharmony_ci KBUILD_SYM32 = y 2768c2ecf20Sopenharmony_ci endif 2778c2ecf20Sopenharmony_ci endif 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci ifeq ($(KBUILD_SYM32)$(call cc-option-yn,-msym32), yy) 2808c2ecf20Sopenharmony_ci cflags-y += -msym32 -DKBUILD_64BIT_SYM32 2818c2ecf20Sopenharmony_ci else 2828c2ecf20Sopenharmony_ci ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y) 2838c2ecf20Sopenharmony_ci $(error CONFIG_CPU_DADDI_WORKAROUNDS unsupported without -msym32) 2848c2ecf20Sopenharmony_ci endif 2858c2ecf20Sopenharmony_ci endif 2868c2ecf20Sopenharmony_ciendif 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_ci# When linking a 32-bit executable the LLVM linker cannot cope with a 2898c2ecf20Sopenharmony_ci# 32-bit load address that has been sign-extended to 64 bits. Simply 2908c2ecf20Sopenharmony_ci# remove the upper 32 bits then, as it is safe to do so with other 2918c2ecf20Sopenharmony_ci# linkers. 2928c2ecf20Sopenharmony_ciifdef CONFIG_64BIT 2938c2ecf20Sopenharmony_ci load-ld = $(load-y) 2948c2ecf20Sopenharmony_cielse 2958c2ecf20Sopenharmony_ci load-ld = $(subst 0xffffffff,0x,$(load-y)) 2968c2ecf20Sopenharmony_ciendif 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ciKBUILD_AFLAGS += $(cflags-y) 2998c2ecf20Sopenharmony_ciKBUILD_CFLAGS += $(cflags-y) 3008c2ecf20Sopenharmony_ciKBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(load-y) -DLINKER_LOAD_ADDRESS=$(load-ld) 3018c2ecf20Sopenharmony_ciKBUILD_CPPFLAGS += -DDATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0) 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_cibootvars-y = VMLINUX_LOAD_ADDRESS=$(load-y) \ 3048c2ecf20Sopenharmony_ci LINKER_LOAD_ADDRESS=$(load-ld) \ 3058c2ecf20Sopenharmony_ci VMLINUX_ENTRY_ADDRESS=$(entry-y) \ 3068c2ecf20Sopenharmony_ci PLATFORM="$(platform-y)" \ 3078c2ecf20Sopenharmony_ci ITS_INPUTS="$(its-y)" 3088c2ecf20Sopenharmony_ciifdef CONFIG_32BIT 3098c2ecf20Sopenharmony_cibootvars-y += ADDR_BITS=32 3108c2ecf20Sopenharmony_ciendif 3118c2ecf20Sopenharmony_ciifdef CONFIG_64BIT 3128c2ecf20Sopenharmony_cibootvars-y += ADDR_BITS=64 3138c2ecf20Sopenharmony_ciendif 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ci# This is required to get dwarf unwinding tables into .debug_frame 3168c2ecf20Sopenharmony_ci# instead of .eh_frame so we don't discard them. 3178c2ecf20Sopenharmony_ciKBUILD_CFLAGS += -fno-asynchronous-unwind-tables 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ciKBUILD_LDFLAGS += -m $(ld-emul) 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_ciifdef CONFIG_MIPS 3228c2ecf20Sopenharmony_ciCHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ 3238c2ecf20Sopenharmony_ci egrep -vw '__GNUC_(MINOR_|PATCHLEVEL_)?_' | \ 3248c2ecf20Sopenharmony_ci sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g') 3258c2ecf20Sopenharmony_ciendif 3268c2ecf20Sopenharmony_ci 3278c2ecf20Sopenharmony_ciOBJCOPYFLAGS += --remove-section=.reginfo 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_cihead-y := arch/mips/kernel/head.o 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_cilibs-y += arch/mips/lib/ 3328c2ecf20Sopenharmony_cilibs-$(CONFIG_MIPS_FP_SUPPORT) += arch/mips/math-emu/ 3338c2ecf20Sopenharmony_ci 3348c2ecf20Sopenharmony_ci# See arch/mips/Kbuild for content of core part of the kernel 3358c2ecf20Sopenharmony_cicore-y += arch/mips/ 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_cidrivers-y += arch/mips/crypto/ 3388c2ecf20Sopenharmony_cidrivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ci# suspend and hibernation support 3418c2ecf20Sopenharmony_cidrivers-$(CONFIG_PM) += arch/mips/power/ 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ci# boot image targets (arch/mips/boot/) 3448c2ecf20Sopenharmony_ciboot-y := vmlinux.bin 3458c2ecf20Sopenharmony_ciboot-y += vmlinux.ecoff 3468c2ecf20Sopenharmony_ciboot-y += vmlinux.srec 3478c2ecf20Sopenharmony_ciifeq ($(shell expr $(load-y) \< 0xffffffff80000000 2> /dev/null), 0) 3488c2ecf20Sopenharmony_ciboot-y += uImage 3498c2ecf20Sopenharmony_ciboot-y += uImage.bin 3508c2ecf20Sopenharmony_ciboot-y += uImage.bz2 3518c2ecf20Sopenharmony_ciboot-y += uImage.gz 3528c2ecf20Sopenharmony_ciboot-y += uImage.lzma 3538c2ecf20Sopenharmony_ciboot-y += uImage.lzo 3548c2ecf20Sopenharmony_ciendif 3558c2ecf20Sopenharmony_ciboot-y += vmlinux.itb 3568c2ecf20Sopenharmony_ciboot-y += vmlinux.gz.itb 3578c2ecf20Sopenharmony_ciboot-y += vmlinux.bz2.itb 3588c2ecf20Sopenharmony_ciboot-y += vmlinux.lzma.itb 3598c2ecf20Sopenharmony_ciboot-y += vmlinux.lzo.itb 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_ci# compressed boot image targets (arch/mips/boot/compressed/) 3628c2ecf20Sopenharmony_cibootz-y := vmlinuz 3638c2ecf20Sopenharmony_cibootz-y += vmlinuz.bin 3648c2ecf20Sopenharmony_cibootz-y += vmlinuz.ecoff 3658c2ecf20Sopenharmony_cibootz-y += vmlinuz.srec 3668c2ecf20Sopenharmony_ciifeq ($(shell expr $(zload-y) \< 0xffffffff80000000 2> /dev/null), 0) 3678c2ecf20Sopenharmony_cibootz-y += uzImage.bin 3688c2ecf20Sopenharmony_ciendif 3698c2ecf20Sopenharmony_ci 3708c2ecf20Sopenharmony_ci# 3718c2ecf20Sopenharmony_ci# Some machines like the Indy need 32-bit ELF binaries for booting purposes. 3728c2ecf20Sopenharmony_ci# Other need ECOFF, so we build a 32-bit ELF binary for them which we then 3738c2ecf20Sopenharmony_ci# convert to ECOFF using elf2ecoff. 3748c2ecf20Sopenharmony_ci# 3758c2ecf20Sopenharmony_ciquiet_cmd_32 = OBJCOPY $@ 3768c2ecf20Sopenharmony_ci cmd_32 = $(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@ 3778c2ecf20Sopenharmony_civmlinux.32: vmlinux 3788c2ecf20Sopenharmony_ci $(call cmd,32) 3798c2ecf20Sopenharmony_ci 3808c2ecf20Sopenharmony_ci# 3818c2ecf20Sopenharmony_ci# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit 3828c2ecf20Sopenharmony_ci# ELF files from 32-bit files by conversion. 3838c2ecf20Sopenharmony_ci# 3848c2ecf20Sopenharmony_ciquiet_cmd_64 = OBJCOPY $@ 3858c2ecf20Sopenharmony_ci cmd_64 = $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 3868c2ecf20Sopenharmony_civmlinux.64: vmlinux 3878c2ecf20Sopenharmony_ci $(call cmd,64) 3888c2ecf20Sopenharmony_ci 3898c2ecf20Sopenharmony_ciall: $(all-y) $(KBUILD_DTBS) 3908c2ecf20Sopenharmony_ci 3918c2ecf20Sopenharmony_ci# boot 3928c2ecf20Sopenharmony_ci$(boot-y): $(vmlinux-32) FORCE 3938c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) \ 3948c2ecf20Sopenharmony_ci $(bootvars-y) arch/mips/boot/$@ 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ciifdef CONFIG_SYS_SUPPORTS_ZBOOT 3978c2ecf20Sopenharmony_ci# boot/compressed 3988c2ecf20Sopenharmony_ci$(bootz-y): $(vmlinux-32) FORCE 3998c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/mips/boot/compressed \ 4008c2ecf20Sopenharmony_ci $(bootvars-y) 32bit-bfd=$(32bit-bfd) $@ 4018c2ecf20Sopenharmony_cielse 4028c2ecf20Sopenharmony_civmlinuz: FORCE 4038c2ecf20Sopenharmony_ci @echo ' CONFIG_SYS_SUPPORTS_ZBOOT is not enabled' 4048c2ecf20Sopenharmony_ci /bin/false 4058c2ecf20Sopenharmony_ciendif 4068c2ecf20Sopenharmony_ci 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_ciCLEAN_FILES += vmlinux.32 vmlinux.64 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_ci# device-trees 4118c2ecf20Sopenharmony_cicore-y += arch/mips/boot/dts/ 4128c2ecf20Sopenharmony_ci 4138c2ecf20Sopenharmony_ciarchprepare: 4148c2ecf20Sopenharmony_ciifdef CONFIG_MIPS32_N32 4158c2ecf20Sopenharmony_ci @$(kecho) ' Checking missing-syscalls for N32' 4168c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=. missing-syscalls missing_syscalls_flags="-mabi=n32" 4178c2ecf20Sopenharmony_ciendif 4188c2ecf20Sopenharmony_ciifdef CONFIG_MIPS32_O32 4198c2ecf20Sopenharmony_ci @$(kecho) ' Checking missing-syscalls for O32' 4208c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=. missing-syscalls missing_syscalls_flags="-mabi=32" 4218c2ecf20Sopenharmony_ciendif 4228c2ecf20Sopenharmony_ci 4238c2ecf20Sopenharmony_ciinstall: 4248c2ecf20Sopenharmony_ci $(Q)install -D -m 755 vmlinux $(INSTALL_PATH)/vmlinux-$(KERNELRELEASE) 4258c2ecf20Sopenharmony_ciifdef CONFIG_SYS_SUPPORTS_ZBOOT 4268c2ecf20Sopenharmony_ci $(Q)install -D -m 755 vmlinuz $(INSTALL_PATH)/vmlinuz-$(KERNELRELEASE) 4278c2ecf20Sopenharmony_ciendif 4288c2ecf20Sopenharmony_ci $(Q)install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE) 4298c2ecf20Sopenharmony_ci $(Q)install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE) 4308c2ecf20Sopenharmony_ci 4318c2ecf20Sopenharmony_ciarchclean: 4328c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(clean)=arch/mips/boot 4338c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(clean)=arch/mips/boot/compressed 4348c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(clean)=arch/mips/boot/tools 4358c2ecf20Sopenharmony_ci 4368c2ecf20Sopenharmony_ciarchheaders: 4378c2ecf20Sopenharmony_ci $(Q)$(MAKE) $(build)=arch/mips/kernel/syscalls all 4388c2ecf20Sopenharmony_ci 4398c2ecf20Sopenharmony_cidefine archhelp 4408c2ecf20Sopenharmony_ci echo ' install - install kernel into $(INSTALL_PATH)' 4418c2ecf20Sopenharmony_ci echo ' vmlinux.ecoff - ECOFF boot image' 4428c2ecf20Sopenharmony_ci echo ' vmlinux.bin - Raw binary boot image' 4438c2ecf20Sopenharmony_ci echo ' vmlinux.srec - SREC boot image' 4448c2ecf20Sopenharmony_ci echo ' vmlinux.32 - 64-bit boot image wrapped in 32bits (IP22/IP32)' 4458c2ecf20Sopenharmony_ci echo ' vmlinuz - Compressed boot(zboot) image' 4468c2ecf20Sopenharmony_ci echo ' vmlinuz.ecoff - ECOFF zboot image' 4478c2ecf20Sopenharmony_ci echo ' vmlinuz.bin - Raw binary zboot image' 4488c2ecf20Sopenharmony_ci echo ' vmlinuz.srec - SREC zboot image' 4498c2ecf20Sopenharmony_ci echo ' uImage - U-Boot image' 4508c2ecf20Sopenharmony_ci echo ' uImage.bin - U-Boot image (uncompressed)' 4518c2ecf20Sopenharmony_ci echo ' uImage.bz2 - U-Boot image (bz2)' 4528c2ecf20Sopenharmony_ci echo ' uImage.gz - U-Boot image (gzip)' 4538c2ecf20Sopenharmony_ci echo ' uImage.lzma - U-Boot image (lzma)' 4548c2ecf20Sopenharmony_ci echo ' uImage.lzo - U-Boot image (lzo)' 4558c2ecf20Sopenharmony_ci echo ' uzImage.bin - U-Boot image (self-extracting)' 4568c2ecf20Sopenharmony_ci echo 4578c2ecf20Sopenharmony_ci echo ' These will be default as appropriate for a configured platform.' 4588c2ecf20Sopenharmony_ci echo 4598c2ecf20Sopenharmony_ci echo ' If you are targeting a system supported by generic kernels you may' 4608c2ecf20Sopenharmony_ci echo ' configure the kernel for a given architecture target like so:' 4618c2ecf20Sopenharmony_ci echo 4628c2ecf20Sopenharmony_ci echo ' {micro32,32,64}{r1,r2,r6}{el,}_defconfig <BOARDS="list of boards">' 4638c2ecf20Sopenharmony_ci echo 4648c2ecf20Sopenharmony_ci echo ' Where BOARDS is some subset of the following:' 4658c2ecf20Sopenharmony_ci for board in $(sort $(BOARDS)); do echo " $${board}"; done 4668c2ecf20Sopenharmony_ci echo 4678c2ecf20Sopenharmony_ci echo ' Specifically the following generic default configurations are' 4688c2ecf20Sopenharmony_ci echo ' supported:' 4698c2ecf20Sopenharmony_ci echo 4708c2ecf20Sopenharmony_ci $(foreach cfg,$(generic_defconfigs), 4718c2ecf20Sopenharmony_ci printf " %-24s - Build generic kernel for $(call describe_generic_defconfig,$(cfg))\n" $(cfg);) 4728c2ecf20Sopenharmony_ci echo 4738c2ecf20Sopenharmony_ci echo ' The following legacy default configurations have been converted to' 4748c2ecf20Sopenharmony_ci echo ' generic and can still be used:' 4758c2ecf20Sopenharmony_ci echo 4768c2ecf20Sopenharmony_ci $(foreach cfg,$(sort $(legacy_defconfigs)), 4778c2ecf20Sopenharmony_ci printf " %-24s - Build $($(cfg)-y)\n" $(cfg);) 4788c2ecf20Sopenharmony_ci echo 4798c2ecf20Sopenharmony_ci echo ' Otherwise, the following default configurations are available:' 4808c2ecf20Sopenharmony_ciendef 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_cigeneric_config_dir = $(srctree)/arch/$(ARCH)/configs/generic 4838c2ecf20Sopenharmony_cigeneric_defconfigs := 4848c2ecf20Sopenharmony_ci 4858c2ecf20Sopenharmony_ci# 4868c2ecf20Sopenharmony_ci# If the user generates a generic kernel configuration without specifying a 4878c2ecf20Sopenharmony_ci# list of boards to include the config fragments for, default to including all 4888c2ecf20Sopenharmony_ci# available board config fragments. 4898c2ecf20Sopenharmony_ci# 4908c2ecf20Sopenharmony_ciifeq ($(BOARDS),) 4918c2ecf20Sopenharmony_ciBOARDS = $(patsubst board-%.config,%,$(notdir $(wildcard $(generic_config_dir)/board-*.config))) 4928c2ecf20Sopenharmony_ciendif 4938c2ecf20Sopenharmony_ci 4948c2ecf20Sopenharmony_ci# 4958c2ecf20Sopenharmony_ci# Generic kernel configurations which merge generic_defconfig with the 4968c2ecf20Sopenharmony_ci# appropriate config fragments from arch/mips/configs/generic/, resulting in 4978c2ecf20Sopenharmony_ci# the ability to easily configure the kernel for a given architecture, 4988c2ecf20Sopenharmony_ci# endianness & set of boards without duplicating the needed configuration in 4998c2ecf20Sopenharmony_ci# hundreds of defconfig files. 5008c2ecf20Sopenharmony_ci# 5018c2ecf20Sopenharmony_cidefine gen_generic_defconfigs 5028c2ecf20Sopenharmony_ci$(foreach bits,$(1),$(foreach rev,$(2),$(foreach endian,$(3), 5038c2ecf20Sopenharmony_citarget := $(bits)$(rev)$(filter el,$(endian))_defconfig 5048c2ecf20Sopenharmony_cigeneric_defconfigs += $$(target) 5058c2ecf20Sopenharmony_ci$$(target): $(generic_config_dir)/$(bits)$(rev).config 5068c2ecf20Sopenharmony_ci$$(target): $(generic_config_dir)/$(endian).config 5078c2ecf20Sopenharmony_ci))) 5088c2ecf20Sopenharmony_ciendef 5098c2ecf20Sopenharmony_ci 5108c2ecf20Sopenharmony_ci$(eval $(call gen_generic_defconfigs,32 64,r1 r2 r6,eb el)) 5118c2ecf20Sopenharmony_ci$(eval $(call gen_generic_defconfigs,micro32,r2,eb el)) 5128c2ecf20Sopenharmony_ci 5138c2ecf20Sopenharmony_cidefine describe_generic_defconfig 5148c2ecf20Sopenharmony_ci$(subst 32r,MIPS32 r,$(subst 64r,MIPS64 r,$(subst el, little endian,$(patsubst %_defconfig,%,$(1))))) 5158c2ecf20Sopenharmony_ciendef 5168c2ecf20Sopenharmony_ci 5178c2ecf20Sopenharmony_ci.PHONY: $(generic_defconfigs) 5188c2ecf20Sopenharmony_ci$(generic_defconfigs): 5198c2ecf20Sopenharmony_ci $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \ 5208c2ecf20Sopenharmony_ci -m -O $(objtree) $(srctree)/arch/$(ARCH)/configs/generic_defconfig $^ | \ 5218c2ecf20Sopenharmony_ci grep -Ev '^#' 5228c2ecf20Sopenharmony_ci $(Q)cp $(KCONFIG_CONFIG) $(objtree)/.config.$@ 5238c2ecf20Sopenharmony_ci $(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig \ 5248c2ecf20Sopenharmony_ci KCONFIG_CONFIG=$(objtree)/.config.$@ >/dev/null 5258c2ecf20Sopenharmony_ci $(Q)$(CONFIG_SHELL) $(srctree)/arch/$(ARCH)/tools/generic-board-config.sh \ 5268c2ecf20Sopenharmony_ci $(srctree) $(objtree) $(objtree)/.config.$@ $(KCONFIG_CONFIG) \ 5278c2ecf20Sopenharmony_ci "$(origin BOARDS)" $(BOARDS) 5288c2ecf20Sopenharmony_ci $(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_ci# 5318c2ecf20Sopenharmony_ci# Prevent generic merge_config rules attempting to merge single fragments 5328c2ecf20Sopenharmony_ci# 5338c2ecf20Sopenharmony_ci$(generic_config_dir)/%.config: ; 5348c2ecf20Sopenharmony_ci 5358c2ecf20Sopenharmony_ci# 5368c2ecf20Sopenharmony_ci# Prevent direct use of generic_defconfig, which is intended to be used as the 5378c2ecf20Sopenharmony_ci# basis of the various ISA-specific targets generated above. 5388c2ecf20Sopenharmony_ci# 5398c2ecf20Sopenharmony_ci.PHONY: generic_defconfig 5408c2ecf20Sopenharmony_cigeneric_defconfig: 5418c2ecf20Sopenharmony_ci $(Q)echo "generic_defconfig is not intended for direct use, but should instead be" 5428c2ecf20Sopenharmony_ci $(Q)echo "used via an ISA-specific target from the following list:" 5438c2ecf20Sopenharmony_ci $(Q)echo 5448c2ecf20Sopenharmony_ci $(Q)for cfg in $(generic_defconfigs); do echo " $${cfg}"; done 5458c2ecf20Sopenharmony_ci $(Q)echo 5468c2ecf20Sopenharmony_ci $(Q)false 5478c2ecf20Sopenharmony_ci 5488c2ecf20Sopenharmony_ci# 5498c2ecf20Sopenharmony_ci# Legacy defconfig compatibility - these targets used to be real defconfigs but 5508c2ecf20Sopenharmony_ci# now that the boards have been converted to use the generic kernel they are 5518c2ecf20Sopenharmony_ci# wrappers around the generic rules above. 5528c2ecf20Sopenharmony_ci# 5538c2ecf20Sopenharmony_cilegacy_defconfigs += ocelot_defconfig 5548c2ecf20Sopenharmony_ciocelot_defconfig-y := 32r2el_defconfig BOARDS=ocelot 5558c2ecf20Sopenharmony_ci 5568c2ecf20Sopenharmony_cilegacy_defconfigs += sead3_defconfig 5578c2ecf20Sopenharmony_cisead3_defconfig-y := 32r2el_defconfig BOARDS=sead-3 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_cilegacy_defconfigs += sead3micro_defconfig 5608c2ecf20Sopenharmony_cisead3micro_defconfig-y := micro32r2el_defconfig BOARDS=sead-3 5618c2ecf20Sopenharmony_ci 5628c2ecf20Sopenharmony_cilegacy_defconfigs += xilfpga_defconfig 5638c2ecf20Sopenharmony_cixilfpga_defconfig-y := 32r2el_defconfig BOARDS=xilfpga 5648c2ecf20Sopenharmony_ci 5658c2ecf20Sopenharmony_ci.PHONY: $(legacy_defconfigs) 5668c2ecf20Sopenharmony_ci$(legacy_defconfigs): 5678c2ecf20Sopenharmony_ci $(Q)$(MAKE) -f $(srctree)/Makefile $($@-y) 568