From 20fd17ff35106d60f278c78bb783994c6747866b Mon Sep 17 00:00:00 2001 From: Robin Murphy Date: Wed, 7 Feb 2018 14:32:55 +0000 Subject: [PATCH 1/2] arm64: dts: juno: Describe the full GICv2m region Juno's GICv2m implementation consists of four frames providing 32 interrupts each. Since it is possible to plug in enough PCIe endpoints to consume more than 32 MSIs, and the driver already has a bodge to handle multiple frames, let's expose the other three as well. Signed-off-by: Robin Murphy Signed-off-by: Marc Zyngier Signed-off-by: Sudeep Holla --- arch/arm64/boot/dts/arm/juno-base.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi index f165f04db0c9..f8088c45b060 100644 --- a/arch/arm64/boot/dts/arm/juno-base.dtsi +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi @@ -68,11 +68,30 @@ gic: interrupt-controller@2c010000 { interrupt-controller; interrupts = ; ranges = <0 0 0 0x2c1c0000 0 0x40000>; + v2m_0: v2m@0 { compatible = "arm,gic-v2m-frame"; msi-controller; reg = <0 0 0 0x1000>; }; + + v2m@10000 { + compatible = "arm,gic-v2m-frame"; + msi-controller; + reg = <0 0x10000 0 0x1000>; + }; + + v2m@20000 { + compatible = "arm,gic-v2m-frame"; + msi-controller; + reg = <0 0x20000 0 0x1000>; + }; + + v2m@30000 { + compatible = "arm,gic-v2m-frame"; + msi-controller; + reg = <0 0x30000 0 0x1000>; + }; }; timer { From 3f5098135b2cd23941e5573a3f0abaf75b0e1d0a Mon Sep 17 00:00:00 2001 From: Sudeep Holla Date: Mon, 26 Feb 2018 12:21:11 +0000 Subject: [PATCH 2/2] arm64: dts: juno: fix size of GICv2m MSI frames Currently the size of GICv2m MSI frames are listed as 4kB while the Juno TRM specifies 64kB for each of these MSI frames. Though the devices connected themselves might just use the first 4kB, to be consistent with the general practice of 64kB boundary alignment to all the devices, let's keep the size as 64kB. This might also help in avoiding any surprise when passing the device to a VM. This patch increases the size of each GICv2m MSI frames from 4kB to 64kB as per the specification. Cc: Liviu Dudau Acked-by: Marc Zyngier Reviewed-by: Robin Murphy Signed-off-by: Sudeep Holla --- arch/arm64/boot/dts/arm/juno-base.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi index f8088c45b060..eb749c50a736 100644 --- a/arch/arm64/boot/dts/arm/juno-base.dtsi +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi @@ -72,25 +72,25 @@ gic: interrupt-controller@2c010000 { v2m_0: v2m@0 { compatible = "arm,gic-v2m-frame"; msi-controller; - reg = <0 0 0 0x1000>; + reg = <0 0 0 0x10000>; }; v2m@10000 { compatible = "arm,gic-v2m-frame"; msi-controller; - reg = <0 0x10000 0 0x1000>; + reg = <0 0x10000 0 0x10000>; }; v2m@20000 { compatible = "arm,gic-v2m-frame"; msi-controller; - reg = <0 0x20000 0 0x1000>; + reg = <0 0x20000 0 0x10000>; }; v2m@30000 { compatible = "arm,gic-v2m-frame"; msi-controller; - reg = <0 0x30000 0 0x1000>; + reg = <0 0x30000 0 0x10000>; }; };