From a826a645a67c2be3c7acb097c436c810da728ed7 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Thu, 6 Jan 2022 00:28:22 -0800 Subject: Move irq enable/disable to handler --- src/boot.S | 2 ++ src/cpu/irq.c | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/boot.S b/src/boot.S index f21c4fe..badb655 100644 --- a/src/boot.S +++ b/src/boot.S @@ -55,7 +55,9 @@ reset: irq: push {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} + cpsid i bl c_irq_handler + cpsie i pop {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} subs pc, lr, #4 diff --git a/src/cpu/irq.c b/src/cpu/irq.c index 28ad886..0d6e9de 100644 --- a/src/cpu/irq.c +++ b/src/cpu/irq.c @@ -13,7 +13,6 @@ void localtest(void); void c_irq_handler(void) { - disableirq(); unsigned long source = load32(CORE0_IRQ_SOURCE); if (source & (1 << 8)) { if(load32(IRQ_PENDING2) & (1 << 25)) { @@ -94,13 +93,11 @@ void c_irq_handler(void) g_Drawer.y = 7; write_string(&g_Drawer, "> "); write_string(&g_Drawer, cmd); - enableirq(); return; } } } else if (source & (1 << 3)) { c_timer(); - enableirq(); return; } return; -- cgit v1.2.1