For a long time, rk3568's MSI-X had bugs and could only work on one node. e.g. [ 7.250882] r8125 0002:01:00.0: no MSI/MSI-X. Back to INTx. Now the ITS of GICv3 on rk3568 has been fixed by commit b08e2f42e86b ("irqchip/gic-v3-its: Share ITS tables with a non-trusted hypervisor") and commit 2d81e1bb6252 ("irqchip/gic-v3: Add Rockchip 3568002 erratum workaround"). Following commit b956c9de9175 ("arm64: dts: rockchip: rk356x: Move PCIe MSI to use GIC ITS instead of MBI"), change the PCIe3 controller's MSI on rk3568 to use ITS, so that all MSI-X can work properly. ~# dmesg | grep -E 'GIC|ITS' [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] GIC: enabling workaround for GICv3: non-coherent attribute [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 320 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: MBI range [296:319] [ 0.000000] GICv3: Using MBI frame 0x00000000fd410000 [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fd460000 [ 0.000000] ITS [mem 0xfd440000-0xfd45ffff] [ 0.000000] GIC: enabling workaround for ITS: Rockchip erratum RK3568002 [ 0.000000] GIC: enabling workaround for ITS: non-coherent attribute [ 0.000000] ITS@0x00000000fd440000: allocated 8192 Devices @210000 (indirect, esz 8, psz 64K, shr 0) [ 0.000000] ITS@0x00000000fd440000: allocated 32768 Interrupt Collections @220000 (flat, esz 2, psz 64K, shr 0) [ 0.000000] ITS: using cache flushing for cmd queue [ 0.000000] GICv3: using LPI property table @0x0000000000230000 [ 0.000000] GIC: using cache flushing for LPI property table [ 0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000000240000 [ 0.013946] GICv3: CPU1: found redistributor 100 region 0:0x00000000fd480000 [ 0.013968] GICv3: CPU1: using allocated LPI pending table @0x0000000000250000 [ 0.014948] GICv3: CPU2: found redistributor 200 region 0:0x00000000fd4a0000 [ 0.014968] GICv3: CPU2: using allocated LPI pending table @0x0000000000260000 [ 0.015904] GICv3: CPU3: found redistributor 300 region 0:0x00000000fd4c0000 [ 0.015923] GICv3: CPU3: using allocated LPI pending table @0x0000000000270000 ~# lspci -v | grep MSI-X Capabilities: [b0] MSI-X: Enable- Count=1 Masked- Capabilities: [b0] MSI-X: Enable- Count=128 Masked- Capabilities: [b0] MSI-X: Enable+ Count=32 Masked- Capabilities: [b0] MSI-X: Enable- Count=128 Masked- Capabilities: [b0] MSI-X: Enable+ Count=32 Masked- Chukun Pan (1): arm64: dts: rockchip: rk3568: Move PCIe3 MSI to use GIC ITS arch/arm64/boot/dts/rockchip/rk3568.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -- 2.25.1