diff mbox

dt-bindings: arm,gic-v3: require that reserved cells are always 0

Message ID 1454522458-29643-1-git-send-email-will.deacon@arm.com
State Accepted
Commit 4aff7b854611d91c5fefb1553eb4c328123095ae
Headers show

Commit Message

Will Deacon Feb. 3, 2016, 6 p.m. UTC
The arm,gic-v3 binding was written with good intentions and doesn't
enforce interrupt-cells to be 3, therefore making it easy to extend
the irq description in future if necessary:

  > Cells 4 and beyond are reserved for future use.


Unfortunately, this sentence is immediately followed up with:

  > When the 1st cell has a value of 0 or 1, cells 4 and beyond act as

  > padding, and may be ignored. It is recommended that padding cells

  > have a value of 0.


Consequently, any extensions to the PPI or SPI interrupt specifiers must
be able to work with random crap from legacy DTs, effectively
necessitating a new interrupt type in the first cell. Sigh.

This patch fixes the text so that additional, reserved cells are
required to be zero. This looks like a reasonable thing to require and
is already satisifed by the .dts files in-tree.

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>

---
 .../devicetree/bindings/interrupt-controller/arm,gic-v3.txt          | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Mark Rutland Feb. 3, 2016, 6:20 p.m. UTC | #1
On Wed, Feb 03, 2016 at 06:00:58PM +0000, Will Deacon wrote:
> The arm,gic-v3 binding was written with good intentions and doesn't

> enforce interrupt-cells to be 3, therefore making it easy to extend

> the irq description in future if necessary:

> 

>   > Cells 4 and beyond are reserved for future use.

> 

> Unfortunately, this sentence is immediately followed up with:

> 

>   > When the 1st cell has a value of 0 or 1, cells 4 and beyond act as

>   > padding, and may be ignored. It is recommended that padding cells

>   > have a value of 0.


The initial intention of this was to allow for new, longer entries which
were identified by a new value in cell 1.

Regardless, I agree that it should be a requirement that padding cells
must be zero.

> Consequently, any extensions to the PPI or SPI interrupt specifiers must

> be able to work with random crap from legacy DTs, effectively

> necessitating a new interrupt type in the first cell. Sigh.


I'm not sure that's true if we allocate a new value for the 1st cell for
"extended" PPI or SPI interrupt-sepcficiers (which presumably add
restrictions). That would also allow old kernels to safely skip such
interrupts rather than mis-parsing them.

> This patch fixes the text so that additional, reserved cells are

> required to be zero. This looks like a reasonable thing to require and

> is already satisifed by the .dts files in-tree.

> 

> Cc: Mark Rutland <mark.rutland@arm.com>

> Cc: Marc Zyngier <marc.zyngier@arm.com>

> Signed-off-by: Will Deacon <will.deacon@arm.com>


This patch itself makes sense, so FWIW:

Acked-by: Mark Rutland <mark.rutland@arm.com>


Any proposed extention to the binding requires its own discussion.

Thanks,
Mark.

> ---

>  .../devicetree/bindings/interrupt-controller/arm,gic-v3.txt          | 5 ++---

>  1 file changed, 2 insertions(+), 3 deletions(-)

> 

> diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt

> index 7803e77d85cb..007a5b46256a 100644

> --- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt

> +++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt

> @@ -24,9 +24,8 @@ Main node required properties:

>  		1 = edge triggered

>  		4 = level triggered

>  

> -  Cells 4 and beyond are reserved for future use. When the 1st cell

> -  has a value of 0 or 1, cells 4 and beyond act as padding, and may be

> -  ignored. It is recommended that padding cells have a value of 0.

> +  Cells 4 and beyond are reserved for future use and must have a value

> +  of 0 if present.

>  

>  - reg : Specifies base physical address(s) and size of the GIC

>    registers, in the following order:

> -- 

> 2.1.4

> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Will Deacon Feb. 3, 2016, 6:40 p.m. UTC | #2
On Wed, Feb 03, 2016 at 06:20:54PM +0000, Mark Rutland wrote:
> On Wed, Feb 03, 2016 at 06:00:58PM +0000, Will Deacon wrote:

> > Consequently, any extensions to the PPI or SPI interrupt specifiers must

> > be able to work with random crap from legacy DTs, effectively

> > necessitating a new interrupt type in the first cell. Sigh.

> 

> I'm not sure that's true if we allocate a new value for the 1st cell for

> "extended" PPI or SPI interrupt-sepcficiers (which presumably add

> restrictions). That would also allow old kernels to safely skip such

> interrupts rather than mis-parsing them.


Right, that's what I said :)

> > This patch fixes the text so that additional, reserved cells are

> > required to be zero. This looks like a reasonable thing to require and

> > is already satisifed by the .dts files in-tree.

> > 

> > Cc: Mark Rutland <mark.rutland@arm.com>

> > Cc: Marc Zyngier <marc.zyngier@arm.com>

> > Signed-off-by: Will Deacon <will.deacon@arm.com>

> 

> This patch itself makes sense, so FWIW:

> 

> Acked-by: Mark Rutland <mark.rutland@arm.com>

> 

> Any proposed extention to the binding requires its own discussion.


Yup.

Marc -- can you queue this please?

Will
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt
index 7803e77d85cb..007a5b46256a 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt
@@ -24,9 +24,8 @@  Main node required properties:
 		1 = edge triggered
 		4 = level triggered
 
-  Cells 4 and beyond are reserved for future use. When the 1st cell
-  has a value of 0 or 1, cells 4 and beyond act as padding, and may be
-  ignored. It is recommended that padding cells have a value of 0.
+  Cells 4 and beyond are reserved for future use and must have a value
+  of 0 if present.
 
 - reg : Specifies base physical address(s) and size of the GIC
   registers, in the following order: