mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-02 10:46:50 +07:00
1da177e4c3
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
34 lines
650 B
ArmAsm
34 lines
650 B
ArmAsm
#include <asm/asm.h>
|
|
#include <asm/mipsregs.h>
|
|
#include <asm/regdef.h>
|
|
#include <asm/stackframe.h>
|
|
|
|
.set noat
|
|
.align 5
|
|
|
|
NESTED(ev96100IRQ, PT_SIZE, sp)
|
|
SAVE_ALL
|
|
CLI # Important: mark KERNEL mode !
|
|
|
|
mfc0 t0, CP0_CAUSE # get pending interrupts
|
|
mfc0 t1, CP0_STATUS # get enabled interrupts
|
|
and t0, t1 # isolate allowed ones
|
|
|
|
# FIX ME add R7000 extensions
|
|
andi t0,0xff00 # isolate pending bits
|
|
andi a0, t0, CAUSEF_IP7
|
|
beq a0, zero, 1f
|
|
move a0, sp
|
|
jal mips_timer_interrupt
|
|
j ret_from_irq
|
|
|
|
1: beqz t0, 3f # spurious interrupt
|
|
|
|
move a0, t0
|
|
move a1, sp
|
|
jal ev96100_cpu_irq
|
|
j ret_from_irq
|
|
|
|
3: j spurious_interrupt
|
|
END(ev96100IRQ)
|