summaryrefslogtreecommitdiff
path: root/arch/arm/imx-common
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2016-12-27 17:01:42 +0100
committerStefano Babic <sbabic@denx.de>2017-01-27 10:40:16 +0100
commitac0a93fd21b815166c54b991659377f951d4d203 (patch)
treecce136945672d07791387a1f6885388ac4b1ba34 /arch/arm/imx-common
parent1c3e62d690a3093d418dac267ae78b0fc0c35274 (diff)
downloadu-boot-imx-ac0a93fd21b815166c54b991659377f951d4d203.zip
u-boot-imx-ac0a93fd21b815166c54b991659377f951d4d203.tar.gz
u-boot-imx-ac0a93fd21b815166c54b991659377f951d4d203.tar.bz2
imx_common: check for bmode Serial Downloader
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>
Diffstat (limited to 'arch/arm/imx-common')
-rw-r--r--arch/arm/imx-common/spl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
index 60c4adf..46325ec 100644
--- a/arch/arm/imx-common/spl.c
+++ b/arch/arm/imx-common/spl.c
@@ -27,8 +27,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) {
@@ -40,6 +39,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;