ACPI 接口:PCIe (_DSD) 端口的设备特定数据

在 Windows 10 (版本 1803) 中,添加了新的 ACPI _DSD 方法以支持新式待机和 PCI 热插拔方案。

PCIe 根端口上支持 (最 (运行时空闲平台状态) 的

此 ACPI 对象必须在每个 PCIe 根端口/槽的 ACPI 范围内实现,这些根端口/槽位在支持新式待机的系统上可供用户访问,这些系统能够实现定向电源管理框架 (DFx)

Name (_DSD, Package () {

          ToUUID("FDF06FAD-F744-4451-BB64-ECD792215B10"),

            Package () {

                Package (2) {"FundamentalDeviceResetTriggeredOnD3ToD0", 1},
            }
        }
)

在 D3 中识别支持热插拔的 PCIe 根端口

此 ACPI 对象使操作系统能够识别并管理 PCIe 根端口,这些端口能够在 D3 状态处理热插拔事件。 如果未在支持 PCIe 热插拔的端口上实现此对象,则如果没有子 PCIe 设备,则系统不会对此端口进行电源管理,从而导致系统消耗的功率超过必要。

此对象必须在支持根端口 ACPI 设备作用域的 Runtime D3 (RTD3) 所有 PcIe 根端口上实现。

Name (_DSD, Package () {  

        ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),  

        Package () {  

            Package (2) {"HotPlugSupportInD3", 1},  

                   }
        }
)

识别外部公开的 PCIe 根端口

此 ACPI 对象使操作系统能够识别外部公开的 PCIe 层次结构,例如"Bolbolt"。 必须在根端口 ACPI 设备范围内实现此对象。

注意:在随 Windows 10版本 1803 一起交付的系统上,此对象应仅在 PcIe Root Ports of可bolt 层次结构上实现。

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 设备范围内实现此对象。

请注意的关键项:

  • 仅支持在 1903 Windows 10版本中使用此 ACPI 对象保护 PCI 端口。

  • 必须在系统 BIOS/UEFI 中启用内核 DMA 保护,以便 OS 分析系统_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
                   }
        }
)

标识支持 ECN 接口D3_COLD_AUX_POWER 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 () {
            }
        }
)

将本机协议 (PCIe、DisplayPort) USB4 隧道映射到 USB4 主机路由器

此 ACPI 对象使操作系统能够将通过 USB4 隧道的本机协议(如 PCIe 和 DisplayPort)映射到正确的 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#},
            }
        })
    }
}

另请参阅

在 Windows 中启用 PCI Express 原生控制

Kernel DMA Protection forBolt 3

为设备驱动程序启用 DMA 重新映射

D3COLD_AUX_POWER_AND_TIMING_INTERFACE结构