[PATCH 0/5] CMD_SAVEENV ifdef cleanup
Rasmus Villemoes
rasmus.villemoes at prevas.dk
Wed Feb 19 10:47:38 CET 2020
The various env storage drivers almost all have their own logic [1]
for deciding whether to compile and provide the .save method, many of
which fail to honour CONFIG_SPL_SAVEENV. For example, fat.c and sf.c
define a CMD_SAVEENV macro only for !CONFIG_SPL_BUILD, while ext4.c
"only" depends on CONFIG_CMD_SAVEENV - but CONFIG_SPL_SAVEENV=y,
CONFIG_CMD_SAVEENV=n is a valid combination.
A lot of that ifdeffery can be removed while at the same time
providing the .save method if either CONFIG_SPL_SAVEENV (for an SPL
build) or CONFIG_CMD_SAVEENV (for U-Boot proper) is set. The first two
patches introduce infrastructure for that, while the last three are
example conversions for the above-mentioned three storage drivers. The
sf.c is the one I need to use in the SPL and have actually tested,
ext4.c and fat.c are included mostly as low-hanging fruit.
[1] Here's the current conditions for which these three drivers
provide .save:
SPL U-Boot
ext4.c CONFIG_CMD_SAVEENV=y CONFIG_CMD_SAVEENV=y
fat.c never CONFIG_CMD_SAVEENV=y
sf.c never CONFIG_CMD_SAVEENV=y [2]
[2] It always compiles env_sf_save for U-Boot proper, but then the use
of env_save_ptr() ends up with a build warning in case
CONFIG_CMD_SAVEENV=n - fat.c doesn't have that proplem.
Rasmus Villemoes (5):
env: add SAVEENV as an alias of the CMD_SAVEENV symbol
env_internal.h: add alternative ENV_SAVE_PTR macro
env/fat.c: remove private CMD_SAVEENV logic
env/ext4.c: remove CONFIG_CMD_SAVEENV ifdef
env/sf.c: drop private CMD_SAVEENV logic
env/Kconfig | 3 +++
env/ext4.c | 4 +---
env/fat.c | 9 +--------
env/sf.c | 12 +-----------
include/env_internal.h | 2 ++
5 files changed, 8 insertions(+), 22 deletions(-)
--
2.23.0
More information about the U-Boot
mailing list