From: Marc Zyngier <m...@kernel.org>

[ Upstream commit 776a3c04da9fa144241476f4a0d263899d6cad26 ]

GIC400 has full support for virtualization, and yet the tegra186
DT doesn't expose the GICH/GICV regions (despite exposing the
maintenance interrupt that only makes sense for virtualization).

Add the missing regions, based on the hunch that the HW doesn't
use the CPU build-in interfaces, but instead the external ones
provided by the GIC. KVM's virtual GIC now works with this change.

Signed-off-by: Marc Zyngier <m...@kernel.org>
Signed-off-by: Thierry Reding <tred...@nvidia.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 arch/arm64/boot/dts/nvidia/tegra186.dtsi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi 
b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index a9c3eef6c4e09..5738b02973074 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -263,7 +263,9 @@ gic: interrupt-controller@3881000 {
                #interrupt-cells = <3>;
                interrupt-controller;
                reg = <0x0 0x03881000 0x0 0x1000>,
-                     <0x0 0x03882000 0x0 0x2000>;
+                     <0x0 0x03882000 0x0 0x2000>,
+                     <0x0 0x03884000 0x0 0x2000>,
+                     <0x0 0x03886000 0x0 0x2000>;
                interrupts = <GIC_PPI 9
                        (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
                interrupt-parent = <&gic>;
-- 
2.27.0

Reply via email to