diff options
Diffstat (limited to 'arch/riscv/Makefile')
-rw-r--r-- | arch/riscv/Makefile | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile index 6fbf1d4ddd..71ca82fe8d 100644 --- a/arch/riscv/Makefile +++ b/arch/riscv/Makefile @@ -1,25 +1,34 @@ # SPDX-License-Identifier: GPL-2.0-only -KBUILD_DEFCONFIG := virt64_defconfig +KBUILD_DEFCONFIG := rv64i_defconfig KBUILD_CPPFLAGS += -fno-strict-aliasing ifeq ($(CONFIG_ARCH_RV32I),y) - riscv-cflags-y += -march=rv32im -mabi=ilp32 + KBUILD_CPPFLAGS += -mabi=ilp32 riscv-ldflags-y += -melf32lriscv else - riscv-cflags-y += -march=rv64im -mabi=lp64 + KBUILD_CPPFLAGS += -mabi=lp64 riscv-ldflags-y += -melf64lriscv endif -riscv-cflags-y += -Wstrict-prototypes -mcmodel=medany -fpic -riscv-ldflags-y += -pie -static +# ISA string setting +riscv-march-$(CONFIG_ARCH_RV32I) := rv32im +riscv-march-$(CONFIG_ARCH_RV64I) := rv64im -PBL_CPPFLAGS += $(riscv-cflags-y) -LDFLAGS_pbl += $(riscv-ldflags-y) +# Newer binutils versions default to ISA spec version 20191213 which moves some +# instructions from the I extension to the Zicsr and Zifencei extensions. +toolchain-need-zicsr-zifencei := $(call cc-option-yn, -march=$(riscv-march-y)_zicsr_zifencei) +riscv-march-$(toolchain-need-zicsr-zifencei) := $(riscv-march-y)_zicsr_zifencei -cflags-y += $(riscv-cflags-y) +KBUILD_CPPFLAGS += -march=$(riscv-march-y) +KBUILD_CFLAGS += -mno-save-restore +KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables +KBUILD_CFLAGS += $(call cc-option,-mstrict-align) +KBUILD_CPPFLAGS += -Wstrict-prototypes -mcmodel=medany -fpic +riscv-ldflags-y += -pie -static +LDFLAGS_pbl += $(riscv-ldflags-y) LDFLAGS_barebox += $(riscv-ldflags-y) ifndef CONFIG_MODULES @@ -29,6 +38,7 @@ LDFLAGS_barebox += -static --gc-sections endif KBUILD_BINARY := barebox.bin +KBUILD_IMAGE := $(KBUILD_BINARY) archprepare: maketools @@ -41,11 +51,6 @@ common-y += arch/riscv/boot/ common-$(CONFIG_OFTREE) += arch/riscv/dts/ -KBUILD_CPPFLAGS += $(cflags-y) -KBUILD_CFLAGS += $(cflags-y) - lds-y := arch/riscv/lib/barebox.lds CLEAN_FILES += arch/riscv/lib/barebox.lds - -KBUILD_IMAGE := $(KBUILD_BINARY) |