ACPI 表

下面列出了對各個 ACPI 表的期望。

如果使用節號,則它指的是 ACPI 規範中定義物件的節號。如果使用“簽名保留”,則表簽名(表的前四個位元組)是規範唯一認可的部分,並且實際的表是在 UEFI 論壇之外定義的(請參閱規範的第 5.2.6 節)。

對於 arm64 上的 ACPI,表也分為以下幾類

  • 必需:DSDT、FADT、GTDT、MADT、MCFG、RSDP、SPCR、XSDT

  • 推薦:BERT、EINJ、ERST、HEST、PCCT、SSDT

  • 可選:AGDI、BGRT、CEDT、CPEP、CSRT、DBG2、DRTM、ECDT、FACS、FPDT、HMAT、IBFT、IORT、MCHI、MPAM、MPST、MSCT、NFIT、PMTT、PPTT、RASF、SBST、SDEI、SLIT、SPMI、SRAT、STAO、TCPA、TPM2、UEFI、XENV

  • 不支援:AEST、APMT、BOOT、DBGP、DMAR、ETDT、HPET、IVRS、LPIT、MSDM、OEMx、PDTT、PSDT、RAS2、RSDT、SLIC、WAET、WDAT、WDRT、WPBT

ARMv8 Linux 的用法

AEST

簽名保留(signature == “AEST”)

Arm 錯誤源表

此表告知作業系統系統中任何符合 Arm RAS 架構的錯誤節點。

AGDI

簽名保留(signature == “AGDI”)

Arm 通用診斷轉儲和重置裝置介面表

此表描述了平臺韌體使用的非遮蔽事件,以請求作業系統生成診斷轉儲並重置裝置。

APMT

簽名保留(signature == “APMT”)

Arm 效能監控表

此表描述了系統中元件實現的 PMU 支援的屬性。

BERT

第 18.3 節(signature == “BERT”)

啟動錯誤記錄表

如果平臺提供 RAS 支援,則必須提供。 建議提供此表。

BOOT

簽名保留(signature == “BOOT”)

簡單 BOOT 標誌表

僅 Microsoft 表,將不受支援。

BGRT

第 5.2.22 節(signature == “BGRT”)

啟動圖形資源表

可選,當前不支援,對於 ARM 伺服器沒有實際用例。

CEDT

簽名保留(signature == “CEDT”)

CXL 早期發現表

此表允許作業系統發現任何 CXL 主機橋和主機橋暫存器。

CPEP

第 5.2.18 節(signature == “CPEP”)

糾正的平臺錯誤輪詢表

可選,當前不支援,並且在 ARM 相容硬體可用以及規範進行適當修改之前,不建議使用。

CSRT

簽名保留(signature == “CSRT”)

核心系統資源表

可選,當前不支援。

DBG2

簽名保留(signature == “DBG2”)

除錯埠表 2

許可證已更改,應該可以使用。 如果在命令列上使用它來代替 earlycon=<device>,則是可選的。

DBGP

簽名保留(signature == “DBGP”)

除錯埠表

僅 Microsoft 表,將不受支援。

DSDT

第 5.2.11.1 節(signature == “DSDT”)

區分系統描述表

需要 DSDT; 另請參見 SSDT。

ACPI 表僅包含一個 DSDT,但可以包含一個或多個 SSDT,它們是可選的。 每個 SSDT 只能新增到 ACPI 名稱空間,但不能修改或替換 DSDT 中的任何內容。

DMAR

簽名保留(signature == “DMAR”)

DMA 重對映表

僅 x86 表,將不受支援。

DRTM

簽名保留(signature == “DRTM”)

動態信任根,用於測量表

可選,當前不支援。

ECDT

第 5.2.16 節(signature == “ECDT”)

嵌入式控制器描述表

可選,當前不支援,但如果在硬體減少模式下使用 GPE_BIT 欄位來表示 IRQ 號,則可以在 ARM 上使用它,因為硬體減少模式下未定義 GPE 塊。 這需要在 ACPI 規範中進行修改。

EINJ

第 18.6 節(signature == “EINJ”)

錯誤注入表

此表對於測試平臺對錯誤情況的響應非常有用; 它允許人們將錯誤注入到系統中,就好像它實際發生了一樣。 但是,此表不應隨生產系統一起提供; 它應僅在測試期間使用 ACPICA 工具動態載入和執行。

ERST

第 18.5 節(signature == “ERST”)

錯誤記錄序列化表

在支援 RAS 的平臺上,如果它不是基於 UEFI 的,則必須提供此表; 如果它是基於 UEFI 的,則可以提供此表。 如果不存在此表,則將利用 UEFI 執行時服務來儲存硬體錯誤資訊並將其從持久儲存中檢索出來。

ETDT

簽名保留(signature == “ETDT”)

事件計時器描述表

過時的表,將不受支援。

FACS

第 5.2.10 節(signature == “FACS”)

韌體 ACPI 控制結構

此表不太可能非常有用。 如果提供了此表,則不會使用全域性鎖,因為它不是硬體減少配置檔案的一部分,並且只有 64 位地址欄位才被認為是有效的。

FADT

第 5.2.9 節(signature == “FACP”)

固定 ACPI 描述表 arm64 必需。

必須設定 HW_REDUCED_ACPI 標誌。 當設定 HW_REDUCED_ACPI 時要忽略的所有欄位都應設定為零。

如果提供了 FACS 表,則應使用 X_FIRMWARE_CTRL 欄位,而不是 FIRMWARE_CTRL。

如果使用 PSCI(建議使用),請確保正確填寫 ARM_BOOT_ARCH - 設定了 PSCI_COMPLIANT 標誌,並且根據需要設定或取消設定 PSCI_USE_HVC(請參閱表 5-37)。

對於也需要的 DSDT,應使用 X_DSDT 欄位,而不是 DSDT 欄位。

FPDT

第 5.2.23 節(signature == “FPDT”)

韌體效能資料表

可選,可用於啟動效能分析。

GTDT

第 5.2.24 節(signature == “GTDT”)

通用計時器描述表

arm64 必需。

HEST

第 18.3.2 節(signature == “HEST”)

硬體錯誤源表

已經定義了 ARM 特定的錯誤源; 請使用這些錯誤源或 PCI 型別,例如型別 6(AER 根埠)、7(AER 端點)或 8(AER 橋接器),或者使用型別 9(通用硬體錯誤源)。 如果且僅當 Trusted Firmware 在 arm64 上使用時,才有可能進行韌體優先的錯誤處理。

如果平臺提供 RAS 支援,則必須提供。 建議提供此表。

HMAT

第 5.2.28 節(signature == “HMAT”)

異構記憶體屬性表

此表描述了與記憶體鄰近域相關的記憶體屬性,例如記憶體端快取屬性以及頻寬和延遲詳細資訊。 作業系統使用此資訊來最佳化系統記憶體配置。

HPET

簽名保留(signature == “HPET”)

高精度事件計時器表

僅 x86 表,將不受支援。

IBFT

簽名保留(signature == “IBFT”)

iSCSI 啟動韌體表

Microsoft 定義的表,支援 TBD。

IORT

簽名保留(signature == “IORT”)

輸入輸出重對映表

僅 arm64 表,為了描述 IO 拓撲、SMMU 和 GIC ITS 以及這些各種元件如何連線在一起(例如,識別哪些元件位於哪些 SMMU/ITS 之後)是必需的。 此表僅在某些 SBSA 平臺上是必需的(例如,當使用 GICv3-ITS 和 SMMU 時); 在 SBSA 0 級平臺上,它仍然是可選的。

IVRS

簽名保留(signature == “IVRS”)

I/O 虛擬化報告結構

僅 x86_64 (AMD) 表,將不受支援。

LPIT

簽名保留(signature == “LPIT”)

低功耗空閒表

截至 ACPI 5.1 的僅 x86 表; 從 ACPI 6.0 開始,ARM 平臺上的處理器描述和電源狀態應使用 DSDT 並定義處理器容器裝置(_HID ACPI0010,第 8.4 節,更具體地說是 8.4.3 和 8.4.4)。

MADT

第 5.2.12 節(signature == “APIC”)

多 APIC 描述表

arm64 必需。 僅應使用 GIC 中斷控制器結構(型別 0xA - 0xF)。

MCFG

簽名保留(signature == “MCFG”)

記憶體對映配置空間

如果平臺支援 PCI/PCIe,則需要一個 MCFG 表。

MCHI

簽名保留(signature == “MCHI”)

管理控制器主機介面表

可選,當前不支援。

MPAM

簽名保留(signature == “MPAM”)

記憶體分割槽和監控表

此表允許作業系統發現子系統實現的 MPAM 控制。

MPST

第 5.2.21 節(signature == “MPST”)

記憶體電源狀態表

可選,當前不支援。

MSCT

第 5.2.19 節(signature == “MSCT”)

最大系統特性表

可選,當前不支援。

MSDM

簽名保留(signature == “MSDM”)

Microsoft 資料管理表

僅 Microsoft 表,將不受支援。

NFIT

第 5.2.25 節(signature == “NFIT”)

NVDIMM 韌體介面表

可選,當前不支援。

OEMx

僅“OEMx”簽名

OEM 特定表

所有以“OEM”簽名的表都保留供 OEM 使用。 由於這些表並非旨在通用使用,而是僅限於非常特定的終端使用者,因此不建議使用,並且核心不支援 arm64。

PCCT

第 14.1 節(signature == “PCCT)

平臺通訊通道表

建議在 arm64 上使用; 當使用 CPPC 來控制平臺處理器的效能和功耗時,建議使用 PCC。

PDTT

第 5.2.29 節(signature == “PDTT”)

平臺除錯觸發器表

此表描述了用於收集非架構特性除錯日誌的 PCC 通道。

PMTT

第 5.2.21.12 節(signature == “PMTT”)

平臺記憶體拓撲表

可選,當前不支援。

PPTT

第 5.2.30 節(signature == “PPTT”)

處理器屬性拓撲表

此表提供了處理器和快取拓撲。

PSDT

第 5.2.11.3 節(signature == “PSDT”)

持久系統描述表

過時的表,將不受支援。

RAS2

第 5.2.21 節(signature == “RAS2”)

RAS 特性 2 表

此表提供了在平臺中實現的 RAS 功能的介面。

RASF

第 5.2.20 節(signature == “RASF”)

RAS 特性表

可選,當前不支援。

RSDP

第 5.2.5 節(signature == “RSD PTR”)

根系統描述指標

arm64 必需。

RSDT

第 5.2.7 節(signature == “RSDT”)

根系統描述表

由於此表只能提供 32 位地址,因此它在 arm64 上已被棄用,並且不會被使用。 如果提供,它將被忽略。

SBST

第 5.2.14 節(signature == “SBST”)

智慧電池子系統表

可選,當前不支援。

SDEI

簽名保留(signature == “SDEI”)

軟體委託異常介面表

此表聲明瞭 SDEI 介面的存在。

SLIC

簽名保留(signature == “SLIC”)

軟體許可表

僅 Microsoft 表,將不受支援。

SLIT

第 5.2.17 節(signature == “SLIT”)

系統區域性性距離資訊表

通常是可選的,但對於 NUMA 系統是必需的。

SPCR

簽名保留(signature == “SPCR”)

序列埠控制檯重定向表

arm64 必需。

SPMI

簽名保留(signature == “SPMI”)

伺服器平臺管理介面表

可選,當前不支援。

SRAT

第 5.2.16 節(signature == “SRAT”)

系統資源親和性表

可選,但如果使用,則僅讀取 GICC 親和性結構。 為了支援 arm64 NUMA,需要此表。

SSDT

第 5.2.11.2 節(signature == “SSDT”)

輔助系統描述表

這些表是 DSDT 的延續; 建議將這些表用於可以新增到正在執行的系統的裝置,但也可以用於將裝置描述劃分為更易於管理的部分。

SSDT 只能新增到 ACPI 名稱空間。 它不能修改或替換名稱空間中已有的現有裝置描述。

但是,這些表是可選的。 ACPI 表應僅包含一個 DSDT,但可以包含多個 SSDT。

STAO

簽名保留(signature == “STAO”)

_STA 覆蓋表

可選,但僅在虛擬化環境中為了從訪客作業系統隱藏裝置才是必需的。

TCPA

簽名保留(signature == “TCPA”)

可信計算平臺聯盟表

可選,當前不支援,並且可能需要更改才能與 arm64 完全互操作。

TPM2

簽名保留(signature == “TPM2”)

可信平臺模組 2 表

可選,當前不支援,並且可能需要更改才能與 arm64 完全互操作。

UEFI

簽名保留(signature == “UEFI”)

UEFI ACPI 資料表

可選,當前不支援。 目前 arm64 沒有已知的用例。

WAET

簽名保留(signature == “WAET”)

Windows ACPI 模擬裝置表

僅 Microsoft 表,將不受支援。

WDAT

簽名保留(signature == “WDAT”)

看門狗操作表

僅 Microsoft 表,將不受支援。

WDRT

簽名保留(signature == “WDRT”)

看門狗資源表

僅 Microsoft 表,將不受支援。

WPBT

簽名保留(signature == “WPBT”)

Windows 平臺二進位制表

僅 Microsoft 表,將不受支援。

XENV

簽名保留(signature == “XENV”)

Xen 專案表

可選,目前僅由 Xen 使用。

XSDT

第 5.2.8 節(signature == “XSDT”)

擴充套件系統描述表

arm64 必需。

ACPI 物件

下面列出了對可能使用的各個 ACPI 物件的期望; 未明確提及的任何物件應根據特定平臺或特定子系統(例如電源管理或 PCI)的需要使用。

名稱

ARMv8 Linux 的用法

_CCA

6.2.17

必須為 arm64 上的所有匯流排主裝置定義此方法 - 不會對這些裝置是否具有快取一致性做出任何假設。 _CCA 值由這些裝置的所有後代繼承,因此無需重複。 如果 arm64 上沒有 _CCA,則核心不知道如何為裝置設定 DMA。

注意:此方法提供預設的快取一致性屬性; 但是,SMMU 的存在可用於修改它。 例如,主裝置可以預設為非一致性,但可以使用適當的 SMMU 配置使其一致(請參閱 IORT 規範的表 17,ARM 文件 DEN 0049B)。

_CID

6.1.2

根據需要使用,另請參見 _HID。

_CLS

6.1.3

根據需要使用,另請參見 _HID。

_CPC

8.4.7.1

根據需要使用,特定於電源管理。 建議在 arm64 上使用 CPPC。

_CRS

6.2.2

arm64 必需。

_CSD

8.4.2.2

根據需要使用,僅與 _CST 結合使用。

_CST

8.4.2.1

建議使用低功耗空閒狀態 (8.4.4) 而不是 C 狀態。

_DDN

6.1.4

此欄位可用於裝置名稱。 但是,它是為 DOS 裝置名稱(例如,COM1)設計的,因此請注意它在作業系統中的使用。

_DSD

6.2.5

謹慎使用。 如果使用此物件,請嘗試在裝置屬性 UUID 已經定義的約束中使用它。 僅在極少數情況下才需要建立新的 _DSD UUID。

在任何一種情況下,都應提交 _DSD 定義以及任何驅動程式補丁以供討論,尤其是在使用裝置屬性時。 如果沒有相應的 _DSD 描述,則不會認為驅動程式已完成。 獲得核心維護人員的批准後,必須將 UUID 或裝置屬性註冊到 UEFI 論壇; 這可能會導致一些迭代,因為將有多個作業系統註冊條目。

_DSM

9.1.1

請勿使用此方法。 它未標準化,返回值沒有很好的文件記錄,並且目前是錯誤的常見來源。

_GL

5.7.1

此物件不能在硬體減少模式下使用,因此不應在 arm64 上使用。

_GLK

6.5.7

此物件需要定義全域性鎖; 由於 arm64 在硬體減少模式下執行,因此沒有全域性鎖。 因此,請勿在 arm64 上使用此物件。

_GPE

5.3.1

此名稱空間僅供 x86 使用。 請勿在 arm64 上使用它。

_HID

6.1.5

這是裝置探測中使用的主要物件,儘管也可以使用 _CID 和 _CLS。

_INI

6.5.1

不是必需的,但在 UEFI 將裝置留在驅動程式開始探測之前可能不是驅動程式期望的狀態時,它可以用於設定裝置。

_LPI

8.4.4.3

建議在 arm64 上與處理器定義 (_HID ACPI0010) 一起使用。 另請參見 _RDI。

_MLS

6.1.7

強烈推薦在國際化中使用。

_OFF

7.2.2

建議為任何可以開啟或關閉的裝置定義此方法。

_ON

7.2.3

建議為任何可以開啟或關閉的裝置定義此方法。

_OS

5.7.3

預設情況下,此方法將返回“Linux”(這是Linux上宏ACPI_OS_NAME的值)。命令列引數 acpi_os=<字串> 可用於將其設定為其他值。

_OSC

6.2.11

此方法可以是ACPI中的全域性方法(即_SB._OSC),也可以與特定裝置關聯(例如,_SB.DEV0._OSC),或者兩者都有。 當用作全域性方法時,僅允許在ACPI規範中釋出的功能。 當用作裝置特定方法時,必須使用為_DSD描述的過程來建立_OSC定義; 不允許脫離程序使用 _OSC。 也就是說,將裝置特定的 _OSC 用法描述作為核心驅動程式提交的一部分提交,獲得核心社群的批准,然後將其註冊到UEFI論壇。

_OSI

5.7.2

在ARM64上已棄用。 就ACPI韌體而言,_OSI 不應用於確定正在使用哪種系統或提供什麼功能。 應該使用 _OSC 方法代替。

_PDC

8.4.1

已棄用,請勿在 arm64 上使用。

_PIC

5.8.1

不應使用該方法。 在 arm64 上,唯一可用的中斷模型是 GIC。

_PR

5.3.1

此名稱空間僅適用於傳統系統上的 x86。 請勿在 arm64 上使用它。

_PRT

6.2.13

作為所有 PCI 根裝置定義的一部分是必需的。

_PRx

7.3.8-11

根據需要使用;特定於電源管理。 如果定義了 _PR0,則還必須定義 _PR3。

_PSx

7.3.2-5

根據需要使用;特定於電源管理。 如果定義了 _PS0,則還必須定義 _PS3。 如果時鐘或調節器需要調整以與功耗保持一致,請在這些方法中更改它們。

_RDI

8.4.4.4

建議與 arm64 上的處理器定義 (_HID ACPI0010) 一起使用。 這應該僅與 _LPI 結合使用。

_REV

5.7.4

始終返回支援的最新 ACPI 版本。

_SB

5.3.1

在 arm64 上是必需的; 所有裝置都必須在此名稱空間中定義。

_SLI

6.2.15

當使用 SLIT 表時,建議使用。

_STA

6.3.7, 7.2.4

建議為任何可以開啟或關閉的裝置定義此方法。 另請參閱 STAO 表,該表提供覆蓋以隱藏虛擬化環境中的裝置。

_SRS

6.2.16

根據需要使用; 另請參見 _PRS。

_STR

6.1.10

建議用於向終端使用者傳達裝置名稱; 優先使用它而不是 _DDN。

_SUB

6.1.9

根據需要使用; 優先使用 _HID 或 _CID。

_SUN

6.1.11

根據需要使用,但建議使用。

_SWS

7.4.3

根據需要使用;特定於電源管理; 這可能需要規範更改才能在 arm64 上使用。

_UID

6.1.12

建議用於區分同一類的裝置; 如果可能,請定義它。

ACPI 事件模型

請勿使用 GPE 塊裝置; arm64 使用的硬體精簡配置檔案不支援這些裝置。 由於沒有為 ARM 平臺定義 GPE 塊,因此必須以不同的方式發出 ACPI 事件訊號。

有兩種選擇:GPIO 訊號中斷(第 5.6.5 節)和中斷訊號事件(第 5.6.9 節)。 中斷訊號事件是 ACPI 6.1 規範中的一項新功能。 在給定平臺上可以使用其中任何一種 - 或兩種 - 使用哪一種可能取決於任何給定 SoC 的限制。 如果可能,建議使用中斷訊號事件。

ACPI 處理器控制

ACPI 規範的第 8 節在版本 6.0 中發生了重大變化。 現在應將處理器定義為 _HID ACPI0007 的 Device 物件; 請勿在 ASL 中使用已棄用的 Processor 語句。 所有多處理器系統還應定義一個處理器層次結構,該層次結構使用處理器容器裝置完成(請參見第 8.4.3.1 節,_HID ACPI0010); 請勿使用處理器聚合器裝置(第 8.5 節)來描述處理器拓撲。 該規範的第 8.4 節描述了這些物件定義的語義以及它們之間的相互關係。

最重要的是,定義的處理器層次結構還定義了平臺可用的低功耗空閒狀態,以及用於確定可以開啟或關閉哪些處理器以及控制該狀態的情況的規則。 如果沒有此資訊,處理器將以 UEFI 留下的任何電源狀態執行。

還要注意,定義的處理器 Device 物件和 MADT 中 GIC 的條目預計是同步的。 Device 物件的 _UID 必須與 MADT 中使用的處理器 ID 相對應。

建議將 CPPC (8.4.5) 用作 arm64 上處理器效能控制的主要模型。 C 狀態和 P 狀態可能會在將來的某個時候可用,但目前大多數設計工作似乎傾向於 CPPC。

此外,至關重要的是 ARMv8 SoC 提供 PSCI 的完整功能實現; 這將是 ACPI 支援的控制 CPU 電源狀態的唯一機制。 可以使用 ACPI 停車協議引導輔助 CPU,但不建議這樣做,因為只有 PSCI 支援 ARM 伺服器。

ACPI 系統地址對映介面

在 ACPI 規範的第 15 節中,提到了幾種方法,作為將記憶體資源資訊傳遞給核心的可能機制。 對於 arm64,我們將僅支援使用 ACPI 引導的 UEFI,因此 UEFI GetMemoryMap() 引導服務將是唯一使用的機制。

ACPI 平臺錯誤介面 (APEI)

上面描述了支援的 APEI 表。

APEI 需要 ARMv8 上的 SCI 和 NMI 等效項。 SCI 用於通知 OSPM 已經發生的錯誤,但可以糾正,並且系統可以繼續正常執行,即使可能降級。 NMI 用於指示無法糾正的致命錯誤,需要立即關注。

由於沒有 x86 SCI 或 NMI 的直接等效項,因此 arm64 對這些的處理方式略有不同。 SCI 作為高優先順序中斷處理; 鑑於這些是被報告的已更正(或可更正)的錯誤,這已足夠。 NMI 模擬為儘可能高的優先順序中斷。 這意味著必須小心使用,因為可能存在更高許可權級別的中斷,甚至存在與模擬 NMI 相同優先順序的中斷。 在 Linux 中,情況不應如此,但應意識到可能發生這種情況。

ARM64 上不支援的 ACPI 物件

雖然這將來可能會改變,但可以定義幾種類的物件,但目前 ARM 伺服器通常不感興趣。 其中一些物件具有 x86 等效項,並且實際上可能在 ARM 伺服器中很有意義。 但是,目前沒有可用的硬體,或者甚至可能還沒有非 ARM 實現。 因此,目前不支援它們。

不支援以下類別的物件

  • 第 9.2 節:環境光感測器裝置

  • 第 9.3 節:電池裝置

  • 第 9.4 節:蓋子(例如,筆記型電腦蓋子)

  • 第 9.8.2 節:IDE 控制器

  • 第 9.9 節:軟盤控制器

  • 第 9.10 節:GPE 塊裝置

  • 第 9.15 節:PC/AT RTC/CMOS 裝置

  • 第 9.16 節:使用者存在檢測裝置

  • 第 9.17 節:I/O APIC 裝置; 所有 GIC 必須透過 MADT 可列舉

  • 第 9.18 節:時間和鬧鐘裝置(請參見 9.15)

  • 第 10 節:電源和電錶裝置

  • 第 11 節:散熱管理

  • 第 12 節:嵌入式控制器介面

  • 第 13 節:SMBus 介面

這也意味著不支援以下物件

名稱

名稱

_ALC

9.3.4

_FDM

9.10.3

_ALI

9.3.2

_FIX

6.2.7

_ALP

9.3.6

_GAI

10.4.5

_ALR

9.3.5

_GHL

10.4.7

_ALT

9.3.3

_GTM

9.9.2.1.1

_BCT

10.2.2.10

_LID

9.5.1

_BDN

6.5.3

_PAI

10.4.4

_BIF

10.2.2.1

_PCL

10.3.2

_BIX

10.2.2.1

_PIF

10.3.3

_BLT

9.2.3

_PMC

10.4.1

_BMA

10.2.2.4

_PMD

10.4.8

_BMC

10.2.2.12

_PMM

10.4.3

_BMD

10.2.2.11

_PRL

10.3.4

_BMS

10.2.2.5

_PSR

10.3.1

_BST

10.2.2.6

_PTP

10.4.2

_BTH

10.2.2.7

_SBS

10.1.3

_BTM

10.2.2.9

_SHL

10.4.6

_BTP

10.2.2.8

_STM

9.9.2.1.1

_DCK

6.5.2

_UPD

9.16.1

_EC

12.12

_UPP

9.16.2

_FDE

9.10.1

_WPC

10.5.2

_FDI

9.10.2

_WPP

10.5.3