arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+)
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
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.
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
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.
© 2016 - 2025 Red Hat, Inc.