From: Johns Daniel <johns.daniel@gmail.com>
To: Kumar Gala <galak@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: PCIe interrupts in the device tree
Date: Wed, 25 Mar 2009 08:45:46 -0500 [thread overview]
Message-ID: <ba5d9360903250645i15c16a89ye9bb1998e6c4bedb@mail.gmail.com> (raw)
In-Reply-To: <FC69A78E-BDFC-4E89-AF28-42CBA49234FE@kernel.crashing.org>
On Tue, Mar 24, 2009 at 8:12 PM, Kumar Gala <galak@kernel.crashing.org> wro=
te:
>
> On Mar 24, 2009, at 4:13 PM, Johns Daniel wrote:
>
>>
>> On Tue, Mar 24, 2009 at 3:54 PM, Kumar Gala <galak@kernel.crashing.org> =
wrote:
>>
>> On Mar 24, 2009, at 3:24 PM, Johns Daniel wrote:
>>
>> Could somebody please explain the declaration of the PCIe interrupts
>> in the device tree?
>>
>> I was under the impression that PCIe interrupts in the PowerPC Linux
>> kernel default to using INTx signaling (vs. external IRQ pin assertion
>> and MSI signaling). Am I right?
>>
>> If so, then do the interrupt-map lines in the DTS refer to the
>> internal IRQ used by Freescale processors to implement INTx virtual
>> wire interrupts?
>>
>> For example, in the mpc8536ds.dts file, under "pci1: pcie@ffe09000" we h=
ave:
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 interrupt-map =3D <
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* IDSEL 0x0 */
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 0000 0 0 1 &mpic 4 1
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 0000 0 0 2 &mpic 5 1
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 0000 0 0 3 &mpic 6 1
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 0000 0 0 4 &mpic 7 1
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 >;
>> Are the 4, 5, 6, and 7 internal or external IRQs?
>>
>> The .dts and linux make no distinction between internal & external IRQs.=
=A0This is a silly artifact of Freescale UMs. =A0IRQ 0 starts at offset 0x=
50000 and each 0x20 offset is another IRQ. =A0So typically External 0 =3D=
=3D IRQ0, Internal 0 =3D=3D IRQ16.
>>
>> So this says that Ext 4, 5, 6, 7 and wired to INTA, INTB, INTC, INTD for=
this particular PCIe controller.
>>
>> When you say "wired", do you mean hard-wired?
>
> Yes. =A0The INTx emulation interrupts are hard-wired by the SoC on top of=
the external IRQs.
>
>> If so, how would you specify and use INTx message interrupts?
>
> Do you mean MSI or INTx emulation?
INTx emulation.
I think I finally understand! From what you are saying, IRQ pin
assertion and INTx emulation are indistinct from the point of view of
the processor core, Linux, and the device tree. (The PCIe controller
translates the INTx message to an IRQ assertion.) We can switch to MSI
by having the driver call pci_enable_msi().
Thank you very much, Kumar!
prev parent reply other threads:[~2009-03-25 13:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-24 20:24 PCIe interrupts in the device tree Johns Daniel
2009-03-24 20:54 ` Kumar Gala
2009-03-24 21:13 ` Johns Daniel
2009-03-25 1:12 ` Kumar Gala
2009-03-25 13:45 ` Johns Daniel [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ba5d9360903250645i15c16a89ye9bb1998e6c4bedb@mail.gmail.com \
--to=johns.daniel@gmail.com \
--cc=galak@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox