[U-Boot] [PATCH v1 1/2] imx: add macro to detect whether USB has been initialized

Eric Nelson eric at nelint.com
Tue Sep 5 02:57:48 UTC 2017


Hi Stefan,

On 09/04/2017 06:21 PM, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner at toradex.com>
> 
> This macro allows to detect whether the boot ROM initialized USB
> already (serial downloader). This is helpful to reliably detect
> if the system has been recovered via USB serial downloader.
> 
> Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>
> ---
> Hi Stefano,
> 
> I noted already in my initial post that detection of serial
> downloader mode is somewhat brittle:
> https://lists.denx.de/pipermail/u-boot/2017-August/301952.html
> 
> This came up quite fast now also for other boards:
> https://www.mail-archive.com/u-boot@lists.denx.de/msg262234.html
> 
> We use this patches since quite some time. Also NXP uses this
> detection method to start their mfgr tools... Altough a hack,
> maybe we should still add it upstream?
> 
> --
> Stefan
> 
> 
>   arch/arm/include/asm/arch-mx6/imx-regs.h | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h b/arch/arm/include/asm/arch-mx6/imx-regs.h
> index 86e267087a..895ef4de83 100644
> --- a/arch/arm/include/asm/arch-mx6/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx6/imx-regs.h
> @@ -985,5 +985,12 @@ struct pwm_regs {
>   	u32	pr;
>   	u32	cnr;
>   };

It seems as if you've already named a constant, so you might as well
#define and use it (USBPH0_PWD or USB0_PWD).

The reference manual seems to call it RXPWDRX though.

> +
> +/*
> + * If ROM fell back to USB recover mode, USBPH0_PWD will be clear to use USB
> + * If boot from the other mode, USB0_PWD will keep reset value
> + */
> +#define	is_boot_from_usb(void) (!(readl(USB_PHY0_BASE_ADDR) & (1<<20)))
> +
>   #endif /* __ASSEMBLER__*/
>   #endif /* __ASM_ARCH_MX6_IMX_REGS_H__ */
> 
If I'm reading your comment correctly, the RXPWDRX bit will be set (the
PHY will be powered down) unless it was enabled by the Boot ROM.

Won't this also be clear if you've run 'usb start' under U-Boot?

Please advise,


Eric


More information about the U-Boot mailing list