public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Heiko Schocher <hs@nabladev.com>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Fabio Estevam <festevam@gmail.com>,
	Peng Fan <peng.fan@oss.nxp.com>,
	Adrian Freihofer <adrian.freihofer@siemens.com>,
	Peng Fan <peng.fan@nxp.com>, Heiko Schocher <hs@nabladev.com>,
	Alexander Sverdlin <alexander.sverdlin@siemens.com>,
	Marek Vasut <marek.vasut+renesas@mailbox.org>,
	Simon Glass <sjg@chromium.org>, Tom Rini <trini@konsulko.com>,
	Tomas Peterka <atheiste@seznam.cz>,
	Walter Schweizer <walter.schweizer@siemens.com>
Subject: [PATCH v2 11/11] siemens: capricorn: protect environment
Date: Sat, 14 Feb 2026 05:57:03 +0100	[thread overview]
Message-ID: <20260214045703.28051-12-hs@nabladev.com> (raw)
In-Reply-To: <20260214045703.28051-1-hs@nabladev.com>

From: Adrian Freihofer <adrian.freihofer@siemens.com>

With ENV_WRITEABLE_LIST only specific environment variables lisetd in
CFG_ENV_FLAGS_LIST_STATIC are read from the u-boot environment storage.
All other environment variables are set to default values and are not
written back to the storage.

The u-boot environment usually stays for the lifetime of the product.
There is no A/B copy mechanism as for the firmware itself. That means
that incompatible changes to environment variables in future u-boot
versions may lead to serious issues if the old environment is used with
a new u-boot version or vice versa.

Having this protection in place ensures that only a limited set of
environment variables are persisted across u-boot versions. All the
macros not listed in CFG_ENV_FLAGS_LIST_STATIC are now part of the
u-boot binary which is redundant and immutable. This guarantees that
the u-boot version and the default values of these environment variables
are always in sync and cannot be changed at runtime.

ustate and rastate are not relevant for u-boot itself. ustate is used
by swupdate which persists the transaction state in the environment.
rastate is a similar variable used by another user space application.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>

Signed-off-by: Heiko Schocher <hs@nabladev.com>
---

Changes in v2:
Added Reviewed-by from Peng
Reworked writeable variable list, as we dropped patch
"env: add w flags for net config in explicit write mode"

 configs/imx8qxp_capricorn.config   |  1 +
 include/configs/capricorn-common.h | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/configs/imx8qxp_capricorn.config b/configs/imx8qxp_capricorn.config
index 626634cb09c..2bae5b1a862 100644
--- a/configs/imx8qxp_capricorn.config
+++ b/configs/imx8qxp_capricorn.config
@@ -12,6 +12,7 @@ CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80200000
 CONFIG_ENV_SIZE=0x2000
 CONFIG_ENV_REDUNDANT=y
 CONFIG_ENV_MMC_EMMC_HW_PARTITION=2
+CONFIG_ENV_WRITEABLE_LIST=y
 
 CONFIG_DM_GPIO=y
 CONFIG_AHAB_BOOT=y
diff --git a/include/configs/capricorn-common.h b/include/configs/capricorn-common.h
index 7120a44d186..ee13d2ab950 100644
--- a/include/configs/capricorn-common.h
+++ b/include/configs/capricorn-common.h
@@ -38,6 +38,19 @@
 #define CFG_EXTRA_ENV_SETTINGS \
 	AHAB_ENV
 
+#ifdef CONFIG_ENV_WRITEABLE_LIST
+#define CFG_ENV_FLAGS_LIST_STATIC \
+	"bootcount:dw," \
+	"bootdelay:sw," \
+	"bootlimit:dw," \
+	"partitionset_active:sw," \
+	"rastate:dw," \
+	"sig_a:sw,sig_b:sw," \
+	"target_env:sw," \
+	"upgrade_available:dw," \
+	"ustate:dw"
+#endif
+
 /* Default location for tftp and bootm */
 
 /* On CCP board, USDHC1 is for eMMC */
-- 
2.20.1


  parent reply	other threads:[~2026-02-14  4:58 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-14  4:56 [PATCH v2 00/11] imx8qxp: siemens: small board updates Heiko Schocher
2026-02-14  4:56 ` [PATCH v2 01/11] arm: dts: capricorn: pinctrl_usdhc1 cleanup Heiko Schocher
2026-02-14  4:56 ` [PATCH v2 02/11] siemens: capricorn: set max-frequency for usdhc1 Heiko Schocher
2026-02-14  4:56 ` [PATCH v2 03/11] arm: dts: capricorn: remove pinctrl_usdhc2 Heiko Schocher
2026-02-14  4:56 ` [PATCH v2 04/11] arm: dts: capricorn: move fec2 config Heiko Schocher
2026-02-14  4:56 ` [PATCH v2 05/11] imx8qxp_capricorn config: add wget command Heiko Schocher
2026-02-16 10:15   ` Marek Vasut
2026-02-16 10:53     ` Heiko Schocher
2026-02-16 11:19       ` Marek Vasut
2026-02-16 11:54   ` Fabio Estevam
2026-02-14  4:56 ` [PATCH v2 06/11] capricorn: config: add bootcounter command Heiko Schocher
2026-02-14  4:56 ` [PATCH v2 07/11] siemens: capricorn: add logic to U-Boot to avoid zig-zag boot Heiko Schocher
2026-02-14  4:57 ` [PATCH v2 08/11] siemens: capricorn: always detect emmc device Heiko Schocher
2026-02-14  4:57 ` [PATCH v2 09/11] siemens: capricorn: fix fallback bootm call for fitImage Heiko Schocher
2026-02-14  4:57 ` [PATCH v2 10/11] siemens: capricorn: rework bootcmd environment variables Heiko Schocher
2026-02-14  4:57 ` Heiko Schocher [this message]
2026-02-16  7:33 ` [PATCH v2 00/11] imx8qxp: siemens: small board updates Max Merchel
2026-02-16  7:49   ` Heiko Schocher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260214045703.28051-12-hs@nabladev.com \
    --to=hs@nabladev.com \
    --cc=adrian.freihofer@siemens.com \
    --cc=alexander.sverdlin@siemens.com \
    --cc=atheiste@seznam.cz \
    --cc=festevam@gmail.com \
    --cc=marek.vasut+renesas@mailbox.org \
    --cc=peng.fan@nxp.com \
    --cc=peng.fan@oss.nxp.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=walter.schweizer@siemens.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox