Skip to content

smepmp: isa fixup - #15

Merged
cp0613 merged 2 commits into
XUANTIE-RV:opensbi-v1.7-devfrom
cp0613:check_smepmp
Jul 23, 2026
Merged

smepmp: isa fixup#15
cp0613 merged 2 commits into
XUANTIE-RV:opensbi-v1.7-devfrom
cp0613:check_smepmp

Conversation

@cp0613

@cp0613 cp0613 commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

cp0613 added 2 commits July 23, 2026 14:10
Add a hardware probe for the Smepmp extension to the ISA validation
framework. The validator checks whether the mseccfg RLB bit is
writable via write-readback, since CSR_MSECCFG is shared with other
extensions (e.g. Zkr) and mere CSR existence does not imply Smepmp
support.

If the DT claims smepmp but the hardware does not implement the RLB
bit, the extension is removed from riscv,isa and riscv,isa-extensions
during CPU fixup, preventing the OS from misusing it.

Signed-off-by: Chen Pei <cp0613@linux.alibaba.com>
Introduce a table-driven validation framework that verifies
DT-claimed ISA extensions against actual hardware capabilities
during hart feature detection. Extensions that fail validation
are cleared before PMP configuration and subsequent boot stages.

This is necessary because fdt_cpu_fixup() runs in generic_final_init(),
which is too late — hart_detect_features() has already cached the
ISA extensions from DT via fdt_parse_isa_extensions(). The validation
must happen inside hart_detect_features(), right after
sbi_platform_extensions_init() populates the extension bitmap.

Adding future validators requires only implementing a bool callback
and appending to hart_ext_validators[].

Smepmp is the first validator: it probes the mseccfg RLB bit via
write-readback to confirm hardware support, since CSR_MSECCFG is
shared with Zkr and mere CSR existence does not imply Smepmp.

Signed-off-by: Chen Pei <cp0613@linux.alibaba.com>
@cp0613
cp0613 merged commit de8d33e into XUANTIE-RV:opensbi-v1.7-dev Jul 23, 2026
2 of 3 checks passed
@cp0613
cp0613 deleted the check_smepmp branch July 23, 2026 09:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant