diff options
author | Zoltan HERPAI <wigyori@uid0.hu> | 2020-01-26 23:46:18 +0100 |
---|---|---|
committer | Zoltan HERPAI <wigyori@uid0.hu> | 2023-06-14 09:22:08 +0200 |
commit | a11f2e6044394bdc18cdb564ae0326d7332db5ac (patch) | |
tree | 17720b875d4666e02e8a5a53d9994ea402452c89 /package/boot/uboot-sifiveu/patches/0009-riscv-Fix-build-against-binutils.patch | |
parent | 0f30f47d61815ad77934693456226076f6e40a49 (diff) | |
download | upstream-a11f2e6044394bdc18cdb564ae0326d7332db5ac.tar.gz upstream-a11f2e6044394bdc18cdb564ae0326d7332db5ac.tar.bz2 upstream-a11f2e6044394bdc18cdb564ae0326d7332db5ac.zip |
uboot-sifiveu: add bootloader package for SiFive Ux40 boards
Add new package for building bootloader for the SiFive U-series boards. Supported
boards at this stage are the HiFive Unleashed and HiFive Unmatched.
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
(cherry picked from commit 91406797f9d06c0008f0a8c2c8455abfb37bf28c)
Diffstat (limited to 'package/boot/uboot-sifiveu/patches/0009-riscv-Fix-build-against-binutils.patch')
-rw-r--r-- | package/boot/uboot-sifiveu/patches/0009-riscv-Fix-build-against-binutils.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/package/boot/uboot-sifiveu/patches/0009-riscv-Fix-build-against-binutils.patch b/package/boot/uboot-sifiveu/patches/0009-riscv-Fix-build-against-binutils.patch new file mode 100644 index 0000000000..87dbf984ec --- /dev/null +++ b/package/boot/uboot-sifiveu/patches/0009-riscv-Fix-build-against-binutils.patch @@ -0,0 +1,50 @@ +commit 1dde977518f13824b847e23275001191139bc384 +Author: Alexandre Ghiti <alexandre.ghiti@canonical.com> +Date: Mon Oct 3 18:07:54 2022 +0200 + + riscv: Fix build against binutils 2.38 + + The following description is copied from the equivalent patch for the + Linux Kernel proposed by Aurelien Jarno: + + >From version 2.38, binutils default to ISA spec version 20191213. This + means that the csr read/write (csrr*/csrw*) instructions and fence.i + instruction has separated from the `I` extension, become two standalone + extensions: Zicsr and Zifencei. As the kernel uses those instruction, + this causes the following build failure: + + arch/riscv/cpu/mtrap.S: Assembler messages: + arch/riscv/cpu/mtrap.S:65: Error: unrecognized opcode `csrr a0,scause' + arch/riscv/cpu/mtrap.S:66: Error: unrecognized opcode `csrr a1,sepc' + arch/riscv/cpu/mtrap.S:67: Error: unrecognized opcode `csrr a2,stval' + arch/riscv/cpu/mtrap.S:70: Error: unrecognized opcode `csrw sepc,a0' + + Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com> + Reviewed-by: Bin Meng <bmeng.cn@gmail.com> + Tested-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> + Tested-by: Heiko Stuebner <heiko@sntech.de> + Tested-by: Christian Stewart <christian@paral.in> + Reviewed-by: Rick Chen <rick@andestech.com> + +diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile +index 0b80eb8d86..53d1194ffb 100644 +--- a/arch/riscv/Makefile ++++ b/arch/riscv/Makefile +@@ -24,7 +24,16 @@ ifeq ($(CONFIG_CMODEL_MEDANY),y) + CMODEL = medany + endif + +-ARCH_FLAGS = -march=$(ARCH_BASE)$(ARCH_A)$(ARCH_C) -mabi=$(ABI) \ ++RISCV_MARCH = $(ARCH_BASE)$(ARCH_A)$(ARCH_C) ++ ++# 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, -mabi=$(ABI) -march=$(RISCV_MARCH)_zicsr_zifencei) ++ifeq ($(toolchain-need-zicsr-zifencei),y) ++ RISCV_MARCH := $(RISCV_MARCH)_zicsr_zifencei ++endif ++ ++ARCH_FLAGS = -march=$(RISCV_MARCH) -mabi=$(ABI) \ + -mcmodel=$(CMODEL) + + PLATFORM_CPPFLAGS += $(ARCH_FLAGS) |