All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: "Rafał Miłecki" <rafal@milecki.pl>,
	"Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] dt-bindings: nvmem: u-boot,env: Add support for u-boot,env-size
Date: Wed, 26 Jul 2023 10:36:00 -0600	[thread overview]
Message-ID: <20230726163600.GA1549714-robh@kernel.org> (raw)
In-Reply-To: <20230724082632.21133-1-ansuelsmth@gmail.com>

On Mon, Jul 24, 2023 at 10:26:30AM +0200, Christian Marangi wrote:
> Add support for u-boot,env-size new property.
> 
> Permit to declare a custom size of the U-Boot env that differs than the
> partition size where the U-Boot env is located.
> 
> U-Boot env is validated by calculating the CRC32 on the entire env
> and in some specific case, the env size might differ from the partition
> size resulting in wrong CRC32 calculation than the expected one saved at
> the start of the partition.

Why can't you just change the partition size? There is no size really 
because it is just defined in DT.
> 
> This happens when U-Boot is compiled by hardcoding a specific env size
> but the env is actually placed in a bigger partition, resulting in needing
> to provide a custom value.

If u-boot is compiled that way, then shouldn't it have that size 
contained within it? What happens when the DT doesn't match?

> 
> Declaring this property, this value will be used for NVMEM size instead of
> the mtd partition.
> 
> Add also an example to make it clear the scenario of mismatched
> partition size and actual U-Boot env.

If we do have this, then perhaps there is a generic need for a data 
size property.

> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  .../devicetree/bindings/nvmem/u-boot,env.yaml | 47 +++++++++++++++++++
>  1 file changed, 47 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml b/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
> index 36d97fb87865..3970725a2c57 100644
> --- a/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
> +++ b/Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
> @@ -44,6 +44,24 @@ properties:
>    reg:
>      maxItems: 1
>  
> +  u-boot,env-size:
> +    description: |
> +      Permit to declare a custom size of the U-Boot env that differs than the
> +      partition size where the U-Boot env is located.
> +
> +      U-Boot env is validated by calculating the CRC32 on the entire env
> +      and in some specific case, the env size might differ from the partition
> +      size resulting in wrong CRC32 calculation than the expected one saved at
> +      the start of the partition.
> +
> +      This happens when U-Boot is compiled by hardcoding a specific env size
> +      but the env is actually placed in a bigger partition, resulting in needing
> +      to provide a custom value.
> +
> +      Declaring this property, this value will be used for NVMEM size instead of
> +      the mtd partition.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
>    bootcmd:
>      type: object
>      description: Command to use for automatic booting
> @@ -99,3 +117,32 @@ examples:
>              };
>          };
>      };
> +  - |
> +    partitions {
> +        compatible = "fixed-partitions";
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +
> +        partition@0 {
> +            reg = <0x0 0xc80000>;
> +            label = "qcadata";
> +            read-only;
> +        };
> +
> +        partition@c80000 {
> +            label = "APPSBL";
> +            reg = <0xc80000 0x500000>;
> +            read-only;
> +        };
> +
> +        partition@1180000 {
> +            compatible = "u-boot,env";
> +            reg = <0x1180000 0x80000>;
> +
> +            u-boot,env-size = <0x40000>;
> +
> +            mac1: ethaddr {
> +                #nvmem-cell-cells = <1>;
> +            };
> +        };
> +    };
> -- 
> 2.40.1
> 

  parent reply	other threads:[~2023-07-26 16:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-24  8:26 [PATCH 1/3] dt-bindings: nvmem: u-boot,env: Add support for u-boot,env-size Christian Marangi
2023-07-24  8:26 ` [PATCH 2/3] nvmem: u-boot-env: Permit to declare custom env-size Christian Marangi
2023-07-24  8:26 ` [PATCH 3/3] nvmem: u-boot-env: Handle "reduced" ASCII address declaration Christian Marangi
2023-07-26 16:36 ` Rob Herring [this message]
2023-07-27 19:04   ` [PATCH 1/3] dt-bindings: nvmem: u-boot,env: Add support for u-boot,env-size Christian Marangi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230726163600.GA1549714-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=ansuelsmth@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafal@milecki.pl \
    --cc=srinivas.kandagatla@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.