On 11/27/24 11:29 AM, Pascal Zimmermann wrote:

Please CC me on the entire series.

diff --git a/configs/stm32mp15_dhsom.config b/configs/stm32mp15_dhsom.config
index efc149577e..22d8bd3241 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 c004a8cec8..267e344677 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 "                                                       \

"then" can be part of the previous line

+               "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 */  \

I suspect this also applies to other DHSOM, so this should be moved to some common include/configs/dh_dhsom.h and renamed to #define DH_AB_UPDATE_EXTRA_ENV . The common dh_dhsom.h can be included in stm32mp15_dh_dhsom.h , matching stm32mp13 DHSOM header , imx8mp_dhcom_pdk2.h , dh_imx6.h and DH_AB_UPDATE_EXTRA_ENV inserted into each board extra environment . The configs/ change should be in configs/dhsom.config fragment . That way, all DHSOM will consistently support the same AB detection and handling mechanism .

Reply via email to