From: Peng Fan <peng.fan@oss.nxp.com>
To: Heiko Schocher <hs@nabladev.com>
Cc: U-Boot Mailing List <u-boot@lists.denx.de>,
Fabio Estevam <festevam@gmail.com>,
Adrian Freihofer <adrian.freihofer@siemens.com>,
Alexander Sverdlin <alexander.sverdlin@siemens.com>,
Tom Rini <trini@konsulko.com>,
Walter Schweizer <walter.schweizer@siemens.com>
Subject: Re: [PATCH v1 10/11] siemens: capricorn: rework bootcmd environment variables
Date: Mon, 26 Jan 2026 09:32:48 +0800 [thread overview]
Message-ID: <aXbEQJsoHAvVI6yx@shlinux89> (raw)
In-Reply-To: <20260124055452.8799-11-hs@nabladev.com>
On Sat, Jan 24, 2026 at 06:54:51AM +0100, Heiko Schocher wrote:
>From: Adrian Freihofer <adrian.freihofer@siemens.com>
>
>Rework the boot state machine to a significantly simpler and more
>robust implementation. The basic idea is to revert to the previous
>partition whenever an issue is detected during the boot process.
>
>- Broken SPL
>
> If one of the two SPLs does not boot, the ROM code of the i.MX8 SoC
> automatically starts the second SPL from the second boot partition.
> For example, if the system's active partition is A but the SPL from
> partition A is broken, the ROM code automatically uses the SPL/u-boot
> from partition B.
> Proceeding with this boot procedure would lead to booting the kernel/
> rootfs from partition A, which could potentially successfully boot
> the system and allow the user to apply the firmware update with the
> broken SPL again. This would lead to a non-bootable system because
> thesecond update would overwrite the last working bootloader.
Nit: the second
> To prevent such situations, zigzag boots are detected and the system
> reverts to the previous partition rather than booting the kernel/rootfs
> from the currently active partition. Detecting zigzag boots is done
> via the new fallback variable.
>
> To make this state machine even more consistent, the partitionset_active
> variable is no longer used to determine the active partition during
> boot. Instead, the active partition is always read from the eMMC
> partconf registers.
> For backward compatibility, the partitionset_active variable is still
> updated whenever a partition switch occurs. However, u-boot no longer
> relies on this variable, as it could potentially be out of sync with
> the actual partition state, leading to situations where the ROM code
> of the i.MX8 SoC would be out of sync with u-boot.
>
>- Broken kernel, initramfs or rootfs
>
> If the upgrade_available variable is set, u-boot counts the number of
> consecutive boots via the bootcount variable. If the bootcount exceeds
> the bootlimit variable, u-boot starts the altbootcmd instead of the
> bootcmd. Previously, this logic was bypassed by assigning the regular
> bootcmd to altbootcmd. Now, the altbootcmd is used to revert to the
> previous partition when the bootlimit is exceeded.
>
>The netdev variable is changed to eth0 by default. This is what the FEC
>driver uses on Capricorn boards. For devices with switches and DSA
>subsystems in use, the netdev should be set accordingly by additional
>logic in the environment or u-boot code. This is not part of this commit.
>
>Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
>Signed-off-by: Heiko Schocher <hs@nabladev.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
next prev parent reply other threads:[~2026-01-26 1:32 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-24 5:54 [PATCH v1 00/11] imx8qxp: siemens: small board updates Heiko Schocher
2026-01-24 5:54 ` [PATCH v1 01/11] arm: dts: capricorn: pinctrl_usdhc1 cleanup Heiko Schocher
2026-01-26 1:12 ` Peng Fan
2026-01-24 5:54 ` [PATCH v1 02/11] siemens: capricorn: set max-frequency for usdhc1 Heiko Schocher
2026-01-26 1:14 ` Peng Fan
2026-01-24 5:54 ` [PATCH v1 03/11] arm: dts: capricorn: remove pinctrl_usdhc2 Heiko Schocher
2026-01-26 1:15 ` Peng Fan
2026-01-24 5:54 ` [PATCH v1 04/11] arm: dts: capricorn: move fec2 config Heiko Schocher
2026-01-26 1:18 ` Peng Fan
2026-01-24 5:54 ` [PATCH v1 05/11] imx8qxp_capricorn config: add wget command Heiko Schocher
2026-01-26 1:17 ` Peng Fan
2026-01-24 5:54 ` [PATCH v1 06/11] capricorn: config: add bootcounter command Heiko Schocher
2026-01-26 1:22 ` Peng Fan
2026-01-26 5:20 ` Heiko Schocher
2026-01-24 5:54 ` [PATCH v1 07/11] siemens: capricorn: add logic to U-Boot to avoid zig-zag boot Heiko Schocher
2026-01-26 1:29 ` Peng Fan
2026-01-26 5:30 ` Heiko Schocher
2026-01-24 5:54 ` [PATCH v1 08/11] siemens: capricorn: always detect emmc device Heiko Schocher
2026-01-26 1:18 ` Peng Fan
2026-01-24 5:54 ` [PATCH v1 09/11] siemens: capricorn: fix fallback bootm call for fitImage Heiko Schocher
2026-01-26 1:31 ` Peng Fan
2026-01-24 5:54 ` [PATCH v1 10/11] siemens: capricorn: rework bootcmd environment variables Heiko Schocher
2026-01-26 1:32 ` Peng Fan [this message]
2026-01-24 5:54 ` [PATCH v1 11/11] siemens: capricorn: protect environment Heiko Schocher
2026-01-26 1:24 ` Peng Fan
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=aXbEQJsoHAvVI6yx@shlinux89 \
--to=peng.fan@oss.nxp.com \
--cc=adrian.freihofer@siemens.com \
--cc=alexander.sverdlin@siemens.com \
--cc=festevam@gmail.com \
--cc=hs@nabladev.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.