mirror of https://lore.kernel.org/linux-amlogic/
 help / color / mirror / Atom feed
* [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D
@ 2026-10-22 18:30 Carlo Caione
  2026-10-22 18:30 ` [PATCH 1/4] arm64: dts: amlogic: s7: fix the GIC CPU interface region size Carlo Caione
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Carlo Caione @ 2026-10-22 18:30 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel, Carlo Caione

The S7 and S7D device trees describe only the first 256 bytes of the
GIC-400 CPU interface, which spans 8 KiB, and leave out its virtual
interface control (GICH) and virtual CPU interface (GICV) regions.

With the short CPU interface, the GIC driver disables the split priority
drop and deactivation mode and warns at boot (patches 1 and 2). Without
GICH and GICV, it cannot hand the GIC over to KVM (patches 3 and 4). It
needs the split mode for that too, so KVM gets its in-kernel vGIC only
with the whole series.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
Carlo Caione (4):
      arm64: dts: amlogic: s7: fix the GIC CPU interface region size
      arm64: dts: amlogic: s7d: fix the GIC CPU interface region size
      arm64: dts: amlogic: s7: describe the GIC virtualization regions
      arm64: dts: amlogic: s7d: describe the GIC virtualization regions

 arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi  | 4 +++-
 arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)
---
base-commit: 8610d31587e139380db9cb8708f4263833b482d0
change-id: 20261022-upstream-s7-s7d-gicc-size-db94cb656d36

Best regards,
--  
Carlo Caione <ccaione@baylibre.com>


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] arm64: dts: amlogic: s7: fix the GIC CPU interface region size
  2026-10-22 18:30 [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Carlo Caione
@ 2026-10-22 18:30 ` Carlo Caione
  2026-10-22 18:30 ` [PATCH 2/4] arm64: dts: amlogic: s7d: " Carlo Caione
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Carlo Caione @ 2026-10-22 18:30 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel, Carlo Caione

The CPU interface of the GIC-400 spans 8 KiB, but the S7 device tree
describes only its first 256 bytes. The GIC driver then disables the
split priority drop and deactivation mode, which needs the GICC_DIR
register in the second 4 KiB page, and warns at boot:

  [    0.000000] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set

Describe the whole 8 KiB region, as the other Amlogic SoCs with a
GIC-400 at the same address do.

Fixes: 1b753fcfcff8 ("arm64: dts: add support for S7 based Amlogic BP201")
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
index 64440df4f542..89b75bec40f0 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
@@ -121,7 +121,7 @@ gic: interrupt-controller@fff01000 {
 			#address-cells = <0>;
 			interrupt-controller;
 			reg = <0x0 0xfff01000 0 0x1000>,
-			      <0x0 0xfff02000 0 0x0100>;
+			      <0x0 0xfff02000 0 0x2000>;
 			interrupts = <GIC_PPI 9 0xf04>;
 		};
 

-- 
2.56.0


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/4] arm64: dts: amlogic: s7d: fix the GIC CPU interface region size
  2026-10-22 18:30 [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Carlo Caione
  2026-10-22 18:30 ` [PATCH 1/4] arm64: dts: amlogic: s7: fix the GIC CPU interface region size Carlo Caione
@ 2026-10-22 18:30 ` Carlo Caione
  2026-10-22 18:30 ` [PATCH 3/4] arm64: dts: amlogic: s7: describe the GIC virtualization regions Carlo Caione
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Carlo Caione @ 2026-10-22 18:30 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel, Carlo Caione

The CPU interface of the GIC-400 spans 8 KiB, but the S7D device tree
describes only its first 256 bytes. The GIC driver then disables the
split priority drop and deactivation mode, which needs the GICC_DIR
register in the second 4 KiB page, and warns at boot that the range is
too small.

Describe the whole 8 KiB region, as the other Amlogic SoCs with a
GIC-400 at the same address do.

Fixes: 1a30661c20de ("arm64: dts: add support for S7D based Amlogic BM202")
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
index 5593ff9e07eb..059a1bf37584 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
@@ -85,7 +85,7 @@ gic: interrupt-controller@fff01000 {
 			#address-cells = <0>;
 			interrupt-controller;
 			reg = <0x0 0xfff01000 0 0x1000>,
-			      <0x0 0xfff02000 0 0x0100>;
+			      <0x0 0xfff02000 0 0x2000>;
 			interrupts = <GIC_PPI 9 0xf04>;
 		};
 

-- 
2.56.0


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 3/4] arm64: dts: amlogic: s7: describe the GIC virtualization regions
  2026-10-22 18:30 [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Carlo Caione
  2026-10-22 18:30 ` [PATCH 1/4] arm64: dts: amlogic: s7: fix the GIC CPU interface region size Carlo Caione
  2026-10-22 18:30 ` [PATCH 2/4] arm64: dts: amlogic: s7d: " Carlo Caione
@ 2026-10-22 18:30 ` Carlo Caione
  2026-10-22 18:30 ` [PATCH 4/4] arm64: dts: amlogic: s7d: " Carlo Caione
  2026-10-23  7:23 ` [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Neil Armstrong
  4 siblings, 0 replies; 6+ messages in thread
From: Carlo Caione @ 2026-10-22 18:30 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel, Carlo Caione

The S7 device tree describes the distributor and the CPU interface of
the GIC-400, but not its virtual interface control (GICH) and virtual
CPU interface (GICV) regions. Without them the GIC driver does not hand
the GIC over to KVM, which then runs without the in-kernel vGIC.

Describe both regions at their GIC-400 offsets, as S4 does for its
GIC-400 at the same address.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
index 89b75bec40f0..a337783c7783 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi
@@ -121,7 +121,9 @@ gic: interrupt-controller@fff01000 {
 			#address-cells = <0>;
 			interrupt-controller;
 			reg = <0x0 0xfff01000 0 0x1000>,
-			      <0x0 0xfff02000 0 0x2000>;
+			      <0x0 0xfff02000 0 0x2000>,
+			      <0x0 0xfff04000 0 0x2000>,
+			      <0x0 0xfff06000 0 0x2000>;
 			interrupts = <GIC_PPI 9 0xf04>;
 		};
 

-- 
2.56.0


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 4/4] arm64: dts: amlogic: s7d: describe the GIC virtualization regions
  2026-10-22 18:30 [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Carlo Caione
                   ` (2 preceding siblings ...)
  2026-10-22 18:30 ` [PATCH 3/4] arm64: dts: amlogic: s7: describe the GIC virtualization regions Carlo Caione
@ 2026-10-22 18:30 ` Carlo Caione
  2026-10-23  7:23 ` [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Neil Armstrong
  4 siblings, 0 replies; 6+ messages in thread
From: Carlo Caione @ 2026-10-22 18:30 UTC (permalink / raw)
  To: Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel, Carlo Caione

The S7D device tree describes the distributor and the CPU interface of
the GIC-400, but not its virtual interface control (GICH) and virtual
CPU interface (GICV) regions. Without them the GIC driver does not hand
the GIC over to KVM, which then runs without the in-kernel vGIC.

Describe both regions at their GIC-400 offsets, as S4 does for its
GIC-400 at the same address.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
 arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
index 059a1bf37584..b77ac8898d16 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi
@@ -85,7 +85,9 @@ gic: interrupt-controller@fff01000 {
 			#address-cells = <0>;
 			interrupt-controller;
 			reg = <0x0 0xfff01000 0 0x1000>,
-			      <0x0 0xfff02000 0 0x2000>;
+			      <0x0 0xfff02000 0 0x2000>,
+			      <0x0 0xfff04000 0 0x2000>,
+			      <0x0 0xfff06000 0 0x2000>;
 			interrupts = <GIC_PPI 9 0xf04>;
 		};
 

-- 
2.56.0


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D
  2026-10-22 18:30 [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Carlo Caione
                   ` (3 preceding siblings ...)
  2026-10-22 18:30 ` [PATCH 4/4] arm64: dts: amlogic: s7d: " Carlo Caione
@ 2026-10-23  7:23 ` Neil Armstrong
  4 siblings, 0 replies; 6+ messages in thread
From: Neil Armstrong @ 2026-10-23  7:23 UTC (permalink / raw)
  To: Carlo Caione, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Xianwei Zhao
  Cc: linux-arm-kernel, linux-amlogic, devicetree, linux-kernel

On 10/22/26 20:30, Carlo Caione wrote:
> The S7 and S7D device trees describe only the first 256 bytes of the
> GIC-400 CPU interface, which spans 8 KiB, and leave out its virtual
> interface control (GICH) and virtual CPU interface (GICV) regions.
> 
> With the short CPU interface, the GIC driver disables the split priority
> drop and deactivation mode and warns at boot (patches 1 and 2). Without
> GICH and GICV, it cannot hand the GIC over to KVM (patches 3 and 4). It
> needs the split mode for that too, so KVM gets its in-kernel vGIC only
> with the whole series.
> 
> Signed-off-by: Carlo Caione <ccaione@baylibre.com>
> ---
> Carlo Caione (4):
>        arm64: dts: amlogic: s7: fix the GIC CPU interface region size
>        arm64: dts: amlogic: s7d: fix the GIC CPU interface region size
>        arm64: dts: amlogic: s7: describe the GIC virtualization regions
>        arm64: dts: amlogic: s7d: describe the GIC virtualization regions
> 
>   arch/arm64/boot/dts/amlogic/amlogic-s7.dtsi  | 4 +++-
>   arch/arm64/boot/dts/amlogic/amlogic-s7d.dtsi | 4 +++-
>   2 files changed, 6 insertions(+), 2 deletions(-)
> ---
> base-commit: 8610d31587e139380db9cb8708f4263833b482d0
> change-id: 20261022-upstream-s7-s7d-gicc-size-db94cb656d36
> 
> Best regards,
> --
> Carlo Caione <ccaione@baylibre.com>

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>

Thanks,
Neil

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-10-23  7:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-22 18:30 [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Carlo Caione
2026-10-22 18:30 ` [PATCH 1/4] arm64: dts: amlogic: s7: fix the GIC CPU interface region size Carlo Caione
2026-10-22 18:30 ` [PATCH 2/4] arm64: dts: amlogic: s7d: " Carlo Caione
2026-10-22 18:30 ` [PATCH 3/4] arm64: dts: amlogic: s7: describe the GIC virtualization regions Carlo Caione
2026-10-22 18:30 ` [PATCH 4/4] arm64: dts: amlogic: s7d: " Carlo Caione
2026-10-23  7:23 ` [PATCH 0/4] Fix and complete the GIC description of Amlogic S7 and S7D Neil Armstrong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®