Skip to content
Snippets Groups Projects
Commit 0fe69adc authored by Eran Matityahu's avatar Eran Matityahu Committed by Stefano Babic
Browse files

imx7: spl: Check for Serial Downloader in spl_boot_device


Similarly to imx6, before reading the boot device, first check
bmode to see if the serial downloader has been selected
explicitly, then check whether the serial downloader has been
activated due to unbootable primary boot devices (e.g. empty eMMC).

If the serial downloader is activated, return BOOT_DEVICE_BOARD.
This allows SPL with SDP support to wait for the U-Boot image
to be loaded via the serial download protocol using imx_usb_loader.

Signed-off-by: default avatarEran Matityahu <eran.m@variscite.com>
parent 03858f8e
No related branches found
No related tags found
No related merge requests found
...@@ -101,6 +101,29 @@ u32 spl_boot_device(void) ...@@ -101,6 +101,29 @@ u32 spl_boot_device(void)
/* Translate iMX7/MX8M boot device to the SPL boot device enumeration */ /* Translate iMX7/MX8M boot device to the SPL boot device enumeration */
u32 spl_boot_device(void) u32 spl_boot_device(void)
{ {
#if defined(CONFIG_MX7)
unsigned int bmode = readl(&src_base->sbmr2);
/*
* Check for BMODE if serial downloader is enabled
* BOOT_MODE - see IMX7DRM Table 6-24
*/
if (((bmode >> 24) & 0x03) == 0x01) /* Serial Downloader */
return BOOT_DEVICE_BOARD;
/*
* The above method does not detect that the boot ROM used
* serial downloader in case the boot ROM decided to use the
* serial downloader as a fall back (primary boot source failed).
*
* Infer that the boot ROM used the USB serial downloader by
* checking whether the USB PHY is currently active... This
* assumes that SPL did not (yet) initialize the USB PHY...
*/
if (is_boot_from_usb())
return BOOT_DEVICE_BOARD;
#endif
enum boot_device boot_device_spl = get_boot_device(); enum boot_device boot_device_spl = get_boot_device();
switch (boot_device_spl) { switch (boot_device_spl) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment