From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 05 Jun 2026 16:34:16 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVVcm-002e2q-1n for lore@lore.pengutronix.de; Fri, 05 Jun 2026 16:34:16 +0200 Received: from [127.0.0.1] (helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1wVVcm-00028W-EE; Fri, 05 Jun 2026 16:34:16 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1wVVcb-00028L-3X; Fri, 05 Jun 2026 16:34:05 +0200 Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVVca-001G5G-3C; Fri, 05 Jun 2026 16:34:05 +0200 Received: from mol by dude05.red.stw.pengutronix.de with local (Exim 4.98.2) (envelope-from ) id 1wVVca-00000001NWa-3rsG; Fri, 05 Jun 2026 16:34:04 +0200 Date: Fri, 5 Jun 2026 16:34:04 +0200 From: Michael Olbrich To: Ladislav Michl Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain Subject: Re: [ptxdist] [RFC] u-boot: Build in default envinronment from file X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: ptxdist@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false On Mon, Jun 01, 2026 at 03:42:49PM +0200, Ladislav Michl wrote: > Incorporating default envinroment from external file makes changes to it > much easier compared to creating patch for u-boot creating config file > with CONFIG_EXTRA_ENV_SETTINGS macro. > This however requires xxd tool, so question is where to get it from? > 1. leave to user, similar as HOST_SYSTEM_BC is made I think we can go with this one. > 2. add HOST_XXD, make it depend on HOST_VIM to reuse archive and compile > just xxd > 3. patch u-boot to not use xxd > > Except for the last case we would need something like > select HOST_XXD if U_BOOT_DEFAULT_ENV > in the Kconfig. > > Also, do we want envinronment file name configurable? No, there is no good reason for something like that. > Thanks for the suggestions, > ladis > > --- > platforms/u-boot.in | 9 +++++++++ > rules/u-boot.make | 23 +++++++++++++++++++++++ > 2 files changed, 32 insertions(+) > > diff --git a/platforms/u-boot.in b/platforms/u-boot.in > index d263135ca..c1abe3930 100644 > --- a/platforms/u-boot.in > +++ b/platforms/u-boot.in > @@ -73,6 +73,15 @@ config U_BOOT_CONFIGFILE_KCONFIG > help > This entry specifies the .config file used to compile U-Boot. > > +config U_BOOT_DEFAULT_ENV > + prompt "compile in default environment from file" > + bool > + help > + Text file uboot-defaultenv.txt in the platform config directory > + describing the builtin default environment. > + The file should have lines in the form var=value, one per line. > + Blank lines and lines starting with a # are ignored. > + > endif > > if U_BOOT_CONFIGSYSTEM_LEGACY > diff --git a/rules/u-boot.make b/rules/u-boot.make > index d3ea65cf2..1966ba9b6 100644 > --- a/rules/u-boot.make > +++ b/rules/u-boot.make > @@ -39,6 +39,11 @@ endif > U_BOOT_INJECT_PATH := ${PTXDIST_SYSROOT_TARGET}/usr/lib/firmware > U_BOOT_INJECT_OOT := $(call ptx/ifdef, PTXCONF_U_BOOT_BUILD_OOT,YES,NO) > > +ifdef PTXCONF_U_BOOT_DEFAULT_ENV > +U_BOOT_DEFAULT_ENV_TXT := $(call ptx/in-platformconfigdir, uboot-defaultenv.txt) > +$(call ptx/cfghash-file, U_BOOT, $(U_BOOT_DEFAULT_ENV_TXT)) > +endif > + > ifdef PTXCONF_U_BOOT_BOOT_SCRIPT > U_BOOT_BOOT_SCRIPT_TXT := $(call ptx/in-platformconfigdir, uboot.scr) > U_BOOT_BOOT_SCRIPT_BIN := $(call remove_quotes, \ > @@ -119,6 +124,24 @@ endif > > $(STATEDIR)/u-boot.compile: > @$(call targetinfo) > +ifdef PTXCONF_U_BOOT_DEFAULT_ENV > + @rm -rf $(U_BOOT_BUILD_DIR)/.ptxdist-defaultenv Did you test this with PTXCONF_U_BOOT_BUILD_OOT enabled? > + @ln -s $(U_BOOT_DEFAULT_ENV_TXT) $(U_BOOT_BUILD_DIR)/.ptxdist-defaultenv > +# # pre-2025.10 > + @sed -i -e 's,^.*CONFIG_USE_DEFAULT_ENV_FILE.*$$,CONFIG_USE_DEFAULT_ENV_FILE=y,g' \ > + $(U_BOOT_BUILD_DIR)/.config > + @sed -i -e '/\\/d' \ > + $(U_BOOT_BUILD_DIR)/.config > + @sed -i -e '/CONFIG_USE_DEFAULT_ENV_FILE=y/a CONFIG_DEFAULT_ENV_FILE=".ptxdist-defaultenv"' \ > + $(U_BOOT_BUILD_DIR)/.config > +# # 2025.10 and later > + @sed -i -e 's,^.*CONFIG_ENV_USE_DEFAULT_ENV_TEXT_FILE.*$$,CONFIG_ENV_USE_DEFAULT_ENV_TEXT_FILE=y,g' \ > + $(U_BOOT_BUILD_DIR)/.config > + @sed -i -e '/\\/d' \ > + $(U_BOOT_BUILD_DIR)/.config > + @sed -i -e '/CONFIG_ENV_USE_DEFAULT_ENV_TEXT_FILE=y/a CONFIG_ENV_DEFAULT_ENV_TEXT_FILE=".ptxdist-defaultenv"' \ > + $(U_BOOT_BUILD_DIR)/.config I'd like to avoid patching the config like that. I know we do it in barebox as well, but: 1. it's an absolute path that cannot be in the config 2. only the variable with the path, not enabling it as well 3. legacy, so changing it will break things. Please just check here, that the correct options are set and describe what needs to be done in the menu help. Michael > +endif > @$(call world/compile, U_BOOT) > ifdef PTXCONF_U_BOOT_VERIFY_SIGNATURE > @mv $(U_BOOT_BUILD_DIR)/u-boot.dtb $(U_BOOT_BUILD_DIR)/u-boot-pubkey.dtb > -- > 2.47.3 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |