When hypervisor extension is available, we only handle hypervisor
ecalls coming from HS-mode and we let hypervisor handle ecalls coming
from VS-mode.
Signed-off-by: Anup Patel <anup.patel@wdc.com>
(1U << CAUSE_LOAD_PAGE_FAULT) |
(1U << CAUSE_STORE_PAGE_FAULT);
+ /*
+ * If hypervisor extension available then we only handle
+ * hypervisor calls (i.e. ecalls from HS-mode) and we let
+ * HS-mode handle supervisor calls (i.e. ecalls from VS-mode)
+ */
+ if (misa_extension('H'))
+ exceptions |= (1U << CAUSE_SUPERVISOR_ECALL);
+
csr_write(CSR_MIDELEG, interrupts);
csr_write(CSR_MEDELEG, exceptions);