From: Adrian M. <ad...@mc...> - 2002-01-01 19:28:08
|
On Tuesday 01 Jan 2002 7:18 pm, M. R. Brown wrote: > * M. R. Brown <mr...@0x...> on Tue, Jan 01, 2002: > > * Adrian McMenamin <ad...@mc...> on Tue, Jan 01, 2002: > > > I am experimenting with the AICA interrupt - HW_EVENT_AICA_SYS - but I > > > am getting odd results: > > > > [...] > > > > > When this runs every call to writel(0x20, 0xa07028b8) appears to > > > generate "unexpected IRQ trap at vector 0b" (though system output > > > otherwise is normal). > > > > > > What have I done wrong? > > > > I don't understand why you're getting the "unexpected IRQ ..." message, > > the DC interrupt-handling code switches off of SH4 IRQ's 9, 11, and 13, > > so they should always be "expected" and return the virtual IRQ. See > > arch/sh/kernel/setup_dc.c::systemasic_irq_demux() for more info. > > I added the code you sent in your message. > > Hmm, ok, I hit it too, but it's still a bit perplexing since > /proc/interrupts says AICA interrupts are being triggered; > > # cat /proc/interrupts > CPU0 > 16: 11594 IPR-IRQ timer > 40: 0 IPR-IRQ sci > 41: 106 IPR-IRQ sci > 42: 0 IPR-IRQ sci > 43: 463 IPR-IRQ sci > 53: 6933 System ASIC pvr2 VBL handler > 81: 32 System ASIC AICA > 83: 2597 System ASIC eth0 > > But I still get the "unexpected IRQ" messages on playback. > > I'm going to dig around the irq and DC irq stuff a bit more, I'll let you > know when I find out what's going on. > > I'm also starting to suspect something a bit more insidious, after catting > /proc/interrupts a couple of times now I get "Unable to handle kernel > paging request" register dumps, followed by cat segfaulting. Something > looks to be seriously broken. > > M. R. My /proc/interrupts also indicates that AICA interrupts are being handled too. I have not had any problems with paging errors. Further poking about suggests that this does not happen with every write of the 0xa07028b8, but only when something is written to the AICA memory. At least the number of "Unexpected IRQ traps..." matches the number of writes. [Interestingly when I removed the enable and disable writes and just kept the pending one the whole system froze and could only be restored by switching off - not sure why that should be.] |