[PATCH v2 2/2] arm64: dts: rockchip: rk3588: add MSI support

Sebastian Reichel posted 2 patches 2 years, 8 months ago
There is a newer version of this series
[PATCH v2 2/2] arm64: dts: rockchip: rk3588: add MSI support
Posted by Sebastian Reichel 2 years, 8 months ago
Add the two Interrupt Translation Service (ITS) IPs that are part of the
GIC-600, which are required for message signalled interrupts (MSI). This
is required for PCIe, which fully relies on MSI for interrupts.

Enabling the ITS nodes requires an operating system, that has a
workaround for Rockchip errata #3588001 (GIC600 can not support
shareable attribute).

Co-developed-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
index 2124c654f665..62204b96b0b4 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
@@ -1741,7 +1741,24 @@ gic: interrupt-controller@fe600000 {
 		mbi-alias = <0x0 0xfe610000>;
 		mbi-ranges = <424 56>;
 		msi-controller;
+		ranges;
+		#address-cells = <2>;
 		#interrupt-cells = <4>;
+		#size-cells = <2>;
+
+		its0: msi-controller@fe640000 {
+			compatible = "arm,gic-v3-its";
+			msi-controller;
+			#msi-cells = <1>;
+			reg = <0x0 0xfe640000 0x0 0x20000>;
+		};
+
+		its1: msi-controller@fe660000 {
+			compatible = "arm,gic-v3-its";
+			msi-controller;
+			#msi-cells = <1>;
+			reg = <0x0 0xfe660000 0x0 0x20000>;
+		};
 
 		ppi-partitions {
 			ppi_partition0: interrupt-partition-0 {
-- 
2.39.2
Re: [PATCH v2 2/2] arm64: dts: rockchip: rk3588: add MSI support
Posted by Marc Zyngier 2 years, 8 months ago
On Mon, 17 Apr 2023 16:00:38 +0100,
Sebastian Reichel <sebastian.reichel@collabora.com> wrote:
> 
> Add the two Interrupt Translation Service (ITS) IPs that are part of the
> GIC-600, which are required for message signalled interrupts (MSI). This
> is required for PCIe, which fully relies on MSI for interrupts.
> 
> Enabling the ITS nodes requires an operating system, that has a
> workaround for Rockchip errata #3588001 (GIC600 can not support
> shareable attribute).

$SUBJECT is inaccurate. This adds the descriptions of the ITSs, but
doesn't wire any MSI support at all (nobody even refers these
nodes, so the whole thing is pretty pointless).

	M.

-- 
Without deviation from the norm, progress is not possible.