[RFC PATCH 07/12] lib: sbi_domain: print World ID config at boot
Yu-Chien Peter Lin
peter.lin at sifive.com
Fri Jun 26 03:14:28 PDT 2026
Extends sbi_domain_dump() to display World ID configuration
(next_wid and next_widlist) for each domain at boot. Provides
boot-time diagnostic visibility for debugging and verification.
Signed-off-by: Yu-Chien Peter Lin <peter.lin at sifive.com>
---
lib/sbi/sbi_domain.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c
index fa69170b..443aa60b 100644
--- a/lib/sbi/sbi_domain.c
+++ b/lib/sbi/sbi_domain.c
@@ -10,6 +10,7 @@
#include <sbi/riscv_asm.h>
#include <sbi/sbi_console.h>
#include <sbi/sbi_domain.h>
+#include <sbi/sbi_hart.h>
#include <sbi/sbi_hartmask.h>
#include <sbi/sbi_heap.h>
#include <sbi/sbi_hsm.h>
@@ -608,6 +609,31 @@ void sbi_domain_dump(const struct sbi_domain *dom, const char *suffix)
break;
}
+ if (sbi_hart_has_extension(sbi_scratch_thishart_ptr(),
+ SBI_HART_EXT_SMLWID)) {
+ if (dom->has_next_wid)
+ sbi_printf("Domain%d Next Wid %s: %u\n",
+ dom->index, suffix, dom->next_wid);
+ else {
+ struct sbi_scratch *scratch = sbi_scratch_thishart_ptr();
+ const struct sbi_hart_features *hf = sbi_hart_features_ptr(scratch);
+ sbi_printf("Domain%d Next Wid %s: %u (pmwid)\n",
+ dom->index, suffix, hf->pmwid);
+ }
+ } else {
+ sbi_printf("Domain%d Next Wid %s: unsupported\n",
+ dom->index, suffix);
+ }
+
+ if (sbi_hart_has_extension(sbi_scratch_thishart_ptr(),
+ SBI_HART_EXT_SMWIDDELEG)) {
+ sbi_printf("Domain%d Next Widlist%s: 0x%" PRIx64 "\n",
+ dom->index, suffix, dom->next_widlist);
+ } else {
+ sbi_printf("Domain%d Next Widlist%s: unsupported\n",
+ dom->index, suffix);
+ }
+
sbi_printf("Domain%d SysReset %s: %s\n",
dom->index, suffix, (dom->system_reset_allowed) ? "yes" : "no");
--
2.43.7
More information about the opensbi
mailing list