[U-Boot] [PATCH v2 22/34] env: Add a new implementation of environment access

Simon Glass sjg at chromium.org
Wed Jul 26 16:32:51 UTC 2017


Hi Tom,

On 26 July 2017 at 10:04, Tom Rini <trini at 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 at 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


More information about the U-Boot mailing list