USB4 电源管理要求

USB4 主机路由器必须可靠地支持 USB4 睡眠以及进入和退出。 隧道协议不得在进入或退出 USB4 睡眠时以电子方式发出与各自的隧道断开连接的信号。 此外,在 USB4 域从睡眠中恢复后,USB4 主机路由器必须通过适当的隧道重播协议唤醒。

隧道设备协议(PCIe、USB 3.x 和 Display)会与关联的 USB4 主机路由器设备建立电源关系,使连接管理器可以在隧道设备空闲时启动进入睡眠的操作。 从 Windows 11 开始的 PCIe 和 USB 3.x 设备驱动程序支持根据 USB4 ACPI 要求中描述的基于 ACPI 的 (_DSD) 端口映射来识别关联的 USB4 主机路由器设备并对其进行电源管理。

Windows 11 中的图形堆栈也已更新,以标识 USB4 主机路由器设备,并对 USB4 主机路由器设备进行电源管理。 这需要从 IHV 提供的图形驱动程序中获得支持,如图形驱动程序要求所述。 USB4 连接管理器从 ACPI 获取主机路由器设备 ID,并将其写入 DP-IN 适配器配置空间中的 ADP_DP_CS_2.CM_ID。 如 ACPI 要求中所述,主机接口实例必须始终以一个 3 位的数字 (0-7) 结尾。

图形驱动程序要求

若要确保电源管理关联正确,图形堆栈必须能够识别监视器连接到的 USB4 DP-IN 适配器。 这是通过 USB4 域设置实现的,该设置由 DPCD 通过 USB4 DP-IN 适配器注册,供图形堆栈读取。 这些要求在 DisplayPort™2.0 规范(勘误表)中定义。

DPCD 字段名称 DPCD 字段地址 注意
USB4_Driver_ID E000Fh [3:0] 唯一标识系统中的主机路由器。 这是由 USB4 连接管理器设置的,从 ACPI 获取主机路由器设备 ID,并将其写入到 DP-IN 适配器配置空间中的 ADP_DP_CS_2.CM_ID。
USB4_ROUTER_TOPOLOGY_ID E001Bh - E001Fh 唯一标识主机路由器域中的 USB4 设备
DP_IN_Adapter_Number E000Eh [5:0] 在 USB4 设备上唯一标识 DP-IN 适配器
DP 隧道支持 E000Dh [0] 值为 1 表示 USB4 隧道

图形驱动程序要求如下:

  1. WDDM 3.0 或更高版本的驱动程序
  2. 驱动程序会公开新的适配器上限以指示 USB4 支持
  3. 驱动程序公开的所有静态视频呈现网络 (VidPN) 目标都需要报告为电源组件
  4. 连接到同一个静态目标的每个 USB4 动态目标都必须连接到同一个主机路由器。 也就是说,USB4_Driver_ID 必须有相同的值。 不支持将 USB4 DisplayPort 监视器连接到“仅显示”或“间接显示”WDDM 驱动程序。

USB4 驱动程序功能

已将该 SupportUsb4Targets 功能添加到在开始时从驱动程序查询的 DXGK_DISPLAY_DRIVERCAPS_EXTENSION 结构。 设置此值的操作仅对 WDDM 3.0 驱动程序有效,只有在驱动程序确实满足上面列出的所有要求时才应设置此值。

报告 USB4 监视器 DPCD 值

在 WDDM 3.0 中,有一个新的 DXGK_CONNECTION_CHANGE.MonitorConnect.MonitorConnectFlags 字段,该字段包含一个由驱动程序用来指示此监视器是 USB4 连接监视器的 Usb4DisplayPortMonitor 标志。

typedef struct _DXGK_CONNECTION_MONITOR_CONNECT_FLAGS
{
    union
    {
        struct
        {
            UINT    Usb4DisplayPortMonitor  : 1;
            UINT    Reserved                :31;
        };
        UINT Value;
    };
} DXGK_CONNECTION_MONITOR_CONNECT_FLAGS;

typedef struct _DXGK_CONNECTION_CHANGE {
    ULONGLONG                       ConnectionChangeId;
    D3DDDI_VIDEO_PRESENT_TARGET_ID  TargetId            :24;
    DXGK_CONNECTION_STATUS          ConnectionStatus    : 4;
    UINT                            Reserved            : 4;
    union {
        struct {
            D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY LinkTargetType;
            DXGK_CONNECTION_MONITOR_CONNECT_FLAGS MonitorConnectFlags;
        } MonitorConnect;
        struct {
            D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY BaseTargetType;
            D3DDDI_VIDEO_PRESENT_TARGET_ID  NewTargetId;
        } TargetConnect;
        struct {
            D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY BaseTargetType;
            D3DDDI_VIDEO_PRESENT_TARGET_ID  NewTargetId;
        } TargetJoin;
    };
} DXGK_CONNECTION_CHANGE, *PDXGK_CONNECTION_CHANGE;

typedef struct _DXGK_CONNECTION_USB4_INFO
{
    UINT Dpcd_DP_IN_Adapter_Number;
    UINT Dpcd_USB4_Driver_ID;
    BYTE Dpcd_USB4_ROUTER_TOPOLOGY_ID[5];
} DXGK_CONNECTION_USB4_INFO, *PDXGK_CONNECTION_USB4_INFO;

typedef struct _DXGKARG_QUERYCONNECTIONCHANGE
{
    DXGK_CONNECTION_CHANGE     ConnectionChange; // out: Buffer into which the oldest available change is copied by driver
    PDXGK_CONNECTION_USB4_INFO pUsb4MonitorInfo; // inout: Pointer to an operating system allocated structure driver should
                                                 //        complete if MonitorConnect.Flags.Usb4DisplayPortMonitor was set
} DXGKARG_QUERYCONNECTIONCHANGE;

如果 DisplayPort™ 监视器已连接到指定的视频呈现网络 (VidPN) 目标并连接到 USB4 DP-IN 适配器,则驱动程序应:

  1. 设置 DXGK_CONNECTION_CHANGE.MonitorConnect.Flags.Usb4DisplayPortMonitor
  2. 填充 DXGKARG_QUERYCONNECTIONCHANGE.pUsb4MonitorInfo 中的字段

作为 PoFx 组件报告的所有静态 VidPN 目标

若要在图形堆栈和 USB 堆栈之间启用正确的电源管理,需要通过 DxgkDdiQueryAdapterInfo(DXGKQAITYPE_NUMPOWERCOMPONENTS)DxgkDdiQueryAdapterInfo(DXGKQAITYPE_POWERCOMPONENTINFO) 将所有静态 VidPN 目标报告为电源管理框架 (PoFx) 组件。

从同一静态 VidPN 目标创建的所有动态目标

支持连接到动态 VidPN 目标的 USB4 监视器。 但是,连接到静态 VidPN 目标的所有 USB4 动态 VidPN 目标都必须有相同的 USB4_Driver_ID values,并且必须连接到同一个 USB4 主机路由器。

CLx 低功耗状态

为了节省电力并减少热负荷,连接管理器允许第一个深度链路进入 CL0 和 CL1(如果硬件和当前隧道协议支持)。 面向上游的端口 (UFP) 和面向下游的端口 (DFP) 必须支持 CL0 和 CL1,才能在该链接上启用低功耗状态。 随后,如果 TMU 精度要求和链路上的隧道活动允许,则链路可以进入 CL0 或 CL1 以节省电力。

另请参阅

Thunderbolt 是 Intel Corporation 或其子公司的商标。

“USB4™”是 USB 实现者论坛的商标,只适用于基于并符合 USB4™ 规范的产品。