Hei hei, On Wed, Nov 13, 2019 at 06:05:59PM +0100, Bruno Thomsen wrote: > Add possiblity to generate both a default and/or > a custom environment image. Image can be used during > manufacturing to avoid bootloader console usage and > speed up first boot. Other image use-cases include > device development edition, device demonstration > mode, etc. > > Custom environment image is generated from an user > provided config file with one 'var=value' per line > format. Input config file name is configurable. > > Both outputs has configurable image names so it's > easier to see specific use-case. > > Examples: > u-boot-demo-env.img > u-boot-development-env.img > u-boot-manufacturing-env.img > u-boot-default-env.img > > Signed-off-by: Bruno Thomsen > Tested-by: Alexander Dahl I did not test v2! Will do in a few days, but technically I did not it. Alex > --- > v2: > - remove HOST_U_BOOT_TOOLS dependency > - configurable default env image name > - add custom env image generation option > - move all options to sub menu > > platforms/u-boot.in | 64 +++++++++++++++++++++++++++++++++++++++++++++ > rules/u-boot.make | 22 ++++++++++++++++ > 2 files changed, 86 insertions(+) > > diff --git a/platforms/u-boot.in b/platforms/u-boot.in > index 9bac4a758..629fc9482 100644 > --- a/platforms/u-boot.in > +++ b/platforms/u-boot.in > @@ -71,6 +71,70 @@ config U_BOOT_CONFIG > > endif > > +menuconfig U_BOOT_GENERATE_ENV_IMAGE > + bool > + prompt "Generate environment image " > + > +if U_BOOT_GENERATE_ENV_IMAGE > + > +config U_BOOT_DEFAULT_ENV_IMAGE > + prompt "Generate default environment image" > + bool > + help > + Use U-Boot's mkenvimage to compile a default U-Boot environment > + image for use in e.g. device manufacturing or development. > + > +config U_BOOT_DEFAULT_ENV_IMAGE_FILE > + prompt "Default environment image filename" > + string > + default "u-boot-env.img" > + help > + Change default environment output image name. > + > +config U_BOOT_CUSTOM_ENV_IMAGE > + prompt "Generate custom environment image" > + bool > + help > + Use U-Boot's mkenvimage to compile a custom U-Boot environment > + image based on the text file in U_BOOT_CUSTOM_ENV_IMAGE_SOURCE > + for use in e.g. device manufacturing or development. > + > +config U_BOOT_CUSTOM_ENV_IMAGE_SOURCE > + prompt "Custom environment source" > + string > + default "custom_env.config" > + help > + Text file in PTXDIST_WORKSPACE describing the custom environment. > + The file should have lines in the form var=value, one per line. > + Blank lines and lines starting with a # are ignored. > + > +config U_BOOT_CUSTOM_ENV_IMAGE_FILE > + prompt "Custom environment image filename" > + string > + default "u-boot-custom-env.img" > + help > + Change custom environment output image name. > + > +comment "common options ---" > + > +config U_BOOT_ENV_IMAGE_SIZE > + prompt "Environment image size" > + string > + default "0x2000" > + help > + Enter the U-Boot environment size for generation of image. > + Size can be prefixed with 0x for hexadecimal values. > + Must match size defined in target config and "/etc/fw_env.config". > + > +config U_BOOT_ENV_IMAGE_REDUNDANT > + prompt "Environment image with redundant copy" > + bool > + help > + Use to generate a redundant environment in the image. > + Must match target config and "/etc/fw_env.config". > + > +endif > + > config U_BOOT_BOOT_SCRIPT > prompt "Compile U-Boot boot script" > bool > diff --git a/rules/u-boot.make b/rules/u-boot.make > index 8f9290ea7..c3c426d6d 100644 > --- a/rules/u-boot.make > +++ b/rules/u-boot.make > @@ -94,6 +94,20 @@ ifdef PTXCONF_U_BOOT_BOOT_SCRIPT > @$(U_BOOT_DIR)/tools/mkimage -T script -C none \ > -d $(U_BOOT_BOOT_SCRIPT_TXT) \ > $(U_BOOT_DIR)/boot.scr.uimg > +endif > +ifdef PTXCONF_U_BOOT_DEFAULT_ENV_IMAGE > + $(U_BOOT_MAKE_ENV) $(U_BOOT_DIR)/scripts/get_default_envs.sh | \ > + $(U_BOOT_DIR)/tools/mkenvimage -p 0x0 \ > + $(call ptx/ifdef,PTXCONF_U_BOOT_ENV_IMAGE_REDUNDANT,-r,) \ > + -s $(PTXCONF_U_BOOT_ENV_IMAGE_SIZE) \ > + -o $(U_BOOT_DIR)/$(PTXCONF_U_BOOT_DEFAULT_ENV_IMAGE_FILE) - > +endif > +ifdef PTXCONF_U_BOOT_CUSTOM_ENV_IMAGE > + $(U_BOOT_DIR)/tools/mkenvimage -p 0x0 \ > + $(call ptx/ifdef,PTXCONF_U_BOOT_ENV_IMAGE_REDUNDANT,-r,) \ > + -s $(PTXCONF_U_BOOT_ENV_IMAGE_SIZE) \ > + -o $(U_BOOT_DIR)/$(PTXCONF_U_BOOT_CUSTOM_ENV_IMAGE_FILE) \ > + $(PTXDIST_WORKSPACE)/$(PTXCONF_U_BOOT_CUSTOM_ENV_IMAGE_SOURCE) > endif > @$(call touch) > > @@ -141,6 +155,14 @@ ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_WITH_SPL_PBL > @install -v -D -m644 $(U_BOOT_DIR)/u-boot-with-spl-pbl.bin \ > $(IMAGEDIR)/u-boot-with-spl-pbl.bin > endif > +ifdef PTXCONF_U_BOOT_DEFAULT_ENV_IMAGE > + @install -v -D -m644 $(U_BOOT_DIR)/$(PTXCONF_U_BOOT_DEFAULT_ENV_IMAGE_FILE) \ > + $(IMAGEDIR)/$(PTXCONF_U_BOOT_DEFAULT_ENV_IMAGE_FILE) > +endif > +ifdef PTXCONF_U_BOOT_CUSTOM_ENV_IMAGE > + @install -v -D -m644 $(U_BOOT_DIR)/$(PTXCONF_U_BOOT_CUSTOM_ENV_IMAGE_FILE) \ > + $(IMAGEDIR)/$(PTXCONF_U_BOOT_CUSTOM_ENV_IMAGE_FILE) > +endif > > ifdef PTXCONF_U_BOOT_BOOT_SCRIPT > @$(call install_init, u-boot) > -- > 2.23.0 > > > _______________________________________________ > ptxdist mailing list > ptxdist@pengutronix.de -- /"\ ASCII RIBBON | »With the first link, the chain is forged. The first \ / CAMPAIGN | speech censured, the first thought forbidden, the X AGAINST | first freedom denied, chains us all irrevocably.« / \ HTML MAIL | (Jean-Luc Picard, quoting Judge Aaron Satie)