* [PATCH 0/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM
@ 2024-11-27 10:29 Pascal Zimmermann
2024-11-27 10:29 ` [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd Pascal Zimmermann
2024-11-27 10:29 ` [PATCH 2/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM Pascal Zimmermann
0 siblings, 2 replies; 6+ messages in thread
From: Pascal Zimmermann @ 2024-11-27 10:29 UTC (permalink / raw)
To: u-boot
Cc: Pascal Zimmermann, Marek Vasut, Patrick Delaunay, Patrice Chotard,
Tom Rini, Simon Glass, u-boot, uboot-stm32
For the STM32MP15 DHSOM, change the default environment so an AB schema
on a device can be detected.
The first patch makes possible to substitute the 'part list' command
inside 'scan_dev_for_boot_part' with a custom board specific
implementation.
The second patch uses the change of the first patch to plug the board
specific code for booting from AB into the standard boot of all boot
targets at the STM32MP15 DHSOM.
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.
Pascal Zimmermann (2):
config_distro_bootcmd: make possible to substitute 'part list' in
distro_bootcmd
ARM: stm32: env: Enable scan and start for AB schema on STM32MP15
DHSOM
configs/stm32mp15_dhsom.config | 3 +++
include/config_distro_bootcmd.h | 7 +++++-
include/configs/stm32mp15_dh_dhsom.h | 33 ++++++++++++++++++++++++++++
3 files changed, 42 insertions(+), 1 deletion(-)
Signed-off-by: Pascal Zimmermann <pzimmermann@dh-electronics.com>
---
Cc: Marek Vasut <marex@denx.de>
Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
Cc: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: u-boot@dh-electronics.com
Cc: uboot-stm32@st-md-mailman.stormreply.com
Cc: u-boot@lists.denx.de
--
2.30.2
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd
2024-11-27 10:29 [PATCH 0/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM Pascal Zimmermann
@ 2024-11-27 10:29 ` Pascal Zimmermann
2024-11-27 13:07 ` Simon Glass
2024-11-27 10:29 ` [PATCH 2/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM Pascal Zimmermann
1 sibling, 1 reply; 6+ messages in thread
From: Pascal Zimmermann @ 2024-11-27 10:29 UTC (permalink / raw)
To: u-boot; +Cc: Pascal Zimmermann, Tom Rini, Simon Glass
Make it possible to substitute the 'part list' command inside
'scan_dev_for_boot_part' with a custom board specific implementation.
For this the new define 'SCAN_DEV_FOR_BOOT_PARTS' is introduced.
Signed-off-by: Pascal Zimmermann <pzimmermann@dh-electronics.com>
---
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: u-boot@lists.denx.de
---
include/config_distro_bootcmd.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index 0a4e4b8ff8..df0dc8cfde 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -194,6 +194,11 @@
#define SCAN_DEV_FOR_EFI
#endif
+#ifndef SCAN_DEV_FOR_BOOT_PARTS
+#define SCAN_DEV_FOR_BOOT_PARTS \
+ "part list ${devtype} ${devnum} -bootable devplist; "
+#endif
+
#ifdef CONFIG_SATA
#define BOOTENV_SHARED_SATA BOOTENV_SHARED_BLKDEV(sata)
#define BOOTENV_DEV_SATA BOOTENV_DEV_BLKDEV
@@ -538,7 +543,7 @@
"\0" \
\
"scan_dev_for_boot_part=" \
- "part list ${devtype} ${devnum} -bootable devplist; " \
+ SCAN_DEV_FOR_BOOT_PARTS \
"env exists devplist || setenv devplist 1; " \
"for distro_bootpart in ${devplist}; do " \
"if fstype ${devtype} " \
--
2.30.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd
2024-11-27 10:29 ` [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd Pascal Zimmermann
@ 2024-11-27 13:07 ` Simon Glass
0 siblings, 0 replies; 6+ messages in thread
From: Simon Glass @ 2024-11-27 13:07 UTC (permalink / raw)
To: Pascal Zimmermann; +Cc: u-boot, Tom Rini
Hi Pascal,
On Wed, 27 Nov 2024 at 03:30, Pascal Zimmermann
<pzimmermann@dh-electronics.com> wrote:
>
> Make it possible to substitute the 'part list' command inside
> 'scan_dev_for_boot_part' with a custom board specific implementation.
>
> For this the new define 'SCAN_DEV_FOR_BOOT_PARTS' is introduced.
>
> Signed-off-by: Pascal Zimmermann <pzimmermann@dh-electronics.com>
> ---
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: u-boot@lists.denx.de
> ---
> include/config_distro_bootcmd.h | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
Have you looked at converting the board to standard boot?
>
> diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
> index 0a4e4b8ff8..df0dc8cfde 100644
> --- a/include/config_distro_bootcmd.h
> +++ b/include/config_distro_bootcmd.h
> @@ -194,6 +194,11 @@
> #define SCAN_DEV_FOR_EFI
> #endif
>
> +#ifndef SCAN_DEV_FOR_BOOT_PARTS
> +#define SCAN_DEV_FOR_BOOT_PARTS \
> + "part list ${devtype} ${devnum} -bootable devplist; "
> +#endif
> +
> #ifdef CONFIG_SATA
> #define BOOTENV_SHARED_SATA BOOTENV_SHARED_BLKDEV(sata)
> #define BOOTENV_DEV_SATA BOOTENV_DEV_BLKDEV
> @@ -538,7 +543,7 @@
> "\0" \
> \
> "scan_dev_for_boot_part=" \
> - "part list ${devtype} ${devnum} -bootable devplist; " \
> + SCAN_DEV_FOR_BOOT_PARTS \
> "env exists devplist || setenv devplist 1; " \
> "for distro_bootpart in ${devplist}; do " \
> "if fstype ${devtype} " \
> --
> 2.30.2
>
Regards,
Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM
2024-11-27 10:29 [PATCH 0/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM Pascal Zimmermann
2024-11-27 10:29 ` [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd Pascal Zimmermann
@ 2024-11-27 10:29 ` Pascal Zimmermann
2024-11-27 20:47 ` Marek Vasut
1 sibling, 1 reply; 6+ messages in thread
From: Pascal Zimmermann @ 2024-11-27 10:29 UTC (permalink / raw)
To: u-boot
Cc: Pascal Zimmermann, Marek Vasut, Patrick Delaunay, Patrice Chotard,
Tom Rini, Simon Glass, u-boot, uboot-stm32
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>
---
Cc: Marek Vasut <marex@denx.de>
Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
Cc: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: u-boot@dh-electronics.com
Cc: uboot-stm32@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 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 " \
+ "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 */ \
--
2.30.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 2/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM
2024-11-27 10:29 ` [PATCH 2/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM Pascal Zimmermann
@ 2024-11-27 20:47 ` Marek Vasut
0 siblings, 0 replies; 6+ messages in thread
From: Marek Vasut @ 2024-11-27 20:47 UTC (permalink / raw)
To: Pascal Zimmermann, u-boot
Cc: Patrick Delaunay, Patrice Chotard, Tom Rini, Simon Glass, u-boot,
uboot-stm32
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 .
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd
@ 2024-11-27 15:29 Pascal Zimmermann
0 siblings, 0 replies; 6+ messages in thread
From: Pascal Zimmermann @ 2024-11-27 15:29 UTC (permalink / raw)
To: Simon Glass; +Cc: u-boot@lists.denx.de, Tom Rini
Hello Simon,
On Wed, 27 Nov 2024 at 14:08, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Pascal,
>
> On Wed, 27 Nov 2024 at 03:30, Pascal Zimmermann <pzimmermann@dh-
> electronics.com> wrote:
> >
> > Make it possible to substitute the 'part list' command inside
> > 'scan_dev_for_boot_part' with a custom board specific implementation.
> >
> > For this the new define 'SCAN_DEV_FOR_BOOT_PARTS' is introduced.
> >
> > Signed-off-by: Pascal Zimmermann <pzimmermann@dh-electronics.com>
> > ---
> > Cc: Tom Rini <trini@konsulko.com>
> > Cc: Simon Glass <sjg@chromium.org>
> > Cc: u-boot@lists.denx.de
> > ---
> > include/config_distro_bootcmd.h | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
>
> Have you looked at converting the board to standard boot?
We are at internal discussion about the switch to standard boot
for our boards, but this will take some time.
>
> >
> > diff --git a/include/config_distro_bootcmd.h
> > b/include/config_distro_bootcmd.h index 0a4e4b8ff8..df0dc8cfde 100644
> > --- a/include/config_distro_bootcmd.h
> > +++ b/include/config_distro_bootcmd.h
> > @@ -194,6 +194,11 @@
> > #define SCAN_DEV_FOR_EFI
> > #endif
> >
> > +#ifndef SCAN_DEV_FOR_BOOT_PARTS
> > +#define SCAN_DEV_FOR_BOOT_PARTS \
> > + "part list ${devtype} ${devnum} -bootable devplist; "
> > +#endif
> > +
> > #ifdef CONFIG_SATA
> > #define BOOTENV_SHARED_SATA BOOTENV_SHARED_BLKDEV(sata)
> > #define BOOTENV_DEV_SATA BOOTENV_DEV_BLKDEV
> > @@ -538,7 +543,7 @@
> > "\0" \
> > \
> > "scan_dev_for_boot_part=" \
> > - "part list ${devtype} ${devnum} -bootable devplist; " \
> > + SCAN_DEV_FOR_BOOT_PARTS \
> > "env exists devplist || setenv devplist 1; " \
> > "for distro_bootpart in ${devplist}; do " \
> > "if fstype ${devtype} " \
> > --
> > 2.30.2
> >
>
> Regards,
> Simon
Best regards,
Pascal
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-11-27 21:08 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-27 10:29 [PATCH 0/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM Pascal Zimmermann
2024-11-27 10:29 ` [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd Pascal Zimmermann
2024-11-27 13:07 ` Simon Glass
2024-11-27 10:29 ` [PATCH 2/2] ARM: stm32: env: Enable scan and start for AB schema on STM32MP15 DHSOM Pascal Zimmermann
2024-11-27 20:47 ` Marek Vasut
-- strict thread matches above, loose matches on Subject: below --
2024-11-27 15:29 [PATCH 1/2] config_distro_bootcmd: make possible to substitute 'part list' in distro_bootcmd Pascal Zimmermann
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.