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.

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

System.Fundamentals USB4 requirements

See also

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.