Universal Serial Bus 4 (USB4™) design details and general requirements
In addition to the specification defined requirements, the following are some of the high-level design and user experience requirements.
Devices that are tunneled over USB4 (USB 3.x, PCIe, and display), should work just as they would natively. No software changes should be required to the protocol stacks, and it should be transparent to them that they are tunneled over USB4.
Partners should ensure their USB hardware (such as systems, hubs, cables, and accessories) can inter-operate with other USB hardware coming to or already on the market. We encourage participation in interoperability and compliance events hosted by the Universal Serial Bus-Implementers Forum (USB-IF).
For systems with multiple USB-C® ports, Microsoft strongly recommends that they all support USB4 to provide a consistent user experience.
Thunderbolt™ 3 compatibility is required per chapter 13 of the USB4 base specification and USB Type-C® Connector and Cable Specification. The Windows USB4 connection manager driver is designed to support Thunderbolt™ 3 peripherals attached to the USB4 host.
For the first release of the USB4 connection manager on Windows 11, add-in cards are not supported.
See complete set of detailed requirements from the USB4 Hardware Lab Kit (HLK) for the Windows Hardware Compatibility Program.
The first release of the USB4 connection manager requires the host and device routers to support the USB4 specification and is implemented in accordance with USB4 Connection Manager Guide Rev 1.0rc. In addition to other ECNs, hardware implementers must ensure that they've reviewed the following ECNs as they're of high significance to the USB4 connection manager. This is not meant to be a complete list of ECNs required. These documents can be found in the USB4 specification download.
USB4 1.0 ECN - Change in ISC and ISS Registers Address.pdf
USB4 1.0 ECN - DROM Base Address.pdf
USB4 1.0 ECN - Router Ready Bit.pdf
USB4 1.0 ECN - HI memory order.pdf
USB4 1.0 ECN - Host Router State Machine.pdf
USB4 1.0 ECN - Change C3S Bit Polarity.pdf
USB4 1.0 ECN - Buffer Allocation Request Operation.pdf
USB4 1.0 ECN - DP BW Allocation.pdf*
*DP bandwidth allocation ECN is not required in its entirety. Only the connection manager ID, adapter number, and TopologyID features of the ECN are currently used by the Windows USB4 connection manager in its graphics power management scheme. For details, see Graphics driver requirements.
Note
Some implementation details of the connection manager are provided to aid in debugging. You should not take dependencies on implementation details.
USB Type-C® requirements
The Windows USB4 connection manager does not have any software dependencies on the USB Type-C® software stack. For example, UCMCx, UCSICx, and so on. The host router and device routers must follow the requirements described in the latest USB Type-C® connector specification for USB4 discovery and entry.
USB4 devices may provide a USB interface via a USB billboard device class when it cannot connect as a USB4 device. Windows presents users with a notification when the billboard device is discovered indicating that the device functionality maybe limited.
BIOS to operating system handoff
In the absence of a hardware interface for USB4 host router reset, Windows USB4 connection manager implements a host router configuration space cleanup that emulates a hardware-initiated host router reset. The objective of host router config space cleanup is to bring the configuration space values back to default in case there is a pre-boot connection manager (UEFI CM) running before Windows USB4 connection manager runs. This is possible if a UEFI connection manager runs before cold boot or resume from hibernate (S4).
Bandwidth sharing policy
The Windows USB4 connection manager provides bandwidth management capabilities to prevent oversubscription of a USB4 link. A maximum of 90 percent of the USB4 link bandwidth may be explicitly allocated for USB 3.x (isochronous), PCIe and DisplayPort™ traffic, divided according to the bandwidth sharing policy implemented by the connection manager.
When a device router is enumerated, the capacity of the USB4 link in both upstream and downstream directions is determined after lane bonding, resulting in a calculated link rate of 10Gbps, 20Gbps, or 40Gbps, for example. The available capacity of the link is then calculated as 90 percent of this. In the example, 90 percent would be 9Gbps, 18Gbps, or 36Gbps, respectively.
Note
For Thunderbolt™ 3 links, the following descriptions of USB 3.x & PCIe calculations do not apply. The full bandwidth is available for DisplayPort™ tunnels.
The link's bandwidth is initially assigned to both USB 3.x & PCIe. This combined USB 3.x & PCIe bandwidth is divided 2/3 to USB 3.x, and 1/3 to PCIe. The USB 3.x portion of this bandwidth is programmed to the USB 3.x host controller for isochronous usage, through a handshake process where the CMR bit in the USB 3.x adapter config space is set, and the USB4 connection manager awaits an acknowledgement from the USB 3.x host controller before programming the available bandwidth. Maximum USB 3.x bandwidth will likely be constrained to the USB 3.x link rate (10Gbps/20Gbps), accounted for when calculating bandwidth to assign.
DisplayPort™ bandwidth (DP BW) allocation mode
Starting in Windows 11 build 22621.1344 (KB5022913), and on systems supporting DisplayPort™ bandwidth (DP BW) allocation mode as defined in the USB4 specification, the USB4 connection manager allows for dynamic DisplayPort™ (DP) tunnel bandwidth allocation. This feature allows more efficient and dynamic use of the bandwidth available to DP tunnels through coordination with the graphics stack on the system to optimally divide bandwidth between all tunnels.
Upon creation of a DP tunnel, the USB4 connection manager will initially attempt to reserve bandwidth for the tunnel based on indicated capabilities of the DP IN and DP OUT adapters forming the tunnel. If sufficient bandwidth is not available, the initial reservation will be reduced as with non-DP BW allocation mode tunnels.
The connection manager will then check for DP BW allocation mode support for the DP adapter when the tunnel is created. If DP BW allocation mode is supported, it will be enabled for the DP IN adapter, the total available (including previously reserved) bandwidth will be written out to the "ESTIMATED_BW" register of the adapter, and allocated bandwidth will be written out to the "ALLOCATED_BW" register of the adapter as 0.
Once the DP tunnel has been created, any changes in available bandwidth for the tunnel (due to other DP tunnels or other bandwidth operations) will result in the USB4 connection manager updating the "ESTIMATED_BW" register of the DP IN adapter to notify it of the additional or reduced bandwidth available to it.
After the tunnel has been created, the graphics driver will send a notification to request the precise bandwidth necessary to support the selected resolution, refresh rate and bit-depth etc., of the tunneled monitor from the USB4 connection manager.
Thereafter, the graphics driver may request additional or reduced bandwidth due to changes in monitor performance requirements. If additional bandwidth is requested from the USB4 connection manager, the connection manager may attempt to reclaim bandwidth allocated to USB3 on the links shared with the tunnel. The USB4 connection manager will then update the DP IN adapter configuration space with the results of the operation, and any changes in the bandwidth available and/or assigned to it.
Systems without support for DisplayPort™ bandwidth allocation mode
On systems without support for the DisplayPort™ bandwidth allocation mode feature defined in the USB4 specification, DisplayPort™ (DP) bandwidth is then assigned on a first-come, first-served allocation basis. When a DP tunnel is created, the USB4 connection manager will examine in-use bandwidth for other DP tunnels, and query the USB 3.x host controller to determine how much bandwidth is currently in use for isochronous traffic, using the described handshake process. If bandwidth is available, it will be reclaimed in a sufficient amount for the DP tunnel, which is determined based on the capabilities of the DP IN and DP OUT adapters forming the tunnel.
If there is not sufficient bandwidth to satisfy the capabilities of the DP IN/OUT adapter pair, DP capabilities will be masked off to match the bandwidth available, potentially resulting in a lower than native maximum resolution for the DP tunnel. If enough bandwidth is not available to satisfy the lowest DP configuration, the DP tunnel will be failed. If there is insufficient bandwidth for the highest common configuration, and there are any previously created DP tunnels for which bandwidth has not been released following polling, the creation of a new tunnel will be halted until bandwidth is potentially released by the previous tunnel.
Once a tunnel is successfully created, the connection manager will poll the DP IN adapter configuration space until common capabilities (reflecting actual bandwidth required for the output device) are available. At this point, if excess bandwidth is allocated, it will be released back to the combined USB 3.x & PCIe bandwidth pool, and be reprogrammed to the USB 3.x host controller.
Display considerations
Using tunneled displays in WinPE
Tunneled display requires a functional graphics driver running in the OS. If the OEM hasn’t made graphics drivers available in WinPE (Windows Preinstallation Environment), such images will not be able to operate tunneled displays. When booting WinPE it is recommended to use the built-in display panel. If that is unavailable, then connect the external display in a non-tunneled configuration (native DP, HDMI, or USB Type-C Alt-Mode). If neither of these options are available, then the appropriate graphics driver package must be added to the WinPE image using DISM or equivalent mechanism.
Security considerations
Disabling PCIe tunneling
As a security feature, you may offer the ability to disable PCIe tunneling using the _OSC for USB. The Windows USB4 connection manager will not create PCIe tunnels when PCIe tunneling is disabled. Further, the Thunderbolt™ 3 device routers may fail to enumerate because in the absence of PCIe tunneling in Thunderbolt™ 3, USB functionality offered from the PCIe enumerated USB host controller is also impacted.
Consider disabling Thunderbolt™ 3 alternate mode when PCIe tunneling is disabled. This will allow a Thunderbolt™ 3 router or dock to fall back to USB 3.x operation and (DP) alt-mode operation.
DMA remapping policy for the USB4 host router
To limit the impact from invalid DMA accesses, DMA remapping is enabled for the USB4 host router device. The DmaRemappingCompatible
setting is set to 1 so that DMA remapping policy is always enabled for the host router.
USB4 HLK requirements
The following is a complete list of USB4 requirements.
Device.BusController USB4 requirements
- USB4 Domain Sleep
- USB4 Host Router PCIe Support
- USB4 Host Router TBT3 Support
- USB4 Routers Using Microsoft USB4 Stack
- USB4 Host Router FPB Support
- USB4 USB Implementers Forum (IF) certification
System.Fundamentals USB4 requirements
- USB4 Systems BIOS Handoff Support
- USB4 Systems DP Alternate Mode Support
- USB4 Systems PCIe Tunneling Support
- USB4 Systems Thunderbolt 3 Compatibility
- USB4 Systems Microsoft USB Stack Support
- USB4 Systems Support All Type-C® Connectors
- USB4 Host Router Systems in ACPI Describe Unique IDs
- USB4 Systems Support OS Capabilities for USB
- USB4 Systems Graphics Driver Support
- USB4 Systems USB3 over USB4 Tunneled Protocol Mapping Support
- USB4 Systems PCIe Over USB4 Tunneled Protocol Mapping Support
- USB4 USB3 xHCI functionality over USB4
See also
- Universal Serial Bus 4
- Introduction to the USB4 connection manager in Windows
- USB4 ACPI requirements
- USB4 power management requirements
- USB4 interdomain connections
- USB4 required testing
- 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.