[PATCH 0/2] NVMEM cells in sysfs

Miquel Raynal
2023-05-23T10:02:50Z

Hello,

As part of a previous effort, support for dynamic NVMEM layouts was
brought into mainline, helping a lot in getting information from NVMEM
devices at non-static locations. One common example of NVMEM cell is the
MAC address that must be used. Sometimes the cell content is mainly (or
only) useful to the kernel, and sometimes it is not. Users might also
want to know the content of cells such as: the manufacturing place and
date, the hardware version, the unique ID, etc. Two possibilities in
this case: either the users re-implement their own parser to go through
the whole device and search for the information they want, or the kernel
can expose the content of the cells if deemed relevant. This second
approach sounds way more relevant than the first one to avoid useless
code duplication, so here is a series bringing NVMEM cells content to
the user through sysfs.

Here is a list of known limitations though:
* It is currently not possible to know whether the cell contains ASCII
or binary data, so by default all cells are exposed in binary form.
* For now the implementation focuses on the read aspect. Technically
speaking, in some cases, it could be acceptable to write the cells, I
guess, but for now read-only files sound more than enough. A writable
path can be added later anyway.
* The sysfs entries are created when the device probes, not when the
NVMEM driver does. This means, if an NVMEM layout is used *and*
compiled as a module *and* not installed properly in the system (a
usermode helper tries to load the module otherwise), then the sysfs
cells won't appear when the layout is actually insmod'ed because the
sysfs folders/files have already been populated.

Thanks,
Miquèl

Miquel Raynal (2):
ABI: sysfs-nvmem-cells: Expose cells through sysfs
nvmem: core: Expose cells through sysfs

Documentation/ABI/testing/sysfs-nvmem-cells | 21 +++
drivers/nvmem/core.c | 135 +++++++++++++++++++-
2 files changed, 152 insertions(+), 4 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-nvmem-cells

--
2.34.1