Universal Serial Bus 4 (USB4™) required testing
The HLK requirements are not designed to provide complete end-to-end functional test coverage for the USB4 feature set. We recommend that you perform thorough validation of important usage scenarios. Here are some tests that are required:
Enable standard driver verifier on the USB4 connection manager drivers (Usb4HostRouter.sys and Usb4DeviceRouter.sys) during testing and bring-up. The drivers are designed to break into an attached kernel debugger when they detect certain violations of software or hardware requirements.
> verifier.exe /standard /driver Usb4HostRouter.sys Usb4DeviceRouter.sys Wdf01000.sys
Perform compatibility testing with various USB4 and Thunderbolt™ 3 devices and hubs.
Perform compatibility testing with various monitors, PCIe and USB 3.x peripherals by tunneling them over a USB4 domain.
Use the USB4 Switch to automate and stress test connect and disconnect of a USB4 or Thunderbolt™ 3 hub or device. Details are provided in How to test with the USB4 Switch.
Validate that when the tunneled devices are idle, the USB4 domain powers down. Based on the _DSD port mappings for USB 3.x and PCIe described in the ACPI requirements for USB4, the domain should enter sleep only after the USB 3.x and PCIe devices are idle (in Dx where x > 0). For display graphics after the monitor associated with the display tunnel turns off, the USB4 domain should enter sleep.
After the domain powers down, when a tunneled protocol device initiates wake, verify USB4 domain powers back up and the protocol wake is replayed. The tunneled devices should not undergo PnP visible re-enumeration.
Stress test system power transitions, such as hibernate. For modern standby transitions, confirm that the USB4 domain powers down and does not block the system from entering DRIPS. For more information, see Modern Standby stress and long-duration testing.
Across various test scenarios and transitions, ensure that the USB4 host and device routers are not in a failed PnP state. They should not display a yellow bang in device manager.
Perform interdomain testing as described in USB4 Interdomain connections.
Test high bandwidth monitors concurrently with USB 3.x isochronous devices like cameras. With this topology perform connect and disconnect of the peripherals and system power transitions. Ensure that the peripherals remain functional.
Exercise DisplayPort™ alternate mode on USB4 capable ports. If there are multiple USB4 capable ports, exercise USB4 device topologies, including tunneled monitors, on one of the ports while concurrently testing DisplayPort™ alternate mode on the other ports.
How to test with the USB4 Switch
By default, the USB4 Switch is disabled in that it won't enumerate devices. To enable, download the Tools in the MUTT software package.
Connect the USB4 Switch to a USB4 port on the system under test.
Connect a Micro-B USB cable to the Switch and the other end of the Micro-B USB cable to a USB-A port on the system under test or the system you wish to use to control the switch.
From an elevated command window, navigate to where the MUTT tools are located. Run this to confirm that the USB4 Switch is detected:
> ConnExUtil.exe /list 1 Connection Exerciser Device Attached \\?\usb#vid_045e&pid_0646&mi_00#6&1456cc2b&0&0000#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
Run this to switch to Port 1:
> ConnExUtil.exe /setport 1 1 ConnectiCon Exerciser Device Attached Switching to Port: 1
Once you run this, it will enumerate whatever is connected to port 1 and you should see a blue LED light up, as shown in this picture:
Note
If the LED doesn't light up, the switch may still be functioning properly. You can confirm this by checking that the downstream device is successfully enumerated in the device manager or using "connexutil /getPort".
Run the following command to switch to Port 2:
> ConnExUtil.exe /setport 2 1 Connection Exerciser Device Attached Switching to Port: 2
Another test that is of very high value is to run /CxStress for stress testing.
> ConnExUtil.exe /cxstress
In addition to the test above, stress tests can be run while varying the time between connect and disconnect. This can be helpful to give enough time for the USB4 domain to power down before connect or disconnect.
> ConnExUtil.exe /cxstress /mintime 5000 /maxtimeconnected 10000 /maxtimedisconnected 10000
See also
- Universal Serial Bus 4
- Introduction to the USB4 connection manager in Windows
- USB4 design details and general requirements
- USB4 ACPI requirements
- USB4 power management requirements
- USB4 interdomain connections
- USB4 debugging and troubleshooting
Thunderbolt is a trademark of Intel Corporation or its subsidiaries.
"USB4™" is a trademark of USB Implementers Forum and is only intended for use with products based on and compliant with the USB4™ specification.