From: Pascal Zimmermann Date: Thu, 27 Mar 2025 14:38:43 +0000 (+0100) Subject: ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM X-Git-Tag: v2025.07-rc2~33^2~12 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0d0b6a25ca73b36a916c63f5edbbd3638dc8dbf;p=pandora-u-boot.git 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 Reviewed-by: Patrice Chotard --- 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 */ \