^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) OBJCOPYFLAGS :=-O binary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) GZFLAGS :=-9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ifdef CONFIG_CPU_HAS_FPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) FPUEXT = f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) ifdef CONFIG_CPU_HAS_VDSP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) VDSPEXT = v
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) ifdef CONFIG_CPU_HAS_TEE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) TEEEXT = t
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) ifdef CONFIG_CPU_CK610
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) CPUTYPE = ck610
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) CSKYABI = abiv1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) ifdef CONFIG_CPU_CK810
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) CPUTYPE = ck810
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) CSKYABI = abiv2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ifdef CONFIG_CPU_CK807
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) CPUTYPE = ck807
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) CSKYABI = abiv2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ifdef CONFIG_CPU_CK860
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) CPUTYPE = ck860
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) CSKYABI = abiv2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) ifneq ($(CSKYABI),)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) MCPU_STR = $(CPUTYPE)$(FPUEXT)$(VDSPEXT)$(TEEEXT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) KBUILD_CFLAGS += -mcpu=$(CPUTYPE) -Wa,-mcpu=$(MCPU_STR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) KBUILD_CFLAGS += -DCSKYCPU_DEF_NAME=\"$(MCPU_STR)\"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) KBUILD_CFLAGS += -msoft-float -mdiv
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) KBUILD_CFLAGS += -fno-tree-vectorize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) KBUILD_CFLAGS += -pipe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) ifeq ($(CSKYABI),abiv2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) KBUILD_CFLAGS += -mno-stack-size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) ifdef CONFIG_FRAME_POINTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) KBUILD_CFLAGS += -mbacktrace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) abidirs := $(patsubst %,arch/csky/%/,$(CSKYABI))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) KBUILD_CFLAGS += $(patsubst %,-I$(srctree)/%inc,$(abidirs))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) KBUILD_CPPFLAGS += -mlittle-endian
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) LDFLAGS += -EL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) KBUILD_AFLAGS += $(KBUILD_CFLAGS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) head-y := arch/csky/kernel/head.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) core-y += arch/csky/kernel/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) core-y += arch/csky/mm/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) core-y += arch/csky/$(CSKYABI)/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) libs-y += arch/csky/lib/ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) $(shell $(CC) $(KBUILD_CFLAGS) $(KCFLAGS) -print-libgcc-file-name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) boot := arch/csky/boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) core-y += $(boot)/dts/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) all: zImage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) zImage Image uImage: vmlinux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) archclean:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) $(Q)$(MAKE) $(clean)=$(boot)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) define archhelp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) echo ' uImage - U-Boot wrapped zImage'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) endef