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

Stefano Babic sbabic at denx.de
Fri Dec 4 10:02:12 CET 2015


Check for bmode before reading the boot device
to check if a serial downloader is started,
and returns UART if the serial downloader is set,
letting SPL to wait for an image if
CONFIG_SPL_YMODEM_SUPPORT is set.

This allows to load again a SPL based board
with imx_usb_loader together with a tool
such as kermit.

Signed-off-by: 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>
---

Note: I know we have already discussed more complicated solution
	for adding multilple files to imx_usb_loader.
	However, fixing ymodem support for i.MX6
	was trivial and imx_usb_loader is working
	again.

 arch/arm/imx-common/spl.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
index ac6e40e..28217d2 100644
--- a/arch/arm/imx-common/spl.c
+++ b/arch/arm/imx-common/spl.c
@@ -20,7 +20,14 @@ u32 spl_boot_device(void)
 	struct src *psrc = (struct src *)SRC_BASE_ADDR;
 	unsigned int gpr10_boot = readl(&psrc->gpr10) & (1 << 28);
 	unsigned reg = gpr10_boot ? readl(&psrc->gpr9) : readl(&psrc->sbmr1);
+	unsigned int bmode = readl(&psrc->sbmr2);
 
+	/*
+	 * Check for BMODE if serial downloader is enabled
+	 * BOOT_MODE - see IMX6DQRM Table 8-1
+	 */
+	if ((bmode >> 24) == 0x01) /* Serial Downloader */
+		return BOOT_DEVICE_UART;
 	/* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
 	switch ((reg & 0x000000FF) >> 4) {
 	 /* EIM: See 8.5.1, Table 8-9 */
-- 
1.9.1



More information about the U-Boot mailing list