[PATCH 06/13] smegw01: Only commit to new partition if update was successful

Fabio Estevam festevam at gmail.com
Tue Apr 18 15:47:37 CEST 2023


From: Eduard Strehlau <eduard at 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 at lionizers.com>
Signed-off-by: Fabio Estevam <festevam at 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



More information about the U-Boot mailing list