[PATCH 0/1] arm64: dts: rockchip: rk3568: Move PCIe3 MSI to use GIC ITS
From: Chukun Pan
Date: Sat Mar 08 2025 - 04:30:31 EST
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