forked from Mirrors/opensbi
lib: sbi: fwft: add support for SBI_FWFT_POINTER_MASKING_PMLEN
Add support for controlling the pointer masking mode on harts which support the Smnpm extension. This extension can only exist on harts where XLEN >= 64 bits. This implementation selects the mode with the smallest PMLEN that satisfies the caller's requested lower bound. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:

committed by
Anup Patel

parent
ebfaf1974e
commit
1cb234b1c9
@@ -213,6 +213,10 @@
|
||||
#define ENVCFG_PBMTE (_ULL(1) << 62)
|
||||
#define ENVCFG_ADUE (_ULL(1) << 61)
|
||||
#define ENVCFG_CDE (_ULL(1) << 60)
|
||||
#define ENVCFG_PMM (_ULL(0x3) << 32)
|
||||
#define ENVCFG_PMM_PMLEN_0 (_ULL(0x0) << 32)
|
||||
#define ENVCFG_PMM_PMLEN_7 (_ULL(0x2) << 32)
|
||||
#define ENVCFG_PMM_PMLEN_16 (_ULL(0x3) << 32)
|
||||
#define ENVCFG_CBZE (_UL(1) << 7)
|
||||
#define ENVCFG_CBCFE (_UL(1) << 6)
|
||||
#define ENVCFG_CBIE_SHIFT 4
|
||||
|
@@ -128,7 +128,8 @@ enum sbi_fwft_feature_t {
|
||||
SBI_FWFT_SHADOW_STACK = 0x2,
|
||||
SBI_FWFT_DOUBLE_TRAP = 0x3,
|
||||
SBI_FWFT_PTE_AD_HW_UPDATING = 0x4,
|
||||
SBI_FWFT_LOCAL_RESERVED_START = 0x5,
|
||||
SBI_FWFT_POINTER_MASKING_PMLEN = 0x5,
|
||||
SBI_FWFT_LOCAL_RESERVED_START = 0x6,
|
||||
SBI_FWFT_LOCAL_RESERVED_END = 0x3fffffff,
|
||||
SBI_FWFT_LOCAL_PLATFORM_START = 0x40000000,
|
||||
SBI_FWFT_LOCAL_PLATFORM_END = 0x7fffffff,
|
||||
|
@@ -67,6 +67,8 @@ enum sbi_hart_extensions {
|
||||
SBI_HART_EXT_SVADE,
|
||||
/** Hart has Svadu extension */
|
||||
SBI_HART_EXT_SVADU,
|
||||
/** Hart has Smnpm extension */
|
||||
SBI_HART_EXT_SMNPM,
|
||||
|
||||
/** Maximum index of Hart extension */
|
||||
SBI_HART_EXT_MAX,
|
||||
|
Reference in New Issue
Block a user