Thanks Uwe, That was it! I added 'option IRQ_SLOT_COUNT=3' to the Config.lb in the target directory of my board, and that did the trick. I now get IRQs assigned to all 3 devices I intended to. Very nice!
As a side note, I noticed that only 2 boards came with IRQ_SLOT_COUNT in their Config.lb's. Was this option recently made mandatory? If so, we need a sweep to update the LBv2 Config.lb files.
thanks! -Jonathan
----- Original Message ---- From: Uwe Hermann uwe@hermann-uwe.de To: Jonathan Sturges jonathansturges@yahoo.com Cc: LinuxBIOS mailing list linuxbios@linuxbios.org Sent: Sunday, September 16, 2007 5:31:13 PM Subject: Re: [LinuxBIOS] Missing IRQ table entries; irq_tables.c problem?
On Sun, Sep 16, 2007 at 12:31:09PM -0700, Jonathan Sturges wrote:
Hi, I'm missing something obvious and need someone to point me in the right direction.
I'm finishing up mapping IRQs on a CS5530 winterminal board I've got. I know the IRQ mappings of each on-board device and slot, and I put together my irq_tables.c accordingly. However, only the first 2 entries get written to the IRQ table, even though the file designates 3. Then, when I boot the LB image, I get this warning: Inconsistent IRQ routing table size (0x40/0x50)
The 0x50 makes sense; that's the "32+16*3" from my irq_tables.c. But where is the size being set to 0x40? It seems there's a configuration I missed somewhere.
There's
default IRQ_SLOT_COUNT=2
(or similar) in the Options.lb of your board.
const struct irq_routing_table intel_irq_routing_table = { PIRQ_SIGNATURE, /* u32 signature */ PIRQ_VERSION, /* u16 version */ 32+16*3, /* there can be total 3 devices on the bus */
So this should be
32+16*IRQ_SLOT_COUNT
This may or may not fix your issue. Please report back if it does.
Uwe.