[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