nvmem: add driver handling U-Boot environment variables
authorRafał Miłecki <rafal@milecki.pl>
Fri, 16 Sep 2022 12:20:48 +0000 (13:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Sep 2022 12:54:37 +0000 (14:54 +0200)
commitd5542923f200f95bddf524f36fd495f78aa28e3c
tree8799b30bf8035212bb1e5fbbd4ce09be95fc374a
parent42992cf187e4e4bcfe3c58f8fc7b1832c5652d9f
nvmem: add driver handling U-Boot environment variables

U-Boot stores its setup as environment variables. It's a list of
key-value pairs stored on flash device with a custom header.

This commit adds an NVMEM driver that:
1. Provides NVMEM access to environment vars binary data
2. Extracts variables as NVMEM cells

Current Linux's NVMEM sysfs API allows reading whole NVMEM data block.
It can be used by user-space tools for reading U-Boot env vars block
without the hassle of finding its location. Parsing will still need to
be re-done there.

Kernel-parsed NVMEM cells can be read however by Linux drivers. This may
be useful for Ethernet drivers for reading device MAC address which is
often stored as U-Boot env variable.

Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20220916122100.170016-2-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
MAINTAINERS
drivers/nvmem/Kconfig
drivers/nvmem/Makefile
drivers/nvmem/u-boot-env.c [new file with mode: 0644]