ARM: imx: mx5: Add altbootcmd and resets to M53Menlo
authorMarek Vasut <marex@denx.de>
Sat, 11 Sep 2021 22:40:00 +0000 (00:40 +0200)
committerStefano Babic <sbabic@denx.de>
Tue, 19 Oct 2021 10:36:51 +0000 (12:36 +0200)
Bulletproof the default boot command with reset statements in case
any command in the chain would fail. In case a failure were to happen,
the board will reset, increment boot counter and retry the procedure.
In case the failures persist and the boot counter reaches the bootlimit,
U-Boot starts altbootcmd instead of the default bootcmd boot command.

The altbootcmd swaps the default boot partition for the other boot
partition, which is an identical copy or an older copy, and tries
booting from that one instead.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
include/configs/m53menlo.h

index 5dd5ddac172f5038a4a5c1781712b93058c8cfaf..375a7588dc586b632b1280b0f0c6236af8ba06c1 100644 (file)
        "splashfile=boot/usplash.bmp.gz\0"                              \
        "splashimage=0x88000000\0"                                      \
        "splashpos=m,m\0"                                               \
+       "altbootcmd="                                                   \
+               "if test ${mmcpart} -eq 1 ; then "                      \
+                       "setenv mmcpart 2 ; "                           \
+               "else "                                                 \
+                       "setenv mmcpart 1 ; "                           \
+               "fi ; "                                                 \
+               "boot\0"                                                \
        "stdout=serial,vidconsole\0"                                    \
        "stderr=serial,vidconsole\0"                                    \
        "addcons="                                                      \
                "setenv bootargs ${bootargs} ${miscargs}\0"             \
        "addargs=run addcons addmisc addmtd\0"                          \
        "mmcload="                                                      \
-               "mmc rescan ; load mmc ${mmcdev}:${mmcpart} "           \
-               "${kernel_addr_r} ${bootfile}\0"                        \
+               "mmc rescan || reset ; load mmc ${mmcdev}:${mmcpart} "  \
+               "${kernel_addr_r} ${bootfile} || reset\0"               \
        "miscargs=nohlt panic=1\0"                                      \
        "mmcargs=setenv bootargs root=/dev/mmcblk0p${mmcpart} rw "      \
                "rootwait\0"                                            \
        "mmc_mmc="                                                      \
-               "run mmcload mmcargs addargs ; "                        \
-               "bootm ${kernel_addr_r}\0"                              \
+               "run mmcload mmcargs addargs || reset ; "               \
+               "bootm ${kernel_addr_r} ; reset\0"                      \
        "netload=tftp ${kernel_addr_r} ${hostname}/${bootfile}\0"       \
        "net_nfs="                                                      \
                "run netload nfsargs addip addargs ; "                  \