[PATCH 5/5] lib: sbi_trap: Set hstatus.GVA when going to HS-mode

Andrew Jones ajones at ventanamicro.com
Thu Aug 4 00:56:37 PDT 2022


On Thu, Aug 04, 2022 at 11:17:06AM +0800, Vivian Wang wrote:
> 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 <dramforever at live.com>
> ---
>  lib/sbi/sbi_trap.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/sbi/sbi_trap.c b/lib/sbi/sbi_trap.c
> index 6e3202b..65408de 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);
> -- 
> 2.37.1

Reviewed-by: Andrew Jones <ajones at ventanamicro.com>



More information about the opensbi mailing list