[PATCH v3 0/9] Add RISC-V Worlds ISA support to OpenSBI
Yu-Chien Peter Lin
peter.lin at sifive.com
Fri Oct 30 03:49:40 PDT 2026
Hi Anup,
On Wed, Oct 28, 2026 at 04:50:24PM +0530, Anup Patel wrote:
> Hi Peter,
>
> On Tue, Oct 27, 2026 at 2:05 PM Yu-Chien Peter Lin <peter.lin at sifive.com> wrote:
> >
> > This patch series adds support for the RISC-V Worlds ISA extensions in
> > OpenSBI, introducing a WID-based hart protection backend to enforce
> > hardware isolation boundaries across domains.
> >
> > Trust Model and Boot-time Roles
> > -------------------------------
> >
> > The implementation adheres to the two-phase M-mode trust model:
> >
> > - RoT M-mode phase: An earlier boot stage (e.g., ROM or SPL) may program
> > mwid and mlwidlist, locking mwid prior to handing off execution to
> > OpenSBI.
> >
> > - Regular M-mode phase (OpenSBI): OpenSBI treats the non-ISA platform
> > constraints (pmwid, pmwidlist, pmlwidlist) and CSR states (mwid,
> > mlwidlist) as immutable input policies from the hardware/RoT. It locks
> > mwid if still unlocked, preventing subsequent M-mode software from
> > altering its own WID, and programs per-domain mlwid and mwiddeleg based
> > on device tree configuration.
> >
> > Device Tree Bindings
> > --------------------
> >
> > Per-hart properties defined in Linux kernel DT bindings v3 [1]:
> > - riscv,pmwid: M-mode World ID
> > - riscv,pmwidlist: M-mode permitted WID bitmap
> > - riscv,pmlwidlist: S/U-mode permitted WID bitmap
> >
> > Per-domain properties (see docs/domain_support.md):
> > - wid: World ID assigned to this domain for S/U-mode
> > - widdeleg: WID delegation bitmap for this domain
> >
> > Changes since v2
> > ----------------
> > - Make 'wid' property mandatory for all domains (including root) when
> > Smlwid is implemented; reject misconfigured domains at boot.
> > - Remove M-mode WID fallback logic (mwid/pmwid) for S-mode domain WID.
> > - Validate domain wid and widdeleg against pmlwidlist and mlwidlist masks.
> > - Introduce a new patch to propagate error from sbi_hart_protection_reconfigure()
> > in sbi_domain_context.
> > - Adapt to upstream domain state framework API rename (sbi_domain_data ->
> > sbi_domain_state).
> > - Update documentation and boot log output accordingly.
> >
> > [1] https://patchwork.kernel.org/project/linux-riscv/cover/20260812122131.1534906-1-peter.lin@sifive.com/
> >
> > Yu-Chien Peter Lin (9):
> > lib: sbi_hart: detect RISC-V Worlds ISA extensions
> > lib: utils: fdt_helper: parse RISC-V Worlds per-hart WID properties
> > lib: fdt_domain: parse domain WID properties
> > lib: sbi_hart: lock mwid CSR for RoT immutability
> > lib: sbi_domain_context: propagate error from
> > sbi_hart_protection_reconfigure
> > lib: sbi_hart_worlds: Implement WID hart protection backend
> > include: sbi_types: add PRIx64 format macro
> > lib: sbi: display World ID configuration at boot
> > docs: document WID DT properties
> >
> > docs/domain_support.md | 36 +++++
> > include/sbi/riscv_encoding.h | 12 ++
> > include/sbi/sbi_domain.h | 6 +
> > include/sbi/sbi_hart.h | 15 +++
> > include/sbi/sbi_hart_worlds.h | 24 ++++
> > include/sbi/sbi_types.h | 2 +
> > include/sbi_utils/fdt/fdt_helper.h | 2 +
> > lib/sbi/objects.mk | 1 +
> > lib/sbi/sbi_domain.c | 20 +++
> > lib/sbi/sbi_domain_context.c | 5 +-
> > lib/sbi/sbi_hart.c | 38 ++++++
> > lib/sbi/sbi_hart_worlds.c | 210 +++++++++++++++++++++++++++++
> > lib/sbi/sbi_init.c | 13 ++
> > lib/utils/fdt/fdt_domain.c | 84 ++++++++++++
> > lib/utils/fdt/fdt_helper.c | 90 +++++++++++++
> > platform/generic/platform.c | 13 +-
> > 16 files changed, 569 insertions(+), 2 deletions(-)
> > create mode 100644 include/sbi/sbi_hart_worlds.h
> > create mode 100644 lib/sbi/sbi_hart_worlds.c
> >
> > --
> > 2.43.7
> >
>
> Overall, this series is in great shape. Once, I will
> merge once my comments are addressed.
Sure, comments are addressed accordingly.
Hi Oza, Radim,
Please re-review the PATCHv4.
Thanks,
Peter Lin
>
> Thanks,
> Anup
More information about the opensbi
mailing list