]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/mach-imx/spl.c
imx_common: detect USB serial downloader reliably
[u-boot] / arch / arm / mach-imx / spl.c
index 258578ac25b4fd6efee695c703f4d81bdb9bbff4..82ea6b85d6468c8cc1d82dd3b4bfc3f066227f2d 100644 (file)
@@ -31,6 +31,18 @@ u32 spl_boot_device(void)
        if (((bmode >> 24) & 0x03) == 0x01) /* Serial Downloader */
                return BOOT_DEVICE_BOARD;
 
+       /*
+        * The above method does not detect that the boot ROM used
+        * serial downloader in case the boot ROM decided to use the
+        * serial downloader as a fall back (primary boot source failed).
+        *
+        * Infer that the boot ROM used the USB serial downloader by
+        * checking whether the USB PHY is currently active... This
+        * assumes that SPL did not (yet) initialize the USB PHY...
+        */
+       if (is_usbotg_phy_active())
+               return BOOT_DEVICE_BOARD;
+
        /* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
        switch ((reg & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT) {
         /* EIM: See 8.5.1, Table 8-9 */