mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2026-06-12 22:31:45 +01:00
lib: sbi: Add sbi_pmp_is_enabled() helper
Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Reviewed-by: Anup Patel <anup@brainfault.org> Link: https://lore.kernel.org/r/20260430045528.420437-7-npiggin@gmail.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
committed by
Anup Patel
parent
8f1a6164f2
commit
f7738cc1e5
@@ -14,6 +14,7 @@ struct pmp {
|
|||||||
};
|
};
|
||||||
typedef struct pmp pmp_t;
|
typedef struct pmp pmp_t;
|
||||||
|
|
||||||
|
bool sbi_pmp_is_enabled(pmp_t *pmp);
|
||||||
int sbi_pmp_encode(pmp_t *pmp, unsigned long prot, unsigned long addr,
|
int sbi_pmp_encode(pmp_t *pmp, unsigned long prot, unsigned long addr,
|
||||||
unsigned long log2len);
|
unsigned long log2len);
|
||||||
int sbi_pmp_decode(pmp_t *pmp, unsigned long *prot, unsigned long *addr,
|
int sbi_pmp_decode(pmp_t *pmp, unsigned long *prot, unsigned long *addr,
|
||||||
|
|||||||
+1
-5
@@ -353,11 +353,7 @@ int is_pmp_entry_mapped(unsigned long entry)
|
|||||||
if (hart_pmp_read(&pmp, entry) != SBI_OK)
|
if (hart_pmp_read(&pmp, entry) != SBI_OK)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* If address matching bits are non-zero, the entry is enable */
|
return sbi_pmp_is_enabled(&pmp);
|
||||||
if (pmp.cfg & PMP_A)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int pmp_set(unsigned int n, unsigned long prot, unsigned long addr,
|
int pmp_set(unsigned int n, unsigned long prot, unsigned long addr,
|
||||||
|
|||||||
@@ -28,6 +28,15 @@ static unsigned long ctz(unsigned long x)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool sbi_pmp_is_enabled(pmp_t *pmp)
|
||||||
|
{
|
||||||
|
/* If address matching bits are non-zero, the entry is enable */
|
||||||
|
if (pmp->cfg & PMP_A)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
int sbi_pmp_encode(pmp_t *pmp, unsigned long prot, unsigned long addr,
|
int sbi_pmp_encode(pmp_t *pmp, unsigned long prot, unsigned long addr,
|
||||||
unsigned long log2len)
|
unsigned long log2len)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user