diff options
author | Tom Rini <trini@konsulko.com> | 2019-11-18 20:02:10 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-11-20 18:32:09 -0500 |
commit | a09fea1d28fe3c69a64bee092f5a764274d26ca2 (patch) | |
tree | 93c09653555ff696eb7705a74475a711cea8b316 /env | |
parent | 8160c38ca1fde4386db5a4ee07e86e397a4914df (diff) |
env: Finish migration of common ENV options
- In ARMv8 NXP Layerscape platforms we also need to make use of
CONFIG_SYS_RELOC_GD_ENV_ADDR now, do so.
- On ENV_IS_IN_REMOTE, CONFIG_ENV_OFFSET is never used, drop the define
to 0.
- Add Kconfig entry for ENV_ADDR.
- Make ENV_ADDR / ENV_OFFSET depend on the env locations that use it.
- Add ENV_xxx_REDUND options that depend on their primary option and
SYS_REDUNDAND_ENVIRONMENT
- On a number of PowerPC platforms, use SPL_ENV_ADDR not CONFIG_ENV_ADDR
for the pre-main-U-Boot environment location.
- On ENV_IS_IN_SPI_FLASH, check not for CONFIG_ENV_ADDR being set but
rather it being non-zero, as it will now be zero by default.
- Rework the env_offset absolute in env/embedded.o to not use
CONFIG_ENV_OFFSET as it was the only use of ENV_OFFSET within
ENV_IS_IN_FLASH.
- Migrate all platforms.
Cc: Wolfgang Denk <wd@denx.de>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Cc: uboot-stm32@st-md-mailman.stormreply.com
Signed-off-by: Tom Rini <trini@konsulko.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Diffstat (limited to 'env')
-rw-r--r-- | env/Kconfig | 32 | ||||
-rw-r--r-- | env/embedded.c | 2 | ||||
-rw-r--r-- | env/mmc.c | 4 | ||||
-rw-r--r-- | env/remote.c | 4 | ||||
-rw-r--r-- | env/sf.c | 6 |
5 files changed, 30 insertions, 18 deletions
diff --git a/env/Kconfig b/env/Kconfig index 0b97af42b1..bc88c59cd5 100644 --- a/env/Kconfig +++ b/env/Kconfig @@ -467,11 +467,25 @@ config ENV_EXT4_FILE It's a string of the EXT4 file name. This file use to store the environment (explicit path to the file) -if ARCH_ROCKCHIP || ARCH_SUNXI || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARC || ARCH_STM32MP || ARCH_OMAP2PLUS || ARCH_AT91 +config ENV_ADDR + hex "Environment address" + depends on ENV_IS_IN_FLASH || ENV_IS_IN_NVRAM || ENV_IS_IN_ONENAND || \ + ENV_IS_IN_REMOTE || ENV_IS_IN_SPI_FLASH + default 0x0 if ENV_IS_IN_SPI_FLASH + help + Offset from the start of the device (or partition) + +config ENV_ADDR_REDUND + hex "Redundant environment address" + depends on ENV_IS_IN_FLASH && SYS_REDUNDAND_ENVIRONMENT + help + Offset from the start of the device (or partition) of the redundant + environment location. config ENV_OFFSET - hex "Environment Offset" - depends on (!ENV_IS_IN_UBI && !ENV_IS_NOWHERE) || ARCH_STM32MP + hex "Environment offset" + depends on ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \ + ENV_IS_IN_SPI_FLASH default 0x3f8000 if ARCH_ROCKCHIP default 0x88000 if ARCH_SUNXI default 0xE0000 if ARCH_ZYNQ @@ -483,6 +497,14 @@ config ENV_OFFSET help Offset from the start of the device (or partition) +config ENV_OFFSET_REDUND + hex "Redundant environment offset" + depends on (ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \ + ENV_IS_IN_SPI_FLASH) && SYS_REDUNDAND_ENVIRONMENT + help + Offset from the start of the device (or partition) of the redundant + environment location. + config ENV_SIZE hex "Environment Size" default 0x40000 if ENV_IS_IN_SPI_FLASH && ARCH_ZYNQMP @@ -495,7 +517,7 @@ config ENV_SIZE config ENV_SECT_SIZE hex "Environment Sector-Size" - depends on (!ENV_IS_NOWHERE && (ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARCH_OMAP2PLUS || ARCH_AT91) )|| ARCH_STM32MP + depends on ENV_IS_IN_FLASH || ENV_IS_IN_SPI_FLASH default 0x40000 if ARCH_ZYNQMP || ARCH_VERSAL default 0x20000 if ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91 help @@ -526,8 +548,6 @@ config ENV_UBI_VID_OFFSET help UBI VID offset for environment. If 0, no custom VID offset is used. -endif - config SYS_RELOC_GD_ENV_ADDR bool "Relocate gd->en_addr" help diff --git a/env/embedded.c b/env/embedded.c index a38e169fe0..208553e6af 100644 --- a/env/embedded.c +++ b/env/embedded.c @@ -91,6 +91,6 @@ unsigned long env_size __UBOOT_ENV_SECTION__(env_size) = sizeof(env_t); /* * Add in absolutes. */ -GEN_ABS(env_offset, CONFIG_ENV_OFFSET); +GEN_ABS(env_offset, (CONFIG_ENV_ADDR - CONFIG_SYS_FLASH_BASE)); #endif /* ENV_IS_EMBEDDED */ @@ -24,10 +24,6 @@ DECLARE_GLOBAL_DATA_PTR; -#if !defined(CONFIG_ENV_OFFSET) -#define CONFIG_ENV_OFFSET 0 -#endif - #if CONFIG_IS_ENABLED(OF_CONTROL) static inline int mmc_offset_try_partition(const char *str, s64 *val) { diff --git a/env/remote.c b/env/remote.c index 02531f427b..55faa1e5d0 100644 --- a/env/remote.c +++ b/env/remote.c @@ -18,10 +18,6 @@ env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; DECLARE_GLOBAL_DATA_PTR; -#if !defined(CONFIG_ENV_OFFSET) -#define CONFIG_ENV_OFFSET 0 -#endif - static int env_remote_init(void) { if (crc32(0, env_ptr->data, ENV_SIZE) == env_ptr->crc) { @@ -284,14 +284,14 @@ out: } #endif -#ifdef CONFIG_ENV_ADDR +#if CONFIG_ENV_ADDR != 0x0 __weak void *env_sf_get_env_addr(void) { return (void *)CONFIG_ENV_ADDR; } #endif -#if defined(INITENV) && defined(CONFIG_ENV_ADDR) +#if defined(INITENV) && (CONFIG_ENV_ADDR != 0x0) static int env_sf_init(void) { env_t *env_ptr = (env_t *)env_sf_get_env_addr(); @@ -315,7 +315,7 @@ U_BOOT_ENV_LOCATION(sf) = { #ifdef CMD_SAVEENV .save = env_save_ptr(env_sf_save), #endif -#if defined(INITENV) && defined(CONFIG_ENV_ADDR) +#if defined(INITENV) && (CONFIG_ENV_ADDR != 0x0) .init = env_sf_init, #endif }; |