On Thu, Oct 18, 2012 at 11:44 PM, Grant Likely <grant.lik...@secretlab.ca> wrote: > On Thu, Oct 18, 2012 at 10:59 PM, Dennis Schridde <devuran...@gmx.net> wrote: >> Am Donnerstag, 18. Oktober 2012, 22:32:55 schrieb Grant Likely: >>> Unfortunately the debug messages don't show up in the console log by >>> default. Can you either send the output of 'dmesg' after booting, or >>> add "loglevel=8" to the kernel boot parameters? >> Here you go. >> >> I also see some lines like: >> irq: no irq domain found for >> /axon@10000000000/plb5/pciex-utl@a00000a000004000 >> Is that also a problem? > > [cc'ing linuxppc-dev] > > Okay, so what is happening is that the function cbe_init_pm_irq() is > trying to set up hwirq numbers 0x7e, 0x17e, 0x27e and continuing up > every 0x100 to 0xff7e. This happens because that function is > calculating the hwirq number used for_each_node, and shifts the node > number up 8 bits to make up the upper bits of the hwirq number. > However, according the the header file, only '0' and '1' are actual > valid values for the upper bits. > > CONFIG_NODES_SHIFT = 8 for PowerPC 64, which accounts for the range 0..0xff. > > arch/powerpc/platforms/cell/interrupt.h defines the values of > IIC_IRQ_NODE_SHIFT = 8 and IIC_IRQ_NODE_MASK 0x100. > > So, from the context, I assume the function is trying to set up a PM > interrupt for each CPU in the Cell processor; and that there are 2 of > them. for_each_node() knows nothing of this and dutifully tries to set > up the irq for 256 processors; way beyond what is valid for the irq > controller. > > Also, it should be noted that the irq does actually get set up by > irqdomain.c, but because everything above 0x1ff is larger than the > lookup table, it complains. The new code complains loudly (as you > discovered) if someone tries to use a hwirq larger than the map where > the old code didn't. > > Looks to me like the fix is to change for_each_node() to something as > simple as "for (i = 0; i < 2; i++)"
As for the next failure seen in that log, it would appear that the MPIC ->map hook, mpic_host_map(), is failing on some mappings, but it does appear that it has some legitimate reasons for doing so. The difference now is that I changed irqdomain code to complain about it. That is probably an overreach, or at least it should be yelling quite so much about it. g. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev