
Hi Tom,
On 26 July 2017 at 10:04, Tom Rini trini@konsulko.com wrote:
On Sun, Jul 23, 2017 at 09:19:57PM -0600, Simon Glass wrote:
We plan to move to a environment access via drivers for each location where the environment can be stored. Add an implementation for this. So far it is not used, but will be pressed into service in a future patch.
Signed-off-by: Simon Glass sjg@chromium.org
[snip]
+static enum env_location env_get_default_location(void) +{
if IS_ENABLED(CONFIG_ENV_IS_IN_DATAFLASH)
return ENVL_DATAFLASH;
else if IS_ENABLED(CONFIG_ENV_IS_IN_EEPROM)
return ENVL_EEPROM;
else if IS_ENABLED(CONFIG_ENV_IS_IN_FAT)
return ENVL_FAT;
else if IS_ENABLED(CONFIG_ENV_IS_IN_FLASH)
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;
+}
I think the kernel has a few examples of how the Kconfig side of things looks so that you can offer N options and then pick a default one (io scheduler, etc). We should do that rather than alphabetical IS_ENABLED tests.
Yes it is possible to have a choice in Kconfig, but for this first series I have left it as a option. My plan is to allow the environment to be in multiple places in the future, e.g. try using mmc and fall back to SPI flash. I think that the environment location should be able to be a run-time decision.
What do you think?
Otherwise, TODOs aside, looks good.
Regards, Simon