From a766688516690d9e29b40419fee6a429fe7596d3 Mon Sep 17 00:00:00 2001 From: Stefano Babic Date: Wed, 13 Mar 2019 09:46:45 +0100 Subject: Add target to generate initial environment 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 (cherry picked from commit bdaa73a5b3923257add182b4ab8058dbfa33421b) --- Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile b/Makefile index 3743b54a61..162485c420 100644 --- a/Makefile +++ b/Makefile @@ -1721,6 +1721,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' $@ + +u-boot-initial-env: u-boot.bin + $(call if_changed,genenv) + # Consistency checks # --------------------------------------------------------------------------- -- cgit v1.2.3