All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Thomas <gary@mlbassoc.com>
To: linuxppc-dev@ozlabs.org
Subject: Re: USB host on 83xx
Date: Wed, 27 Jan 2010 17:05:36 -0700	[thread overview]
Message-ID: <4B60D4D0.4020606@mlbassoc.com> (raw)
In-Reply-To: <4B60A014.50304@mlbassoc.com>

On 01/27/2010 01:20 PM, Gary Thomas wrote:
> I have two nearly identical boards, with very different behavior.
>
> Older 8347 (PVR: 0x80830011)
> New 8347 (PVR: 0x80830031)

I lied (more precisely I was lied to and I passed it on - I've never
seen these boards in person, just worked on them from thousands of
miles away).

The boards have more than a rev difference:
   OLD - 8347EA (SVR: 0x80540011, PVR: 0x80830011)
   NEW - 8343E  (SVR: 0x80570030, PVR: 0x80830031)

Could this have any bearing on the problems?

> I've tried a number of kernels (vintages) on both with wild results.
>
> 2.6.20 - Same kernel works on both(*)
> 2.6.28 - Kernel runs great on OLD, machine check on NEW
> 2.6.32.6 - Ditto
>
> The problem occurs (only on the new silicon) during the USB host
> initialization. The root hub is found and initialized, then the
> EHCI subsystem is reset (to force it to find siblings on the bus).
> This results in a machine check at the point where the PHY is
> being reinitialized.
>
> I've peppered the driver with messages - here's what I see:
>
> ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
> fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
> ********** ehci_fsl_setup.272
> ********** ehci_fsl_setup.296
> ********** ehci_fsl_setup.299
> ********** ehci_fsl_reinit.257
> ********** mpc83xx_usb_setup.192
> ********** mpc83xx_usb_setup.207
> ********** mpc83xx_usb_setup.215
> ********** mpc83xx_usb_setup.220
> ********** mpc83xx_setup_phy.163
> ********** mpc83xx_setup_phy.180
> ********** mpc83xx_setup_phy.182
> ********** mpc83xx_usb_setup.238
> ********** mpc83xx_usb_setup.245
> ********** mpc83xx_usb_setup.249
> ********** mpc83xx_usb_setup.251
> ********** ehci_fsl_reinit.259
> ********** ehci_hub_control.559 - req: 8961
> ********** ehci_hub_control.574
> ********** ehci_hub_control.559 - req: 8961
> ********** ehci_hub_control.574
> ********** ehci_fsl_reinit.261
> ********** ehci_fsl_setup.301
> fsl-ehci fsl-ehci.0: irq 39, io base 0xff022000
> fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
> usb usb1: configuration #1 chosen from 1 choice
> hub 1-0:1.0: USB hub found
> ********** ehci_hub_control.559 - req: 40966
> ********** ehci_hub_control.637
> hub 1-0:1.0: 2 ports detected
> ********** ehci_hub_control.559 - req: 40960
> ********** ehci_hub_control.642
> ********** ehci_hub_control.559 - req: 8963
> ********** ehci_hub_control.805
> ********** ehci_hub_control.559 - req: 8963
> ********** ehci_hub_control.805
> usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
> usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
> usb usb1: Product: Freescale On-Chip EHCI Host Controller
> usb usb1: Manufacturer: Linux 2.6.28 ehci_hcd
> usb usb1: SerialNumber: fsl-ehci.0
> fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
> fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
> ********** ehci_fsl_setup.272
> ********** ehci_fsl_setup.296
> ********** ehci_fsl_setup.299
> ********** ehci_fsl_reinit.257
> ********** mpc83xx_usb_setup.192
> ********** mpc83xx_usb_setup.207
> ********** mpc83xx_usb_setup.215
> ********** mpc83xx_setup_phy.163
> ********** mpc83xx_setup_phy.180
> MACHINE CHECK - so dead it can't even print the message!
>
> At this point, it should carry on like this:
>
> ********** ehci_hub_control.559 - req: 8963
> ********** ehci_hub_control.805
> ********** ehci_hub_control.559 - req: 41728
> ********** ehci_hub_control.648
> ********** ehci_hub_control.559 - req: 8961
> ********** ehci_hub_control.574
> usb 1-1: configuration #1 chosen from 1 choice
> hub 1-1:1.0: USB hub found
> hub 1-1:1.0: 4 ports detected
> usb 1-1: New USB device found, idVendor=05e3, idProduct=0608
> usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
> usb 1-1: Product: USB2.0 Hub
> ********** ehci_hub_control.559 - req: 41728
> ********** ehci_hub_control.648
>
> You can see that it successfully found the connected external HUB.
>
> Any ideas why this happens? This [basic] code used to work (2.6.20)
> on both platforms. I know that's a long time ago, but MACHINE CHECK??
>
> (*) To get this platform to run 2.6.20, I had to patch the CPU tables
> to recognize it as 8347 (kernels of that vintage relied on the SVR to
> make choices, not PVR)
>

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

  reply	other threads:[~2010-01-28  0:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-27 20:20 USB host on 83xx Gary Thomas
2010-01-28  0:05 ` Gary Thomas [this message]
2010-01-28 12:17   ` Gary Thomas
2010-01-28 13:20     ` Gary Thomas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B60D4D0.4020606@mlbassoc.com \
    --to=gary@mlbassoc.com \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.