forked from Mirrors/opensbi
lib: sbi: Allow specifying mode in sbi_hart_pmp_check_addr() API
We extend sbi_hart_pmp_check_addr() API so that users can specify privilege mode of the address for checking PMP access permissions. To achieve this, we end-up converting "unsigned long *size" parameter to "unsigned long *log2len" for pmp_get() implementation so that we can deal with regions of "1UL << __riscv_xlen" size in a special case in sbi_hart_pmp_check_addr() implementation. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
This commit is contained in:
@@ -231,7 +231,7 @@ int sbi_hsm_hart_start(struct sbi_scratch *scratch, u32 hartid,
|
||||
if (hstate != SBI_HART_STOPPED)
|
||||
return SBI_EINVAL;
|
||||
|
||||
rc = sbi_hart_pmp_check_addr(scratch, saddr, PMP_X);
|
||||
rc = sbi_hart_pmp_check_addr(scratch, saddr, smode, PMP_X);
|
||||
if (rc)
|
||||
return rc;
|
||||
//TODO: We also need to check saddr for valid physical address as well.
|
||||
|
Reference in New Issue
Block a user