diff options
Diffstat (limited to 'src/arm/PL1/kernel/interrupts.c')
-rw-r--r-- | src/arm/PL1/kernel/interrupts.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/src/arm/PL1/kernel/interrupts.c b/src/arm/PL1/kernel/interrupts.c index 5695e6f..6f61615 100644 --- a/src/arm/PL1/kernel/interrupts.c +++ b/src/arm/PL1/kernel/interrupts.c @@ -4,17 +4,6 @@ #include "armclock.h" #include "scheduler.h" -// defined in setup.c -void __attribute__((noreturn)) setup(void); - -// from what I've heard, reset is never used on the Pi; -// in our case it should run once - when stage1 of the kernel -// jumps to stage2 -void reset_handler(void) -{ - setup(); -} - void undefined_instruction_vector(void) { error("Undefined instruction occured"); @@ -85,6 +74,7 @@ void irq_handler(uint32_t regs[14]) if (read_SPSR().fields.PSR_MODE_4_0 != MODE_USER) { + // TODO set supervisor mode's stack pointer write_SPSR(PL1_PSR); asm volatile("mov lr, %0\n\r" "subs pc, lr, #0" :: |