Re: Interrupt occurs but UIC0 MSR is still 0
From: Eugene Surovegin <hidden>
Date: 2006-06-16 02:02:25
On Thu, Jun 15, 2006 at 05:38:19PM -0400, Chris Dumoulin wrote:
Hi All, I'm working with a 2.6 linux kernel in a board with a PPC405 in a Virtex II Pro FPGA. I'm trying to generate interrupts and handle them in a device driver that I've written. Here is the sequence of events that happen currently: 1. I generate an interrupt by setting registers in an interrupt controller we've got in the FPGA (it's a Xilinx LogicCORE OPB Interrupt Controller). 2. The function do_IRQ, in arch/powerpc/kernel/irq.c, is called. 3. ppc_md.get_irq is called from do_IRQ. 4. ppc_md.get_irq points to ppc4xx_pic_get_irq in arch/ppc/syslib/ppc4xx_pic.c. 5. ppc4xx_pic_get_irq reads the MSR from UIC0 to determine the IRQ. In my case, the MSR is all zero, so ppc4xx_pic_get_irq returns -1. 6. After this, we return from the interrupt, and do_IRQ is called again and again, going through the same steps indefinitely.
I don't think ppc4xx_pic.c is correct file for Xilinx Virtex II Pro. You should be using xilinx_pic.c probably. -- Eugene