[U-Boot] [PATCH] imx_common: check for bmode Serial Downloader

Stefan Agner stefan at agner.ch
Tue Dec 27 17:01:42 CET 2016


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

Before commit 81c4eccb55cc ("imx: mx6: fix USB bmode to use
reserved value") a non-reserved value has been used to trigger
Serial Downloader using bmode, which translated to a GPR9 value
of 0x10. However, on some boards the non-reserved value lead to
unreliable bmode command. With the above mentioned commit, U-boot
switched to use [7:4] b0001, which translates to GPR9 0x10 for
Serial Downloader mode. Check for the new value and classify it
as Serial Downloader mode.

Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
CC: Stefano Babic <sbabic at denx.de>
CC: Tim Harvey <tharvey at gateworks.com>
CC: Fabio Estevam <Fabio.Estevam at freescale.com>
CC: Eric Nelson <eric.nelson at boundarydevices.com>
---

 arch/arm/imx-common/spl.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
index bdcda7de93..098953dce1 100644
--- a/arch/arm/imx-common/spl.c
+++ b/arch/arm/imx-common/spl.c
@@ -26,8 +26,7 @@ u32 spl_boot_device(void)
 	 * Check for BMODE if serial downloader is enabled
 	 * BOOT_MODE - see IMX6DQRM Table 8-1
 	 */
-	if ((((bmode >> 24) & 0x03)  == 0x01) || /* Serial Downloader */
-		(gpr10_boot && (reg == 1)))
+	if (((bmode >> 24) & 0x03) == 0x01) /* Serial Downloader */
 		return BOOT_DEVICE_UART;
 	/* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
 	switch ((reg & 0x000000FF) >> 4) {
@@ -39,6 +38,9 @@ u32 spl_boot_device(void)
 		else
 			return BOOT_DEVICE_NOR;
 		break;
+	/* Reserved: Used to force Serial Downloader */
+	case 0x1:
+		return BOOT_DEVICE_UART;
 	/* SATA: See 8.5.4, Table 8-20 */
 	case 0x2:
 		return BOOT_DEVICE_SATA;
-- 
2.11.0



More information about the U-Boot mailing list