board: imx8mm: add boot.cmd for distro boot on iMX8MM
authorAlice Guo <alice.guo@nxp.com>
Fri, 18 Dec 2020 06:50:08 +0000 (14:50 +0800)
committerStefano Babic <sbabic@denx.de>
Sat, 23 Jan 2021 10:30:31 +0000 (11:30 +0100)
Distro Boot requires a U-Boot-specific script named boot.scr or
boot.scr.uimg which contains boot commands to boot the system. The
boot.cmd is such a file. Use mkimage to generate boot.scr or
boot.scr.uimg from boot.cmd, and the command is:
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Distro Boot Script" -d boot.cmd boot.scr.uimg

The boot.cmd file is an example script and can be modified based on
needs. bootargs is set in this script and root uses the default value "
/dev/mmcblk1p2 rootwait rw" which can be changed by overriding mmcroot.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
board/freescale/imx8mm_evk/boot.cmd [new file with mode: 0644]

diff --git a/board/freescale/imx8mm_evk/boot.cmd b/board/freescale/imx8mm_evk/boot.cmd
new file mode 100644 (file)
index 0000000..fdfceec
--- /dev/null
@@ -0,0 +1,35 @@
+setenv bootargs console=${console} root=${mmcroot};
+
+for boot_target in ${boot_targets};
+do
+        if test "${boot_target}" = "mmc1" ; then
+                if fatload mmc 1:${mmcpart} ${kernel_addr_r} ${image}; then
+                        if fatload mmc 1:${mmcpart} ${fdt_addr} ${fdt_file}; then
+                                echo Load image and .dtb from SD card(mmc1);
+                                booti ${kernel_addr_r} - ${fdt_addr};
+                                exit;
+                        fi
+                fi
+        fi
+
+        if test "${boot_target}" = "mmc2" ; then
+                if fatload mmc 2:${mmcpart} ${kernel_addr_r} ${image}; then
+                        if fatload mmc 2:${mmcpart} ${fdt_addr} ${fdt_file}; then
+                                echo Load image and .dtb from eMMC(mmc2);
+                                booti ${kernel_addr_r} - ${fdt_addr};
+                                exit;
+                        fi
+                fi
+        fi
+
+        if test "${boot_target}" = "dhcp" ; then
+                if dhcp ${kernel_addr_r} ${serverip}:${image}; then
+                        if dhcp ${fdt_addr} ${serverip}:${fdt_file}; then
+                                echo Load image and .dtb from net(dhcp);
+                                booti ${kernel_addr_r} - ${fdt_addr};
+                                exit;
+                        fi
+                fi
+        fi
+
+done