1
linux/drivers/nvmem/layouts/u-boot-env.h
Rafał Miłecki 5f15811286 nvmem: layouts: add U-Boot env layout
U-Boot environment variables are stored in a specific format. Actual
data can be placed in various storage sources (MTD, UBI volume, EEPROM,
NVRAM, etc.).

Move all generic (NVMEM device independent) code from NVMEM device
driver to an NVMEM layout driver. Then add a simple NVMEM layout code on
top of it.

This allows using NVMEM layout for parsing U-Boot env data stored in any
kind of NVMEM device.

The old NVMEM glue driver stays in place for handling bindings in the
MTD context. To avoid code duplication it uses exported layout parsing
function. Please note that handling MTD & NVMEM layout bindings may be
refactored in the future.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240902142952.71639-5-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-11 16:05:15 +02:00

16 lines
397 B
C

/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _LINUX_NVMEM_LAYOUTS_U_BOOT_ENV_H
#define _LINUX_NVMEM_LAYOUTS_U_BOOT_ENV_H
enum u_boot_env_format {
U_BOOT_FORMAT_SINGLE,
U_BOOT_FORMAT_REDUNDANT,
U_BOOT_FORMAT_BROADCOM,
};
int u_boot_env_parse(struct device *dev, struct nvmem_device *nvmem,
enum u_boot_env_format format);
#endif /* ifndef _LINUX_NVMEM_LAYOUTS_U_BOOT_ENV_H */