From 9c61d29846d8521d9487a57739330f9682d5b542 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 18 Sep 2025 17:06:08 -0700 Subject: [PATCH] Misaligned fetch exception is not mandatorily delegable Harts with IALIGN=16 might hardwire this medeleg bit to 0. --- machine/minit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/machine/minit.c b/machine/minit.c index 72f47ef..2256863 100644 --- a/machine/minit.c +++ b/machine/minit.c @@ -74,7 +74,6 @@ static void delegate_traps() uintptr_t interrupts = MIP_SSIP | MIP_STIP | MIP_SEIP; uintptr_t mandatorily_delegable_exceptions = - (1U << CAUSE_MISALIGNED_FETCH) | (1U << CAUSE_FETCH_PAGE_FAULT) | (1U << CAUSE_BREAKPOINT) | (1U << CAUSE_LOAD_PAGE_FAULT) | @@ -82,6 +81,7 @@ static void delegate_traps() (1U << CAUSE_USER_ECALL); uintptr_t exceptions = mandatorily_delegable_exceptions | + (1U << CAUSE_MISALIGNED_FETCH) | (1U << CAUSE_SOFTWARE_CHECK_FAULT); write_csr(mideleg, interrupts);