Interruption on PCI Bus

Simon Desfarges simon.desfarges at fr.thalesgroup.com
Fri Apr 17 18:24:25 EST 2009


Grant Likely a écrit :
> 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.
> 

I continue my investigations, it could be a little bit long because I'm 
waiting for a new board...

Thank you very much,
Simon Desfarges



More information about the devicetree-discuss mailing list