OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [mips/] [philips/] [nino/] [int-handler.S] - Rev 1275

Go to most recent revision | Compare with Previous | Blame | View Log

/*
 *  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 <asm/asm.h>
#include <asm/mipsregs.h>
#include <asm/regdef.h>
#include <asm/stackframe.h>

        /*
         * 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)

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.