Subject: Re: [PATCH RFC linux] dt-bindings: nvmem: Add binding for U-Boot environment NVMEM provider

From: Marek Behún <[email-masked]>
Date: Thu, 14 Oct 2021 12:06:01 +0200

On Thu, 14 Oct 2021 09:26:27 +0100
Srinivas Kandagatla <[email-masked]> wrote:

> On 14/10/2021 00:20, Marek Behún wrote:
> > Add device tree bindings for U-Boot environment NVMEM provider.
> > 
> > U-Boot environment can be stored at a specific offset of a MTD
> > device, EEPROM, MMC, NAND or SATA device, on an UBI volume, or in a
> > file on a filesystem.
> > 
> > The environment can contain information such as device's MAC
> > address, which should be used by the ethernet controller node.
> >   
> 
> Have you looked at 
> ./Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml ?

Hello srini,

yes, I have. What about it? :)

That binding won't work for u-boot-env, because the data are stored
in a different way. A cell does not have a constant predetermined
offset on the MTD.
The variables are stored as a sequence of values of format
"name=value", separated by '\0's, for example:
  board=turris_mox\0ethaddr=00:11:22:33:44:55\0bootcmd=run distro_bootcmd\0....
Chaning lengths of values of variables, or deleting variables, moves
the data around. Integers and MAC addresses are stored as strings, and so on.

Also the mtd/partitions/nvmem-cells.yaml doesn't take into account
u-boot-env stored on non-MTD devices.

Marek