Interruption on PCI Bus

Grant Likely grant.likely at secretlab.ca
Fri Apr 17 01:15:46 EST 2009


On Thu, Apr 16, 2009 at 9:12 AM, Simon Desfarges
<simon.desfarges at fr.thalesgroup.com> wrote:
>
>
> Grant Likely a écrit :
>>
>> On Thu, Apr 16, 2009 at 2:50 AM, Mitch Bradley <wmb at firmworks.com> wrote:
>>>
>>> Sorry for being so vague.  As the person who originally devised this
>>> interrupt tree stuff, I'm pretty sure about the intention, but much less
>>> sure about what specific versions of Linux and U-Boot actually do.
>>>  Hopefully someone else can give you a definitive answer about that.
>>
>> U-Boot doesn't really do anything with interrupts.  It usually just
>> polls everything.
>>
>> Linux arch/powerpc does walk the device tree to get irq routing and
>> resolve to a Linux-internal virtual IRQ number.  I'm pretty sure that
>> the IRQ registers are normally ignored unless something goes wrong
>> with parsing the tree.  See arch/powerpc/kernel/pci-common.c and
>> search for of_irq_map_pci().
>>
>> g.
>>
> OK, thank you very much for your answers, you are very helpful for a newbie
> like me.
>
> So, if I understood well, of_irq_map_pci() maps the IRQs by reading the
> device tree and doesn't use the irq_line register (if there is nothing
> wrong) of the PCI device and doesn't initialize it. My problem is PCI device
> drivers are using this field (I have read this in the ldd book). I think I
> have missed something because it seems to work well like this.

LDDv3 is several years old now and tends to be x86 centric.  It is
unlikely that PCI device drivers are reading the IRQ registers
directly (instead of using the PCI API), and if they are it is
probably a bug.  If you see code that does otherwise, then please let
me know.

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.



More information about the devicetree-discuss mailing list