[U-Boot] [PATCH 00/30] env: Move environment code to use location drivers

Simon Glass sjg at chromium.org
Mon Jul 10 16:38:07 UTC 2017


Hi Christophe,

On 10 July 2017 at 02:10, Christophe LEROY <christophe.leroy at c-s.fr> wrote:
> Simon,
>
> Le 09/07/2017 à 22:52, Simon Glass a écrit :
>>
>> The environment code is ripe for improvement in various ways. It has lots
>> of duplication and inconsistencies between how things work with different
>> environment locations. It does not properly use Kconfig. Error checking
>> and handling is patchy.
>>
>> This series makes a start at improving things:
>>
>> - moves the rest of the CONFIG_ENV_IS_IN_... options to Kconfig
>> - introduces the concept of a location driver for the environment
>> - drops some of the duplicated code
>> - improves error handling a little (more to be done here)
>> - moves code into a new env/ directory
>>
>> There is still much more to do:
>> - complete Kconfig conversion (e.g. CONFIG_ENV_SIZE)
>> - unify environment settings so that all locations support the same
>> options
>> - try to rationalise the redundancy code (can we create a common
>>      implementation used by all drivers?)
>> - allow environment in multiple locations (e.g. as a fallback)
>> - figure out why CONFIG_ENV_IS_IN_FLASH enables the environment in flash
>>      even in SPL, which other locations do not
>>
>>
>> Simon Glass (30):
>>    Makefile: Rename 'env' target to 'environ'
>>    Move environment files from common/ to env/
>>    Convert CONFIG_ENV_IS_IN_MMC et al to Kconfig
>>    env: Move help from README to Kconfig
>>    Convert CONFIG_ENV_IS_IN_FLASH to Kconfig
>>    Convert CONFIG_ENV_IS_IN_NVRAM to Kconfig
>>    Convert CONFIG_ENV_IS_IN_EEPROM to Kconfig
>>    Convert CONFIG_ENV_IS_IN_DATAFLASH to Kconfig
>>    Convert CONFIG_ENV_IS_IN_SPI_FLASH to Kconfig
>>    Convert CONFIG_ENV_IS_IN_REMOTE to Kconfig
>>    Convert CONFIG_ENV_IS_IN_FAT to Kconfig
>>    env: common: Make env_get_addr/get_char_memory() static
>>    env: common: Drop env_get_addr()
>>    env: common: Factor out the common env_valid check
>>    env: common: Drop env_get_char_init()
>>    env: common: Drop env_get_char_memory()
>>    env: Add an enum for environment state
>>    env: Rename nand env_location to nand_env_location
>>    env: Create a location driver for each location
>>    env: Add a new implementation of environment access
>>    env: Switch over to use environment location drivers
>>    env: Drop common init() functions
>>    env: Drop the env_name_spec global
>>    env: Drop unused env_ptr variables
>>    env: Drop env_init_new()
>>    env: Drop env_get_char_spec()
>>    env: Drop env_relocate_spec() in favour of env_load()
>>    env: Drop saveenv() in favour of env_save()
>>    env: Adjust the get_char() method to return an int
>>    env: Adjust the load() method to return an error
>>
>>   Kconfig                                            |   2 +
>>   Makefile                                           |   5 +-
>>   README                                             | 352
>> ------------------
>>   arch/Kconfig                                       |   1 +
>>   arch/arm/Kconfig                                   |   2 +
>>   arch/arm/cpu/armv7/mx6/Kconfig                     |   1 +
>>   arch/arm/cpu/armv7/mx7/Kconfig                     |   1 +
>>   arch/arm/mach-exynos/Kconfig                       |   1 +
>>   arch/arm/mach-integrator/Kconfig                   |   2 +
>>   arch/arm/mach-mvebu/Kconfig                        |   1 +
>>   arch/arm/mach-omap2/boot-common.c                  |   3 +-
>>   arch/arm/mach-sunxi/Kconfig                        |   6 +
>>   arch/arm/mach-tegra/Kconfig                        |   3 +
>>   arch/m68k/Kconfig                                  |   8 +
>>   arch/microblaze/Kconfig                            |   1 +
>>   arch/mips/Kconfig                                  |   7 +
>>   arch/powerpc/Kconfig                               |   1 +
>>   arch/powerpc/cpu/mpc83xx/Kconfig                   |   6 +
>>   arch/powerpc/cpu/mpc85xx/Kconfig                   |   4 +
>>   arch/powerpc/cpu/mpc86xx/Kconfig                   |   1 +
>
>
> It looks like the mpc8xx has been left behind.

It may just be that there are no useful 'imply' targets there.

>
> Christophe

[..]


More information about the U-Boot mailing list