From: Vivian Wang Date: Thu, 4 Aug 2022 14:32:31 +0000 (+0800) Subject: lib: sbi_trap: Set hstatus.GVA when going to HS-mode X-Git-Tag: v1.3~250 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a69eb6cc65a16f26455bfb5b7cab768ac891bc1d;p=platform%2Fkernel%2Fopensbi-spacemit.git lib: sbi_trap: Set hstatus.GVA when going to HS-mode The privileged spec specifies that on a trap to HS-mode, hstatus.GVA should be set to 1 if stval is written with a guest virtual address, and to 0 otherwise. Implement this by setting hstatus.GVA to trap->gva when redirecting traps to HS-mode. Signed-off-by: Vivian Wang Reviewed-by: Andrew Jones Reviewed-by: Anup Patel --- diff --git a/lib/sbi/sbi_trap.c b/lib/sbi/sbi_trap.c index 1cf2e6f..925840f 100644 --- a/lib/sbi/sbi_trap.c +++ b/lib/sbi/sbi_trap.c @@ -128,6 +128,8 @@ int sbi_trap_redirect(struct sbi_trap_regs *regs, } hstatus &= ~HSTATUS_SPV; hstatus |= (prev_virt) ? HSTATUS_SPV : 0; + hstatus &= ~HSTATUS_GVA; + hstatus |= (trap->gva) ? HSTATUS_GVA : 0; csr_write(CSR_HSTATUS, hstatus); csr_write(CSR_HTVAL, trap->tval2); csr_write(CSR_HTINST, trap->tinst);