[U-Boot] [PATCH v1 15/26] colibri_imx6: add distroboot support

Marcel Ziswiler
2019-02-08T17:42:18Z

From: Stefan Agner <stefan.agner@toradex.com>

Add support for distro boot. This is especially helpful for external
devices. There is a global boot command which scans a predefined
list of boot targets:
run distro_bootcmd

As well as direct boot commands such as:
run bootcmd_mmc1
run bootcmd_usb
run bootcmd_dhcp
...

Refer to doc/README.distro fo details.

While at it, remove the CONFIG_DRIVE_TYPES define which has not
been used and was meant to be used for multi device boot support
which is now provided by distroboot.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

include/configs/colibri_imx6.h | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index c782b2924c..77f884f341 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -100,14 +100,18 @@

#define CONFIG_LOADADDR 0x12000000

-#ifdef CONFIG_CMD_MMC
-#define CONFIG_DRIVE_MMC "mmc "
+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+ func(MMC, mmc, 1) \
+ func(USB, usb, 0) \
+ func(DHCP, dhcp, na)
+#include <config_distro_bootcmd.h>
+#undef BOOTENV_RUN_NET_USB_START
+#define BOOTENV_RUN_NET_USB_START ""
#else
-#define CONFIG_DRIVE_MMC
+#define BOOTENV
#endif

-#define CONFIG_DRIVE_TYPES CONFIG_DRIVE_MMC
-
#define DFU_ALT_EMMC_INFO \
"u-boot.imx raw 0x2 0x3ff mmcpart 0;" \
"boot part 0 1;" \
@@ -134,7 +138,9 @@
"fdt_high=0xffffffff\0" \
"initrd_high=0xffffffff\0" \
"kernel_addr_r=0x11000000\0" \
- "ramdisk_addr_r=0x12100000\0"
+ "pxefile_addr_r=0x17100000\0" \
+ "ramdisk_addr_r=0x12100000\0" \
+ "scriptaddr=0x17000000\0"

#define NFS_BOOTCMD \
"nfsargs=ip=:::::eth0:on root=/dev/nfs rw\0" \
@@ -171,9 +177,10 @@

#define FDT_FILE "imx6dl-colibri-eval-v3.dtb"
#define CONFIG_EXTRA_ENV_SETTINGS \
+ BOOTENV \
"bootcmd=run emmcboot ; echo ; echo emmcboot failed ; " \
- "run nfsboot ; echo ; echo nfsboot failed ; " \
- "usb start ;" \
+ "run distro_bootcmd ; " \
+ "usb start ; " \
"setenv stdout serial,vga ; setenv stdin serial,usbkbd\0" \
"boot_file=uImage\0" \
"console=ttymxc0\0" \
--
2.20.1