env: Drop common init() functions

Most of the init() implementations just use the default environment.
Adjust env_init_new() to do this automatically, and drop the redundant
code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
master
Simon Glass 7 years ago committed by Tom Rini
parent e5bce247b0
commit 7938822a6b
  1. 16
      env/dataflash.c
  2. 14
      env/eeprom.c
  3. 14
      env/env.c
  4. 10
      env/ext4.c
  5. 10
      env/fat.c
  6. 10
      env/mmc.c
  7. 19
      env/nowhere.c
  8. 10
      env/onenand.c
  9. 4
      env/remote.c
  10. 10
      env/sata.c
  11. 10
      env/sf.c
  12. 10
      env/ubi.c
  13. 3
      include/environment.h

16
env/dataflash.c vendored

@ -68,25 +68,9 @@ static int env_dataflash_save(void)
CONFIG_ENV_SIZE); CONFIG_ENV_SIZE);
} }
/*
* Initialize environment use
*
* We are still running from ROM, so data use is limited.
* Use a (moderately small) buffer on the stack
*/
int env_dataflash_init(void)
{
/* use default */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
U_BOOT_ENV_LOCATION(dataflash) = { U_BOOT_ENV_LOCATION(dataflash) = {
.location = ENVL_DATAFLASH, .location = ENVL_DATAFLASH,
.get_char = env_dataflash_get_char, .get_char = env_dataflash_get_char,
.load = env_dataflash_load, .load = env_dataflash_load,
.save = env_save_ptr(env_dataflash_save), .save = env_save_ptr(env_dataflash_save),
.init = env_dataflash_init,
}; };

14
env/eeprom.c vendored

@ -231,23 +231,9 @@ static int env_eeprom_save(void)
return rc; return rc;
} }
/*
* Initialize Environment use
*
* We are still running from ROM, so data use is limited.
* Use a (moderately small) buffer on the stack
*/
static int env_eeprom_init(void)
{
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
U_BOOT_ENV_LOCATION(eeprom) = { U_BOOT_ENV_LOCATION(eeprom) = {
.location = ENVL_EEPROM, .location = ENVL_EEPROM,
.get_char = env_eeprom_get_char, .get_char = env_eeprom_get_char,
.load = env_eeprom_load, .load = env_eeprom_load,
.save = env_save_ptr(env_eeprom_save), .save = env_save_ptr(env_eeprom_save),
.init = env_eeprom_init,
}; };

14
env/env.c vendored

@ -128,14 +128,18 @@ int env_save(void)
int env_init_new(void) int env_init_new(void)
{ {
struct env_driver *drv = env_driver_lookup_default(); struct env_driver *drv = env_driver_lookup_default();
int ret; int ret = -ENOENT;
if (!drv) if (!drv)
return -ENODEV; return -ENODEV;
if (!drv->init) if (drv->init)
return -ENOSYS; ret = drv->init();
ret = drv->init(); if (ret == -ENOENT) {
if (ret) { gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = 0;
return 0;
} else if (ret) {
debug("%s: Environment failed to init (err=%d)\n", __func__, debug("%s: Environment failed to init (err=%d)\n", __func__,
ret); ret);
return ret; return ret;

10
env/ext4.c vendored

@ -37,15 +37,6 @@ env_t *env_ptr;
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
static int env_ext4_init(void)
{
/* use default */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
#ifdef CONFIG_CMD_SAVEENV #ifdef CONFIG_CMD_SAVEENV
static int env_ext4_save(void) static int env_ext4_save(void)
{ {
@ -132,5 +123,4 @@ U_BOOT_ENV_LOCATION(ext4) = {
.location = ENVL_EXT4, .location = ENVL_EXT4,
.load = env_ext4_load, .load = env_ext4_load,
.save = env_save_ptr(env_ext4_save), .save = env_save_ptr(env_ext4_save),
.init = env_ext4_init,
}; };

10
env/fat.c vendored

@ -37,15 +37,6 @@ env_t *env_ptr;
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
static int env_fat_init(void)
{
/* use default */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
#ifdef CMD_SAVEENV #ifdef CMD_SAVEENV
static int env_fat_save(void) static int env_fat_save(void)
{ {
@ -131,5 +122,4 @@ U_BOOT_ENV_LOCATION(fat) = {
#ifdef CMD_SAVEENV #ifdef CMD_SAVEENV
.save = env_save_ptr(env_fat_save), .save = env_save_ptr(env_fat_save),
#endif #endif
.init = env_fat_init,
}; };

10
env/mmc.c vendored

@ -82,15 +82,6 @@ __weak int mmc_get_env_dev(void)
return CONFIG_SYS_MMC_ENV_DEV; return CONFIG_SYS_MMC_ENV_DEV;
} }
static int env_mmc_init(void)
{
/* use default */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
#ifdef CONFIG_SYS_MMC_ENV_PART #ifdef CONFIG_SYS_MMC_ENV_PART
__weak uint mmc_get_env_part(struct mmc *mmc) __weak uint mmc_get_env_part(struct mmc *mmc)
{ {
@ -331,5 +322,4 @@ U_BOOT_ENV_LOCATION(mmc) = {
#ifndef CONFIG_SPL_BUILD #ifndef CONFIG_SPL_BUILD
.save = env_save_ptr(env_mmc_save), .save = env_save_ptr(env_mmc_save),
#endif #endif
.init = env_mmc_init,
}; };

19
env/nowhere.c vendored

@ -17,25 +17,6 @@ DECLARE_GLOBAL_DATA_PTR;
env_t *env_ptr; env_t *env_ptr;
static void env_nowhere_load(void)
{
}
/*
* Initialize Environment use
*
* We are still running from ROM, so data use is limited
*/
static int env_nowhere_init(void)
{
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = 0;
return 0;
}
U_BOOT_ENV_LOCATION(nowhere) = { U_BOOT_ENV_LOCATION(nowhere) = {
.location = ENVL_NOWHERE, .location = ENVL_NOWHERE,
.load = env_nowhere_load,
.init = env_nowhere_init,
}; };

10
env/onenand.c vendored

@ -106,18 +106,8 @@ static int env_onenand_save(void)
return 0; return 0;
} }
static int env_onenand_init(void)
{
/* use default */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
U_BOOT_ENV_LOCATION(onenand) = { U_BOOT_ENV_LOCATION(onenand) = {
.location = ENVL_ONENAND, .location = ENVL_ONENAND,
.load = env_onenand_load, .load = env_onenand_load,
.save = env_save_ptr(env_onenand_save), .save = env_save_ptr(env_onenand_save),
.init = env_onenand_init,
}; };

4
env/remote.c vendored

@ -33,9 +33,7 @@ static int env_remote_init(void)
return 0; return 0;
} }
gd->env_addr = (ulong)default_environment; return -ENOENT;
gd->env_valid = 0;
return 0;
} }
#ifdef CONFIG_CMD_SAVEENV #ifdef CONFIG_CMD_SAVEENV

10
env/sata.c vendored

@ -33,15 +33,6 @@ __weak int sata_get_env_dev(void)
return CONFIG_SYS_SATA_ENV_DEV; return CONFIG_SYS_SATA_ENV_DEV;
} }
static int env_sata_init(void)
{
/* use default */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
#ifdef CONFIG_CMD_SAVEENV #ifdef CONFIG_CMD_SAVEENV
static inline int write_env(struct blk_desc *sata, unsigned long size, static inline int write_env(struct blk_desc *sata, unsigned long size,
unsigned long offset, void *buffer) unsigned long offset, void *buffer)
@ -130,5 +121,4 @@ U_BOOT_ENV_LOCATION(sata) = {
.location = ENVL_ESATA, .location = ENVL_ESATA,
.load = env_sata_load, .load = env_sata_load,
.save = env_save_ptr(env_sata_save), .save = env_save_ptr(env_sata_save),
.init = env_sata_init,
}; };

10
env/sf.c vendored

@ -344,20 +344,10 @@ out:
} }
#endif #endif
static int env_sf_init(void)
{
/* SPI flash isn't usable before relocation */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
U_BOOT_ENV_LOCATION(sf) = { U_BOOT_ENV_LOCATION(sf) = {
.location = ENVL_SPI_FLASH, .location = ENVL_SPI_FLASH,
.load = env_sf_load, .load = env_sf_load,
#ifdef CMD_SAVEENV #ifdef CMD_SAVEENV
.save = env_save_ptr(env_sf_save), .save = env_save_ptr(env_sf_save),
#endif #endif
.init = env_sf_init,
}; };

10
env/ubi.c vendored

@ -22,15 +22,6 @@ env_t *env_ptr;
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
static int env_ubi_init(void)
{
/* use default */
gd->env_addr = (ulong)&default_environment[0];
gd->env_valid = ENV_VALID;
return 0;
}
#ifdef CONFIG_CMD_SAVEENV #ifdef CONFIG_CMD_SAVEENV
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT #ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
static int env_ubi_save(void) static int env_ubi_save(void)
@ -182,5 +173,4 @@ U_BOOT_ENV_LOCATION(ubi) = {
.location = ENVL_UBI, .location = ENVL_UBI,
.load = env_ubi_load, .load = env_ubi_load,
.save = env_save_ptr(env_ubi_save), .save = env_save_ptr(env_ubi_save),
.init = env_ubi_init,
}; };

@ -259,7 +259,8 @@ struct env_driver {
* *
* This method is optional. * This method is optional.
* *
* @return 0 if OK, -ve on error * @return 0 if OK, -ENOENT if no initial environment could be found,
* other -ve on error
*/ */
int (*init)(void); int (*init)(void);
}; };

Loading…
Cancel
Save