On Sat, Jan 24, 2026 at 06:54:48AM +0100, Heiko Schocher wrote: >add logic in board code for detecting the real boot >partition and set a local hush shell variable fallback >which can be used later in boot variables for detecting >a ROMbootloader fallback case.
Typo: ROM bootloader > >We use the local hush shell variable, as we do not want >to save in any case the fallback variable in U-Boot >Environment, as the default Environment is may saved Typo: maybe >in boards, which are downgraded to older U-Boot versions. > >And than the board code does not run, and fallback never >gets the correct value. > >Introduce also hush shell variable envvers to value "v2_" >so we can use them in Environment for running different >versions of variables between new and old U-Boot images. > >Signed-off-by: Heiko Schocher <[email protected]> >Signed-off-by: Walter Schweizer <[email protected]> >--- > > board/siemens/capricorn/Kconfig | 2 ++ > board/siemens/capricorn/board.c | 43 +++++++++++++++++++++++++++------ > 2 files changed, 37 insertions(+), 8 deletions(-) > >diff --git a/board/siemens/capricorn/Kconfig b/board/siemens/capricorn/Kconfig >index fe230971e97..d6d1aad75b2 100644 >--- a/board/siemens/capricorn/Kconfig >+++ b/board/siemens/capricorn/Kconfig >@@ -1,5 +1,7 @@ > if TARGET_CAPRICORN > >+config HUSH_INIT_VAR >+ def_bool y > > config SYS_BOARD > default "capricorn" >diff --git a/board/siemens/capricorn/board.c b/board/siemens/capricorn/board.c >index 390a7b0d841..d4f26b6ff7f 100644 >--- a/board/siemens/capricorn/board.c >+++ b/board/siemens/capricorn/board.c >@@ -5,6 +5,7 @@ > * Copyright 2019 Siemens AG > * > */ >+#include <cli_hush.h> > #include <command.h> > #include <dm.h> > #include <env.h> >@@ -29,6 +30,7 @@ > #include "../common/board.h" > #include "../common/eeprom.h" > #include "../common/factoryset.h" >+#include <firmware/imx/sci/sci.h> > > #define GPIO_PAD_CTRL \ > ((SC_PAD_CONFIG_NORMAL << PADRING_CONFIG_SHIFT) | \ >@@ -373,23 +375,48 @@ __weak int mmc_map_to_kernel_blk(int dev_no) > > void board_late_mmc_env_init(void) > { >- char cmd[32]; >- char mmcblk[32]; > u32 dev_no = mmc_get_env_dev(); > > if (!check_mmc_autodetect()) > return; > > env_set_ulong("mmcdev", dev_no); >+} >+ >+#if defined(CONFIG_HUSH_INIT_VAR) >+int hush_init_var(void) >+{ >+ sc_misc_bt_t boot_type; > >- /* Set mmcblk env */ >- sprintf(mmcblk, "/dev/mmcblk%dp2 rootwait rw", >- mmc_map_to_kernel_blk(dev_no)); >- env_set("mmcroot", mmcblk); >+ if (sc_misc_get_boot_type(-1, &boot_type) != 0) { >+ puts("boottype cannot be retrieved\n"); >+ return 0; >+ } >+ >+ /* >+ * Set here explicitly a hush shell variable, so if a saveenv >+ * happens, this variable is *not* saved in U-Boot environment. >+ * >+ * This is for devices which are already in the field essential, >+ * as if such a device breaks, the cutsomer gets a new device >+ * with a new U-Boot version (and so a new U-Boot environment). >+ * >+ * But the customer makes a downgrade to an older U-bootversion, Typo: U-Boot version. Otherwise: Reviewed-by: Peng Fan <[email protected]>

