* [PATCH] arm64: dts: ti: k3-j722s-main: add legacy PCIe interrupts
@ 2025-08-19 11:13 Michael Walle
2025-08-20 13:52 ` s-vadapalli
0 siblings, 1 reply; 4+ messages in thread
From: Michael Walle @ 2025-08-19 11:13 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Michael Walle
The kernel will try to map the legacy interrupt pins, but the
interrupt mapping is missing from the device tree and thus that
fails with:
pcieport 0000:00:00.0: of_irq_parse_pci: failed with rc=-22
Add the node for the legacy PCIe interrupts to fix that. This is just
compile-time tested.
Signed-off-by: Michael Walle <mwalle@kernel.org>
---
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
index ab2e7b6eb98e..3e10b78d5bf3 100644
--- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
@@ -119,7 +119,20 @@ pcie0_rc: pcie@f102000 {
cdns,no-bar-match-nbits = <64>;
ti,syscon-pcie-ctrl = <&pcie0_ctrl 0x0>;
msi-map = <0x0 &gic_its 0x0 0x10000>;
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &pcie0_intc 0>, /* INT A */
+ <0 0 0 2 &pcie0_intc 0>, /* INT B */
+ <0 0 0 3 &pcie0_intc 0>, /* INT C */
+ <0 0 0 4 &pcie0_intc 0>; /* INT D */
status = "disabled";
+
+ pcie0_intc: interrupt-controller {
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ interrupt-parent = <&gic500>;
+ interrupts = <GIC_SPI 95 IRQ_TYPE_EDGE_RISING>;
+ };
};
usbss1: usb@f920000 {
--
2.39.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] arm64: dts: ti: k3-j722s-main: add legacy PCIe interrupts
2025-08-19 11:13 [PATCH] arm64: dts: ti: k3-j722s-main: add legacy PCIe interrupts Michael Walle
@ 2025-08-20 13:52 ` s-vadapalli
2025-08-20 14:00 ` Michael Walle
0 siblings, 1 reply; 4+ messages in thread
From: s-vadapalli @ 2025-08-20 13:52 UTC (permalink / raw)
To: Michael Walle
Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel, s-vadapalli
On Tue, Aug 19, 2025 at 01:13:17PM +0200, Michael Walle wrote:
Hello Michael,
> The kernel will try to map the legacy interrupt pins, but the
> interrupt mapping is missing from the device tree and thus that
> fails with:
>
> pcieport 0000:00:00.0: of_irq_parse_pci: failed with rc=-22
>
> Add the node for the legacy PCIe interrupts to fix that. This is just
> compile-time tested.
INTx is not supported by the driver as explained at:
https://lore.kernel.org/r/be3e3c5f-0d48-41b0-87f4-2210f13b9460@ti.com/
The patch to fix the error displayed in the logs was posted at:
https://lore.kernel.org/r/20240726135903.1255825-1-s-vadapalli@ti.com/
but wasn't accepted as-is. A different approach will be required to fix
of_irq_parse_pci() instead as pointed out at:
https://lore.kernel.org/r/20240729080006.GA8698@thinkpad/
[Trimmed]
Regards,
Siddharth.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] arm64: dts: ti: k3-j722s-main: add legacy PCIe interrupts
2025-08-20 13:52 ` s-vadapalli
@ 2025-08-20 14:00 ` Michael Walle
2025-08-21 5:09 ` s-vadapalli
0 siblings, 1 reply; 4+ messages in thread
From: Michael Walle @ 2025-08-20 14:00 UTC (permalink / raw)
To: s-vadapalli
Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel
Hi Siddharth,
On Wed Aug 20, 2025 at 3:52 PM CEST, s-vadapalli wrote:
> On Tue, Aug 19, 2025 at 01:13:17PM +0200, Michael Walle wrote:
>
> Hello Michael,
>
>> The kernel will try to map the legacy interrupt pins, but the
>> interrupt mapping is missing from the device tree and thus that
>> fails with:
>>
>> pcieport 0000:00:00.0: of_irq_parse_pci: failed with rc=-22
>>
>> Add the node for the legacy PCIe interrupts to fix that. This is just
>> compile-time tested.
>
> INTx is not supported by the driver as explained at:
> https://lore.kernel.org/r/be3e3c5f-0d48-41b0-87f4-2210f13b9460@ti.com/
>
> The patch to fix the error displayed in the logs was posted at:
> https://lore.kernel.org/r/20240726135903.1255825-1-s-vadapalli@ti.com/
> but wasn't accepted as-is. A different approach will be required to fix
> of_irq_parse_pci() instead as pointed out at:
> https://lore.kernel.org/r/20240729080006.GA8698@thinkpad/
Thanks for the pointers.
I've just checked the J722S errata sheet and there is no such
erratum. So, is that sheet outdated or was it fixed?
-michael
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] arm64: dts: ti: k3-j722s-main: add legacy PCIe interrupts
2025-08-20 14:00 ` Michael Walle
@ 2025-08-21 5:09 ` s-vadapalli
0 siblings, 0 replies; 4+ messages in thread
From: s-vadapalli @ 2025-08-21 5:09 UTC (permalink / raw)
To: Michael Walle
Cc: s-vadapalli, Nishanth Menon, Vignesh Raghavendra, Tero Kristo,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel,
devicetree, linux-kernel
On Wed, Aug 20, 2025 at 04:00:45PM +0200, Michael Walle wrote:
> Hi Siddharth,
>
> On Wed Aug 20, 2025 at 3:52 PM CEST, s-vadapalli wrote:
> > On Tue, Aug 19, 2025 at 01:13:17PM +0200, Michael Walle wrote:
> >
> > Hello Michael,
> >
> >> The kernel will try to map the legacy interrupt pins, but the
> >> interrupt mapping is missing from the device tree and thus that
> >> fails with:
> >>
> >> pcieport 0000:00:00.0: of_irq_parse_pci: failed with rc=-22
> >>
> >> Add the node for the legacy PCIe interrupts to fix that. This is just
> >> compile-time tested.
> >
> > INTx is not supported by the driver as explained at:
> > https://lore.kernel.org/r/be3e3c5f-0d48-41b0-87f4-2210f13b9460@ti.com/
> >
> > The patch to fix the error displayed in the logs was posted at:
> > https://lore.kernel.org/r/20240726135903.1255825-1-s-vadapalli@ti.com/
> > but wasn't accepted as-is. A different approach will be required to fix
> > of_irq_parse_pci() instead as pointed out at:
> > https://lore.kernel.org/r/20240729080006.GA8698@thinkpad/
>
> Thanks for the pointers.
>
> I've just checked the J722S errata sheet and there is no such
> erratum. So, is that sheet outdated or was it fixed?
According to the Errata documents, the errata only affects J721E SoC.
The procedure to enable the INTx support is the following:
1. Update DT bindings to indicate that INTx is valid only for SoCs other
than J721E SoCs on the basis of the compatible.
2. Add support in the pci-j721e.c driver for INTx.
3. Finally, the current patch or patches for other SoCs to add INTx can
be posted and merged.
The following series which was posted in 2021 corresponds to 1 and 2
above:
https://lore.kernel.org/r/20210811123846.31921-1-kishon@ti.com/
Please note that the above series was included in the downstream (TI)
Linux in the past. It was observed that despite the Errata not affecting
the AM64 SoC (contains a Cadence PCIe Controller and is programmed by the
same pci-j721e.c driver), legacy interrupts were missed and resulted in the
PCIe Endpoint device becoming non-functional. Resolving this issue
required retriggering the interrupt following which the device became
functional.
Therefore, it is encouraged that MSI/MSI-X are used instead. If INTx is a
necessity (unlike the current patch which only aims to prevent error logs
from showing up), then the aforementioned series can be used with the
disclaimer that it may still lead to interrupts being missed.
Regards,
Siddharth.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-08-21 5:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-19 11:13 [PATCH] arm64: dts: ti: k3-j722s-main: add legacy PCIe interrupts Michael Walle
2025-08-20 13:52 ` s-vadapalli
2025-08-20 14:00 ` Michael Walle
2025-08-21 5:09 ` s-vadapalli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).