> From: Vincent Stehlé [mailto:[email protected]]
> Sent: Friday, May 22, 2015 9:53 AM
> To: [email protected]
> Cc: Stehle Vincent-B46079; Stefano Babic; Estevam Fabio-R49496; Li Frank-
> B20596; Garg Nitin-B37173
> Subject: [PATCH] mx6: invalidate D-cache only when booting from USB
> 
> Add a detection at runtime of the boot from USB on i.MX6, and invalidate the
> D-cache only in that case.
> 
> The USB boot detection method is taken from Freescale u-boot commit
> 1309b1ed78b3 ("ENGR00315499-8 Auto check if boot from usb").
> 
> This repairs u-boot when it is built with CONFIG_SKIP_LOWLEVEL_INIT
> defined, and is booted from another u-boot, which booted from SD card, for
> example.
> 
> Signed-off-by: Vincent Stehlé <[email protected]>
> Cc: Stefano Babic <[email protected]>
> Cc: Fabio Estevam <[email protected]>
> Cc: Frank Li <[email protected]>
> Cc: Nitin Garg <[email protected]>
> ---
>  arch/arm/cpu/armv7/mx6/soc.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/cpu/armv7/mx6/soc.c
> b/arch/arm/cpu/armv7/mx6/soc.c index 21ef9d0..774f078 100644
> --- a/arch/arm/cpu/armv7/mx6/soc.c
> +++ b/arch/arm/cpu/armv7/mx6/soc.c
> @@ -350,6 +350,18 @@ int board_postclk_init(void)
>       return 0;
>  }
> 
> +/*
> + * Determine if we booted from USB.
> + *
> + * We look at the USBPH0_PWD0.RXPWDRX register to determine if the
> USB
> + * PHY is powered on or off. If the USB PHY is turned on, we assume
> +that
> + * the ROM booted us from USB.
> + */
> +static bool is_boot_from_usb(void)
> +{
> +     return !(readl(USB_PHY0_BASE_ADDR) & (1<<20)); }
> +
>  #ifndef CONFIG_SYS_DCACHE_OFF
>  void enable_caches(void)
>  {
> @@ -360,7 +372,8 @@ void enable_caches(void)  #endif
> 
>       /* Avoid random hang when download by usb */
> -     invalidate_dcache_all();
> +     if (is_boot_from_usb())
> +             invalidate_dcache_all();

How about second uboot save in usb mass storage device?

Best regards
Frank Li

> 
>       /* Enable D-cache. I-cache is already enabled in start.S */
>       dcache_enable();
> --
> 2.1.4

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to