aboutsummaryrefslogtreecommitdiff
path: root/machine/minit.c
diff options
context:
space:
mode:
Diffstat (limited to 'machine/minit.c')
-rw-r--r--machine/minit.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/machine/minit.c b/machine/minit.c
index cd909f3..0a87633 100644
--- a/machine/minit.c
+++ b/machine/minit.c
@@ -124,10 +124,17 @@ static void hart_plic_init()
return;
size_t ie_words = plic_ndevs / sizeof(uintptr_t) + 1;
- for (size_t i = 0; i < ie_words; i++)
- HLS()->plic_s_ie[i] = ULONG_MAX;
+ for (size_t i = 0; i < ie_words; i++) {
+ if (HLS()->plic_s_ie) {
+ // Supervisor not always present
+ HLS()->plic_s_ie[i] = ULONG_MAX;
+ }
+ }
*HLS()->plic_m_thresh = 1;
- *HLS()->plic_s_thresh = 0;
+ if (HLS()->plic_s_thresh) {
+ // Supervisor not always present
+ *HLS()->plic_s_thresh = 0;
+ }
}
static void wake_harts()