2023-12-13 15:48:01

by Rafał Miłecki

[permalink] [raw]
Subject: [PATCH 1/2] dt-bindings: nvmem: add "data-size" property

From: Rafał Miłecki <[email protected]>

Allow specifying NVMEM device content size in case it differs from
device total size.

Cc: Christian Marangi <[email protected]>
Signed-off-by: Rafał Miłecki <[email protected]>
---
Documentation/devicetree/bindings/nvmem/nvmem.yaml | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/nvmem/nvmem.yaml b/Documentation/devicetree/bindings/nvmem/nvmem.yaml
index 4fd015d402ce..095aed4250de 100644
--- a/Documentation/devicetree/bindings/nvmem/nvmem.yaml
+++ b/Documentation/devicetree/bindings/nvmem/nvmem.yaml
@@ -26,6 +26,13 @@ properties:
"#size-cells":
const: 1

+ data-size:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ NVMEM device actual data (content) size. It may be need to be specified
+ if it differs by design from the total NVMEM device size and it's
+ impossible to determine it on runtime.
+
read-only:
$ref: /schemas/types.yaml#/definitions/flag
description:
--
2.35.3


2023-12-13 15:48:13

by Rafał Miłecki

[permalink] [raw]
Subject: [PATCH 2/2] dt-bindings: nvmem: u-boot,env: describe "data-size" property

From: Rafał Miłecki <[email protected]>

Describe what "data-size" means in U-Boot env context and why it may be
needed. It's a generic property but giving it some extra meaning in
U-Boot context may be helpful.

Cc: Christian Marangi <[email protected]>
Signed-off-by: Rafał Miłecki <[email protected]>
---
.../devicetree/bindings/nvmem/u-boot,env.yaml | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml b/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
index 9c36afc7084b..0006f022d0af 100644
--- a/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
+++ b/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
@@ -44,6 +44,15 @@ properties:
reg:
maxItems: 1

+ data-size:
+ description:
+ U-Boot environment data size is set and hardcoded during compilation using
+ CONFIG_ENV_SIZE. Knowing it is critical for CRC32 checksum calculation.
+
+ This property allows specifying it in case it differs from NVMEM device
+ size. It may happen if device partitioning was designed with different
+ concepts in mind (like block alignment or future-proof size).
+
bootcmd:
type: object
description: Command to use for automatic booting
@@ -76,6 +85,7 @@ examples:
env: partition@40000 {
compatible = "u-boot,env";
reg = <0x40000 0x10000>;
+ data-size = <0x4000>;

mac: ethaddr {
#nvmem-cell-cells = <1>;
--
2.35.3

2023-12-13 15:49:19

by Rafał Miłecki

[permalink] [raw]
Subject: Re: [PATCH 1/2] dt-bindings: nvmem: add "data-size" property

On 13.12.2023 16:47, Rafał Miłecki wrote:
> From: Rafał Miłecki <[email protected]>
>
> Allow specifying NVMEM device content size in case it differs from
> device total size.
>
> Cc: Christian Marangi <[email protected]>
> Signed-off-by: Rafał Miłecki <[email protected]>

I forgot to link Rob's comment where he suggested we may need such a property:
https://patchwork.ozlabs.org/comment/3154781/

Let's now see if I got it right.


> ---
> Documentation/devicetree/bindings/nvmem/nvmem.yaml | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/nvmem/nvmem.yaml b/Documentation/devicetree/bindings/nvmem/nvmem.yaml
> index 4fd015d402ce..095aed4250de 100644
> --- a/Documentation/devicetree/bindings/nvmem/nvmem.yaml
> +++ b/Documentation/devicetree/bindings/nvmem/nvmem.yaml
> @@ -26,6 +26,13 @@ properties:
> "#size-cells":
> const: 1
>
> + data-size:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + NVMEM device actual data (content) size. It may be need to be specified
> + if it differs by design from the total NVMEM device size and it's
> + impossible to determine it on runtime.
> +
> read-only:
> $ref: /schemas/types.yaml#/definitions/flag
> description:

2023-12-15 15:24:52

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/2] dt-bindings: nvmem: add "data-size" property

On Wed, Dec 13, 2023 at 04:47:20PM +0100, Rafał Miłecki wrote:
> From: Rafał Miłecki <[email protected]>
>
> Allow specifying NVMEM device content size in case it differs from
> device total size.
>
> Cc: Christian Marangi <[email protected]>
> Signed-off-by: Rafał Miłecki <[email protected]>
> ---
> Documentation/devicetree/bindings/nvmem/nvmem.yaml | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/nvmem/nvmem.yaml b/Documentation/devicetree/bindings/nvmem/nvmem.yaml
> index 4fd015d402ce..095aed4250de 100644
> --- a/Documentation/devicetree/bindings/nvmem/nvmem.yaml
> +++ b/Documentation/devicetree/bindings/nvmem/nvmem.yaml
> @@ -26,6 +26,13 @@ properties:
> "#size-cells":
> const: 1
>
> + data-size:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + NVMEM device actual data (content) size. It may be need to be specified
> + if it differs by design from the total NVMEM device size and it's
> + impossible to determine it on runtime.

'data-size' is already defined in
Documentation/devicetree/bindings/eeprom/microchip,93lc46b.yaml.

That would be fine, but it's defining bits per word. So I think it's
better if we call this something else. 'total-data-size' or
'actual-data-size'?

I think Simon had something similar for binman.

Rob