[U-Boot] [PATCH] [MPC837x v2] Make it work again with USB.

Kim Phillips kim.phillips at freescale.com
Mon Dec 13 23:52:38 CET 2010


On Mon, 29 Nov 2010 08:59:21 +0100
"Schwarz,Andre" <andre.schwarz at matrix-vision.de> wrote:

> Kim,
> 
> 
> > On Tue, 16 Nov 2010 13:37:50 +0100
> > Andre Schwarz <andre.schwarz at matrix-vision.de> wrote:
> >
> > > USB register range IMMR+0x00-0xff is reserved and hangs the CPU.
> > >
> > > Signed-off-by: Andre Schwarz <andre.schwarz at matrix-vision.de>
> > > ---
> >
> > nack, 837x has a usb controller at IMMR+0x23000. 
> yes - but offset 0x00-0xff is explicitly reserved regarding to the manual.
> Don't know whether it is a "should not" or "must not be touched".
>  
> All I can see is a CPU hang with arbiter event register reporting a timeout on
> 0xe0023000.
>  
> 
>   Check to see whether there is an invalid USB clock setting in the SCCR? 
> All clocks are turned on except SEC and 2nd TSEC.
>  
> After all USB is running fine with this patch, i.e. there can hardly be a
> missing clock.
> 
> 
> Please re-think you NAK.

afaik, 834x and 837x don't have any special USB settings in common, so,
this patch, at least in it's current form, is not on.

0xe0023500 should be the address of the config register being accessed
here; please check the code isn't accessing 0xe0023000, as you mention
above.

If that's correct, try something like the following so we can determine
what setting the USB controller didn't agree with:

diff --git a/arch/powerpc/cpu/mpc83xx/cpu_init.c b/arch/powerpc/cpu/mpc83xx/cpu_init.c
index 7a1cae7..cbc4157 100644
--- a/arch/powerpc/cpu/mpc83xx/cpu_init.c
+++ b/arch/powerpc/cpu/mpc83xx/cpu_init.c
@@ -332,7 +332,7 @@ void cpu_init_f (volatile immap_t * im)
 	struct usb_ehci *ehci = (struct usb_ehci *)CONFIG_SYS_FSL_USB_ADDR;
 
 	/* Configure interface. */
-	setbits_be32(&ehci->control, REFSEL_16MHZ | UTMI_PHY_EN);
+	setbits_be32(&ehci->control, 0);
 
 	/* Wait for clock to stabilize */
 	do {

Thanks,

Kim



More information about the U-Boot mailing list