[PATCH 07/41] env: Rework ENV_IS_EMBEDDED and related logic slightly

Tom Rini
2022-12-02T21:44:37Z

- Drop CONFIG_BUILD_ENVCRC as this is never set directly but instead
means ENV_IS_EMBEDDED, so reference that in code and rename the Makefile
usage to BUILD_ENVCRC.
- Remove extra-$(CONFIG_ENV_IS_EMBEDDED) line as it could never be true,
and likely why there is an extra- line for CONFIG_ENV_IS_IN_FLASH (the
only use case today of embedded environments).
- With these slight changes we can then see that using the calculated
symbol of ENV_IS_EMBEDDED is the right thing to use in any code which
needs to know this situation and can remove CONFIG_ENV_IS_EMBEDDED
entirely.

Signed-off-by: Tom Rini <trini@konsulko.com>
---
README | 5 -----
env/Makefile | 1 -
env/embedded.c | 2 +-
include/env_internal.h | 23 +----------------------
tools/Makefile | 5 ++---
tools/envcrc.c | 10 +++-------
6 files changed, 7 insertions(+), 39 deletions(-)

diff --git a/README b/README
index 103562bbbe8d..3fef1d2afa01 100644
--- a/README
+++ b/README
@@ -1542,11 +1542,6 @@ The following definitions that deal with the placement and management
of environment data (variable area); in general, we support the
following configurations:

-- CONFIG_BUILD_ENVCRC:
-
- Builds up envcrc with the target environment so that external utils
- may easily extract it and embed it in final U-Boot images.
-
BE CAREFUL! The first access to the environment happens quite early
in U-Boot initialization (when we try to get the setting of for the
console baudrate). You *MUST* have mapped your NVRAM area then, or
diff --git a/env/Makefile b/env/Makefile
index c4ad65432865..bb6e24b396df 100644
--- a/env/Makefile
+++ b/env/Makefile
@@ -11,7 +11,6 @@ obj-$(CONFIG_$(SPL_TPL_)ENV_SUPPORT) += flags.o
ifndef CONFIG_SPL_BUILD
obj-y += callback.o
obj-$(CONFIG_ENV_IS_IN_EEPROM) += eeprom.o
-extra-$(CONFIG_ENV_IS_EMBEDDED) += embedded.o
obj-$(CONFIG_ENV_IS_IN_EEPROM) += embedded.o
extra-$(CONFIG_ENV_IS_IN_FLASH) += embedded.o
obj-$(CONFIG_ENV_IS_IN_NVRAM) += embedded.o
diff --git a/env/embedded.c b/env/embedded.c
index 27fb45bf8c3e..7cbe54c56e00 100644
--- a/env/embedded.c
+++ b/env/embedded.c
@@ -27,7 +27,7 @@
* Generate embedded environment table
* inside U-Boot image, if needed.
*/
-#if defined(ENV_IS_EMBEDDED) || defined(CONFIG_BUILD_ENVCRC)
+#if defined(ENV_IS_EMBEDDED)
/*
* Put the environment in the .text section when we are building
* U-Boot proper. The host based program "tools/envcrc" does not need
diff --git a/include/env_internal.h b/include/env_internal.h
index f30fd6159d87..aee6b3e48fa0 100644
--- a/include/env_internal.h
+++ b/include/env_internal.h
@@ -41,10 +41,6 @@
(CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
# define ENV_IS_EMBEDDED
# endif
-# ifdef CONFIG_ENV_IS_EMBEDDED
-# error "do not define CONFIG_ENV_IS_EMBEDDED in your board config"
-# error "it is calculated automatically for you"
-# endif
#endif /* CONFIG_ENV_IS_IN_FLASH */

#if defined(CONFIG_ENV_IS_IN_NAND)
@@ -57,23 +53,6 @@ extern unsigned long nand_env_oob_offset;
# endif /* CONFIG_ENV_OFFSET_OOB */
#endif /* CONFIG_ENV_IS_IN_NAND */

-/*
- * For the flash types where embedded env is supported, but it cannot be
- * calculated automatically (i.e. NAND), take the board opt-in.
- */
-#if defined(CONFIG_ENV_IS_EMBEDDED) && !defined(ENV_IS_EMBEDDED)
-# define ENV_IS_EMBEDDED
-#endif
-
-/* The build system likes to know if the env is embedded */
-#ifdef DO_DEPS_ONLY
-# ifdef ENV_IS_EMBEDDED
-# ifndef CONFIG_ENV_IS_EMBEDDED
-# define CONFIG_ENV_IS_EMBEDDED
-# endif
-# endif
-#endif
-
#include "compiler.h"

#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
@@ -88,7 +67,7 @@ extern unsigned long nand_env_oob_offset;
* If the environment is in RAM, allocate extra space for it in the malloc
* region.
*/
-#if defined(CONFIG_ENV_IS_EMBEDDED)
+#if defined(ENV_IS_EMBEDDED)
#define TOTAL_MALLOC_LEN CONFIG_SYS_MALLOC_LEN
#elif (CONFIG_ENV_ADDR + CONFIG_ENV_SIZE < CONFIG_SYS_MONITOR_BASE) || \
(CONFIG_ENV_ADDR >= CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN) || \
diff --git a/tools/Makefile b/tools/Makefile
index 26be0a7ba2ea..39c940ef929f 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -36,21 +36,20 @@ endif
subdir-$(HOST_TOOLS_ALL) += gdb

# Merge all the different vars for envcrc into one
-ENVCRC-$(CONFIG_ENV_IS_EMBEDDED) = y
ENVCRC-$(CONFIG_ENV_IS_IN_EEPROM) = y
ENVCRC-$(CONFIG_ENV_IS_IN_FLASH) = y
ENVCRC-$(CONFIG_ENV_IS_IN_ONENAND) = y
ENVCRC-$(CONFIG_ENV_IS_IN_NAND) = y
ENVCRC-$(CONFIG_ENV_IS_IN_NVRAM) = y
ENVCRC-$(CONFIG_ENV_IS_IN_SPI_FLASH) = y
-CONFIG_BUILD_ENVCRC ?= $(ENVCRC-y)
+BUILD_ENVCRC ?= $(ENVCRC-y)

hostprogs-$(CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER) += atmel_pmecc_params

hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo
HOSTCFLAGS_bmp_logo.o := -pedantic

-hostprogs-$(CONFIG_BUILD_ENVCRC) += envcrc
+hostprogs-$(BUILD_ENVCRC) += envcrc
envcrc-objs := envcrc.o lib/crc32.o env/embedded.o lib/sha1.o

hostprogs-$(CONFIG_CMD_NET) += gen_eth_addr
diff --git a/tools/envcrc.c b/tools/envcrc.c
index a021c785aeed..550f31038bd7 100644
--- a/tools/envcrc.c
+++ b/tools/envcrc.c
@@ -40,10 +40,6 @@
# endif
#endif /* CONFIG_ENV_IS_IN_FLASH */

-#if defined(ENV_IS_EMBEDDED) && !defined(CONFIG_BUILD_ENVCRC)
-# define CONFIG_BUILD_ENVCRC
-#endif
-
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
# define ENV_HEADER_SIZE (sizeof(uint32_t) + 1)
#else
@@ -53,17 +49,17 @@
#define ENV_SIZE (CONFIG_ENV_SIZE - ENV_HEADER_SIZE)

-#ifdef CONFIG_BUILD_ENVCRC
+#ifdef ENV_IS_EMBEDDED
# include <env_internal.h>
extern unsigned int env_size;
extern env_t embedded_environment;
-#endif /* CONFIG_BUILD_ENVCRC */
+#endif /* ENV_IS_EMBEDDED */

extern uint32_t crc32(uint32_t, const unsigned char *, unsigned int);

int main (int argc, char **argv)
{
-#ifdef CONFIG_BUILD_ENVCRC
+#ifdef ENV_IS_EMBEDDED
unsigned char pad = 0x00;
uint32_t crc;
unsigned char *envptr = (unsigned char *)&embedded_environment,
--
2.25.1