162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciOBJCOPYFLAGS		:=-O binary
362306a36Sopenharmony_ciGZFLAGS			:=-9
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciifdef CONFIG_CPU_HAS_FPU
662306a36Sopenharmony_ciFPUEXT = f
762306a36Sopenharmony_ciendif
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciifdef CONFIG_CPU_HAS_VDSP
1062306a36Sopenharmony_ciVDSPEXT = v
1162306a36Sopenharmony_ciendif
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciifdef CONFIG_CPU_HAS_TEE
1462306a36Sopenharmony_ciTEEEXT = t
1562306a36Sopenharmony_ciendif
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciifdef CONFIG_CPU_CK610
1862306a36Sopenharmony_ciCPUTYPE	= ck610
1962306a36Sopenharmony_ciCSKYABI	= abiv1
2062306a36Sopenharmony_ciendif
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciifdef CONFIG_CPU_CK810
2362306a36Sopenharmony_ciCPUTYPE = ck810
2462306a36Sopenharmony_ciCSKYABI	= abiv2
2562306a36Sopenharmony_ciendif
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciifdef CONFIG_CPU_CK807
2862306a36Sopenharmony_ciCPUTYPE = ck807
2962306a36Sopenharmony_ciCSKYABI	= abiv2
3062306a36Sopenharmony_ciendif
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciifdef CONFIG_CPU_CK860
3362306a36Sopenharmony_ciCPUTYPE = ck860
3462306a36Sopenharmony_ciCSKYABI	= abiv2
3562306a36Sopenharmony_ciendif
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciifneq ($(CSKYABI),)
3862306a36Sopenharmony_ciMCPU_STR = $(CPUTYPE)$(FPUEXT)$(VDSPEXT)$(TEEEXT)
3962306a36Sopenharmony_ciKBUILD_CFLAGS += -mcpu=$(CPUTYPE) -Wa,-mcpu=$(MCPU_STR)
4062306a36Sopenharmony_ciKBUILD_CFLAGS += -DCSKYCPU_DEF_NAME=\"$(MCPU_STR)\"
4162306a36Sopenharmony_ciKBUILD_CFLAGS += -msoft-float -mdiv
4262306a36Sopenharmony_ciKBUILD_CFLAGS += -fno-tree-vectorize
4362306a36Sopenharmony_ciendif
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciKBUILD_CFLAGS += -pipe
4662306a36Sopenharmony_ciifeq ($(CSKYABI),abiv2)
4762306a36Sopenharmony_ciKBUILD_CFLAGS += -mno-stack-size
4862306a36Sopenharmony_ciendif
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciifdef CONFIG_FRAME_POINTER
5162306a36Sopenharmony_ciKBUILD_CFLAGS += -mbacktrace
5262306a36Sopenharmony_ciendif
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciabidirs := $(patsubst %,arch/csky/%/,$(CSKYABI))
5562306a36Sopenharmony_ciKBUILD_CFLAGS += $(patsubst %,-I$(srctree)/%inc,$(abidirs))
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciKBUILD_CPPFLAGS += -mlittle-endian
5862306a36Sopenharmony_ciLDFLAGS += -EL
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciKBUILD_AFLAGS += $(KBUILD_CFLAGS)
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_cicore-y += arch/csky/$(CSKYABI)/
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_cilibs-y += arch/csky/lib/ \
6562306a36Sopenharmony_ci	$(shell $(CC) $(KBUILD_CFLAGS) $(KCFLAGS) -print-libgcc-file-name)
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciboot := arch/csky/boot
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ciall: zImage
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cizImage Image uImage: vmlinux
7262306a36Sopenharmony_ci	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_cidefine archhelp
7562306a36Sopenharmony_ci  echo  '* zImage       - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
7662306a36Sopenharmony_ci  echo  '  Image        - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
7762306a36Sopenharmony_ci  echo  '  uImage       - U-Boot wrapped zImage'
7862306a36Sopenharmony_ciendef
79