env: allow people to force envcrc building

For people who want to manually extract the embedded environment so that
it can be manually packed into the final u-boot image, add a config opt
to force building of the envcrc tool.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2011-07-08 10:44:25 +00:00 committed by Wolfgang Denk
parent 8875bdb341
commit c3eb3fe490
4 changed files with 18 additions and 4 deletions

5
README
View file

@ -2563,6 +2563,11 @@ The following definitions that deal with the placement and management
of environment data (variable area); in general, we support the of environment data (variable area); in general, we support the
following configurations: 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: - CONFIG_ENV_IS_IN_FLASH:
Define this if the environment is in flash memory. Define this if the environment is in flash memory.

View file

@ -44,7 +44,7 @@
* Generate embedded environment table * Generate embedded environment table
* inside U-Boot image, if needed. * inside U-Boot image, if needed.
*/ */
#if defined(ENV_IS_EMBEDDED) #if defined(ENV_IS_EMBEDDED) || defined(CONFIG_BUILD_ENVCRC)
/* /*
* Only put the environment in it's own section when we are building * 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 * U-Boot proper. The host based program "tools/envcrc" does not need

View file

@ -761,4 +761,9 @@ int cpu_release(int nr, int argc, char * const argv[]);
#define ALIGN(x,a) __ALIGN_MASK((x),(typeof(x))(a)-1) #define ALIGN(x,a) __ALIGN_MASK((x),(typeof(x))(a)-1)
#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask)) #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_ */ #endif /* __COMMON_H_ */

View file

@ -60,6 +60,10 @@
# endif # endif
#endif /* CONFIG_ENV_IS_IN_FLASH */ #endif /* CONFIG_ENV_IS_IN_FLASH */
#if defined(ENV_IS_EMBEDDED) && !defined(CONFIG_BUILD_ENVCRC)
# define CONFIG_BUILD_ENVCRC 1
#endif
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT #ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
# define ENV_HEADER_SIZE (sizeof(uint32_t) + 1) # define ENV_HEADER_SIZE (sizeof(uint32_t) + 1)
#else #else
@ -71,14 +75,14 @@
extern uint32_t crc32 (uint32_t, const unsigned char *, unsigned int); extern uint32_t crc32 (uint32_t, const unsigned char *, unsigned int);
#ifdef ENV_IS_EMBEDDED #ifdef CONFIG_BUILD_ENVCRC
extern unsigned int env_size; extern unsigned int env_size;
extern unsigned char environment; extern unsigned char environment;
#endif /* ENV_IS_EMBEDDED */ #endif /* CONFIG_BUILD_ENVCRC */
int main (int argc, char **argv) int main (int argc, char **argv)
{ {
#ifdef ENV_IS_EMBEDDED #ifdef CONFIG_BUILD_ENVCRC
unsigned char pad = 0x00; unsigned char pad = 0x00;
uint32_t crc; uint32_t crc;
unsigned char *envptr = &environment, unsigned char *envptr = &environment,