modified for m548x irq5

This commit is contained in:
Markus Fröschle
2015-01-17 21:47:12 +00:00
parent 5305ce49c6
commit 5ed4f44c9a

View File

@@ -259,7 +259,7 @@ _std_exc_vec:
movem.l d0/a5,(sp) // save registers movem.l d0/a5,(sp) // save registers
move.w 8(sp),d0 // fetch vector move.w 8(sp),d0 // fetch vector
and.l #0x3fc,d0 // mask out vector number and.l #0x3fc,d0 // mask out vector number
#define DBG_EXC
#ifdef DBG_EXC #ifdef DBG_EXC
// printout vector number of exception // printout vector number of exception
@@ -490,22 +490,31 @@ irq7:
#else // handlers for M5484LITE #else // handlers for M5484LITE
irq5: // irq5 is tied to PCI INTC# and PCI INTD# on the M5484LITE irq5: //move.w #0x2700,sr // disable interrupts
//move.w #0x2700,sr // disable interrupts subq.l #4,sp // extra space
lea -4*4(sp),sp // save gcc scratch registers link a6,#-4 * 4 // save gcc scratch registers
movem.l d0-d1/a0-a1,(sp) movem.l d0-d1/a0-a1,(sp)
jsr _irq5_handler // call C handler routine jsr _irq5_handler // call C handler routine
tst.b d0 // handled?
beq irq5_forward
movem.l (sp),d0-d1/a0-a1 // restore registers movem.l (sp),d0-d1/a0-a1 // restore registers
lea 4*4(sp),sp unlk a6
addq.l #4,sp
rte // return from exception rte // return from exception
irq5text: irq5_forward: move.l 0x74,a0 // fetch OS irq5 vector
.ascii "IRQ5!" add.l _rt_vbr,a0 // add runtime vbr
.dc.b 13,10,0 move.l a0,4(a6) // put on stack
movem.l (sp),d0-d1/a0-a1 // restore registers
unlk a6 //
move.w #0x2500,sr // set interrupt level
rts // jump through vector
irq6: irq6:
irq 0x74,5,0x20 irq 0x74,5,0x20