I am trying to emulate a device as USB3.0 super speed (our platform support USB3.0 hub). Below is the device descriptor I am using for device enumeration.
0x12, /* Descriptor size */
0x01, /* Device descriptor type (0x01) */
0x00,0x03, /* USB 3.0 */
0x00, /* Device class */
0x00, /* Device sub-class */
0x00, /* Device protocol */
0x09, /* Maxpacket size for EP0 : 2^9 = 512 bytes */
/* Vendor ID /
, / Product ID /
0x00,0x00, / Device release number /
0x01, / Manufacture string index /
0x02, / Product string index /
0x00, / Serial number string index /
0x01 / Number of configurations /
I run the USB3HWAnalyzer tool to analyze the failure issue and below is the error trace. 13094733443.428871: (UsbHub3/176) Event Message:DescriptorValidationErrorDeviceInvalidBMaxPacketSize PortPath: 0x1, 0x0, 0x0, 0x0, 0x0, 0x0
basically it fails due to – 0x09, / Maxpacket size for EP0 : 2^9 = 512 bytes */
which I am not getting why? Any valid reason for this issue?
Tnx!
On Mar 24, 2016, at 5:31 PM, xxxxx@sasken.com wrote:
I am trying to emulate a device as USB3.0 super speed (our platform support USB3.0 hub).
What do you mean my “emulate”, exactly? This is the response you would get if your device had enumerated in high-speed instead of super-speed.
—
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Tim,
We have UDE driver that emulates the behavior of USB host controller and connected device.
The USB 2.0 and USB3.0 HS descriptor when we are configuring. It works properly. But when trying to provide USB3.0 descriptor to enumerate as SuperSpeed (This doesn’t work !!).
We are carefully providing the BOS and Configuration descriptor (Which has list of Companion descriptor). But it appears to me… USB_GetDeviceDescriptor fails, when we are providing the bMaxPacketSize as — 0x09
If I am configuring bMaxPacketSize as — 0x40 ( — and doing changes for ConfigDescriptor to support for HighSpeed… things work properly.
Below is the log traces from logman.
MessageNumber DiagnosisTypes Timestamp TimeDelta EventRecord.Header.ProcessId EventRecord.Header.ThreadId Module Summary
2769 None 2015-12-16T01:57:23.4288268 0.0000000 620 804 UsbSpec Get Full Device Descriptor
2772 None 2015-12-16T01:57:23.4288654 0.0000386 620 804 UsbCommon USB Device State Machine event TransferSuccess, entering state ValidatingDeviceDescriptorInEnumAtZero depth 2
2773 Application 2015-12-16T01:57:23.4288701 0.0000047 620 804 Microsoft_Windows_USB_USBHUB3 Enumeration for Device Failed due to Descriptor Failure
2774 Application 2015-12-16T01:57:23.4288722 0.0000021 620 804 Microsoft_Windows_USB_USBHUB3 Enumeration for Device Failed due to Descriptor Failure
2775 Application 2015-12-16T01:57:23.4288742 0.0000020 620 804 Microsoft_Windows_USB_USBHUB3 Validation Failure of Device Descriptor
xxxxx@sasken.com wrote:
We have UDE driver that emulates the behavior of USB host controller and connected device.
The USB 2.0 and USB3.0 HS descriptor when we are configuring. It works properly. But when trying to provide USB3.0 descriptor to enumerate as SuperSpeed (This doesn’t work !!).
Obvious question: did you advertise
GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE in your
EvtUdecxWdfDeviceQueryUsbCapability callback?
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.