linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit
@ 2022-04-09 10:16 Marc Zyngier
  2022-04-09 10:49 ` Krzysztof Kozlowski
  2022-05-04 15:15 ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
  0 siblings, 2 replies; 3+ messages in thread
From: Marc Zyngier @ 2022-04-09 10:16 UTC (permalink / raw)
  To: linux-kernel, devicetree; +Cc: Rob Herring, Krzysztof Kozlowski

A common mistake when writing a device tree for a platform that is using
GICv3 with ancient CPUs is to overlook the MMIO frames that implement
the GICv2 compatibility feature, because this feature is implemented by
the CPUs and not by the GIC itself.

The compatibility feature itself is optional (all the modern
implementations have dropped it), but is present in all the ARM Ltd
implementations of the ARMv8.0 architecture (A3x, A53, A57, A72, A73),
and many others from various implementers.

Make it explicit that GICC, GICH and GICV are required for these CPUs.
Also take this opportunity to update my email address, as people keep
sending them to the wrong place...

Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
---
 .../bindings/interrupt-controller/arm,gic-v3.yaml         | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
index b7197f78e158..3912a89162f0 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: ARM Generic Interrupt Controller, version 3
 
 maintainers:
-  - Marc Zyngier <marc.zyngier@arm.com>
+  - Marc Zyngier <maz@kernel.org>
 
 description: |
   AArch64 SMP cores are often associated with a GICv3, providing Private
@@ -78,7 +78,11 @@ properties:
       - GIC Hypervisor interface (GICH)
       - GIC Virtual CPU interface (GICV)
 
-      GICC, GICH and GICV are optional.
+      GICC, GICH and GICV are optional, but must be described if the CPUs
+      support them. Examples of such CPUs are ARM's implementations of the
+      ARMv8.0 architecture such as Cortex-A32, A34, A35, A53, A57, A72 and
+      A73 (this list is not exhaustive).
+
     minItems: 2
     maxItems: 4096   # Should be enough?
 
-- 
2.34.1


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

* Re: [PATCH] dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit
  2022-04-09 10:16 [PATCH] dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit Marc Zyngier
@ 2022-04-09 10:49 ` Krzysztof Kozlowski
  2022-05-04 15:15 ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
  1 sibling, 0 replies; 3+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-09 10:49 UTC (permalink / raw)
  To: Marc Zyngier, linux-kernel, devicetree; +Cc: Rob Herring, Krzysztof Kozlowski

On 09/04/2022 12:16, Marc Zyngier wrote:
> A common mistake when writing a device tree for a platform that is using
> GICv3 with ancient CPUs is to overlook the MMIO frames that implement
> the GICv2 compatibility feature, because this feature is implemented by
> the CPUs and not by the GIC itself.
> 
> The compatibility feature itself is optional (all the modern
> implementations have dropped it), but is present in all the ARM Ltd
> implementations of the ARMv8.0 architecture (A3x, A53, A57, A72, A73),
> and many others from various implementers.
> 
> Make it explicit that GICC, GICH and GICV are required for these CPUs.
> Also take this opportunity to update my email address, as people keep
> sending them to the wrong place...
> 
> Signed-off-by: Marc Zyngier <maz@kernel.org>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> ---
>  .../bindings/interrupt-controller/arm,gic-v3.yaml         | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof

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

* [irqchip: irq/irqchip-next] dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit
  2022-04-09 10:16 [PATCH] dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit Marc Zyngier
  2022-04-09 10:49 ` Krzysztof Kozlowski
@ 2022-05-04 15:15 ` irqchip-bot for Marc Zyngier
  1 sibling, 0 replies; 3+ messages in thread
From: irqchip-bot for Marc Zyngier @ 2022-05-04 15:15 UTC (permalink / raw)
  To: linux-kernel
  Cc: Marc Zyngier, Rob Herring, Krzysztof Kozlowski,
	Krzysztof Kozlowski, tglx

The following commit has been merged into the irq/irqchip-next branch of irqchip:

Commit-ID:     4053b6b43fae126bea0654493fe512d364ee9fc1
Gitweb:        https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/4053b6b43fae126bea0654493fe512d364ee9fc1
Author:        Marc Zyngier <maz@kernel.org>
AuthorDate:    Sat, 09 Apr 2022 11:16:17 +01:00
Committer:     Marc Zyngier <maz@kernel.org>
CommitterDate: Wed, 04 May 2022 15:43:12 +01:00

dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit

A common mistake when writing a device tree for a platform that is using
GICv3 with ancient CPUs is to overlook the MMIO frames that implement
the GICv2 compatibility feature, because this feature is implemented by
the CPUs and not by the GIC itself.

The compatibility feature itself is optional (all the modern
implementations have dropped it), but is present in all the ARM Ltd
implementations of the ARMv8.0 architecture (A3x, A53, A57, A72, A73),
and many others from various implementers.

Make it explicit that GICC, GICH and GICV are required for these CPUs.
Also take this opportunity to update my email address, as people keep
sending them to the wrong place...

Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220409101617.268796-1-maz@kernel.org
---
 Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
index b7197f7..3912a89 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: ARM Generic Interrupt Controller, version 3
 
 maintainers:
-  - Marc Zyngier <marc.zyngier@arm.com>
+  - Marc Zyngier <maz@kernel.org>
 
 description: |
   AArch64 SMP cores are often associated with a GICv3, providing Private
@@ -78,7 +78,11 @@ properties:
       - GIC Hypervisor interface (GICH)
       - GIC Virtual CPU interface (GICV)
 
-      GICC, GICH and GICV are optional.
+      GICC, GICH and GICV are optional, but must be described if the CPUs
+      support them. Examples of such CPUs are ARM's implementations of the
+      ARMv8.0 architecture such as Cortex-A32, A34, A35, A53, A57, A72 and
+      A73 (this list is not exhaustive).
+
     minItems: 2
     maxItems: 4096   # Should be enough?
 

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

end of thread, other threads:[~2022-05-04 15:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-09 10:16 [PATCH] dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit Marc Zyngier
2022-04-09 10:49 ` Krzysztof Kozlowski
2022-05-04 15:15 ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).