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 物件可讓作業系統識別及電源管理 PCIe 根埠,這些埠能夠在 D3 狀態下處理熱插即用事件。 如果此物件未在支援PCIe的熱插即用埠上實作,則如果系統沒有子系PCIe裝置,則系統不會提供電源管理此埠,導致系統耗用超過必要的電源。

此物件必須在根埠 ACPI 裝置範圍中,在運行時間 D3 (RTD3) 支援系統上的所有 PCIe 根埠上實作。

Name (_DSD, Package () {  

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

        Package () {  

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

                   }
        }
)

識別外部公開的PCIe根埠

這個 ACPI 物件可讓操作系統識別外部公開的 PCIe 階層,例如 Thunderbolt。 此對象必須在根埠 ACPI 裝置範圍中實作。

注意:在隨附於 Windows 10 版本 1803 的系統上,此物件只應在雷霆階層的 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
                   }
        }
)

識別使用者可存取且需要 DMA 保護的內部 PCIe 連接埠

這個 ACPI 物件可讓操作系統識別使用者輕鬆存取的內部 PCIe 階層(例如,可透過闩鎖存取的膝上型電腦 M.2 PCIe 插槽),並需要 OS 核心 DMA 保護 機制的保護。 此對象必須在根埠 ACPI 裝置範圍中實作。

注意的主要專案:

  • 只有 Windows 10 版本 1903 和更新版本才支援使用此 ACPI 物件的 PCI 連接埠。

  • 核心 DMA 保護必須在系統 BIOS/UEFI 中啟用,才能讓 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
                   }
        }
)

識別支援 D3_COLD_AUX_POWER ECN 介面的 PCIe 連接埠

這個 ACPI 物件可讓操作系統識別支援 D3_COLD_AUX_POWER ECN 介面的 PCIe 連接埠,這可讓 PCIe 裝置從 D3 中的平臺額外輔助電源要求,高於預設 375 mA @3.3V。 定義此 DSD 的任何 PCI 埠或網橋都必須 保證,在程式設計支援先前交涉的輔助電源值時,作業會成功。

Name (_DSD, Package () {
            ToUUID("6B4AD420-8FD3-4364-ACF8-EB94876FD9EB"),
            Package () {
            }
        }
)

將原生通訊協定 (PCIe, DisplayPort) 透過 USB4 通道對應至 USB4 主機路由器

這個 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#},
            }
        })
    }
}

另請參閱

在 Windows 中啟用 PCI Express 原生控件

雷電 3 的核心 DMA 保護

啟用設備驅動器的 DMA 重新對應

D3COLD_AUX_POWER_AND_TIMING_INTERFACE結構