Hi Michael. On Fri, Aug 24, 2018 at 05:17:39PM +0200, Michael Grzeschik wrote: > The ROM loader leaves the otg port in peripheral mode which confuses the > host controller. After the handover to barebox we ensure to bring in the > port into the otg state by resetting it. > > Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > --- > This was tested with mx53 and mx6 for now. I suppose we should > adopt this to the mx2 and mx3 models. > > arch/arm/mach-imx/imx50.c | 3 +++ > arch/arm/mach-imx/imx51.c | 3 +++ > arch/arm/mach-imx/imx53.c | 3 +++ > arch/arm/mach-imx/imx6.c | 3 +++ > 4 files changed, 12 insertions(+) > > diff --git a/arch/arm/mach-imx/imx50.c b/arch/arm/mach-imx/imx50.c > index f7cbc9d4ba..ac326cf3c0 100644 > --- a/arch/arm/mach-imx/imx50.c > +++ b/arch/arm/mach-imx/imx50.c > @@ -92,6 +92,9 @@ void imx50_init_lowlevel_early(unsigned int cpufreq_mhz) > > imx5_init_lowlevel(); > > + /* reset otg: in case we started via usb-serial */ > + writel((readl(0x53F80140) | 2), 0x53F80140); > + This looks like constants you just pulled out of the air. Can you hide it behind a descriptive name? > /* > * AIPS setup - Only setup MPROTx registers. > * The PACR default values are good. > diff --git a/arch/arm/mach-imx/imx51.c b/arch/arm/mach-imx/imx51.c > index ec8cdd868b..91f6df1cfa 100644 > --- a/arch/arm/mach-imx/imx51.c > +++ b/arch/arm/mach-imx/imx51.c > @@ -142,6 +142,9 @@ void imx51_init_lowlevel(unsigned int cpufreq_mhz) > > imx5_init_lowlevel(); > > + /* reset otg: in case we started via usb-serial */ > + writel((readl(0x73F80140) | 2), 0x73F80140); Likewise. > + > /* disable write combine for TO 2 and lower revs */ > if (rev < IMX_CHIP_REV_3_0) { > __asm__ __volatile__("mrc 15, 1, %0, c9, c0, 1":"=r"(r)); > diff --git a/arch/arm/mach-imx/imx53.c b/arch/arm/mach-imx/imx53.c > index b22929f749..99e942ed52 100644 > --- a/arch/arm/mach-imx/imx53.c > +++ b/arch/arm/mach-imx/imx53.c > @@ -90,6 +90,9 @@ void imx53_init_lowlevel_early(unsigned int cpufreq_mhz) > > imx5_init_lowlevel(); > > + /* reset otg: in case we started via usb-serial */ > + writel((readl(0x53F80140) | 2), 0x53F80140); And then you did not have to hardcode the same value here again. > + > /* > * AIPS setup - Only setup MPROTx registers. > * The PACR default values are good. > diff --git a/arch/arm/mach-imx/imx6.c b/arch/arm/mach-imx/imx6.c > index 3d95c9e374..8af051c34a 100644 > --- a/arch/arm/mach-imx/imx6.c > +++ b/arch/arm/mach-imx/imx6.c > @@ -193,6 +193,9 @@ int imx6_init(void) > > imx6_init_lowlevel(); > > + /* reset otg: in case we started via usb-serial */ > + writel((readl(0x21840140) | 2), 0x21840140); Likewise. Sam _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox