public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH 01/13] smegw01: Enable setting additional boot params
@ 2023-04-18 13:47 Fabio Estevam
  2023-04-18 13:47 ` [PATCH 02/13] smegw01: Select CONFIG_CMD_SQUASHFS Fabio Estevam
                   ` (11 more replies)
  0 siblings, 12 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Introduce EXTRA_BOOTPARAMS to allow passing additional parameters
to kernel command line. This is useful for debugging purposes.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 include/configs/smegw01.h | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index 11031744be..a356f095a6 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -17,6 +17,11 @@
 /* MMC Config*/
 #define CFG_SYS_FSL_ESDHC_ADDR	0
 
+/* default to no extra bootparams, we need an empty define for stringification*/
+#ifndef EXTRA_BOOTPARAMS
+#define EXTRA_BOOTPARAMS
+#endif
+
 #define CFG_EXTRA_ENV_SETTINGS \
 	"image=zImage\0" \
 	"console=ttymxc0\0" \
@@ -26,7 +31,8 @@
 	"mmcdev=0\0" \
 	"mmcpart=1\0" \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
-		"root=/dev/mmcblk0p${mmcpart} rootwait rw\0" \
+		"root=/dev/mmcblk0p${mmcpart} rootwait rw " \
+		__stringify(EXTRA_BOOTPARAMS) "\0" \
 	"loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} boot/${image}\0" \
 	"loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} boot/${fdtfile}\0" \
 	"mmcboot=echo Booting from mmc ...; " \
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 02/13] smegw01: Select CONFIG_CMD_SQUASHFS
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 03/13] smegw01: Select bootcount support Fabio Estevam
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Select CONFIG_CMD_SQUASHFS so that the SquashFS U-Boot commands
are available.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 configs/smegw01_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index 1e0b9aa5be..f15291f1dd 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -38,6 +38,7 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
+CONFIG_CMD_SQUASHFS=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 03/13] smegw01: Select bootcount support
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
  2023-04-18 13:47 ` [PATCH 02/13] smegw01: Select CONFIG_CMD_SQUASHFS Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 04/13] smegw01: Add altbootcmd Fabio Estevam
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Add automatic boot counter that increases after every
reset. After a power-on reset, it will be initialized with 1,
and each reboot will increment the value by 1. By default it is
disabled if bootlimit isn't set.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 configs/smegw01_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index f15291f1dd..5d9d419463 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -46,6 +46,8 @@ CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_BOUNCE_BUFFER=y
+CONFIG_BOOTCOUNT_LIMIT=y
+CONFIG_BOOTCOUNT_ENV=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_I2C=y
 CONFIG_SUPPORT_EMMC_BOOT=y
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 04/13] smegw01: Add altbootcmd
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
  2023-04-18 13:47 ` [PATCH 02/13] smegw01: Select CONFIG_CMD_SQUASHFS Fabio Estevam
  2023-04-18 13:47 ` [PATCH 03/13] smegw01: Select bootcount support Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 05/13] smegw01: Run altbootcmd in the case of failure Fabio Estevam
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Add an altbootcmd script, which is convenient way to integrate with
swupdate and perform a roll back of the previous working version in the
case of update failure.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 configs/smegw01_defconfig | 2 +-
 include/configs/smegw01.h | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index 5d9d419463..418151a6de 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -18,7 +18,7 @@ CONFIG_SYS_MEMTEST_END=0xa0000000
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="if run loadimage; then run mmcboot; fi; "
+CONFIG_BOOTCOMMAND="if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; if run loadimage; then run mmcboot; fi; "
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_MAXARGS=32
 CONFIG_SYS_PBSIZE=532
diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index a356f095a6..6ee4acc70d 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -33,6 +33,7 @@
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
 		"root=/dev/mmcblk0p${mmcpart} rootwait rw " \
 		__stringify(EXTRA_BOOTPARAMS) "\0" \
+	"bootlimit=3\0" \
 	"loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} boot/${image}\0" \
 	"loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} boot/${fdtfile}\0" \
 	"mmcboot=echo Booting from mmc ...; " \
@@ -40,6 +41,13 @@
 		"if run loadfdt; then " \
 			"bootz ${loadaddr} - ${fdt_addr}; " \
 		"fi;\0" \
+	"altbootcmd=echo Performing rollback...; " \
+		"if test \"${mmcpart}\" = 1; then " \
+			"setenv mmcpart 2; " \
+		"else " \
+			"setenv mmcpart 1; " \
+		"fi; setenv bootcount 0; setenv upgrade_available; setenv ustate 3; saveenv; " \
+		"run bootcmd;\0"
 
 /* Physical Memory Map */
 #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 05/13] smegw01: Run altbootcmd in the case of failure
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (2 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 04/13] smegw01: Add altbootcmd Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 06/13] smegw01: Only commit to new partition if update was successful Fabio Estevam
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Run the altbootcmd script if any step of bootcmd fails.

This ensures that always a valid image can be run.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 configs/smegw01_defconfig | 2 +-
 include/configs/smegw01.h | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index 418151a6de..b3580d5d6e 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -18,7 +18,7 @@ CONFIG_SYS_MEMTEST_END=0xa0000000
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; if run loadimage; then run mmcboot; fi; "
+CONFIG_BOOTCOMMAND="if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; if run loadimage; then run mmcboot; else run altbootcmd; fi; "
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_MAXARGS=32
 CONFIG_SYS_PBSIZE=532
diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index 6ee4acc70d..05edaac42f 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -39,7 +39,13 @@
 	"mmcboot=echo Booting from mmc ...; " \
 		"run mmcargs; " \
 		"if run loadfdt; then " \
-			"bootz ${loadaddr} - ${fdt_addr}; " \
+			"if bootz ${loadaddr} - ${fdt_addr}; then " \
+				"; " \
+			"else " \
+				"run altbootcmd; " \
+			"fi;" \
+		"else " \
+			"run altbootcmd; " \
 		"fi;\0" \
 	"altbootcmd=echo Performing rollback...; " \
 		"if test \"${mmcpart}\" = 1; then " \
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 06/13] smegw01: Only commit to new partition if update was successful
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (3 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 05/13] smegw01: Run altbootcmd in the case of failure Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 07/13] smegw01: Enable EMMC boot from multiple partitions Fabio Estevam
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

When performing rootfs update via swupdate, it is convenient to check the
'ustate' variable to decide whether the update succeeded or not.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 include/configs/smegw01.h | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index 05edaac42f..277c828d0e 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -30,13 +30,19 @@
 	"bootm_size=0x10000000\0" \
 	"mmcdev=0\0" \
 	"mmcpart=1\0" \
+	"mmcpart_committed=1\0" \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
-		"root=/dev/mmcblk0p${mmcpart} rootwait rw " \
+		"root=/dev/mmcblk0p${mmcpart_committed} rootwait rw " \
 		__stringify(EXTRA_BOOTPARAMS) "\0" \
+	"commit_mmc=if test \"${ustate}\" = 1 -a \"${mmcpart}\" != \"${mmcpart_committed}\"; then " \
+	              "setenv mmcpart_committed ${mmcpart};" \
+								"saveenv;" \
+						  "fi;\0" \
 	"bootlimit=3\0" \
-	"loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} boot/${image}\0" \
-	"loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} boot/${fdtfile}\0" \
+	"loadimage=load mmc ${mmcdev}:${mmcpart_committed} ${loadaddr} boot/${image}\0" \
+	"loadfdt=load mmc ${mmcdev}:${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \
 	"mmcboot=echo Booting from mmc ...; " \
+	  "run commit_mmc; " \
 		"run mmcargs; " \
 		"if run loadfdt; then " \
 			"if bootz ${loadaddr} - ${fdt_addr}; then " \
@@ -48,10 +54,12 @@
 			"run altbootcmd; " \
 		"fi;\0" \
 	"altbootcmd=echo Performing rollback...; " \
-		"if test \"${mmcpart}\" = 1; then " \
+		"if test \"${mmcpart_committed}\" = 1; then " \
 			"setenv mmcpart 2; " \
+			"setenv mmcpart_committed 2;" \
 		"else " \
 			"setenv mmcpart 1; " \
+			"setenv mmcpart_committed 1;" \
 		"fi; setenv bootcount 0; setenv upgrade_available; setenv ustate 3; saveenv; " \
 		"run bootcmd;\0"
 
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 07/13] smegw01: Enable EMMC boot from multiple partitions
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (4 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 06/13] smegw01: Only commit to new partition if update was successful Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 19:48   ` Pali Rohár
  2023-04-18 13:47 ` [PATCH 08/13] smegw01: Change default boot device to eMMC Fabio Estevam
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

GPT Partition labels are used for determining the right
root filesystem to boot from.

The U-Boot environment is configured to reside in the eMMC hardware
boot partition we are currently booted from.

This should enable a dual copy approach for upgrading the bootloader.
One can overwrite the inactive hardware partition with new bootloader
and environment and afterwards switch the eMMC boot partition for an
atomic bootloader switch.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 board/storopack/smegw01/smegw01.c | 20 ++++++++++++++++++++
 configs/smegw01_defconfig         |  2 ++
 include/configs/smegw01.h         | 12 ++++++++----
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/board/storopack/smegw01/smegw01.c b/board/storopack/smegw01/smegw01.c
index e6bff80e55..9482f88773 100644
--- a/board/storopack/smegw01/smegw01.c
+++ b/board/storopack/smegw01/smegw01.c
@@ -17,6 +17,7 @@
 #include <asm/arch/crm_regs.h>
 #include <asm/setup.h>
 #include <asm/bootm.h>
+#include <mmc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -93,3 +94,22 @@ int board_late_init(void)
 
 	return 0;
 }
+
+/* defined in JESD84-B50, PARTITION_CONFIG */
+#define BOOT_PARTITION_ENABLE_MASK (0x7)
+#define BOOT_PARTITION_ENABLE_SHIFT (0x3)
+
+uint mmc_get_env_part(struct mmc *mmc)
+{
+	uint part = (mmc->part_config >> BOOT_PARTITION_ENABLE_SHIFT) &
+			BOOT_PARTITION_ENABLE_MASK;
+	/* Default to Boot Partition 1 if not explicitly set. */
+	if (part != 1 && part != 2 && part != 7)
+		part = 1;
+
+	/* 7 in BOOT_PARTITION_ENABLE is equivalent to 0 in PARTITION_ACCESS. */
+	if (part == 7)
+		part = 0;
+
+	return part;
+}
diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index b3580d5d6e..54cf1cfc1f 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -30,6 +30,7 @@ CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_UNZIP=y
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_PART=y
 CONFIG_CMD_DHCP=y
@@ -44,6 +45,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SYS_MMC_ENV_DEV=1
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_BOOTCOUNT_LIMIT=y
diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index 277c828d0e..71f2d9c8e8 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -32,17 +32,21 @@
 	"mmcpart=1\0" \
 	"mmcpart_committed=1\0" \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
-		"root=/dev/mmcblk0p${mmcpart_committed} rootwait rw " \
-		__stringify(EXTRA_BOOTPARAMS) "\0" \
+		"root=/dev/mmcblk${mmcdev}p${gpt_partition_entry} rootwait rw " \
+		__stringify(EXTRA_BOOTPARAMS) " SM_ROOT_DEV=${mmcdev} SM_ROOT_PART=${gpt_partition_entry} SM_BOOT_PART=${boot_part}\0" \
 	"commit_mmc=if test \"${ustate}\" = 1 -a \"${mmcpart}\" != \"${mmcpart_committed}\"; then " \
 	              "setenv mmcpart_committed ${mmcpart};" \
 								"saveenv;" \
 						  "fi;\0" \
 	"bootlimit=3\0" \
-	"loadimage=load mmc ${mmcdev}:${mmcpart_committed} ${loadaddr} boot/${image}\0" \
-	"loadfdt=load mmc ${mmcdev}:${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \
+	"loadimage=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${loadaddr} boot/${image}\0" \
+	"loadfdt=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \
+	"loadpart=gpt setenv mmc ${mmcdev} rootfs-${mmcpart_committed}\0" \
+	"loadbootpart=mmc partconf 1 boot_part\0" \
 	"mmcboot=echo Booting from mmc ...; " \
 	  "run commit_mmc; " \
+		"run loadpart; " \
+		"run loadbootpart; " \
 		"run mmcargs; " \
 		"if run loadfdt; then " \
 			"if bootz ${loadaddr} - ${fdt_addr}; then " \
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 08/13] smegw01: Change default boot device to eMMC
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (5 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 07/13] smegw01: Enable EMMC boot from multiple partitions Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 09/13] smegw01: Switch to fitImage Fabio Estevam
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Let eMMC be the default boot medium.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 include/configs/smegw01.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index 71f2d9c8e8..8f68472f5b 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -28,7 +28,7 @@
 	"fdtfile=imx7d-smegw01.dtb\0" \
 	"fdt_addr=0x83000000\0" \
 	"bootm_size=0x10000000\0" \
-	"mmcdev=0\0" \
+	"mmcdev=1\0" \
 	"mmcpart=1\0" \
 	"mmcpart_committed=1\0" \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 09/13] smegw01: Switch to fitImage
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (6 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 08/13] smegw01: Change default boot device to eMMC Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 10/13] smegw01: Add lockdown U-Boot env support Fabio Estevam
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Instead of loading the zImage kernel and the devicetree separately, switch
to the fitImage format, which is more convenient when working with secure
boot, for example.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 include/configs/smegw01.h | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index 8f68472f5b..8521883277 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -23,7 +23,7 @@
 #endif
 
 #define CFG_EXTRA_ENV_SETTINGS \
-	"image=zImage\0" \
+	"image=fitImage\0" \
 	"console=ttymxc0\0" \
 	"fdtfile=imx7d-smegw01.dtb\0" \
 	"fdt_addr=0x83000000\0" \
@@ -39,8 +39,8 @@
 								"saveenv;" \
 						  "fi;\0" \
 	"bootlimit=3\0" \
-	"loadimage=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${loadaddr} boot/${image}\0" \
-	"loadfdt=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \
+	"fit_addr=0x88000000\0" \
+	"loadimage=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${fit_addr} boot/${image}\0" \
 	"loadpart=gpt setenv mmc ${mmcdev} rootfs-${mmcpart_committed}\0" \
 	"loadbootpart=mmc partconf 1 boot_part\0" \
 	"mmcboot=echo Booting from mmc ...; " \
@@ -48,12 +48,8 @@
 		"run loadpart; " \
 		"run loadbootpart; " \
 		"run mmcargs; " \
-		"if run loadfdt; then " \
-			"if bootz ${loadaddr} - ${fdt_addr}; then " \
-				"; " \
-			"else " \
-				"run altbootcmd; " \
-			"fi;" \
+		"if bootm ${fit_addr}; then " \
+			"; " \
 		"else " \
 			"run altbootcmd; " \
 		"fi;\0" \
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 10/13] smegw01: Add lockdown U-Boot env support
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (7 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 09/13] smegw01: Switch to fitImage Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 11/13] smegmac: Read the second MAC address Fabio Estevam
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Add lockdown U-Boot env support so that only certain U-Boot environment
variables are allowed to be modified.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 board/storopack/smegw01/Kconfig   |  7 +++++
 board/storopack/smegw01/smegw01.c | 17 +++++++++++
 configs/smegw01_defconfig         | 11 ++++++-
 include/configs/smegw01.h         | 48 +++++++++++++++++++++++++++++--
 4 files changed, 79 insertions(+), 4 deletions(-)

diff --git a/board/storopack/smegw01/Kconfig b/board/storopack/smegw01/Kconfig
index d8f24695d0..390214c285 100644
--- a/board/storopack/smegw01/Kconfig
+++ b/board/storopack/smegw01/Kconfig
@@ -12,4 +12,11 @@ config SYS_CONFIG_NAME
 config IMX_CONFIG
 	default "board/storopack/smegw01/imximage.cfg"
 
+config SYS_BOOT_LOCKED
+	bool "Lock boot process to EMMC"
+	default y
+	help
+	  Say N here if you want to boot from eMMC and SD.
+	  Say Y to boot from eMMC.
+
 endif
diff --git a/board/storopack/smegw01/smegw01.c b/board/storopack/smegw01/smegw01.c
index 9482f88773..e786429476 100644
--- a/board/storopack/smegw01/smegw01.c
+++ b/board/storopack/smegw01/smegw01.c
@@ -14,6 +14,7 @@
 #include <asm/io.h>
 #include <common.h>
 #include <env.h>
+#include <env_internal.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/setup.h>
 #include <asm/bootm.h>
@@ -113,3 +114,19 @@ uint mmc_get_env_part(struct mmc *mmc)
 
 	return part;
 }
+
+enum env_location env_get_location(enum env_operation op, int prio)
+{
+	if (op == ENVOP_SAVE || op == ENVOP_ERASE)
+		return ENVL_MMC;
+
+	switch (prio) {
+	case 0:
+		return ENVL_NOWHERE;
+
+	case 1:
+		return ENVL_MMC;
+	}
+
+	return ENVL_UNKNOWN;
+}
diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index 54cf1cfc1f..ea25b3b87c 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -7,6 +7,7 @@ CONFIG_ENV_OFFSET=0x100000
 CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="imx7d-smegw01"
 CONFIG_TARGET_SMEGW01=y
+# CONFIG_SYS_BOOT_LOCKED is not set
 CONFIG_ENV_OFFSET_REDUND=0x110000
 CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
 # CONFIG_ARMV7_VIRT is not set
@@ -17,13 +18,18 @@ CONFIG_SYS_MEMTEST_START=0x80000000
 CONFIG_SYS_MEMTEST_END=0xa0000000
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
+CONFIG_AUTOBOOT_MENU_SHOW=y
+CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE=y
 CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; if run loadimage; then run mmcboot; else run altbootcmd; fi; "
+CONFIG_BOOTCOMMAND="if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; run mmcboot; "
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="run setup_boot_menu;"
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_MAXARGS=32
 CONFIG_SYS_PBSIZE=532
 # CONFIG_CMD_BOOTD is not set
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_BOOTMENU=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
 CONFIG_CMD_MEMTEST=y
@@ -43,9 +49,12 @@ CONFIG_CMD_SQUASHFS=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_NOWHERE=y
 CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_SYS_MMC_ENV_DEV=1
+CONFIG_ENV_WRITEABLE_LIST=y
+CONFIG_ENV_ACCESS_IGNORE_FORCE=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_BOOTCOUNT_LIMIT=y
diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
index 8521883277..6f373973ab 100644
--- a/include/configs/smegw01.h
+++ b/include/configs/smegw01.h
@@ -22,6 +22,32 @@
 #define EXTRA_BOOTPARAMS
 #endif
 
+#ifdef CONFIG_SYS_BOOT_LOCKED
+#define EXTRA_ENV_FLAGS
+#define SETUP_BOOT_MENU "setup_boot_menu=setenv bootmenu_0 eMMC=run bootcmd\0"
+#else
+#define EXTRA_ENV_FLAGS "mmcdev:dw,"
+#define SETUP_BOOT_MENU "setup_boot_menu=" \
+	"if test \"${mmcdev}\" = 1; then " \
+		"setenv emmc_priority 0;" \
+		"setenv sd_priority 1;" \
+	"else " \
+		"setenv emmc_priority 1;" \
+		"setenv sd_priority 0;" \
+	"fi;" \
+	"setenv bootmenu_${emmc_priority} eMMC=run boot_emmc;" \
+	"setenv bootmenu_${sd_priority} SD=run boot_sd;\0"
+#endif
+
+#define CFG_ENV_FLAGS_LIST_STATIC \
+	"mmcpart:dw," \
+	"mmcpart_committed:dw," \
+	"ustate:dw," \
+	"bootcount:dw," \
+	"bootlimit:dw," \
+	"upgrade_available:dw," \
+	EXTRA_ENV_FLAGS
+
 #define CFG_EXTRA_ENV_SETTINGS \
 	"image=fitImage\0" \
 	"console=ttymxc0\0" \
@@ -40,13 +66,28 @@
 						  "fi;\0" \
 	"bootlimit=3\0" \
 	"fit_addr=0x88000000\0" \
-	"loadimage=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${fit_addr} boot/${image}\0" \
+	"loadimage=load mmc ${mmcdev}:${gpt_partition_entry} ${fit_addr} boot/${image}\0" \
 	"loadpart=gpt setenv mmc ${mmcdev} rootfs-${mmcpart_committed}\0" \
 	"loadbootpart=mmc partconf 1 boot_part\0" \
-	"mmcboot=echo Booting from mmc ...; " \
+	"boot_sd=setenv mmcdev_wanted 0; run persist_mmcdev; run bootcmd;\0" \
+	"boot_emmc=setenv mmcdev_wanted 1; run persist_mmcdev; run bootcmd;\0" \
+	"persist_mmcdev=" \
+		"if test \"${mmcdev}\" != \"${mmcdev_wanted}\"; then " \
+			"setenv mmcdev \"${mmcdev_wanted}\";" \
+			"saveenv;" \
+		"fi;\0" \
+	"mmcboot=echo Booting...; " \
+		"echo mmcdev: ${mmcdev}; " \
 	  "run commit_mmc; " \
+		"echo mmcpart: ${mmcpart_committed}; " \
 		"run loadpart; " \
+		"echo gptpart: ${gpt_partition_entry}; " \
 		"run loadbootpart; " \
+		"if run loadimage; then " \
+			"; " \
+		"else " \
+			"run altbootcmd; " \
+		"fi; " \
 		"run mmcargs; " \
 		"if bootm ${fit_addr}; then " \
 			"; " \
@@ -61,7 +102,8 @@
 			"setenv mmcpart 1; " \
 			"setenv mmcpart_committed 1;" \
 		"fi; setenv bootcount 0; setenv upgrade_available; setenv ustate 3; saveenv; " \
-		"run bootcmd;\0"
+		"run bootcmd;\0" \
+		SETUP_BOOT_MENU
 
 /* Physical Memory Map */
 #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 11/13] smegmac: Read the second MAC address
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (8 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 10/13] smegw01: Add lockdown U-Boot env support Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 12/13] smegw01: Disable additional boot menu options Fabio Estevam
  2023-04-18 13:47 ` [PATCH 13/13] smegw01: Fix fallback to altbootcmd Fabio Estevam
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Fabio Estevam <festevam@denx.de>

Currently, only the first MAC address is read from the fuses.

The second MAC address is not read and Linux assigns a random one.

To prevent this behavior, read the second MAC address from the fuses
and store it into the eth1addr environment variable so that it
can be passed to Linux.

Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 board/storopack/smegw01/smegw01.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/board/storopack/smegw01/smegw01.c b/board/storopack/smegw01/smegw01.c
index e786429476..605253ead3 100644
--- a/board/storopack/smegw01/smegw01.c
+++ b/board/storopack/smegw01/smegw01.c
@@ -82,6 +82,7 @@ int board_init(void)
 int board_late_init(void)
 {
 	struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
+	unsigned char eth1addr[6];
 
 	imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));
 
@@ -93,6 +94,11 @@ int board_late_init(void)
 	 */
 	clrsetbits_le16(&wdog->wcr, 0, 0x10);
 
+	/* Get the second MAC address */
+	imx_get_mac_from_fuse(1, eth1addr);
+	if (!env_get("eth1addr") && is_valid_ethaddr(eth1addr))
+		eth_env_set_enetaddr("eth1addr", eth1addr);
+
 	return 0;
 }
 
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 12/13] smegw01: Disable additional boot menu options
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (9 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 11/13] smegmac: Read the second MAC address Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  2023-04-18 13:47 ` [PATCH 13/13] smegw01: Fix fallback to altbootcmd Fabio Estevam
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

Defaults have changed, we do not want the bootmenu to contain EFI
options.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 configs/smegw01_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index ea25b3b87c..fe8152f33e 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -19,6 +19,8 @@ CONFIG_SYS_MEMTEST_END=0xa0000000
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_AUTOBOOT_MENU_SHOW=y
+# CONFIG_BOOTSTD is not set
+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
 CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE=y
 CONFIG_USE_BOOTCOMMAND=y
 CONFIG_BOOTCOMMAND="if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; run mmcboot; "
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 13/13] smegw01: Fix fallback to altbootcmd
  2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
                   ` (10 preceding siblings ...)
  2023-04-18 13:47 ` [PATCH 12/13] smegw01: Disable additional boot menu options Fabio Estevam
@ 2023-04-18 13:47 ` Fabio Estevam
  11 siblings, 0 replies; 14+ messages in thread
From: Fabio Estevam @ 2023-04-18 13:47 UTC (permalink / raw)
  To: sbabic; +Cc: u-boot, eduard, Fabio Estevam

From: Eduard Strehlau <eduard@lionizers.com>

The bootcmd/altbootcmd mechanism is not invoked for bootmenus.
Manually compare bootcount and bootlimit to implement fallback on all
codepaths.

Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
 configs/smegw01_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
index fe8152f33e..3d2713f528 100644
--- a/configs/smegw01_defconfig
+++ b/configs/smegw01_defconfig
@@ -23,7 +23,7 @@ CONFIG_AUTOBOOT_MENU_SHOW=y
 # CONFIG_CMD_BOOTEFI_BOOTMGR is not set
 CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE=y
 CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; run mmcboot; "
+CONFIG_BOOTCOMMAND="if test \"${bootcount}\" -gt \"${bootlimit}\"; then run altbootcmd; else if test \"${ustate}\" = 1; then setenv upgrade_available 1; saveenv; fi; run mmcboot; fi;"
 CONFIG_USE_PREBOOT=y
 CONFIG_PREBOOT="run setup_boot_menu;"
 CONFIG_HUSH_PARSER=y
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 07/13] smegw01: Enable EMMC boot from multiple partitions
  2023-04-18 13:47 ` [PATCH 07/13] smegw01: Enable EMMC boot from multiple partitions Fabio Estevam
@ 2023-04-18 19:48   ` Pali Rohár
  0 siblings, 0 replies; 14+ messages in thread
From: Pali Rohár @ 2023-04-18 19:48 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: sbabic, u-boot, eduard, Fabio Estevam

On Tuesday 18 April 2023 10:47:38 Fabio Estevam wrote:
> From: Eduard Strehlau <eduard@lionizers.com>
> 
> GPT Partition labels are used for determining the right
> root filesystem to boot from.
> 
> The U-Boot environment is configured to reside in the eMMC hardware
> boot partition we are currently booted from.
> 
> This should enable a dual copy approach for upgrading the bootloader.
> One can overwrite the inactive hardware partition with new bootloader
> and environment and afterwards switch the eMMC boot partition for an
> atomic bootloader switch.
> 
> Signed-off-by: Eduard Strehlau <eduard@lionizers.com>
> Signed-off-by: Fabio Estevam <festevam@denx.de>
> ---
>  board/storopack/smegw01/smegw01.c | 20 ++++++++++++++++++++
>  configs/smegw01_defconfig         |  2 ++
>  include/configs/smegw01.h         | 12 ++++++++----
>  3 files changed, 30 insertions(+), 4 deletions(-)
> 
> diff --git a/board/storopack/smegw01/smegw01.c b/board/storopack/smegw01/smegw01.c
> index e6bff80e55..9482f88773 100644
> --- a/board/storopack/smegw01/smegw01.c
> +++ b/board/storopack/smegw01/smegw01.c
> @@ -17,6 +17,7 @@
>  #include <asm/arch/crm_regs.h>
>  #include <asm/setup.h>
>  #include <asm/bootm.h>
> +#include <mmc.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> @@ -93,3 +94,22 @@ int board_late_init(void)
>  
>  	return 0;
>  }
> +
> +/* defined in JESD84-B50, PARTITION_CONFIG */
> +#define BOOT_PARTITION_ENABLE_MASK (0x7)
> +#define BOOT_PARTITION_ENABLE_SHIFT (0x3)

Please do not define a new mmc part macros. U-Boot already has them
available, and recently I removed usage of custom macros, see commit:
https://source.denx.de/u-boot/u-boot/-/commit/8b8820669646ceb08d6ceed4181b53042639f3ab

> +uint mmc_get_env_part(struct mmc *mmc)
> +{
> +	uint part = (mmc->part_config >> BOOT_PARTITION_ENABLE_SHIFT) &
> +			BOOT_PARTITION_ENABLE_MASK;
> +	/* Default to Boot Partition 1 if not explicitly set. */
> +	if (part != 1 && part != 2 && part != 7)
> +		part = 1;

I'm not sure if this logic is complete. For example there is missing
case for MMCPART_NOAVAILABLE or what is expected when booting from eMMC
is disabled (value 0x0).

For example, recently I sent this patch for U-Boot bubt command,
hopefully handling all possible options:
https://patchwork.ozlabs.org/project/uboot/patch/20230413211057.10975-3-pali@kernel.org/

> +
> +	/* 7 in BOOT_PARTITION_ENABLE is equivalent to 0 in PARTITION_ACCESS. */
> +	if (part == 7)
> +		part = 0;
> +
> +	return part;
> +}
> diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
> index b3580d5d6e..54cf1cfc1f 100644
> --- a/configs/smegw01_defconfig
> +++ b/configs/smegw01_defconfig
> @@ -30,6 +30,7 @@ CONFIG_CMD_MEMTEST=y
>  CONFIG_CMD_UNZIP=y
>  CONFIG_CMD_DFU=y
>  CONFIG_CMD_GPIO=y
> +CONFIG_CMD_GPT=y
>  CONFIG_CMD_MMC=y
>  CONFIG_CMD_PART=y
>  CONFIG_CMD_DHCP=y
> @@ -44,6 +45,7 @@ CONFIG_OF_CONTROL=y
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_SYS_MMC_ENV_DEV=1
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_BOUNCE_BUFFER=y
>  CONFIG_BOOTCOUNT_LIMIT=y
> diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
> index 277c828d0e..71f2d9c8e8 100644
> --- a/include/configs/smegw01.h
> +++ b/include/configs/smegw01.h
> @@ -32,17 +32,21 @@
>  	"mmcpart=1\0" \
>  	"mmcpart_committed=1\0" \
>  	"mmcargs=setenv bootargs console=${console},${baudrate} " \
> -		"root=/dev/mmcblk0p${mmcpart_committed} rootwait rw " \
> -		__stringify(EXTRA_BOOTPARAMS) "\0" \
> +		"root=/dev/mmcblk${mmcdev}p${gpt_partition_entry} rootwait rw " \
> +		__stringify(EXTRA_BOOTPARAMS) " SM_ROOT_DEV=${mmcdev} SM_ROOT_PART=${gpt_partition_entry} SM_BOOT_PART=${boot_part}\0" \
>  	"commit_mmc=if test \"${ustate}\" = 1 -a \"${mmcpart}\" != \"${mmcpart_committed}\"; then " \
>  	              "setenv mmcpart_committed ${mmcpart};" \
>  								"saveenv;" \
>  						  "fi;\0" \
>  	"bootlimit=3\0" \
> -	"loadimage=load mmc ${mmcdev}:${mmcpart_committed} ${loadaddr} boot/${image}\0" \
> -	"loadfdt=load mmc ${mmcdev}:${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \
> +	"loadimage=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${loadaddr} boot/${image}\0" \
> +	"loadfdt=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \
> +	"loadpart=gpt setenv mmc ${mmcdev} rootfs-${mmcpart_committed}\0" \
> +	"loadbootpart=mmc partconf 1 boot_part\0" \
>  	"mmcboot=echo Booting from mmc ...; " \
>  	  "run commit_mmc; " \
> +		"run loadpart; " \
> +		"run loadbootpart; " \
>  		"run mmcargs; " \
>  		"if run loadfdt; then " \
>  			"if bootz ${loadaddr} - ${fdt_addr}; then " \
> -- 
> 2.38.1
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-04-18 19:48 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-18 13:47 [PATCH 01/13] smegw01: Enable setting additional boot params Fabio Estevam
2023-04-18 13:47 ` [PATCH 02/13] smegw01: Select CONFIG_CMD_SQUASHFS Fabio Estevam
2023-04-18 13:47 ` [PATCH 03/13] smegw01: Select bootcount support Fabio Estevam
2023-04-18 13:47 ` [PATCH 04/13] smegw01: Add altbootcmd Fabio Estevam
2023-04-18 13:47 ` [PATCH 05/13] smegw01: Run altbootcmd in the case of failure Fabio Estevam
2023-04-18 13:47 ` [PATCH 06/13] smegw01: Only commit to new partition if update was successful Fabio Estevam
2023-04-18 13:47 ` [PATCH 07/13] smegw01: Enable EMMC boot from multiple partitions Fabio Estevam
2023-04-18 19:48   ` Pali Rohár
2023-04-18 13:47 ` [PATCH 08/13] smegw01: Change default boot device to eMMC Fabio Estevam
2023-04-18 13:47 ` [PATCH 09/13] smegw01: Switch to fitImage Fabio Estevam
2023-04-18 13:47 ` [PATCH 10/13] smegw01: Add lockdown U-Boot env support Fabio Estevam
2023-04-18 13:47 ` [PATCH 11/13] smegmac: Read the second MAC address Fabio Estevam
2023-04-18 13:47 ` [PATCH 12/13] smegw01: Disable additional boot menu options Fabio Estevam
2023-04-18 13:47 ` [PATCH 13/13] smegw01: Fix fallback to altbootcmd Fabio Estevam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox