riscv: Add kconfig option to run U-Boot in S-mode
authorAnup Patel <anup@brainfault.org>
Mon, 3 Dec 2018 05:27:40 +0000 (10:57 +0530)
committerAndes <uboot@andestech.com>
Wed, 5 Dec 2018 06:13:53 +0000 (14:13 +0800)
commitd2db2a8fa4f190d6d78ee7e9e642a180664cbccf
tree065e64b9073f659188b32040bdaeba90dc33776b
parent2e2a2a5d4f0c2e2642326d9000ce1f1553632e6a
riscv: Add kconfig option to run U-Boot in S-mode

This patch adds kconfig option RISCV_SMODE to run U-Boot in
S-mode. When this opition is enabled we use s<xyz> CSRs instead
of m<xyz> CSRs.

It is important to note that there is no equivalent S-mode CSR
for misa and mhartid CSRs so we expect M-mode runtime firmware
(BBL or equivalent) to emulate misa and mhartid CSR read.

In-future, we will have more patches to avoid accessing misa and
mhartid CSRs from S-mode.

Signed-off-by: Anup Patel <anup@brainfault.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
arch/riscv/Kconfig
arch/riscv/cpu/start.S
arch/riscv/include/asm/encoding.h
arch/riscv/lib/interrupts.c