[U-Boot] [PATCH 01/34] Add target to generate initial environment

Stefano Babic sbabic at denx.de
Wed Mar 13 10:28:09 UTC 2019


Hi Alex,

On 13/03/19 10:31, Alex Kiernan wrote:
> On Wed, Mar 13, 2019 at 8:47 AM Stefano Babic <sbabic at denx.de> wrote:
>>
>> The initial environment is linked to the u-boot binary. Modifying the
>> environment from User Space with the env tools requires that the tools
>> are always built together with the bootloader to be sure that they
>> contain the initial environment in case no environment is stored into
>> persistent storage or when a board boots with just the default
>> environment. This makes difficult for distros to provide a general
>> package to access the environment. A simpler way is if the tools are
>> generic for all boards and a configuration file is given to provide the
>> initial environment.
>>
>> The patch just generates the initial environment by extracting it from
>> the compiled object. This file can then be used for tools in user space
>> to initialize the environment.
>>
>> Signed-off-by: Stefano Babic <sbabic at denx.de>
>> ---
>>  Makefile | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/Makefile b/Makefile
>> index 26db4e7b59..74e48ae9dc 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1932,6 +1932,13 @@ endif
>>         $(build)=$(build-dir) $(@:.ko=.o)
>>         $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
>>
>> +quiet_cmd_genenv = GENENV $@
>> +cmd_genenv = $(OBJCOPY) --dump-section .rodata.default_environment=$@ env/common.o; \
>> +       sed --in-place -e 's/\x00/\x0A/g' $@
>> +
> 
> Really an observation rather than an objection - there are boards
> which have newlines embedded in their compiled in environments -
> ge_bx50v3 and mx53ppd (the failbootcmd variable) are the two I know
> of.

Right - but I guess that this could be better handled by external
scripts else here in U-Boot. The target simply dumps the compiled in
environment to be available t oexternal tools. For your use cases, it is
required a more sophisticated logic that checks for newlines if they are
surrounded by ".

Regards,
Stefano

> 
> 
>> +u-boot-initial-env: u-boot.bin
>> +       $(call if_changed,genenv)
>> +
>>  # Consistency checks
>>  # ---------------------------------------------------------------------------
>>
>> --
>> 2.17.1
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> https://lists.denx.de/listinfo/u-boot
> 
> 
> 
> --
> Alex Kiernan
> 


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list