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

Marek Vasut marex at denx.de
Fri Dec 11 18:33:17 CET 2015


On Friday, December 11, 2015 at 03:58:35 PM, Stefano Babic wrote:
> Hi Eric,
> 
> On 11/12/2015 15:40, Eric Nelson wrote:
> > Hi Stefano,
> > 
> > On 12/11/2015 06:40 AM, Stefano Babic wrote:
> >> 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>
> >> ---
> >> 
> >> Changes in v2:
> >> - Add documentation (S. Roese)
> >> - Check just bits 24-25 because reserved bits are set on some variants
> >> 
> >>   (E. Nelson)
> >> 
> >> - Set boot device to UARt if USB is set to let bmode working as
> >> 
> >>   suggested by Eric
> >>  
> >>  arch/arm/imx-common/spl.c |  8 ++++++++
> >>  doc/README.imx6           | 51
> >>  +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59
> >>  insertions(+)
> >> 
> >> diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
> >> index ac6e40e..a8f2492 100644
> >> --- a/arch/arm/imx-common/spl.c
> >> +++ b/arch/arm/imx-common/spl.c
> >> @@ -20,7 +20,15 @@ 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) & 0x03)  == 0x01) || /* Serial Downloader */
> > 
> > I think Marek will have a problem with the yoda conditional:
> >> +		(gpr10_boot && (1 == reg)))
> 
> I fix it in V3 before Marek complains :-). I do not like yoda
> conditions, too.

Problem, I have ;-)


More information about the U-Boot mailing list