ACPI 接口:PCIe 根端口的设备特定数据 (_DSD)
Windows 10 (版本 1803) 中添加了新的 ACPI _DSD 方法,以支持新式待机和 PCI 热插拔方案。
对 PCIe 根端口的定向最深运行时空闲平台状态 (DRIPS) 支持
此 ACPI 对象必须在每个 PCIe 根端口/槽的 ACPI 范围内实现,这些端口/槽可供启用新式待机的系统上的用户访问,这些系统能够实现 定向电源管理框架 (DFx) 。
Name (_DSD, Package () {
ToUUID("FDF06FAD-F744-4451-BB64-ECD792215B10"),
Package () {
Package (2) {"FundamentalDeviceResetTriggeredOnD3ToD0", 1},
}
}
)
在 D3 中识别支持热插拔的 PCIe 根端口
此 ACPI 对象使操作系统能够识别并电源管理能够在 D3 状态下处理热插拔事件的 PCIe 根端口。 如果未在支持 PCIe 热插拔的端口上实现此对象,则如果系统没有子级 PCIe 设备,则系统不会对此端口进行电源管理,从而导致系统消耗的电量超过所需的电量。
此对象必须在支持根端口 ACPI 设备范围内的 Thunderbolt 层次结构的所有 PCIe 根端口(运行时 D3 (RTD3) 系统)上实现。
Name (_DSD, Package () {
ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),
Package () {
Package (2) {"HotPlugSupportInD3", 1},
}
}
)
识别外部公开的 PCIe 根端口
此 ACPI 对象使操作系统能够识别外部公开的 PCIe 层次结构,例如 Thunderbolt。 必须在根端口 ACPI 设备范围内实现此对象。
注意:在附带 Windows 10 版本 1803 的系统上,此对象应仅在 Thunderbolt 层次结构的 PCIe 根端口上实现。
Name (_DSD, Package () {
ToUUID("EFCC06CC-73AC-4BC3-BFF0-76143807C389"),
Package () {
Package (2) {"ExternalFacingPort", 1}, // Property 1: This is an externally facing port/hierarchy
Package (2) {"UID", 0}, // Property 2: UID of the externally facing port on platform, range is: 0, 1, …, n-1
}
}
)
标识用户可访问的内部 PCIe 端口并需要 DMA 保护
此 ACPI 对象使操作系统能够识别用户可轻松访问的内部 PCIe 层次结构, (例如,可通过闩锁) 访问的笔记本电脑 M.2 PCIe 插槽,并且需要 OS 内核 DMA 保护机制的保护 。 必须在根端口 ACPI 设备范围内实现此对象。
需要注意的重要事项:
仅在 Windows 10 版本 1903 及更高版本中支持使用此 ACPI 对象保护 PCI 端口。
必须在系统 BIOS/UEFI 中启用内核 DMA 保护,以便操作系统分析_DSD并将必要的保护应用于 PCI 端口。
连接到此端口的设备驱动程序必须支持 DMA 重新映射,否则Windows 10可能会阻止这些设备运行,直到用户登录或无限期登录,具体取决于 DMAGuard 策略。
Name (_DSD, Package () {
ToUUID("70D24161-6DD5-4C9E-8070-705531292865"),
Package () {
Package (2) {"DmaProperty", 1}, // Property 1: This port needs to be protected by the OS
Package (2) {"UID", 0}, // Property 2: UID of the PCIe port on platform, range is: 0, 1, …, n-1
}
}
)
标识支持D3_COLD_AUX_POWER ECN 接口的 PCIe 端口
此 ACPI 对象使操作系统能够识别支持 D3_COLD_AUX_POWER ECN 接口的 PCIe 端口,从而允许 PCIe 设备从 D3 中的平台请求额外的辅助电源,高于默认 375mA @3.3V。 定义此 DSD 的任何 PCI 端口或网桥 都必须 保证在对以前协商的辅助功率值进行编程时,操作会成功。
Name (_DSD, Package () {
ToUUID("6B4AD420-8FD3-4364-ACF8-EB94876FD9EB"),
Package () {
}
}
)
通过 USB4 到 USB4 主机路由器 (PCIe、DisplayPort) 映射本机协议
此 ACPI 对象使操作系统能够将本机协议(如 PCIe 和 DisplayPort)通过 USB4 隧道映射到正确的 USB4 主机路由器。
在以下示例中, Device (DSB0)
依赖于 \_SB.PCI0.NHI0
。
Scope (\_SB.PCI0)
{
Device (NHI0) { } //Host interface instance which has dependency on \_SB.PCI0.NHI0
Device (DSB0) //Tunneled PCIe port instance
{
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), //Device Properties UUID
Package () {
Package () { “usb4-host-interface", \_SB.PCI0.NHI0 },
Package () { “usb4-port-number", PortInstance#},
}
})
}
Device (…) //Extend to DP and USB tunneled ports, as needed
{
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), //Device Properties UUID
Package () {
Package () { “usb4-host-interface", \_SB.PCI0.NHI0 },
Package () { “usb4-port-number", PortInstance#},
}
})
}
}
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈