/* * arch/mips/philips/nino/int-handler.S * * Copyright (C) 2001 Steven J. Hill (sjhill@realitydiluted.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * Interrupt exception dispatch code for Philips Nino */ #include #include #include #include /* * Here is the table of interrupts for the Philips Nino * which uses the Philips PR31700/Toshiba TMPR3912 core. * * MIPS IRQ Description * -------- -------------------------------- * 0 SW0 interrupt (unused) * 1 SW1 interrupt (unused) * 2 * 3 * 4 PR31700 low priority interrupts * 5 * 6 PR31700 high priority interrupts * 7 */ .text .set noreorder .set noat .align 5 NESTED(ninoIRQ, PT_SIZE, sp) SAVE_ALL CLI .set at mfc0 s0, CP0_CAUSE # determine cause andi a0, s0, CAUSEF_IP6 beq a0, zero, 1f andi a0, s0, CAUSEF_IP4 # delay slot move a0, sp jal irq6_dispatch nop # delay slot j ret_from_irq nop # delay slot 1: beq a0, zero, 1f nop # delay slot move a0, sp jal irq4_dispatch nop # delay slot j ret_from_irq nop # delay slot 1: /* We should never get here */ move a0, sp j irq_bad nop END(ninoIRQ)