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>
This commit is contained in:
Simon Glass 2017-08-03 12:22:02 -06:00 committed by Tom Rini
parent e5bce247b0
commit 7938822a6b
13 changed files with 12 additions and 128 deletions

16
env/dataflash.c vendored
View File

@ -68,25 +68,9 @@ static int env_dataflash_save(void)
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) = {
.location = ENVL_DATAFLASH,
.get_char = env_dataflash_get_char,
.load = env_dataflash_load,
.save = env_save_ptr(env_dataflash_save),
.init = env_dataflash_init,
};

14
env/eeprom.c vendored
View File

@ -231,23 +231,9 @@ static int env_eeprom_save(void)
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) = {
.location = ENVL_EEPROM,
.get_char = env_eeprom_get_char,
.load = env_eeprom_load,
.save = env_save_ptr(env_eeprom_save),
.init = env_eeprom_init,
};

14
env/env.c vendored
View File

@ -128,14 +128,18 @@ int env_save(void)
int env_init_new(void)
{
struct env_driver *drv = env_driver_lookup_default();
int ret;
int ret = -ENOENT;
if (!drv)
return -ENODEV;
if (!drv->init)
return -ENOSYS;
ret = drv->init();
if (ret) {
if (drv->init)
ret = drv->init();
if (ret == -ENOENT) {
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__,
ret);
return ret;

10
env/ext4.c vendored
View File

@ -37,15 +37,6 @@ env_t *env_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
static int env_ext4_save(void)
{
@ -132,5 +123,4 @@ U_BOOT_ENV_LOCATION(ext4) = {
.location = ENVL_EXT4,
.load = env_ext4_load,
.save = env_save_ptr(env_ext4_save),
.init = env_ext4_init,
};

10
env/fat.c vendored
View File

@ -37,15 +37,6 @@ env_t *env_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
static int env_fat_save(void)
{
@ -131,5 +122,4 @@ U_BOOT_ENV_LOCATION(fat) = {
#ifdef CMD_SAVEENV
.save = env_save_ptr(env_fat_save),
#endif
.init = env_fat_init,
};

10
env/mmc.c vendored
View File

@ -82,15 +82,6 @@ __weak int mmc_get_env_dev(void)
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
__weak uint mmc_get_env_part(struct mmc *mmc)
{
@ -331,5 +322,4 @@ U_BOOT_ENV_LOCATION(mmc) = {
#ifndef CONFIG_SPL_BUILD
.save = env_save_ptr(env_mmc_save),
#endif
.init = env_mmc_init,
};

19
env/nowhere.c vendored
View File

@ -17,25 +17,6 @@ DECLARE_GLOBAL_DATA_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) = {
.location = ENVL_NOWHERE,
.load = env_nowhere_load,
.init = env_nowhere_init,
};

10
env/onenand.c vendored
View File

@ -106,18 +106,8 @@ static int env_onenand_save(void)
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) = {
.location = ENVL_ONENAND,
.load = env_onenand_load,
.save = env_save_ptr(env_onenand_save),
.init = env_onenand_init,
};

4
env/remote.c vendored
View File

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

10
env/sata.c vendored
View File

@ -33,15 +33,6 @@ __weak int sata_get_env_dev(void)
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
static inline int write_env(struct blk_desc *sata, unsigned long size,
unsigned long offset, void *buffer)
@ -130,5 +121,4 @@ U_BOOT_ENV_LOCATION(sata) = {
.location = ENVL_ESATA,
.load = env_sata_load,
.save = env_save_ptr(env_sata_save),
.init = env_sata_init,
};

10
env/sf.c vendored
View File

@ -344,20 +344,10 @@ out:
}
#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) = {
.location = ENVL_SPI_FLASH,
.load = env_sf_load,
#ifdef CMD_SAVEENV
.save = env_save_ptr(env_sf_save),
#endif
.init = env_sf_init,
};

10
env/ubi.c vendored
View File

@ -22,15 +22,6 @@ env_t *env_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_SYS_REDUNDAND_ENVIRONMENT
static int env_ubi_save(void)
@ -182,5 +173,4 @@ U_BOOT_ENV_LOCATION(ubi) = {
.location = ENVL_UBI,
.load = env_ubi_load,
.save = env_save_ptr(env_ubi_save),
.init = env_ubi_init,
};

View File

@ -259,7 +259,8 @@ struct env_driver {
*
* 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);
};