env: only build env_embedded and envcrc when needed
authorMike Frysinger <vapier@gentoo.org>
Wed, 30 Sep 2009 19:29:58 +0000 (15:29 -0400)
committerWolfgang Denk <wd@denx.de>
Sun, 18 Oct 2009 20:53:18 +0000 (22:53 +0200)
The env code is protected by the ENV_IS_EMBEDDED define, so attempting to
compile the code when this isn't defined is pointless.  Now that the env
headers have unified around CONFIG_ENV_IS_EMBEDDED, convert the build
system to only build the env objects when this is enabled.  And now that
the env code is conditionally compiled, we can drop the source code checks.

For people who want to extract the environment manually, add a new option
CONFIG_BUILD_ENVCRC that only enables the envcrc utility.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
README
common/Makefile
common/env_embedded.c
include/common.h
tools/Makefile
tools/envcrc.c

diff --git a/README b/README
index dee0e674a18c007fa98393db9a7d3b0a70e8a42b..744f6bf590e95df41e9177e3d92421b8e87eb581 100644 (file)
--- a/README
+++ b/README
@@ -2305,6 +2305,11 @@ 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.
+
 - CONFIG_ENV_IS_IN_FLASH:
 
        Define this if the environment is in flash memory.
index 3781738e19ad1b5d1a802fd19e457e8e16c3ae80..a92a75fe9c45994d5b7f60292f8bd4cfe0ad57b1 100644 (file)
@@ -52,9 +52,6 @@ COBJS-y += env_common.o
 COBJS-$(CONFIG_ENV_IS_IN_DATAFLASH) += env_dataflash.o
 COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_eeprom.o
 COBJS-$(CONFIG_ENV_IS_EMBEDDED) += env_embedded.o
-COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_embedded.o
-COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_embedded.o
-COBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_embedded.o
 COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
 COBJS-$(CONFIG_ENV_IS_IN_MG_DISK) += env_mgdisk.o
 COBJS-$(CONFIG_ENV_IS_IN_NAND) += env_nand.o
index ae6cac4390d8ad60f3551b0a5173d67fce14c5e4..e27e1cd276c3c4fc5717b78444052f4225066f31 100644 (file)
 #  define SYM_CHAR
 #endif
 
-/*
- * Generate embedded environment table
- * inside U-Boot image, if needed.
- */
-#if defined(ENV_IS_EMBEDDED)
 /*
  * Only put the environment in it's own section when we are building
  * U-Boot proper.  The host based program "tools/envcrc" does not need
@@ -210,5 +205,3 @@ unsigned long env_size __PPCTEXT__ = sizeof(env_t);
  * Add in absolutes.
  */
 GEN_ABS(env_offset, CONFIG_ENV_OFFSET);
-
-#endif /* ENV_IS_EMBEDDED */
index f7c93bf5a6d427d97108a73146c22482fe285633..7df9afab2b5c7b463068dc09f8386adabf719531 100644 (file)
@@ -719,4 +719,9 @@ int cpu_release(int nr, int argc, char *argv[]);
 #define ALIGN(x,a)             __ALIGN_MASK((x),(typeof(x))(a)-1)
 #define __ALIGN_MASK(x,mask)   (((x)+(mask))&~(mask))
 
+/* Pull in stuff for the build system */
+#ifdef DO_DEPS_ONLY
+# include <environment.h>
+#endif
+
 #endif /* __COMMON_H_ */
index b04e3f3044156b1a958be1922d8e20bc4132030f..2a9a9fd12d5a2fd0f61a1edc3d008cc3d9a60976 100644 (file)
@@ -69,13 +69,7 @@ include $(TOPDIR)/config.mk
 BIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
 BIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
 BIN_FILES-$(CONFIG_ENV_IS_EMBEDDED) += envcrc$(SFX)
-BIN_FILES-$(CONFIG_ENV_IS_IN_DATAFLASH) += envcrc$(SFX)
-BIN_FILES-$(CONFIG_ENV_IS_IN_EEPROM) += envcrc$(SFX)
-BIN_FILES-$(CONFIG_ENV_IS_IN_FLASH) += envcrc$(SFX)
-BIN_FILES-$(CONFIG_ENV_IS_IN_ONENAND) += envcrc$(SFX)
-BIN_FILES-$(CONFIG_ENV_IS_IN_NAND) += envcrc$(SFX)
-BIN_FILES-$(CONFIG_ENV_IS_IN_NVRAM) += envcrc$(SFX)
-BIN_FILES-$(CONFIG_ENV_IS_IN_SPI_FLASH) += envcrc$(SFX)
+BIN_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc$(SFX)
 BIN_FILES-$(CONFIG_CMD_NET) += gen_eth_addr$(SFX)
 BIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX)
 BIN_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes$(SFX)
@@ -95,6 +89,7 @@ OBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
 OBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o
 OBJ_FILES-y += default_image.o
 OBJ_FILES-$(CONFIG_ENV_IS_EMBEDDED) += envcrc.o
+OBJ_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc.o
 OBJ_FILES-y += fit_image.o
 OBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o
 OBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o
index 5b0f7cd4ec5bb01d7d641d232b2d1c63a90cd92a..d02a7dbcdccac059c7f64b8cbbbb79658147f2c5 100644 (file)
 # if defined(CONFIG_ENV_ADDR_REDUND) && !defined(CONFIG_ENV_SIZE_REDUND)
 #  define CONFIG_ENV_SIZE_REDUND       CONFIG_ENV_SIZE
 # endif
-# if (CONFIG_ENV_ADDR >= CONFIG_SYS_MONITOR_BASE) && \
-     ((CONFIG_ENV_ADDR + CONFIG_ENV_SIZE) <= (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN))
-#  define ENV_IS_EMBEDDED      1
-# endif
 # if defined(CONFIG_ENV_ADDR_REDUND) || defined(CONFIG_ENV_OFFSET_REDUND)
 #  define CONFIG_SYS_REDUNDAND_ENVIRONMENT     1
 # endif
 
 extern uint32_t crc32 (uint32_t, const unsigned char *, unsigned int);
 
-#ifdef ENV_IS_EMBEDDED
 extern unsigned int env_size;
 extern unsigned char environment;
-#endif /* ENV_IS_EMBEDDED */
 
 int main (int argc, char **argv)
 {
-#ifdef ENV_IS_EMBEDDED
        unsigned char pad = 0x00;
        uint32_t crc;
        unsigned char *envptr = &environment,
@@ -131,8 +124,6 @@ int main (int argc, char **argv)
        } else {
                printf ("0x%08X\n", crc);
        }
-#else
-       printf ("0\n");
-#endif
+
        return EXIT_SUCCESS;
 }