[RFC PATCH 05/12] include: sbi_domain: add Worlds WID fields
Pawandeep Oza
pawandeep.oza at oss.qualcomm.com
Mon Jul 13 14:52:27 PDT 2026
On Fri, Jun 26, 2026 at 3:16 AM Yu-Chien Peter Lin <peter.lin at sifive.com> wrote:
>
> Adds next_wid (u32 WID for next boot stage), has_next_wid (distinguishes
> explicit zero from unset for pmwid fallback), and next_widlist (u64 bitmask
> specifying which WIDs can be delegated to this domain) to sbi_domain
> structure. Enables per-domain World ID configuration.
>
> Signed-off-by: Yu-Chien Peter Lin <peter.lin at sifive.com>
> ---
> include/sbi/sbi_domain.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/include/sbi/sbi_domain.h b/include/sbi/sbi_domain.h
> index 16edd4ce..7d523493 100644
> --- a/include/sbi/sbi_domain.h
> +++ b/include/sbi/sbi_domain.h
> @@ -211,6 +211,12 @@ struct sbi_domain {
> unsigned long next_addr;
> /** Privilege mode of next booting stage for this domain */
> unsigned long next_mode;
> + /** Next booting stage World ID for this domain */
> + u32 next_wid;
oza: The next_ convention works well for one-time boot handoff fields
like next_addr and next_mode
But next_wid and next_widlist are not one-time boot fields — they are:
Written on every domain entry via sbi_domain_worlds_enter()
Active throughout the domain's lifetime
Runtime isolation policy, not a boot handoff value
So the next_ naming is semantically misleading here
why not just have this naming
widThe
WID assigned to this domain.
has_wid
lwid_deleg
The delegation budget to lower levels.
> + /** Whether next_wid was explicitly set */
> + bool has_next_wid;
> + /** Next booting stage World ID delegation bitmask for this domain */
> + u64 next_widlist;
> /** Is domain allowed to reset the system */
> bool system_reset_allowed;
> /** Is domain allowed to suspend the system */
> --
> 2.43.7
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
More information about the opensbi
mailing list