riscv: Fix build against binutils 2.38 19/292219/2
authorAlexandre Ghiti <alexandre.ghiti@canonical.com>
Mon, 3 Oct 2022 16:07:54 +0000 (18:07 +0200)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Wed, 3 May 2023 01:39:19 +0000 (01:39 +0000)
commit8971f4e07a5ea8882a52f7d96242408b4386ee28
tree9999e0384c2d774673bb1d281fd68e18e6037648
parent8db182f8f7e891462e54fff463d3d8d7a3db2071
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>
(cherry picked from commit 1dde977518f13824b847e23275001191139bc384)
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Change-Id: Ib87e31e43046af92ca986bfd6836a0e712c3b43f
arch/riscv/Makefile