| =========== | |
| ACPI Tables | |
| =========== | |
| The expectations of individual ACPI tables are discussed in the list that | |
| follows. | |
| If a section number is used, it refers to a section number in the ACPI | |
| specification where the object is defined. If "Signature Reserved" is used, | |
| the table signature (the first four bytes of the table) is the only portion | |
| of the table recognized by the specification, and the actual table is defined | |
| outside of the UEFI Forum (see Section 5.2.6 of the specification). | |
| For ACPI on arm64, tables also fall into the following categories: | |
| - Required: DSDT, FADT, GTDT, MADT, MCFG, RSDP, SPCR, XSDT | |
| - Recommended: BERT, EINJ, ERST, HEST, PCCT, SSDT | |
| - Optional: BGRT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT, IORT, | |
| MCHI, MPST, MSCT, NFIT, PMTT, RASF, SBST, SLIT, SPMI, SRAT, STAO, | |
| TCPA, TPM2, UEFI, XENV | |
| - Not supported: BOOT, DBGP, DMAR, ETDT, HPET, IBFT, IVRS, LPIT, | |
| MSDM, OEMx, PSDT, RSDT, SLIC, WAET, WDAT, WDRT, WPBT | |
| ====== ======================================================================== | |
| Table Usage for ARMv8 Linux | |
| ====== ======================================================================== | |
| BERT Section 18.3 (signature == "BERT") | |
| **Boot Error Record Table** | |
| Must be supplied if RAS support is provided by the platform. It | |
| is recommended this table be supplied. | |
| BOOT Signature Reserved (signature == "BOOT") | |
| **simple BOOT flag table** | |
| Microsoft only table, will not be supported. | |
| BGRT Section 5.2.22 (signature == "BGRT") | |
| **Boot Graphics Resource Table** | |
| Optional, not currently supported, with no real use-case for an | |
| ARM server. | |
| CPEP Section 5.2.18 (signature == "CPEP") | |
| **Corrected Platform Error Polling table** | |
| Optional, not currently supported, and not recommended until such | |
| time as ARM-compatible hardware is available, and the specification | |
| suitably modified. | |
| CSRT Signature Reserved (signature == "CSRT") | |
| **Core System Resources Table** | |
| Optional, not currently supported. | |
| DBG2 Signature Reserved (signature == "DBG2") | |
| **DeBuG port table 2** | |
| License has changed and should be usable. Optional if used instead | |
| of earlycon=<device> on the command line. | |
| DBGP Signature Reserved (signature == "DBGP") | |
| **DeBuG Port table** | |
| Microsoft only table, will not be supported. | |
| DSDT Section 5.2.11.1 (signature == "DSDT") | |
| **Differentiated System Description Table** | |
| A DSDT is required; see also SSDT. | |
| ACPI tables contain only one DSDT but can contain one or more SSDTs, | |
| which are optional. Each SSDT can only add to the ACPI namespace, | |
| but cannot modify or replace anything in the DSDT. | |
| DMAR Signature Reserved (signature == "DMAR") | |
| **DMA Remapping table** | |
| x86 only table, will not be supported. | |
| DRTM Signature Reserved (signature == "DRTM") | |
| **Dynamic Root of Trust for Measurement table** | |
| Optional, not currently supported. | |
| ECDT Section 5.2.16 (signature == "ECDT") | |
| **Embedded Controller Description Table** | |
| Optional, not currently supported, but could be used on ARM if and | |
| only if one uses the GPE_BIT field to represent an IRQ number, since | |
| there are no GPE blocks defined in hardware reduced mode. This would | |
| need to be modified in the ACPI specification. | |
| EINJ Section 18.6 (signature == "EINJ") | |
| **Error Injection table** | |
| This table is very useful for testing platform response to error | |
| conditions; it allows one to inject an error into the system as | |
| if it had actually occurred. However, this table should not be | |
| shipped with a production system; it should be dynamically loaded | |
| and executed with the ACPICA tools only during testing. | |
| ERST Section 18.5 (signature == "ERST") | |
| **Error Record Serialization Table** | |
| On a platform supports RAS, this table must be supplied if it is not | |
| UEFI-based; if it is UEFI-based, this table may be supplied. When this | |
| table is not present, UEFI run time service will be utilized to save | |
| and retrieve hardware error information to and from a persistent store. | |
| ETDT Signature Reserved (signature == "ETDT") | |
| **Event Timer Description Table** | |
| Obsolete table, will not be supported. | |
| FACS Section 5.2.10 (signature == "FACS") | |
| **Firmware ACPI Control Structure** | |
| It is unlikely that this table will be terribly useful. If it is | |
| provided, the Global Lock will NOT be used since it is not part of | |
| the hardware reduced profile, and only 64-bit address fields will | |
| be considered valid. | |
| FADT Section 5.2.9 (signature == "FACP") | |
| **Fixed ACPI Description Table** | |
| Required for arm64. | |
| The HW_REDUCED_ACPI flag must be set. All of the fields that are | |
| to be ignored when HW_REDUCED_ACPI is set are expected to be set to | |
| zero. | |
| If an FACS table is provided, the X_FIRMWARE_CTRL field is to be | |
| used, not FIRMWARE_CTRL. | |
| If PSCI is used (as is recommended), make sure that ARM_BOOT_ARCH is | |
| filled in properly - that the PSCI_COMPLIANT flag is set and that | |
| PSCI_USE_HVC is set or unset as needed (see table 5-37). | |
| For the DSDT that is also required, the X_DSDT field is to be used, | |
| not the DSDT field. | |
| FPDT Section 5.2.23 (signature == "FPDT") | |
| **Firmware Performance Data Table** | |
| Optional, not currently supported. | |
| GTDT Section 5.2.24 (signature == "GTDT") | |
| **Generic Timer Description Table** | |
| Required for arm64. | |
| HEST Section 18.3.2 (signature == "HEST") | |
| **Hardware Error Source Table** | |
| ARM-specific error sources have been defined; please use those or the | |
| PCI types such as type 6 (AER Root Port), 7 (AER Endpoint), or 8 (AER | |
| Bridge), or use type 9 (Generic Hardware Error Source). Firmware first | |
| error handling is possible if and only if Trusted Firmware is being | |
| used on arm64. | |
| Must be supplied if RAS support is provided by the platform. It | |
| is recommended this table be supplied. | |
| HPET Signature Reserved (signature == "HPET") | |
| **High Precision Event timer Table** | |
| x86 only table, will not be supported. | |
| IBFT Signature Reserved (signature == "IBFT") | |
| **iSCSI Boot Firmware Table** | |
| Microsoft defined table, support TBD. | |
| IORT Signature Reserved (signature == "IORT") | |
| **Input Output Remapping Table** | |
| arm64 only table, required in order to describe IO topology, SMMUs, | |
| and GIC ITSs, and how those various components are connected together, | |
| such as identifying which components are behind which SMMUs/ITSs. | |
| This table will only be required on certain SBSA platforms (e.g., | |
| when using GICv3-ITS and an SMMU); on SBSA Level 0 platforms, it | |
| remains optional. | |
| IVRS Signature Reserved (signature == "IVRS") | |
| **I/O Virtualization Reporting Structure** | |
| x86_64 (AMD) only table, will not be supported. | |
| LPIT Signature Reserved (signature == "LPIT") | |
| **Low Power Idle Table** | |
| x86 only table as of ACPI 5.1; starting with ACPI 6.0, processor | |
| descriptions and power states on ARM platforms should use the DSDT | |
| and define processor container devices (_HID ACPI0010, Section 8.4, | |
| and more specifically 8.4.3 and 8.4.4). | |
| MADT Section 5.2.12 (signature == "APIC") | |
| **Multiple APIC Description Table** | |
| Required for arm64. Only the GIC interrupt controller structures | |
| should be used (types 0xA - 0xF). | |
| MCFG Signature Reserved (signature == "MCFG") | |
| **Memory-mapped ConFiGuration space** | |
| If the platform supports PCI/PCIe, an MCFG table is required. | |
| MCHI Signature Reserved (signature == "MCHI") | |
| **Management Controller Host Interface table** | |
| Optional, not currently supported. | |
| MPST Section 5.2.21 (signature == "MPST") | |
| **Memory Power State Table** | |
| Optional, not currently supported. | |
| MSCT Section 5.2.19 (signature == "MSCT") | |
| **Maximum System Characteristic Table** | |
| Optional, not currently supported. | |
| MSDM Signature Reserved (signature == "MSDM") | |
| **Microsoft Data Management table** | |
| Microsoft only table, will not be supported. | |
| NFIT Section 5.2.25 (signature == "NFIT") | |
| **NVDIMM Firmware Interface Table** | |
| Optional, not currently supported. | |
| OEMx Signature of "OEMx" only | |
| **OEM Specific Tables** | |
| All tables starting with a signature of "OEM" are reserved for OEM | |
| use. Since these are not meant to be of general use but are limited | |
| to very specific end users, they are not recommended for use and are | |
| not supported by the kernel for arm64. | |
| PCCT Section 14.1 (signature == "PCCT) | |
| **Platform Communications Channel Table** | |
| Recommend for use on arm64; use of PCC is recommended when using CPPC | |
| to control performance and power for platform processors. | |
| PMTT Section 5.2.21.12 (signature == "PMTT") | |
| **Platform Memory Topology Table** | |
| Optional, not currently supported. | |
| PSDT Section 5.2.11.3 (signature == "PSDT") | |
| **Persistent System Description Table** | |
| Obsolete table, will not be supported. | |
| RASF Section 5.2.20 (signature == "RASF") | |
| **RAS Feature table** | |
| Optional, not currently supported. | |
| RSDP Section 5.2.5 (signature == "RSD PTR") | |
| **Root System Description PoinTeR** | |
| Required for arm64. | |
| RSDT Section 5.2.7 (signature == "RSDT") | |
| **Root System Description Table** | |
| Since this table can only provide 32-bit addresses, it is deprecated | |
| on arm64, and will not be used. If provided, it will be ignored. | |
| SBST Section 5.2.14 (signature == "SBST") | |
| **Smart Battery Subsystem Table** | |
| Optional, not currently supported. | |
| SLIC Signature Reserved (signature == "SLIC") | |
| **Software LIcensing table** | |
| Microsoft only table, will not be supported. | |
| SLIT Section 5.2.17 (signature == "SLIT") | |
| **System Locality distance Information Table** | |
| Optional in general, but required for NUMA systems. | |
| SPCR Signature Reserved (signature == "SPCR") | |
| **Serial Port Console Redirection table** | |
| Required for arm64. | |
| SPMI Signature Reserved (signature == "SPMI") | |
| **Server Platform Management Interface table** | |
| Optional, not currently supported. | |
| SRAT Section 5.2.16 (signature == "SRAT") | |
| **System Resource Affinity Table** | |
| Optional, but if used, only the GICC Affinity structures are read. | |
| To support arm64 NUMA, this table is required. | |
| SSDT Section 5.2.11.2 (signature == "SSDT") | |
| **Secondary System Description Table** | |
| These tables are a continuation of the DSDT; these are recommended | |
| for use with devices that can be added to a running system, but can | |
| also serve the purpose of dividing up device descriptions into more | |
| manageable pieces. | |
| An SSDT can only ADD to the ACPI namespace. It cannot modify or | |
| replace existing device descriptions already in the namespace. | |
| These tables are optional, however. ACPI tables should contain only | |
| one DSDT but can contain many SSDTs. | |
| STAO Signature Reserved (signature == "STAO") | |
| **_STA Override table** | |
| Optional, but only necessary in virtualized environments in order to | |
| hide devices from guest OSs. | |
| TCPA Signature Reserved (signature == "TCPA") | |
| **Trusted Computing Platform Alliance table** | |
| Optional, not currently supported, and may need changes to fully | |
| interoperate with arm64. | |
| TPM2 Signature Reserved (signature == "TPM2") | |
| **Trusted Platform Module 2 table** | |
| Optional, not currently supported, and may need changes to fully | |
| interoperate with arm64. | |
| UEFI Signature Reserved (signature == "UEFI") | |
| **UEFI ACPI data table** | |
| Optional, not currently supported. No known use case for arm64, | |
| at present. | |
| WAET Signature Reserved (signature == "WAET") | |
| **Windows ACPI Emulated devices Table** | |
| Microsoft only table, will not be supported. | |
| WDAT Signature Reserved (signature == "WDAT") | |
| **Watch Dog Action Table** | |
| Microsoft only table, will not be supported. | |
| WDRT Signature Reserved (signature == "WDRT") | |
| **Watch Dog Resource Table** | |
| Microsoft only table, will not be supported. | |
| WPBT Signature Reserved (signature == "WPBT") | |
| **Windows Platform Binary Table** | |
| Microsoft only table, will not be supported. | |
| XENV Signature Reserved (signature == "XENV") | |
| **Xen project table** | |
| Optional, used only by Xen at present. | |
| XSDT Section 5.2.8 (signature == "XSDT") | |
| **eXtended System Description Table** | |
| Required for arm64. | |
| ====== ======================================================================== | |
| ACPI Objects | |
| ------------ | |
| The expectations on individual ACPI objects that are likely to be used are | |
| shown in the list that follows; any object not explicitly mentioned below | |
| should be used as needed for a particular platform or particular subsystem, | |
| such as power management or PCI. | |
| ===== ================ ======================================================== | |
| Name Section Usage for ARMv8 Linux | |
| ===== ================ ======================================================== | |
| _CCA 6.2.17 This method must be defined for all bus masters | |
| on arm64 - there are no assumptions made about | |
| whether such devices are cache coherent or not. | |
| The _CCA value is inherited by all descendants of | |
| these devices so it does not need to be repeated. | |
| Without _CCA on arm64, the kernel does not know what | |
| to do about setting up DMA for the device. | |
| NB: this method provides default cache coherency | |
| attributes; the presence of an SMMU can be used to | |
| modify that, however. For example, a master could | |
| default to non-coherent, but be made coherent with | |
| the appropriate SMMU configuration (see Table 17 of | |
| the IORT specification, ARM Document DEN 0049B). | |
| _CID 6.1.2 Use as needed, see also _HID. | |
| _CLS 6.1.3 Use as needed, see also _HID. | |
| _CPC 8.4.7.1 Use as needed, power management specific. CPPC is | |
| recommended on arm64. | |
| _CRS 6.2.2 Required on arm64. | |
| _CSD 8.4.2.2 Use as needed, used only in conjunction with _CST. | |
| _CST 8.4.2.1 Low power idle states (8.4.4) are recommended instead | |
| of C-states. | |
| _DDN 6.1.4 This field can be used for a device name. However, | |
| it is meant for DOS device names (e.g., COM1), so be | |
| careful of its use across OSes. | |
| _DSD 6.2.5 To be used with caution. If this object is used, try | |
| to use it within the constraints already defined by the | |
| Device Properties UUID. Only in rare circumstances | |
| should it be necessary to create a new _DSD UUID. | |
| In either case, submit the _DSD definition along with | |
| any driver patches for discussion, especially when | |
| device properties are used. A driver will not be | |
| considered complete without a corresponding _DSD | |
| description. Once approved by kernel maintainers, | |
| the UUID or device properties must then be registered | |
| with the UEFI Forum; this may cause some iteration as | |
| more than one OS will be registering entries. | |
| _DSM 9.1.1 Do not use this method. It is not standardized, the | |
| return values are not well documented, and it is | |
| currently a frequent source of error. | |
| \_GL 5.7.1 This object is not to be used in hardware reduced | |
| mode, and therefore should not be used on arm64. | |
| _GLK 6.5.7 This object requires a global lock be defined; there | |
| is no global lock on arm64 since it runs in hardware | |
| reduced mode. Hence, do not use this object on arm64. | |
| \_GPE 5.3.1 This namespace is for x86 use only. Do not use it | |
| on arm64. | |
| _HID 6.1.5 This is the primary object to use in device probing, | |
| though _CID and _CLS may also be used. | |
| _INI 6.5.1 Not required, but can be useful in setting up devices | |
| when UEFI leaves them in a state that may not be what | |
| the driver expects before it starts probing. | |
| _LPI 8.4.4.3 Recommended for use with processor definitions (_HID | |
| ACPI0010) on arm64. See also _RDI. | |
| _MLS 6.1.7 Highly recommended for use in internationalization. | |
| _OFF 7.2.2 It is recommended to define this method for any device | |
| that can be turned on or off. | |
| _ON 7.2.3 It is recommended to define this method for any device | |
| that can be turned on or off. | |
| \_OS 5.7.3 This method will return "Linux" by default (this is | |
| the value of the macro ACPI_OS_NAME on Linux). The | |
| command line parameter acpi_os=<string> can be used | |
| to set it to some other value. | |
| _OSC 6.2.11 This method can be a global method in ACPI (i.e., | |
| \_SB._OSC), or it may be associated with a specific | |
| device (e.g., \_SB.DEV0._OSC), or both. When used | |
| as a global method, only capabilities published in | |
| the ACPI specification are allowed. When used as | |
| a device-specific method, the process described for | |
| using _DSD MUST be used to create an _OSC definition; | |
| out-of-process use of _OSC is not allowed. That is, | |
| submit the device-specific _OSC usage description as | |
| part of the kernel driver submission, get it approved | |
| by the kernel community, then register it with the | |
| UEFI Forum. | |
| \_OSI 5.7.2 Deprecated on ARM64. As far as ACPI firmware is | |
| concerned, _OSI is not to be used to determine what | |
| sort of system is being used or what functionality | |
| is provided. The _OSC method is to be used instead. | |
| _PDC 8.4.1 Deprecated, do not use on arm64. | |
| \_PIC 5.8.1 The method should not be used. On arm64, the only | |
| interrupt model available is GIC. | |
| \_PR 5.3.1 This namespace is for x86 use only on legacy systems. | |
| Do not use it on arm64. | |
| _PRT 6.2.13 Required as part of the definition of all PCI root | |
| devices. | |
| _PRx 7.3.8-11 Use as needed; power management specific. If _PR0 is | |
| defined, _PR3 must also be defined. | |
| _PSx 7.3.2-5 Use as needed; power management specific. If _PS0 is | |
| defined, _PS3 must also be defined. If clocks or | |
| regulators need adjusting to be consistent with power | |
| usage, change them in these methods. | |
| _RDI 8.4.4.4 Recommended for use with processor definitions (_HID | |
| ACPI0010) on arm64. This should only be used in | |
| conjunction with _LPI. | |
| \_REV 5.7.4 Always returns the latest version of ACPI supported. | |
| \_SB 5.3.1 Required on arm64; all devices must be defined in this | |
| namespace. | |
| _SLI 6.2.15 Use is recommended when SLIT table is in use. | |
| _STA 6.3.7, It is recommended to define this method for any device | |
| 7.2.4 that can be turned on or off. See also the STAO table | |
| that provides overrides to hide devices in virtualized | |
| environments. | |
| _SRS 6.2.16 Use as needed; see also _PRS. | |
| _STR 6.1.10 Recommended for conveying device names to end users; | |
| this is preferred over using _DDN. | |
| _SUB 6.1.9 Use as needed; _HID or _CID are preferred. | |
| _SUN 6.1.11 Use as needed, but recommended. | |
| _SWS 7.4.3 Use as needed; power management specific; this may | |
| require specification changes for use on arm64. | |
| _UID 6.1.12 Recommended for distinguishing devices of the same | |
| class; define it if at all possible. | |
| ===== ================ ======================================================== | |
| ACPI Event Model | |
| ---------------- | |
| Do not use GPE block devices; these are not supported in the hardware reduced | |
| profile used by arm64. Since there are no GPE blocks defined for use on ARM | |
| platforms, ACPI events must be signaled differently. | |
| There are two options: GPIO-signaled interrupts (Section 5.6.5), and | |
| interrupt-signaled events (Section 5.6.9). Interrupt-signaled events are a | |
| new feature in the ACPI 6.1 specification. Either - or both - can be used | |
| on a given platform, and which to use may be dependent of limitations in any | |
| given SoC. If possible, interrupt-signaled events are recommended. | |
| ACPI Processor Control | |
| ---------------------- | |
| Section 8 of the ACPI specification changed significantly in version 6.0. | |
| Processors should now be defined as Device objects with _HID ACPI0007; do | |
| not use the deprecated Processor statement in ASL. All multiprocessor systems | |
| should also define a hierarchy of processors, done with Processor Container | |
| Devices (see Section 8.4.3.1, _HID ACPI0010); do not use processor aggregator | |
| devices (Section 8.5) to describe processor topology. Section 8.4 of the | |
| specification describes the semantics of these object definitions and how | |
| they interrelate. | |
| Most importantly, the processor hierarchy defined also defines the low power | |
| idle states that are available to the platform, along with the rules for | |
| determining which processors can be turned on or off and the circumstances | |
| that control that. Without this information, the processors will run in | |
| whatever power state they were left in by UEFI. | |
| Note too, that the processor Device objects defined and the entries in the | |
| MADT for GICs are expected to be in synchronization. The _UID of the Device | |
| object must correspond to processor IDs used in the MADT. | |
| It is recommended that CPPC (8.4.5) be used as the primary model for processor | |
| performance control on arm64. C-states and P-states may become available at | |
| some point in the future, but most current design work appears to favor CPPC. | |
| Further, it is essential that the ARMv8 SoC provide a fully functional | |
| implementation of PSCI; this will be the only mechanism supported by ACPI | |
| to control CPU power state. Booting of secondary CPUs using the ACPI | |
| parking protocol is possible, but discouraged, since only PSCI is supported | |
| for ARM servers. | |
| ACPI System Address Map Interfaces | |
| ---------------------------------- | |
| In Section 15 of the ACPI specification, several methods are mentioned as | |
| possible mechanisms for conveying memory resource information to the kernel. | |
| For arm64, we will only support UEFI for booting with ACPI, hence the UEFI | |
| GetMemoryMap() boot service is the only mechanism that will be used. | |
| ACPI Platform Error Interfaces (APEI) | |
| ------------------------------------- | |
| The APEI tables supported are described above. | |
| APEI requires the equivalent of an SCI and an NMI on ARMv8. The SCI is used | |
| to notify the OSPM of errors that have occurred but can be corrected and the | |
| system can continue correct operation, even if possibly degraded. The NMI is | |
| used to indicate fatal errors that cannot be corrected, and require immediate | |
| attention. | |
| Since there is no direct equivalent of the x86 SCI or NMI, arm64 handles | |
| these slightly differently. The SCI is handled as a high priority interrupt; | |
| given that these are corrected (or correctable) errors being reported, this | |
| is sufficient. The NMI is emulated as the highest priority interrupt | |
| possible. This implies some caution must be used since there could be | |
| interrupts at higher privilege levels or even interrupts at the same priority | |
| as the emulated NMI. In Linux, this should not be the case but one should | |
| be aware it could happen. | |
| ACPI Objects Not Supported on ARM64 | |
| ----------------------------------- | |
| While this may change in the future, there are several classes of objects | |
| that can be defined, but are not currently of general interest to ARM servers. | |
| Some of these objects have x86 equivalents, and may actually make sense in ARM | |
| servers. However, there is either no hardware available at present, or there | |
| may not even be a non-ARM implementation yet. Hence, they are not currently | |
| supported. | |
| The following classes of objects are not supported: | |
| - Section 9.2: ambient light sensor devices | |
| - Section 9.3: battery devices | |
| - Section 9.4: lids (e.g., laptop lids) | |
| - Section 9.8.2: IDE controllers | |
| - Section 9.9: floppy controllers | |
| - Section 9.10: GPE block devices | |
| - Section 9.15: PC/AT RTC/CMOS devices | |
| - Section 9.16: user presence detection devices | |
| - Section 9.17: I/O APIC devices; all GICs must be enumerable via MADT | |
| - Section 9.18: time and alarm devices (see 9.15) | |
| - Section 10: power source and power meter devices | |
| - Section 11: thermal management | |
| - Section 12: embedded controllers interface | |
| - Section 13: SMBus interfaces | |
| This also means that there is no support for the following objects: | |
| ==== =========================== ==== ========== | |
| Name Section Name Section | |
| ==== =========================== ==== ========== | |
| _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 | |
| ==== =========================== ==== ========== |