其他 ACPI 命名空間物件
對於某些特定類別的裝置,需要額外的進階設定和 Power Interface (ACPI) 命名空間物件出現在命名空間中的這些裝置底下。 本節列出 SoC 型平臺所需的其他物件。
處理器識別物件
處理器必須在 ACPI 命名空間中列舉。 處理器會在 \_SB下宣告,使用 「Device」 語句,如同平臺上的其他裝置一樣。 處理器裝置必須包含下列物件:
- _HID:ACPI0007
- _UID:符合 MADT 中處理器專案的唯一數位。
顯示特定物件
如需顯示特定物件的詳細資訊,請參閱 ACPI 5.0 規格的附錄 B、。
Display-Specific物件需求
方法 | 描述 | 需求 |
---|---|---|
_Dos | 啟用/停用輸出切換。 | 如果系統支援顯示切換或 LED 亮度等級,則為必要專案。 |
_國防部 | 列舉連接至顯示配接器的所有裝置。 | 如果整合控制器支援輸出切換,則為必要項。 |
_羅 | 取得 ROM 資料。 | 如果 ROM 影像是以專屬格式儲存,則為必要專案。 |
_GPD | 取得 POST 裝置。 | 如果實作_VPO,則為必要項。 |
_Spd | 設定 POST 裝置。 | 如果實作_VPO,則為必要項。 |
_Vpo | 影片 POST 選項。 | 如果系統支援變更 VGA 裝置後,則為必要專案。 |
_Adr | 傳回此裝置的唯一識別碼。 | 必要。 |
_B c l | 支援的亮度控制等級查詢清單。 | 如果內嵌的 LED 支援亮度控制,則為必要項。 |
_Bcm | 設定亮度等級。 | 如果實作_BCL,則為必要項。 |
_Ddc | 傳回此裝置的 EDID。 | 如果內嵌的 SSD 不支援透過標準介面傳回 EDID,則為必要專案。 |
_Dcs | 傳回輸出裝置的狀態。 | 如果系統支援透過快速鍵) 顯示切換 (,則為必要專案。 |
_DGS | 查詢圖形狀態。 | 如果系統支援透過快速鍵) 顯示切換 (,則為必要專案。 |
_Dss | 裝置狀態集。 | 如果系統支援透過快速鍵) 顯示切換 (,則為必要專案。 |
USB 主機控制器和裝置
SOC 平臺上會使用 USB 主機控制器來連接內部和外部裝置。 Windows 包含符合 EHCI 或 XHCI 規格之標準 USB 主機控制器的收件匣驅動程式。
在 SoC 型平臺上,USB 主機控制器可由 ACPI 列舉。 Windows 在列舉和設定相容的 USB 硬體時,會使用下列 ACPI 命名空間物件:
廠商指派的 ACPI 相容硬體識別碼 (_HID) 。
唯一識別碼 (_UID) 物件,如果命名空間中有一個以上的 USB 控制器實例, (即具有相同裝置識別物件的兩個或多個節點) 。
EHCI 或 XHCI 標準相容 USB 主機控制器的相容識別碼 (_CID) (EHCI:PNP0D20) , (XHCI:PNP0D10) 。
目前資源設定 (_CRS) 指派給 USB 控制器。 控制器的資源會在 EHCI 或 XHCI) (適當的硬體介面規格中說明。
USB Device-Specific 方法 (_DSM)
Windows 會定義 Device-Specific 方法 (_DSM) ,以支援 USB 子系統的裝置類別特定設定。 如需詳細資訊,請參閱 USB Device-Specific 方法。
USB 整合式交易翻譯工具 (TT) 支援 (_HRV)
標準 EHCI 主機控制器僅支援高速 USB 裝置。 在 SoC 平臺上,Windows 支援兩個符合 EHCI 規範主控制器的常見設計,可實作低速和全速 USB 裝置的整合式交易翻譯工具。 硬體修訂 (_HRV) 物件表示 USB 主機控制器驅動程式的整合式 TT 支援類型。
_HRV會根據下列準則進行設定:
NoIntegratedTT - _HRV = 0
標準 EHCI 主機控制器不會實作整合式交易翻譯工具,而且_HRV值 0 僅適用于這些控制器。 不需要包含這些控制器的 _HRV 物件。
IntegratedTTSpeedInPortSc - _HRV = 1
啟用整合式 TT 支援。 此介面類別別包含 PORTSC 暫存器本身的 LowSpeed 和 HiSpeed 位。 這些位分別位移 26 和 27。 判斷速度時,EHCI 驅動程式會讀取 PORTSC,並從這些位擷取速度資訊。
IntegratedTTSpeedInHostPc - _HRV = 2
啟用整合式 TT 支援。 此介面類別別包含個別 HOSTPC 暫存器中的 LowSpeed 和 HiSpeed 位。 當 EHCI 驅動程式需要判斷埠速度時,它會讀取對應至相關埠的 HOSTPC 暫存器,並擷取速度資訊。
USB XHCI D3cold 支援
除了選擇性暫停之外,連線到 XHCI 控制器的內部 USB 裝置也可以進入 D3cold 狀態,並在未使用時關閉電源。 如需詳細資訊,請參閱 裝置電源管理。 所有 USB 設備函式驅動程式都必須加入宣告 D3cold。
USB 埠特定物件
Windows 必須知道系統上 USB 埠的可見度和連線能力。 這是必要專案,才能為使用者提供有關埠和裝置的準確資訊。 實體裝置位置 (_PLD) 和 USB 埠功能 (_UPC) 兩個物件用於此用途。 如需詳細資訊,請參閱下列:
ACPI 5.0 規格中的 6.1.6、「裝置識別物件」和 9.13.1、「USB 2.0 主機控制器和_UPC和_PLD」小節。
SD 主機控制器和裝置
SD 主機控制器用於 SoC 平臺上,以存取儲存體和 I/O 裝置。 Windows 包含適用于 SDA 標準主機控制器硬體的收件匣驅動程式。 為了與此驅動程式相容,SD 主機控制器裝置必須符合 SD 關聯的 SD 主機控制器規格。
在 SoC 平臺上,SD 主機控制器可由 ACPI 列舉。 Windows 在列舉及設定相容的 SD 硬體時,會使用下列 ACPI 命名空間物件:
廠商指派的 ACPI 相容硬體識別碼 (_HID) 。
唯一識別碼 (_UID) 物件,如果 (命名空間中有一個以上的 SD 控制器實例,也就是兩個或多個具有相同裝置識別物件的節點) 。
SDA 標準相容 SD 主機控制器的相容識別碼 (_CID) , (PNP0D40) 。
指派給控制器的目前資源設定 (_CRS) 。 控制器的資源如下所述:
包含所有實作位置的硬體資源。 位置是記憶體或 I/O 裝置之 SDIO 匯流排上的連接點。 每個位置都會與 SD 主機控制器中的一組標準暫存器和中斷相關聯,用於與連線裝置的通訊。 SD 主機控制器可以實作任意數目的插槽,但在 SoC 平臺上,通常只有一個。
位置資源會一起列出,依位置號碼 (位置 0 的資源是第一個、位置 1 的資源是第二個,依此類) 。
針對每個位置,資源會依下列順序列出:
為位置設定 SD 標準暫存器的基底位址。
位置的 SD 標準中斷。
位置的 GPIO 中斷資源,用於訊號卡插入和移除 (如果標準 SD 記憶卡偵測介面在所有電源狀態期間都不支援) 。
位置的 GPIO 輸入資源,用於讀取卡片目前是否在插槽中 (如果標準 SD 記憶卡偵測介面在所有電源狀態期間都不支援) 。 使用與插入/移除中斷相同的針腳。
第二個 GPIO 輸入資源,用於讀取插槽中的卡片是否受到寫入保護, (如果標準 SD 寫入保護介面在所有電源狀態期間都不支援) 。
中斷必須能夠喚醒, (描述為 「SharedAndWake」 或 「ExclusiveAndWake」) 。
內嵌 SD 裝置
SD 連線的裝置是由 SD 匯流排驅動程式列舉。 整合至平臺的 SD 裝置也必須列在 ACPI 命名空間中,作為 SD 主機控制器的子系。 這項需求可讓作業系統將匯流排列舉裝置與 ACPI (物件所提供的平臺特定屬性產生關聯,例如,非可移動性、裝置電源狀態、GPIO 或 SPB 資源等) 。 若要建立此關聯,裝置命名空間需要 Address (_ADR) 物件,這會在 SDIO 匯流排上傳達裝置的位址。 _ADR 物件會傳回整數。
針對 SDIO 匯流排,此整數的值定義如下:
高字 – 插槽編號 (0 – 第一個位置)
低字 – 函式編號 (請參閱定義 SD 規格。)
內嵌 SD 裝置命名空間也必須包含:
Remove 方法 (_RMV) 物件,傳回 0 (,表示無法移除裝置) 。
裝置需要 (例如 GPIO 針腳或 SPB 連線) 等側帶資源的_CRS物件。如有需要的話。
影像處理類別裝置 (相機)
相機裝置可由圖形驅動程式或 USB 列舉。 不論是哪一種情況,Windows 都必須知道相機的實體位置,才能顯示適當的 UI。 若要這樣做,內建于系統底座且具有機械固定方向的相機裝置會包含在 ACPI 命名空間中,並提供實體裝置位置 (_PLD) 物件。 這需要:
要顯示為子裝置的相機裝置, (列舉值裝置的巢狀裝置) , (GPU 裝置或 USB 裝置) 。
要提供 Address (_ADR) 物件的相機裝置,該物件包含父裝置匯流排上的相機位址。
如需 USB,請參閱下一節中 適用于內嵌 USB 裝置的 ACPI 命名空間階層和_ADR 。
針對圖形,這是在 GPU 裝置下提供之_DOD方法中指定的識別碼。 如需詳細資訊,請參閱 ACPI 5.0 規格的附錄 B、「影片延伸模組」。
要提供_PLD物件的相機裝置。
如果相機驅動程式 (需要任何側邊帶資源,例如 GPIO 中斷或 I/O 連線,或 SPB 連線) ,則會針對這些資源提供_CRS物件。
在 _PLD 物件中, Panel 欄位 (位 67-69) 、 Lid 欄位 (位 66) 和 Dock 欄位 (位 65) 會設定為相機掛接所在表面的正確值。 其他所有欄位均為選填。 對於包括平板電腦在內的便攜行動裝置,前面板是按住顯示畫面的裝置,而其原點是在直向檢視顯示器時位於左下角。 使用此參考時,「Front」 表示相機檢視使用者 (網路攝影機) ,而 「Back」 表示相機檢視與使用者 (仍然或視訊相機) 。 For more information, see, section 6.1.8, "_PLD (Physical Location of Device)", in the ACPI 5.0 specification.
適用于內嵌 USB 裝置的 ACPI 命名空間階層和_ADR
將內嵌 USB 裝置新增至 ACPI 命名空間時,裝置節點的階層必須完全符合 Windows USB 驅動程式所列舉之裝置的階層。 這可以藉由檢查 Windows 裝置管理員在 [依連線檢視] 模式中判斷。 必須包含從 USB 主機控制器開始並向下延伸至內嵌裝置的整個階層。 每個裝置裝置管理員中提供的 「Address」 屬性是韌體必須在裝置_ADR中報告的位址。
ACPI 5.0 規格會定義 USB 裝置的位址,如下所示:
USB 根中樞:只有主機控制器的子系。 它必須有 0 _ADR。 不允許其他子系或_ADR值。
USB 埠:埠號碼 (1-n)
連線到特定埠的 USB 裝置會共用該埠的位址。
如果連線到埠的裝置是複合 USB 裝置,複合裝置內的函式必須使用下列位址:
複合 USB 裝置內的 USB 函式:複合裝置所連接的埠埠號碼,加上函式的第一個介面編號。 (算術加法) 。
如需詳細資訊,請參閱 識別內部相機的位置。
ASL 程式碼範例
下列 ASL 程式碼範例說明直接連線到 USB 埠 3 的 USB 網路攝影機。
Device (EHCI) {
... // Objects required for EHCI devices
Device {RHUB) { // the Root HUB
Name (_ADR, ZERO) // Address is always 0.
Device (CAM0) { // Camera connected directly to USB
// port number 3 under the Root.
Name (_ADR, 3) // Address is the same as the port.
Method (_PLD, 0, Serialized) {...}
} // End of Camera device
} // End of Root Hub Device
} // End of EHCI device
下列 ASL 程式碼範例描述將網路攝影機實作為函式 2 的 USB 複合裝置。
Device (EHCI) {
... // Objects required for EHCI devices
Device {RHUB) {
Name (_ADR, ZERO)
Device (CUSB) { // Composite USB device
// connected to USB port number 3
// under the Root.
Name (_ADR, 3) // Address is the same as the port.
Device (CAM0) { // Camera function within the
// Composite USB device.
Name (_ADR, 5) // Camera function has a first
// Interface number of 2, so
// Address is 3 + 2 = 5.
Method (_PLD, 0, Serialized) {...}
} // End of Camera device
} // End of Composite USB Device
} // End of Root Hub Device
} // End of EHCI device
下列 ASL 程式碼範例描述透過 I2C 連線的網路攝影機。
Device (GPU0) {
... // Other objects required for graphics devices
Name (_DOD, Package () // Identifies the children of this graphics device.
// Each integer must be unique within the GPU0 namespace.
{
0x00024321, // The ID for CAM0. It is a non-VGA
// device, cannot be detected by
// the VGA BIOS, and uses a vendor-
// specific ID format in bits 15:0
// (see the _DOD specification).
... // Other child device IDs (for
// example, display output ports)
})
Device (CAM0) {
Name (_ADR, 0x00024321) // The identifier for this device
// (Same as in _DOD above)
Name (_CRS, ResourceTemplate()
{
// I2C Resource
// GPIO interrupt resource(s), if required by
// driver
// GPIO I/O resource(s), if required by driver
...
})
Method (_PLD, 0, Serialized) {...}
} // End of CAM0 device
} // End of GPU0 device
HID-over-I2C 裝置
Windows 包含人類介面裝置的類別驅動程式, (HID) 。 此驅動程式可針對各種輸入裝置啟用一般支援, (例如觸控式螢幕、鍵盤、滑鼠和感應器) 。 在 SoC 平臺上,HID 裝置可以透過 I2C 連線到平臺,並由 ACPI 列舉。 為了與 Windows 中的 HID 類別支援相容,會使用下列命名空間物件:
廠商特定的_HID
A _CID of PNP0C50
具有_CRS:
I2CSerialBusConnection 資源,可存取裝置
用於中斷 (s) 的 GpioInt 資源
HIDI2C _DSM 方法,可傳回裝置中的 HID 描述元登入位址。 如需詳細資訊,請參閱 HIDI2C Device-Specific 方法 (_DSM) 。
按鈕裝置
針對 SoC 平臺,Windows 同時支援 ACPI 定義的控制方法電源按鈕,以及 Windows 相容的五個按鈕陣列。 電源按鈕,無論是實作為 ACPI 控制項方法電源按鈕或 Windows 相容按鈕陣列的一部分,都執行下列動作:
讓平臺關閉電源。
按住電源按鈕覆寫事件時產生。 如需詳細資訊,請參閱 ACPI 5.0 規格的 4.8.2.2.1.3 節「電源按鈕覆寫」。
控制方法電源按鈕
使用 ACPI 5.0 規格的第 4.8.2.1.2 節) GPIO-Signaled ACPI 5.0 規格) ACPI (5.0 規格) 實作 ACPI 5.6.5 一節的 ACPI 定義控制 (方法電源按鈕) 。 若要支援電源按鈕裝置,命名空間:
將電源按鈕的 GPIO 中斷針腳描述為非共用 (獨佔) GPIO 中斷資源。
列出電源按鈕的 GPIO 中斷資源,其所連接的 GPIO 控制器_AEI物件中。
在 GPIO 控制器裝置下提供相關聯的事件方法 (Lxx/Exx/EVT) 。 這個事件方法會通知作業系統中的 Control Method Button 驅動程式發生按鈕事件。
如需詳細資訊,請參閱Windows 8平板電腦和可轉換裝置的硬體按鈕。
Windows 相容按鈕陣列
對於觸控優先 (無鍵盤) 平臺,例如平板,Windows 提供五個按鈕陣列的一般驅動程式。 陣列中的每個按鈕都有其已定義的函式 (查看下列清單中的編號專案) ,而特定「按住和按下」按鈕組合在 UI 中也有其他意義。 未定義任何按鈕組合,需要按住電源按鈕。 為了與 Windows 收件匣按鈕驅動程式相容,會實作 Windows 相容的 Button Array ACPI 裝置。 裝置的定義如下:
這五個按鈕中的每一個都會連線到平臺上自己的專用中斷針腳。
每個中斷針腳都會設定為非共用 (獨佔) 、邊緣觸發 (Edge) 中斷資源,而中斷兩個邊緣 (ActiveBoth) 。
裝置命名空間包含廠商定義的_HID,以及 PNP0C40 _CID。
_CRS 物件中的 GPIO 中斷資源會依照下列順序列出:
對應至 [電源] 按鈕的中斷
[電源] 按鈕必須具備喚醒功能,才能 (ExclusiveAndWake) 。
對應至 [Windows] 按鈕的中斷
Windows 按鈕必須具備喚醒功能,才能 (ExclusiveAndWake) 。
對應至 [音量向上] 按鈕的中斷
「音量向上」按鈕不可喚醒, (必須使用獨佔) 。
對應至 [音量減少] 按鈕的中斷
「音量降低」按鈕不可喚醒, (必須使用獨佔) 。
如果支援,則中斷對應至 [旋轉鎖定] 按鈕
「旋轉鎖定」按鈕不得具有喚醒功能, (必須使用獨佔) 。
如需詳細資訊,請參閱Windows 8平板電腦和可轉換裝置的硬體按鈕。
為了支援 Windows 按鈕 UI 的演進,Windows 會定義 Windows Button Array 裝置的Device-Specific方法 (_DSM) 。 如需詳細資訊,請參閱 Windows Button Array Device-Specific 方法 (_DSM) 。
擴充和可轉換電腦感應器
Windows 支援使用 ACPI 命名空間中的兩個感應器裝置, (clamshell/平板電腦群組合) 。 Windows 收件匣按鈕驅動程式支援這些裝置。 請注意,適用于按鈕陣列裝置的相同需求也適用于這些裝置:
GPIO ActiveBoth 中斷必須連線到 SoC GPIO 控制器, (不是 SPB 連線的 GPIO 控制器) 。
GPIO 控制器必須支援層級模式中斷和動態極性重新程式設計。
GPIO 控制器驅動程式必須使用 GPIO 架構延伸模組 所提供的 ActiveBoth 模擬, (GpioClx) 。
如果判斷提示狀態 (「Docked」 或 「Converted」) 未判斷提示邏輯層級低,則需要 GPIO 控制器_DSM方法來覆寫 GPIO 驅動程式堆疊的預設行為。 如需詳細資訊,請參閱一般用途 I/O (GPIO) 主題中的GPIO 控制器裝置一節。
如需詳細資訊,請參閱Windows 8平板電腦和可轉換裝置的硬體按鈕。
停駐感應器裝置
停駐感知裝置會在從系統附加或取消附加停駐時中斷系統。 此模式變更資訊可用來視需要更新使用者輸入和輸出體驗。 裝置的命名空間需要:
廠商特定的_HID
PNP0C70 的_CID
具有一個 ActiveBoth 中斷的_CRS
中斷無法喚醒。
可轉換電腦檢測裝置
當可轉換電腦從平板電腦切換至 Clamshell 規格時,可轉換電腦時,可轉換的電腦就會中斷系統。 此模式變更資訊可用來視需要更新使用者輸入和輸出體驗。 裝置的命名空間需要:
廠商特定的_HID
A _CID of PNP0C60
具有一個 ActiveBoth 中斷的_CRS
中斷無法喚醒。