Re: xhci data toggle out of sync

From: Hans Petter Selasky <hps_at_selasky.org>
Date: Tue, 19 Apr 2022 11:06:43 UTC
On 4/19/22 11:30, Mahesh Vardhamanaiah wrote:
> Hi HPS,
> 
> The error seems to be NO_PIPE and end points are 2 & 3 but the
> usbconfig dump_all_desc lists epaddress 1, 81 any idea why ?
> 

Hi,

The XHCI endpoint context order is different from the endpoint numbers, 
so this is expected.

> ugen0.3: <Virtium VTDU31XC008G-A901> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)
> 
>    bLength = 0x0012
>    bDescriptorType = 0x0001
>    bcdUSB = 0x0200
>    bDeviceClass = 0x0000  <Probed by interface class>
>    bDeviceSubClass = 0x0000
>    bDeviceProtocol = 0x0000
>    bMaxPacketSize0 = 0x0040
>    idVendor = 0x2aaa
>    idProduct = 0x0100
>    bcdDevice = 0x0100
>    iManufacturer = 0x0001  <Virtium>
>    iProduct = 0x0003  <VTDU31XC008G-A901>
>    iSerialNumber = 0x0002  <P1T66005607903260063>
>    bNumConfigurations = 0x0001
> 
>   Configuration index 0
> 
>      bLength = 0x0009
>      bDescriptorType = 0x0002
>      wTotalLength = 0x0020
>      bNumInterfaces = 0x0001
>      bConfigurationValue = 0x0001
>      iConfiguration = 0x0000  <no string>
>      bmAttributes = 0x0080
>      bMaxPower = 0x0032
> 
>      Interface 0
>        bLength = 0x0009
>        bDescriptorType = 0x0004
>        bInterfaceNumber = 0x0000
>        bAlternateSetting = 0x0000
>        bNumEndpoints = 0x0002
>        bInterfaceClass = 0x0008  <Mass storage>
>        bInterfaceSubClass = 0x0006
>        bInterfaceProtocol = 0x0050
>        iInterface = 0x0000  <no string>
> 
>       Endpoint 0
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0081  <IN>
>          bmAttributes = 0x0002  <BULK>
>          wMaxPacketSize = 0x0200
>          bInterval = 0x0000
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
>       Endpoint 1
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0001  <OUT>
>          bmAttributes = 0x0002  <BULK>
>          wMaxPacketSize = 0x0200
>          bInterval = 0x0000
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
> 
> 
> root@:RE:0%
> 

xhci_do_command() does not return USB_ERR_NO_PIPE !

http://fxr.watson.org/fxr/source/dev/usb/controller/xhci.c#L1154

Do you have local patches perhaps?

--HPS