config_distro_bootcmd: Init IDE devices
authorJoshua Watt <jpewhacker@gmail.com>
Thu, 20 Jun 2019 21:31:35 +0000 (16:31 -0500)
committerTom Rini <trini@konsulko.com>
Fri, 21 Jun 2019 14:07:11 +0000 (10:07 -0400)
IDE devices are no longer automatically probed by u-boot, so it should
be done by the distro boot command before attempting to boot from IDE
(just like scsi and nvme)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
include/config_distro_bootcmd.h

index 4993303f4d97d0612a5637eb385e169e2f568aad..26e61ef196906411eb1ccbceff398906a46fad76 100644 (file)
 #endif
 
 #ifdef CONFIG_IDE
-#define BOOTENV_SHARED_IDE     BOOTENV_SHARED_BLKDEV(ide)
+#define BOOTENV_RUN_IDE_INIT "run ide_init; "
+#define BOOTENV_SET_IDE_NEED_INIT "setenv ide_need_init; "
+#define BOOTENV_SHARED_IDE \
+       "ide_init=" \
+               "if ${ide_need_init}; then " \
+                       "setenv ide_need_init false; " \
+                       "ide reset; " \
+               "fi\0" \
+       \
+       "ide_boot=" \
+               BOOTENV_RUN_IDE_INIT \
+               BOOTENV_SHARED_BLKDEV_BODY(ide)
 #define BOOTENV_DEV_IDE                BOOTENV_DEV_BLKDEV
 #define BOOTENV_DEV_NAME_IDE   BOOTENV_DEV_NAME_BLKDEV
 #else
+#define BOOTENV_RUN_IDE_INIT
+#define BOOTENV_SET_IDE_NEED_INIT
 #define BOOTENV_SHARED_IDE
 #define BOOTENV_DEV_IDE \
        BOOT_TARGET_DEVICES_references_IDE_without_CONFIG_IDE
        \
        "distro_bootcmd=" BOOTENV_SET_SCSI_NEED_INIT                      \
                BOOTENV_SET_NVME_NEED_INIT                                \
+               BOOTENV_SET_IDE_NEED_INIT                                 \
                "for target in ${boot_targets}; do "                      \
                        "run bootcmd_${target}; "                         \
                "done\0"