Multiple dec2114x units on ppc
strauman at SLAC.Stanford.EDU
Tue Feb 25 20:45:12 UTC 2003
First of all: could you append a copy of the dec2114x driver
including your modifications?
gregory.menke at gsfc.nasa.gov wrote:
> I think I have the vectors straight, but am still having some trouble
> getting interrupts going. The isr name is
> 8 + BSP_PCI_INTERRUPT_LOWEST_OFFSET
That looks ok, provided that you are sure the card uses INTA
in the slot it is sitting (note that the backplane might permute
the 4 PCI interrupt lines).
> The 8 corresponding to INTERRUPT_PIN 1 on the cpci bus, gotten from
> the mcp750 programmers guide.
> I've tried a variety of values in
> INTERRUPT_LINE without effect, which looks as if its not used for CPCI
> interrupt vectoring in any case.
Changing INTERRUPT_LINE has no effect. INTERRUPT_LINE is mere
information which should have been put there by the firmware.
You probably want to try different isr 'name's
BSP_PCI_INTERRUPT_LOWEST_OFFSET + 8..11
> I put a bus analyzer on the cpci bus and I <think> I'm seeing the card
> assert an interrupt-
So do you see it on INTA ?
>(at least the interrupt lines change at the right
> time), but it appears to not be acknowledged
in this case, it should remain asserted.
> and the bsp irq software
> never vectors anything (not even to the wrong handler).
If there is no handler installed, the line is probably masked.
You should try connecting an ISR to the four PCI interrupt names
mentioned above (assuming you have no other PCI cards plugged in).
Each ISR could then printk() a message [this is VERY dirty. Of
course, you'd never print something from an ISR in real sofware].
> Does anyone
> have any ideas regarding further probes I might try to see where the
> interrupt is hanging up?
> I'm toying with the idea of dumping MPIC registers at various points,
> but I was hoping for a better idea.
That's not a bad idea. If you were using Cexp, it would be a piece
of cake to do exactly that from the command line. I can just type e.g.
*(long *)(OpenPIC + 0x10000)
To display the (little endian) value of the register at offset 0x10000.
You could unmask individual IRQs this way and see if the default handler
is called, look at the status bits etc.
More information about the users