aboutsummaryrefslogtreecommitdiff
path: root/src/interrupts.zig
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-05-11 23:34:52 +0200
committerHimbeer <himbeer@disroot.org>2024-05-11 23:34:52 +0200
commit3e24ee846030967d1c5fb4cf2d1e97c61da132e8 (patch)
tree4999305eb331def56ec8d303143ff388b14fa9f9 /src/interrupts.zig
parent8002f3573524b0ccfa89bd1cfc35ea3658b6360e (diff)
interrupts: Set SIE bit in sstatus CSR
This fixes external interrupts not trapping into stvec.
Diffstat (limited to 'src/interrupts.zig')
-rw-r--r--src/interrupts.zig4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/interrupts.zig b/src/interrupts.zig
index 4f72d91..b66b657 100644
--- a/src/interrupts.zig
+++ b/src/interrupts.zig
@@ -261,6 +261,10 @@ pub fn init() void {
\\
\\ la t0, supervisor_trap_vector
\\ csrw stvec, t0
+ \\
+ \\ csrr t0, sstatus
+ \\ ori t0, t0, 2
+ \\ csrw sstatus, t0
:
: [trapframe] "r" (&trap_frame),
);