@ -61,7 +61,7 @@ static int setup_flash_device(void)
0 , 0 , & new ) ;
if ( ret ) {
set_default_env ( " !spi_flash_probe_bus_cs() failed " ) ;
return 1 ;
return ret ;
}
env_flash = dev_get_uclass_priv ( new ) ;
@ -73,7 +73,7 @@ static int setup_flash_device(void)
CONFIG_ENV_SPI_MAX_HZ , CONFIG_ENV_SPI_MODE ) ;
if ( ! env_flash ) {
set_default_env ( " !spi_flash_probe() failed " ) ;
return 1 ;
return - EIO ;
}
}
# endif
@ -95,7 +95,7 @@ static int env_sf_save(void)
ret = env_export ( & env_new ) ;
if ( ret )
return ret ;
return - EIO ;
env_new . flags = ACTIVE_FLAG ;
if ( gd - > env_valid = = ENV_VALID ) {
@ -112,7 +112,7 @@ static int env_sf_save(void)
saved_offset = env_new_offset + CONFIG_ENV_SIZE ;
saved_buffer = memalign ( ARCH_DMA_MINALIGN , saved_size ) ;
if ( ! saved_buffer ) {
ret = 1 ;
ret = - ENOMEM ;
goto done ;
}
ret = spi_flash_read ( env_flash , saved_offset ,
@ -162,7 +162,7 @@ static int env_sf_save(void)
}
# endif /* CMD_SAVEENV */
static void env_sf_load ( void )
static int env_sf_load ( void )
{
int ret ;
int crc1_ok = 0 , crc2_ok = 0 ;
@ -176,6 +176,7 @@ static void env_sf_load(void)
CONFIG_ENV_SIZE ) ;
if ( ! tmp_env1 | | ! tmp_env2 ) {
set_default_env ( " !malloc() failed " ) ;
ret = - EIO ;
goto out ;
}
@ -202,6 +203,7 @@ static void env_sf_load(void)
if ( ! crc1_ok & & ! crc2_ok ) {
set_default_env ( " !bad CRC " ) ;
ret = - EIO ;
goto err_read ;
} else if ( crc1_ok & & ! crc2_ok ) {
gd - > env_valid = ENV_VALID ;
@ -244,6 +246,8 @@ err_read:
out :
free ( tmp_env1 ) ;
free ( tmp_env2 ) ;
return ret ;
}
# else
# ifdef CMD_SAVEENV
@ -308,7 +312,7 @@ static int env_sf_save(void)
}
# endif /* CMD_SAVEENV */
static void env_sf_load ( void )
static int env_sf_load ( void )
{
int ret ;
char * buf = NULL ;
@ -316,7 +320,7 @@ static void env_sf_load(void)
buf = ( char * ) memalign ( ARCH_DMA_MINALIGN , CONFIG_ENV_SIZE ) ;
if ( ! buf ) {
set_default_env ( " !malloc() failed " ) ;
return ;
return - EIO ;
}
ret = setup_flash_device ( ) ;
@ -339,6 +343,8 @@ err_read:
env_flash = NULL ;
out :
free ( buf ) ;
return ret ;
}
# endif