Hi Ahmad, Am Mittwoch, den 10.10.2018, 14:03 +0200 schrieb Ahmad Fatoum: > U-Boot can be configured at compile-time to expect the environment at a > set offset of e.g. the MMC. > > Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de> > --- > platforms/u-boot.in | 27 +++++++++++++++++++++++++++ > rules/u-boot.make | 32 ++++++++++++++++++++++++++++++++ > 2 files changed, 59 insertions(+) > > diff --git a/platforms/u-boot.in b/platforms/u-boot.in > index bcb78cfc3f5a..4e19d09c74f5 100644 > --- a/platforms/u-boot.in > +++ b/platforms/u-boot.in > @@ -35,6 +35,33 @@ config U_BOOT_CONFIG > "yourbox_config". See Uboot's main Makefile for possible > configuration targets. > > +config U_BOOT_ENV > + prompt "Generate U-Boot environment binary image" > + bool > + help > + Use U-Boot's mkenvimage to generate an U-Boot environment binary image > + (uboot-env.bin) out of a text file (uboot-env.txt) > + with entries of the form: > + key1=value1 > + key2=value2 > + > +if U_BOOT_ENV > + > +config U_BOOT_ENV_IMAGE_SIZE > + prompt "U-Boot environment image size" > + string > + default '0x2000' > + help > + The output image size > + > +config U_BOOT_ENV_FLASH_REDUNDANT > + prompt "Environment has multiple copies in flash" > + bool > + help > + Whether there are multiple copies of the U-Boot environment in flash > + > +endif > + > comment "target install" > > config U_BOOT_INSTALL_SREC > diff --git a/rules/u-boot.make b/rules/u-boot.make > index d9bcdf5ca64d..39228dbcaf9c 100644 > --- a/rules/u-boot.make > +++ b/rules/u-boot.make > @@ -33,6 +33,16 @@ U_BOOT_CONFIG := $(call ptx/in-platformconfigdir, \ > # Prepare > # > ---------------------------------------------------------------------------- > > +U_BOOT_ENV_TXT := $(call ptx/in-platformconfigdir, uboot-env.txt) > +U_BOOT_ENV_BIN := $(IMAGEDIR)/uboot-env.bin > + > +ifdef PTXCONF_ENDIAN_BIG > + U_BOOT_ENV_FLAGS += -b > +endif > +ifdef PTXCONF_U_BOOT_ENV_FLASH_REDUNDANT > + U_BOOT_ENV_FLAGS += -r > +endif > + > U_BOOT_WRAPPER_BLACKLIST := \ > TARGET_HARDEN_RELRO \ > TARGET_HARDEN_BINDNOW \ > @@ -64,6 +74,23 @@ endif > > $(STATEDIR)/u-boot.prepare: $(U_BOOT_CONFIG) > > +# > ---------------------------------------------------------------------------- > +# Compile > +# > ---------------------------------------------------------------------------- > + > +$(STATEDIR)/u-boot.compile: > + @$(call targetinfo) > + @+cd $(U_BOOT_DIR) && $(U_BOOT_PATH) \ > + $(MAKE) $(U_BOOT_MAKE_OPT) I would prefer @$(call world/compile, U_BOOT) here. > +ifdef PTXCONF_U_BOOT_ENV > + @$(U_BOOT_DIR)/tools/mkenvimage \ > + $(U_BOOT_ENV_FLAGS) -s $(PTXCONF_U_BOOT_ENV_IMAGE_SIZE) \ > + -o $(U_BOOT_DIR)/uboot-env.bin \ > + $(U_BOOT_ENV_TXT) > +endif We had a similar case, but end up with an image of compiled in env, using get_default_envs script. We didn´t had the time to clean it up.
--- a/rules/u-boot.make +++ b/rules/u-boot.make @@ -41,6 +41,19 @@ $(STATEDIR)/u-boot.prepare: $(MAKE) $(U_BOOT_MAKE_OPT) $(PTXCONF_U_BOOT_CONFIG) @$(call touch) +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +$(STATEDIR)/u-boot.compile: + @$(call targetinfo) + @$(call world/compile, U_BOOT) + cd $(U_BOOT_DIR) && \ + $(U_BOOT_MAKE_OPT) \ + $(U_BOOT_DIR)/scripts/get_default_envs.sh \ + | $(U_BOOT_DIR)/tools/mkenvimage -s 262144 -r -o u-boot_env.bin - + @$(call touch) + # ---------------------------------------------------------------------------- # Install # ---------------------------------------------------------------------------- > + @$(call touch) > + > + > # > ---------------------------------------------------------------------------- > # Install > # > ---------------------------------------------------------------------------- > @@ -102,6 +129,10 @@ 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_ENV > + @install -v -D -m644 $(U_BOOT_DIR)/uboot-env.bin $(U_BOOT_ENV_BIN) > +endif > @$(call touch) > > # > ---------------------------------------------------------------------------- > @@ -114,6 +145,7 @@ $(STATEDIR)/u-boot.clean: > @rm -vf $(IMAGEDIR)/u-boot.bin $(IMAGEDIR)/u-boot.srec > @rm -vf $(IMAGEDIR)/u-boot.elf $(IMAGEDIR)/u-boot.imx > @rm -vf $(IMAGEDIR)/u-boot-dtb.bin $(IMAGEDIR)/u-boot-with-spl-pbl.bin > + @rm -vf $(U_BOOT_ENV_BIN) > > # > ---------------------------------------------------------------------------- > # oldconfig / menuconfig Diehl Connectivity Solutions GmbH Geschäftsführung: Horst Leonberger Sitz der Gesellschaft: Nürnberg - Registergericht: Amtsgericht Nürnberg: HRB 32315 ___________________________________________________________________________________________________ Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen. Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt. The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited. _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de