]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: imx95: Correct PCIe outbound address space configuration
authorRichard Zhu <hongxing.zhu@nxp.com>
Wed, 20 May 2026 07:22:28 +0000 (15:22 +0800)
committerFrank Li <Frank.Li@nxp.com>
Fri, 5 Jun 2026 17:19:10 +0000 (13:19 -0400)
Fix the PCIe outbound memory ranges for both pcie0 and pcie1
controllers on i.MX95.

The memory window size was incorrectly set to 256MB during initial
bring-up, but the hardware supports up to 4GB of outbound address space
per controller.

Additionally, the ECAM region cannot be mapped as I/O space. Use a
memory-mapped region for I/O space instead, and relocate the 1MB I/O
region to immediately follow the memory region at offset 0xf0000000
within each window.

Update the outbound address space layout per controller as follows:

  - 3.5GB  64-bit prefetchable memory
  - 256MB  32-bit non-prefetchable memory
  - 1MB    I/O

Fixes: 3b1d5deb29ff ("arm64: dts: imx95: add pcie[0,1] and pcie-ep[0,1] support")
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm64/boot/dts/freescale/imx95.dtsi

index b4ca507b650a5185fa7fb6209012b1af26c2d055..d6c549c16047645bedd13a8e395f92c3d37129ea 100644 (file)
                              <0 0x4c360000 0 0x10000>,
                              <0 0x4c340000 0 0x4000>;
                        reg-names = "dbi", "config", "atu", "app";
-                       ranges = <0x81000000 0x0 0x00000000 0x0 0x6ff00000 0 0x00100000>,
-                                <0x82000000 0x0 0x10000000 0x9 0x10000000 0 0x10000000>;
+                       ranges = <0x43000000 0x9 0x00000000 0x9 0x00000000 0x0 0xe0000000>,
+                                <0x82000000 0x0 0xe0000000 0x9 0xe0000000 0x0 0x10000000>,
+                                <0x81000000 0x0 0x00000000 0x9 0xf0000000 0x0 0x00100000>;
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
                              <0 0x4c3e0000 0 0x10000>,
                              <0 0x4c3c0000 0 0x4000>;
                        reg-names = "dbi", "config", "atu", "app";
-                       ranges = <0x81000000 0 0x00000000 0x8 0x8ff00000 0 0x00100000>,
-                                <0x82000000 0 0x10000000 0xa 0x10000000 0 0x10000000>;
+                       ranges = <0x43000000 0xa 0x00000000 0xa 0x00000000 0x0 0xe0000000>,
+                                <0x82000000 0x0 0xe0000000 0xa 0xe0000000 0x0 0x10000000>,
+                                <0x81000000 0x0 0x00000000 0xa 0xf0000000 0x0 0x00100000>;
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";