1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593SmuzhiyunOBJCOPYFLAGS :=-O binary 3*4882a593SmuzhiyunGZFLAGS :=-9 4*4882a593Smuzhiyun 5*4882a593Smuzhiyunifdef CONFIG_CPU_HAS_FPU 6*4882a593SmuzhiyunFPUEXT = f 7*4882a593Smuzhiyunendif 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunifdef CONFIG_CPU_HAS_VDSP 10*4882a593SmuzhiyunVDSPEXT = v 11*4882a593Smuzhiyunendif 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunifdef CONFIG_CPU_HAS_TEE 14*4882a593SmuzhiyunTEEEXT = t 15*4882a593Smuzhiyunendif 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunifdef CONFIG_CPU_CK610 18*4882a593SmuzhiyunCPUTYPE = ck610 19*4882a593SmuzhiyunCSKYABI = abiv1 20*4882a593Smuzhiyunendif 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunifdef CONFIG_CPU_CK810 23*4882a593SmuzhiyunCPUTYPE = ck810 24*4882a593SmuzhiyunCSKYABI = abiv2 25*4882a593Smuzhiyunendif 26*4882a593Smuzhiyun 27*4882a593Smuzhiyunifdef CONFIG_CPU_CK807 28*4882a593SmuzhiyunCPUTYPE = ck807 29*4882a593SmuzhiyunCSKYABI = abiv2 30*4882a593Smuzhiyunendif 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunifdef CONFIG_CPU_CK860 33*4882a593SmuzhiyunCPUTYPE = ck860 34*4882a593SmuzhiyunCSKYABI = abiv2 35*4882a593Smuzhiyunendif 36*4882a593Smuzhiyun 37*4882a593Smuzhiyunifneq ($(CSKYABI),) 38*4882a593SmuzhiyunMCPU_STR = $(CPUTYPE)$(FPUEXT)$(VDSPEXT)$(TEEEXT) 39*4882a593SmuzhiyunKBUILD_CFLAGS += -mcpu=$(CPUTYPE) -Wa,-mcpu=$(MCPU_STR) 40*4882a593SmuzhiyunKBUILD_CFLAGS += -DCSKYCPU_DEF_NAME=\"$(MCPU_STR)\" 41*4882a593SmuzhiyunKBUILD_CFLAGS += -msoft-float -mdiv 42*4882a593SmuzhiyunKBUILD_CFLAGS += -fno-tree-vectorize 43*4882a593Smuzhiyunendif 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunKBUILD_CFLAGS += -pipe 46*4882a593Smuzhiyunifeq ($(CSKYABI),abiv2) 47*4882a593SmuzhiyunKBUILD_CFLAGS += -mno-stack-size 48*4882a593Smuzhiyunendif 49*4882a593Smuzhiyun 50*4882a593Smuzhiyunifdef CONFIG_FRAME_POINTER 51*4882a593SmuzhiyunKBUILD_CFLAGS += -mbacktrace 52*4882a593Smuzhiyunendif 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunabidirs := $(patsubst %,arch/csky/%/,$(CSKYABI)) 55*4882a593SmuzhiyunKBUILD_CFLAGS += $(patsubst %,-I$(srctree)/%inc,$(abidirs)) 56*4882a593Smuzhiyun 57*4882a593SmuzhiyunKBUILD_CPPFLAGS += -mlittle-endian 58*4882a593SmuzhiyunLDFLAGS += -EL 59*4882a593Smuzhiyun 60*4882a593SmuzhiyunKBUILD_AFLAGS += $(KBUILD_CFLAGS) 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunhead-y := arch/csky/kernel/head.o 63*4882a593Smuzhiyun 64*4882a593Smuzhiyuncore-y += arch/csky/kernel/ 65*4882a593Smuzhiyuncore-y += arch/csky/mm/ 66*4882a593Smuzhiyuncore-y += arch/csky/$(CSKYABI)/ 67*4882a593Smuzhiyun 68*4882a593Smuzhiyunlibs-y += arch/csky/lib/ \ 69*4882a593Smuzhiyun $(shell $(CC) $(KBUILD_CFLAGS) $(KCFLAGS) -print-libgcc-file-name) 70*4882a593Smuzhiyun 71*4882a593Smuzhiyunboot := arch/csky/boot 72*4882a593Smuzhiyuncore-y += $(boot)/dts/ 73*4882a593Smuzhiyun 74*4882a593Smuzhiyunall: zImage 75*4882a593Smuzhiyun 76*4882a593SmuzhiyunzImage Image uImage: vmlinux 77*4882a593Smuzhiyun $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunarchclean: 80*4882a593Smuzhiyun $(Q)$(MAKE) $(clean)=$(boot) 81*4882a593Smuzhiyun 82*4882a593Smuzhiyundefine archhelp 83*4882a593Smuzhiyun echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' 84*4882a593Smuzhiyun echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' 85*4882a593Smuzhiyun echo ' uImage - U-Boot wrapped zImage' 86*4882a593Smuzhiyunendef 87