[PATCH 01/11] lib: sbi: Fix sbi_hart_switch_mode() for u-mode
Atish Patra
atishp at atishpatra.org
Thu Dec 3 18:48:47 EST 2020
On Sat, Nov 21, 2020 at 2:52 PM Anup Patel <anup.patel at wdc.com> wrote:
>
> We should check and access N-extension CSRs in sbi_hart_switch_mode()
> when next_mode is u-mode because N-extension is optional.
>
> Signed-off-by: Anup Patel <anup.patel at wdc.com>
> ---
> lib/sbi/sbi_hart.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
> index 30d8aef..fc86e9f 100644
> --- a/lib/sbi/sbi_hart.c
> +++ b/lib/sbi/sbi_hart.c
> @@ -522,9 +522,11 @@ sbi_hart_switch_mode(unsigned long arg0, unsigned long arg1,
> csr_write(CSR_SIE, 0);
> csr_write(CSR_SATP, 0);
> } else if (next_mode == PRV_U) {
> - csr_write(CSR_UTVEC, next_addr);
> - csr_write(CSR_USCRATCH, 0);
> - csr_write(CSR_UIE, 0);
> + if (misa_extension('N')) {
> + csr_write(CSR_UTVEC, next_addr);
> + csr_write(CSR_USCRATCH, 0);
> + csr_write(CSR_UIE, 0);
> + }
> }
>
> register unsigned long a0 asm("a0") = arg0;
> --
> 2.25.1
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
Reviewed-by: Atish Patra <atish.patra at wdc.com>
--
Regards,
Atish
More information about the opensbi
mailing list