@ -26,6 +26,44 @@ static struct env_driver *_env_driver_lookup(enum env_location loc)
return NULL ;
return NULL ;
}
}
static enum env_location env_locations [ ] = {
# ifdef CONFIG_ENV_IS_IN_EEPROM
ENVL_EEPROM ,
# endif
# ifdef CONFIG_ENV_IS_IN_EXT4
ENVL_EXT4 ,
# endif
# ifdef CONFIG_ENV_IS_IN_FAT
ENVL_FAT ,
# endif
# ifdef CONFIG_ENV_IS_IN_FLASH
ENVL_FLASH ,
# endif
# ifdef CONFIG_ENV_IS_IN_MMC
ENVL_MMC ,
# endif
# ifdef CONFIG_ENV_IS_IN_NAND
ENVL_NAND ,
# endif
# ifdef CONFIG_ENV_IS_IN_NVRAM
ENVL_NVRAM ,
# endif
# ifdef CONFIG_ENV_IS_IN_REMOTE
ENVL_REMOTE ,
# endif
# ifdef CONFIG_ENV_IS_IN_SPI_FLASH
ENVL_SPI_FLASH ,
# endif
# ifdef CONFIG_ENV_IS_IN_UBI
ENVL_UBI ,
# endif
# ifdef CONFIG_ENV_IS_NOWHERE
ENVL_NOWHERE ,
# endif
} ;
static enum env_location env_load_location = ENVL_UNKNOWN ;
/**
/**
* env_get_location ( ) - Returns the best env location for a board
* env_get_location ( ) - Returns the best env location for a board
* @ op : operations performed on the environment
* @ op : operations performed on the environment
@ -45,38 +83,21 @@ static struct env_driver *_env_driver_lookup(enum env_location loc)
*/
*/
static enum env_location env_get_location ( enum env_operation op , int prio )
static enum env_location env_get_location ( enum env_operation op , int prio )
{
{
/*
switch ( op ) {
* We support a single environment , so any environment asked
case ENVOP_GET_CHAR :
* with a priority that is not zero is out of our supported
case ENVOP_INIT :
* bounds .
case ENVOP_LOAD :
*/
if ( prio > = ARRAY_SIZE ( env_locations ) )
if ( prio > = 1 )
return ENVL_UNKNOWN ;
return ENVL_UNKNOWN ;
env_load_location = env_locations [ prio ] ;
if IS_ENABLED ( CONFIG_ENV_IS_IN_EEPROM )
return env_load_location ;
return ENVL_EEPROM ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_FAT )
case ENVOP_SAVE :
return ENVL_FAT ;
return env_load_location ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_EXT4 )
}
return ENVL_EXT4 ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_FLASH )
return ENVL_UNKNOWN ;
return ENVL_FLASH ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_MMC )
return ENVL_MMC ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_NAND )
return ENVL_NAND ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_NVRAM )
return ENVL_NVRAM ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_REMOTE )
return ENVL_REMOTE ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_SPI_FLASH )
return ENVL_SPI_FLASH ;
else if IS_ENABLED ( CONFIG_ENV_IS_IN_UBI )
return ENVL_UBI ;
else if IS_ENABLED ( CONFIG_ENV_IS_NOWHERE )
return ENVL_NOWHERE ;
else
return ENVL_UNKNOWN ;
}
}