@ -45,15 +45,11 @@ char *env_name_spec = "SPI Flash";
static struct spi_flash * env_flash ;
# if defined(CONFIG_ENV_OFFSET_REDUND)
int saveenv ( void )
static int setup_flash_device ( void )
{
env_t env_new ;
char * saved_buffer = NULL , flag = OBSOLETE_FLAG ;
u32 saved_size , saved_offset , sector = 1 ;
int ret ;
# ifdef CONFIG_DM_SPI_FLASH
struct udevice * new ;
int ret ;
/* speed and mode will be read from DT */
ret = spi_flash_probe_bus_cs ( CONFIG_ENV_SPI_BUS , CONFIG_ENV_SPI_CS ,
@ -76,6 +72,20 @@ int saveenv(void)
}
}
# endif
return 0 ;
}
# if defined(CONFIG_ENV_OFFSET_REDUND)
int saveenv ( void )
{
env_t env_new ;
char * saved_buffer = NULL , flag = OBSOLETE_FLAG ;
u32 saved_size , saved_offset , sector = 1 ;
int ret ;
ret = setup_flash_device ( ) ;
if ( ret )
return ret ;
ret = env_export ( & env_new ) ;
if ( ret )
@ -242,30 +252,10 @@ int saveenv(void)
char * saved_buffer = NULL ;
int ret = 1 ;
env_t env_new ;
# ifdef CONFIG_DM_SPI_FLASH
struct udevice * new ;
/* speed and mode will be read from DT */
ret = spi_flash_probe_bus_cs ( CONFIG_ENV_SPI_BUS , CONFIG_ENV_SPI_CS ,
0 , 0 , & new ) ;
if ( ret ) {
set_default_env ( " !spi_flash_probe_bus_cs() failed " ) ;
return 1 ;
}
env_flash = dev_get_uclass_priv ( new ) ;
# else
if ( ! env_flash ) {
env_flash = spi_flash_probe ( CONFIG_ENV_SPI_BUS ,
CONFIG_ENV_SPI_CS ,
CONFIG_ENV_SPI_MAX_HZ , CONFIG_ENV_SPI_MODE ) ;
if ( ! env_flash ) {
set_default_env ( " !spi_flash_probe() failed " ) ;
return 1 ;
}
}
# endif
ret = setup_flash_device ( ) ;
if ( ret )
return ret ;
/* Is the sector larger than the env (i.e. embedded) */
if ( CONFIG_ENV_SECT_SIZE > CONFIG_ENV_SIZE ) {