mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 07:04:28 +00:00
env: Rework ENV_IS_EMBEDDED and related logic slightly
- 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>
This commit is contained in:
parent
2440b5bb52
commit
6bd2372094
6 changed files with 7 additions and 39 deletions
5
README
5
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
|
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.
|
|
||||||
|
|
||||||
BE CAREFUL! The first access to the environment happens quite early
|
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
|
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
|
console baudrate). You *MUST* have mapped your NVRAM area then, or
|
||||||
|
|
1
env/Makefile
vendored
1
env/Makefile
vendored
|
@ -11,7 +11,6 @@ obj-$(CONFIG_$(SPL_TPL_)ENV_SUPPORT) += flags.o
|
||||||
ifndef CONFIG_SPL_BUILD
|
ifndef CONFIG_SPL_BUILD
|
||||||
obj-y += callback.o
|
obj-y += callback.o
|
||||||
obj-$(CONFIG_ENV_IS_IN_EEPROM) += eeprom.o
|
obj-$(CONFIG_ENV_IS_IN_EEPROM) += eeprom.o
|
||||||
extra-$(CONFIG_ENV_IS_EMBEDDED) += embedded.o
|
|
||||||
obj-$(CONFIG_ENV_IS_IN_EEPROM) += embedded.o
|
obj-$(CONFIG_ENV_IS_IN_EEPROM) += embedded.o
|
||||||
extra-$(CONFIG_ENV_IS_IN_FLASH) += embedded.o
|
extra-$(CONFIG_ENV_IS_IN_FLASH) += embedded.o
|
||||||
obj-$(CONFIG_ENV_IS_IN_NVRAM) += embedded.o
|
obj-$(CONFIG_ENV_IS_IN_NVRAM) += embedded.o
|
||||||
|
|
2
env/embedded.c
vendored
2
env/embedded.c
vendored
|
@ -27,7 +27,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) || defined(CONFIG_BUILD_ENVCRC)
|
#if defined(ENV_IS_EMBEDDED)
|
||||||
/*
|
/*
|
||||||
* Put the environment in the .text section when we are building
|
* Put the environment in the .text 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
|
||||||
|
|
|
@ -41,10 +41,6 @@
|
||||||
(CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
|
(CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
|
||||||
# define ENV_IS_EMBEDDED
|
# define ENV_IS_EMBEDDED
|
||||||
# endif
|
# 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 */
|
#endif /* CONFIG_ENV_IS_IN_FLASH */
|
||||||
|
|
||||||
#if defined(CONFIG_ENV_IS_IN_NAND)
|
#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_OFFSET_OOB */
|
||||||
#endif /* CONFIG_ENV_IS_IN_NAND */
|
#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"
|
#include "compiler.h"
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
|
#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
|
* If the environment is in RAM, allocate extra space for it in the malloc
|
||||||
* region.
|
* region.
|
||||||
*/
|
*/
|
||||||
#if defined(CONFIG_ENV_IS_EMBEDDED)
|
#if defined(ENV_IS_EMBEDDED)
|
||||||
#define TOTAL_MALLOC_LEN CONFIG_SYS_MALLOC_LEN
|
#define TOTAL_MALLOC_LEN CONFIG_SYS_MALLOC_LEN
|
||||||
#elif (CONFIG_ENV_ADDR + CONFIG_ENV_SIZE < CONFIG_SYS_MONITOR_BASE) || \
|
#elif (CONFIG_ENV_ADDR + CONFIG_ENV_SIZE < CONFIG_SYS_MONITOR_BASE) || \
|
||||||
(CONFIG_ENV_ADDR >= CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN) || \
|
(CONFIG_ENV_ADDR >= CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN) || \
|
||||||
|
|
|
@ -36,21 +36,20 @@ endif
|
||||||
subdir-$(HOST_TOOLS_ALL) += gdb
|
subdir-$(HOST_TOOLS_ALL) += gdb
|
||||||
|
|
||||||
# Merge all the different vars for envcrc into one
|
# 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_EEPROM) = y
|
||||||
ENVCRC-$(CONFIG_ENV_IS_IN_FLASH) = y
|
ENVCRC-$(CONFIG_ENV_IS_IN_FLASH) = y
|
||||||
ENVCRC-$(CONFIG_ENV_IS_IN_ONENAND) = y
|
ENVCRC-$(CONFIG_ENV_IS_IN_ONENAND) = y
|
||||||
ENVCRC-$(CONFIG_ENV_IS_IN_NAND) = y
|
ENVCRC-$(CONFIG_ENV_IS_IN_NAND) = y
|
||||||
ENVCRC-$(CONFIG_ENV_IS_IN_NVRAM) = y
|
ENVCRC-$(CONFIG_ENV_IS_IN_NVRAM) = y
|
||||||
ENVCRC-$(CONFIG_ENV_IS_IN_SPI_FLASH) = 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_SPL_GENERATE_ATMEL_PMECC_HEADER) += atmel_pmecc_params
|
||||||
|
|
||||||
hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo
|
hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo
|
||||||
HOSTCFLAGS_bmp_logo.o := -pedantic
|
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
|
envcrc-objs := envcrc.o lib/crc32.o env/embedded.o lib/sha1.o
|
||||||
|
|
||||||
hostprogs-$(CONFIG_CMD_NET) += gen_eth_addr
|
hostprogs-$(CONFIG_CMD_NET) += gen_eth_addr
|
||||||
|
|
|
@ -40,10 +40,6 @@
|
||||||
# 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
|
|
||||||
#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
|
||||||
|
@ -53,17 +49,17 @@
|
||||||
#define ENV_SIZE (CONFIG_ENV_SIZE - ENV_HEADER_SIZE)
|
#define ENV_SIZE (CONFIG_ENV_SIZE - ENV_HEADER_SIZE)
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_BUILD_ENVCRC
|
#ifdef ENV_IS_EMBEDDED
|
||||||
# include <env_internal.h>
|
# include <env_internal.h>
|
||||||
extern unsigned int env_size;
|
extern unsigned int env_size;
|
||||||
extern env_t embedded_environment;
|
extern env_t embedded_environment;
|
||||||
#endif /* CONFIG_BUILD_ENVCRC */
|
#endif /* ENV_IS_EMBEDDED */
|
||||||
|
|
||||||
extern uint32_t crc32(uint32_t, const unsigned char *, unsigned int);
|
extern uint32_t crc32(uint32_t, const unsigned char *, unsigned int);
|
||||||
|
|
||||||
int main (int argc, char **argv)
|
int main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_BUILD_ENVCRC
|
#ifdef ENV_IS_EMBEDDED
|
||||||
unsigned char pad = 0x00;
|
unsigned char pad = 0x00;
|
||||||
uint32_t crc;
|
uint32_t crc;
|
||||||
unsigned char *envptr = (unsigned char *)&embedded_environment,
|
unsigned char *envptr = (unsigned char *)&embedded_environment,
|
||||||
|
|
Loading…
Reference in a new issue