From 4be5217a36c08a8409a234939ef750c613e6c4ea Mon Sep 17 00:00:00 2001 From: Ejub Sabic Date: Tue, 28 Apr 2026 10:33:33 +0200 Subject: [PATCH] uboot: import first variable from auxiliary environment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The U-Boot env file is generated by mkenvimage, which prefixes the variable data with a 4-byte CRC32 by default. ixpreboot.sh previously imported it with `env import -b` as per uboot docs(-b assume binary format (’0’ separated, “00” terminated).), which treats the buffer as raw binary and does not strip the CRC. As a result the first variable's name is parsed a part of CRC. Later variables import correctly because by then the parser is past the CRC. Switching to `env import -c` as per uboot docs (-c assume checksum protected environment format.) makes U-Boot validate and strip the CRC before parsing, so the first variable imports under its real name. Tested on: - QEMU Signed-off-by: Ejub Sabic --- board/common/uboot/scripts/ixpreboot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/common/uboot/scripts/ixpreboot.sh b/board/common/uboot/scripts/ixpreboot.sh index 71eb9f93..9dedb12d 100644 --- a/board/common/uboot/scripts/ixpreboot.sh +++ b/board/common/uboot/scripts/ixpreboot.sh @@ -33,7 +33,7 @@ for tgt in "${boot_targets}"; do setexpr ixmenu_n ${ixmenu_n} + 1 if load ${devtype} ${devnum}:${auxpart} ${loadaddr} /uboot.env; then - env import -b ${loadaddr} ${filesize} BOOT_ORDER DEBUG ethact + env import -c ${loadaddr} ${filesize} BOOT_ORDER DEBUG ethact fi if test -n "${DEBUG}"; then