[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