[U-Boot] [usb dwc3] xHCI driver -- a hint needed.

Bin Meng bmeng.cn at gmail.com
Sun Sep 8 12:35:54 UTC 2019


Hi Neil,

On Sun, Sep 8, 2019 at 8:33 PM Neil Armstrong <narmstrong at baylibre.com> wrote:
>
> Hi Bin,
>
> Le 07/09/2019 à 05:44, Bin Meng a écrit :
> > Hi Neil,
> >
> > On Thu, Sep 5, 2019 at 11:48 PM Neil Armstrong <narmstrong at baylibre.com> wrote:
> >>
> >> Hi Bin,
> >>
> >> I've been having the same behavior on the Amlogic S905X SoC with a DWC3 XHCI controller
> >> connected to 2 HS-only PHYs and no SS PHY.
> >>
> >> When a device is connected on the second PHY, I have the same BUG(),
> >> but no more when a device is also connected on the first PHY, and no issues
> >> at all on the first PHY.
> >>
> >> XHCI timeout on event type 33... cannot recover.
> >>
> >> What kind of debug output would you need to debug this ?
> >>
> >> => When Port 1 is disconnected, but Port 2 is populated:
> >> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x2 length 0x0
> >> clear port connect change, actual port 2 status  = 0x6e1
> >> ...
> >> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2 length 0x0
> >> ...
> >> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4
> >> SPEED = FULLSPEED
> >> ...
> >> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2 length 0x0
> >> ...
> >> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4
> >> SPEED = FULLSPEED
> >> ...
> >> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x2 length 0x0
> >> clear port reset change, actual port 2 status  = 0x603
> >>
> >>
> >> => When Port 1 is populated:
> >> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x2 length 0x0
> >> clear port connect change, actual port 2 status  = 0x6e1
> >> ...
> >> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2 length 0x0
> >> ...
> >> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4
> >> SPEED = FULLSPEED
> >> ...
> >> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2 length 0x0
> >> ...
> >> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4
> >> SPEED = HIGHSPEED
> >> ...
> >> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x2 length 0x0
> >> clear port reset change, actual port 2 status  = 0xe03
> >>
> >> When Port 1 is populated, Port 2 status correctly switches to HIGHSPEED,
> >> but why ?
> >>
> >
> > This looks really strange. Sounds like a hardware internal state
> > depends on the first USB port. Do you know if Linux works?
>
> Yes, Linux works fine, is it worth tracing the Linux XHCI driver aswell ?

Yes, that will definitely help.

Regards,
Bin


More information about the U-Boot mailing list