Re: [PATCH v10 3/3] nvmem: core: Expose cells through sysfs

From: Miquel Raynal
Date: Sun Oct 01 2023 - 12:00:43 EST


Hi Rafał,

rafal@xxxxxxxxxx wrote on Fri, 29 Sep 2023 07:18:32 +0200:

> On 2023-09-28 17:31, Rafał Miłecki wrote:
> > On 2023-09-22 19:48, Miquel Raynal wrote:
> >> The binary content of nvmem devices is available to the user so in the
> >> easiest cases, finding the content of a cell is rather easy as it is
> >> just a matter of looking at a known and fixed offset. However, nvmem
> >> layouts have been recently introduced to cope with more advanced
> >> situations, where the offset and size of the cells is not known in
> >> advance or is dynamic. When using layouts, more advanced parsers are
> >> used by the kernel in order to give direct access to the content of >> each
> >> cell, regardless of its position/size in the underlying
> >> device. Unfortunately, these information are not accessible by users,
> >> unless by fully re-implementing the parser logic in userland.
> >> >> Let's expose the cells and their content through sysfs to avoid these
> >> situations. Of course the relevant NVMEM sysfs Kconfig option must be
> >> enabled for this support to be available.
> >> >> Not all nvmem devices expose cells. Indeed, the .bin_attrs attribute
> >> group member will be filled at runtime only when relevant and will
> >> remain empty otherwise. In this case, as the cells attribute group >> will
> >> be empty, it will not lead to any additional folder/file creation.
> >> >> Exposed cells are read-only. There is, in practice, everything in the
> >> core to support a write path, but as I don't see any need for that, I
> >> prefer to keep the interface simple (and probably safer). The >> interface
> >> is documented as being in the "testing" state which means we can later
> >> add a write attribute if though relevant.
> >> >> Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> >
> > Tested-by: Rafał Miłecki <rafal@xxxxxxxxxx>
> >
> > # hexdump -C /sys/bus/nvmem/devices/u-boot-env0/cells/ipaddr@15c
> > 00000000 31 39 32 2e 31 36 38 2e 31 2e 31 > |192.168.1.1|
> > 0000000b
>
> The same test after converting U-Boot env into layout driver:
>
> # hexdump -C /sys/bus/nvmem/devices/mtd1/cells/ipaddr@15c
> 00000000 31 39 32 2e 31 36 38 2e 31 2e 31 |192.168.1.1|
> 0000000b
>
> Looks good!
>

Great! Thanks a lot for testing!

Miquèl