[U-Boot] [PATCH v1 1/2] imx: add macro to detect whether USB has been initialized
Fabio Estevam
festevam at gmail.com
Tue Sep 5 11:13:37 UTC 2017
Hi Stefan,
On Mon, Sep 4, 2017 at 10:21 PM, Stefan Agner <stefan at agner.ch> 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>
This allows Serial Download Protocol to work on imx6q sabresd:
Tested-by: Fabio Estevam <fabio.estevam at nxp.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;
> };
> +
> +/*
> + * 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)))
Minor nit: imx-regs.h is better suited for storing register layout definitions.
I think that arch/arm/include/asm/mach-imx/sys_proto.h would be a
more appropriate location for this macro.
Also you could remove that tab between 'define' and the macro name.
More information about the U-Boot
mailing list