summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPascal Zimmermann <pzimmermann@dh-electronics.com>2025-03-27 15:38:43 +0100
committerPatrice Chotard <patrice.chotard@foss.st.com>2025-05-05 15:51:46 +0200
commitd0d0b6a25ca73b36a916c63f5edbbd3638dc8dbf (patch)
treeda3c6d1777b02fe2171a0924acc42c69c5ad13b2
parentfd3202153a26c53529b5606094b6887a31426af5 (diff)
ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM
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 <pzimmermann@dh-electronics.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
-rw-r--r--configs/stm32mp15_dhsom.config3
-rw-r--r--include/configs/stm32mp15_dh_dhsom.h33
2 files changed, 36 insertions, 0 deletions
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 */ \