On 3/27/25 15:38, Pascal Zimmermann wrote:
> For the STM32MP15 DHSOM, change the default environment so an AB schema
> on a device can be detected.
> 
> For this the define "SCAN_DEV_FOR_BOOT_PARTS" is overwritten and
> appended.
> 
> The detection works by looking for the partitions with specific lables.
> The name of those partitions are in the variables and its defaults:
> * dh_ab_partname_primary=rootfs-a
> * dh_ab_partname_secondary=rootfs-b
> 
> To prevent being hanging at bootcmd, enable "CONFIG_BOOT_RETRY" and
> "CONFIG_RESET_TO_RETRY", but the timer will only be activated, if the AB
> partitions are detected.
> 
> Signed-off-by: Pascal Zimmermann <pzimmerm...@dh-electronics.com>
> ---
> Cc: Marek Vasut <ma...@denx.de>
> Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
> Cc: Patrice Chotard <patrice.chot...@foss.st.com>
> Cc: Tom Rini <tr...@konsulko.com>
> Cc: Simon Glass <s...@chromium.org>
> Cc: u-b...@dh-electronics.com
> Cc: uboot-st...@st-md-mailman.stormreply.com
> Cc: u-boot@lists.denx.de
> ---
>  configs/stm32mp15_dhsom.config       |  3 +++
>  include/configs/stm32mp15_dh_dhsom.h | 33 ++++++++++++++++++++++++++++
>  2 files changed, 36 insertions(+)
> 
> diff --git a/configs/stm32mp15_dhsom.config b/configs/stm32mp15_dhsom.config
> index 7e5b5aa67ef..c84116482f6 100644
> --- a/configs/stm32mp15_dhsom.config
> +++ b/configs/stm32mp15_dhsom.config
> @@ -10,6 +10,9 @@ CONFIG_BOARD_EARLY_INIT_F=y
>  CONFIG_BOARD_SIZE_LIMIT=1441792
>  CONFIG_BOOTCOUNT_BOOTLIMIT=3
>  CONFIG_BOOTDELAY=1
> +CONFIG_BOOTRETRY=y
> +CONFIG_RESET_TO_RETRY=y
> +CONFIG_BOOT_RETRY_TIME=-1
>  CONFIG_CMD_ADC=y
>  CONFIG_CMD_REMOTEPROC=y
>  CONFIG_CMD_STBOARD=y
> diff --git a/include/configs/stm32mp15_dh_dhsom.h 
> b/include/configs/stm32mp15_dh_dhsom.h
> index c004a8cec82..267e3446779 100644
> --- a/include/configs/stm32mp15_dh_dhsom.h
> +++ b/include/configs/stm32mp15_dh_dhsom.h
> @@ -17,7 +17,40 @@
>                       " 0x800000\0"
>  #endif
>  
> +/* Add the search for AB partitons */
> +#define SCAN_DEV_FOR_BOOT_PARTS                                              
> \
> +     "run dh_check_if_ab; "                                          \
> +     "if test -z \"${devplist}\"; "                                  \
> +             "then "                                                 \
> +             "part list ${devtype} ${devnum} -bootable devplist; "   \
> +     "fi; "
> +
>  #define STM32MP_BOARD_EXTRA_ENV                                              
> \
> +     "altbootcmd= "                                                  \
> +     "setenv dh_ab_get_partnames "                                   \
> +             "'setenv dh_ab_partnames ${dh_ab_partname_secondary} "  \
> +                     "${dh_ab_partname_primary}' && "                \
> +             "run bootcmd\0"                                         \
> +     "dh_check_if_ab= " /* Sets devplist if AB partitions*/          \
> +             "echo test for AB on ${devtype} ${devnum} && "          \
> +             "run dh_ab_get_partnames && "                           \
> +             "setenv devplist && "                                   \
> +             "for partname in ${dh_ab_partnames}; do "               \
> +                     "setenv partnum && "                            \
> +                     "if part number ${devtype} ${devnum} ${partname} 
> partnum; "\
> +                             "then "                                 \
> +                             "setenv devplist \"${devplist} ${partnum}\" && 
> "\
> +                             "setenv bootretry 60 ;"                 \
> +                     "fi; "                                          \
> +             "done ; "                                               \
> +             "if test -n \"${devplist}\"; "                          \
> +                     "then echo AB partitions found! ; "             \
> +             "fi\0"                                                  \
> +     "dh_ab_get_partnames= " /* Sets dh_ab_partnames */              \
> +             "setenv dh_ab_partnames ${dh_ab_partname_primary} "     \
> +                     "${dh_ab_partname_secondary}\0"                 \
> +     "dh_ab_partname_primary=rootfs-a\0" /* Names of AB partitions */\
> +     "dh_ab_partname_secondary=rootfs-b\0"                           \
>       "dh_preboot="                                                   \
>               "run dh_testbench_backward_compat\0"                    \
>       "dh_update_sd_to_emmc=" /* Install U-Boot from SD to eMMC */    \

Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com>

Thanks
Patrice

Reply via email to