[U-Boot] [PATCH] imx-common: spl: return boot mode for asked MMC device in spl_boot_mode()

Stefano Babic sbabic at denx.de
Wed Aug 2 09:54:24 UTC 2017


Hi anatolji,

On 01/08/2017 15:23, Anatolij Gustschin wrote:
> Boards may extend or re-define the boot list in their board_boot_order()
> function by modifying spl_boot_list. E.g. a board might boot SPL from a
> slow SPI NOR flash and then load the U-Boot from an eMMC or SD-card.
> Or it might use additional MMC boot device in spl_boot_list for cases
> when the image in SPI NOR flash is not found, so it could fall back to
> eMMC, SD-card or another boot device.
> 
> Getting the MMC boot mode in spl_mmc will fail when we are trying to
> boot from an MMC device in the spl_boot_list and the original board
> boot mode (as returned by spl_boot_device()) is not an MMC boot mode.
> Fix it by checking the asked MMC boot device from the spl_boot_mode()
> argument.
> 
> Signed-off-by: Anatolij Gustschin <agust at denx.de>
> ---
>  arch/arm/mach-imx/spl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
> index 75698c4..cbb9dd5 100644
> --- a/arch/arm/mach-imx/spl.c
> +++ b/arch/arm/mach-imx/spl.c
> @@ -84,7 +84,7 @@ u32 spl_boot_device(void)
>  /* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */
>  u32 spl_boot_mode(const u32 boot_device)
>  {
> -	switch (spl_boot_device()) {
> +	switch (boot_device) {
>  	/* for MMC return either RAW or FAT mode */
>  	case BOOT_DEVICE_MMC1:
>  	case BOOT_DEVICE_MMC2:
> 

Nevertheless it seems difficult to be consistent. Let's start with the
case where a on-board device (SPI or eMMC) does not boot, and the way to
save the board is to boot from an external board. And SPL on the onboard
flash is damaged, but not u-boot.img. Anyway, we want that the board
boots with its consistent status, that is with the pair SPL+u-boot.img.
In the example I tracked, both from the SD card. This is consistent
using spl_boot_device, because it does not try to boot from a different
device as the one where SPL was loaded.

Best regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list