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

From: Stefan Agner stefan.agner@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@toradex.com CC: Stefano Babic sbabic@denx.de CC: Tim Harvey tharvey@gateworks.com CC: Fabio Estevam Fabio.Estevam@freescale.com CC: Eric Nelson eric.nelson@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;

On 27/12/2016 17:01, Stefan Agner wrote:
From: Stefan Agner stefan.agner@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@toradex.com CC: Stefano Babic sbabic@denx.de CC: Tim Harvey tharvey@gateworks.com CC: Fabio Estevam Fabio.Estevam@freescale.com CC: Eric Nelson eric.nelson@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:
/* SATA: See 8.5.4, Table 8-20 */ case 0x2: return BOOT_DEVICE_SATA;return BOOT_DEVICE_UART;
Applied to u-boot-imx, thanks !
Best regards, Stefano Babic
participants (2)
-
Stefan Agner
-
Stefano Babic