0001 ===========
0002 ACPI Tables
0003 ===========
0004
0005 The expectations of individual ACPI tables are discussed in the list that
0006 follows.
0007
0008 If a section number is used, it refers to a section number in the ACPI
0009 specification where the object is defined. If "Signature Reserved" is used,
0010 the table signature (the first four bytes of the table) is the only portion
0011 of the table recognized by the specification, and the actual table is defined
0012 outside of the UEFI Forum (see Section 5.2.6 of the specification).
0013
0014 For ACPI on arm64, tables also fall into the following categories:
0015
0016 - Required: DSDT, FADT, GTDT, MADT, MCFG, RSDP, SPCR, XSDT
0017
0018 - Recommended: BERT, EINJ, ERST, HEST, PCCT, SSDT
0019
0020 - Optional: BGRT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT, IBFT,
0021 IORT, MCHI, MPST, MSCT, NFIT, PMTT, RASF, SBST, SLIT, SPMI, SRAT,
0022 STAO, TCPA, TPM2, UEFI, XENV
0023
0024 - Not supported: BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT, MSDM, OEMx,
0025 PSDT, RSDT, SLIC, WAET, WDAT, WDRT, WPBT
0026
0027 ====== ========================================================================
0028 Table Usage for ARMv8 Linux
0029 ====== ========================================================================
0030 BERT Section 18.3 (signature == "BERT")
0031
0032 **Boot Error Record Table**
0033
0034 Must be supplied if RAS support is provided by the platform. It
0035 is recommended this table be supplied.
0036
0037 BOOT Signature Reserved (signature == "BOOT")
0038
0039 **simple BOOT flag table**
0040
0041 Microsoft only table, will not be supported.
0042
0043 BGRT Section 5.2.22 (signature == "BGRT")
0044
0045 **Boot Graphics Resource Table**
0046
0047 Optional, not currently supported, with no real use-case for an
0048 ARM server.
0049
0050 CPEP Section 5.2.18 (signature == "CPEP")
0051
0052 **Corrected Platform Error Polling table**
0053
0054 Optional, not currently supported, and not recommended until such
0055 time as ARM-compatible hardware is available, and the specification
0056 suitably modified.
0057
0058 CSRT Signature Reserved (signature == "CSRT")
0059
0060 **Core System Resources Table**
0061
0062 Optional, not currently supported.
0063
0064 DBG2 Signature Reserved (signature == "DBG2")
0065
0066 **DeBuG port table 2**
0067
0068 License has changed and should be usable. Optional if used instead
0069 of earlycon=<device> on the command line.
0070
0071 DBGP Signature Reserved (signature == "DBGP")
0072
0073 **DeBuG Port table**
0074
0075 Microsoft only table, will not be supported.
0076
0077 DSDT Section 5.2.11.1 (signature == "DSDT")
0078
0079 **Differentiated System Description Table**
0080
0081 A DSDT is required; see also SSDT.
0082
0083 ACPI tables contain only one DSDT but can contain one or more SSDTs,
0084 which are optional. Each SSDT can only add to the ACPI namespace,
0085 but cannot modify or replace anything in the DSDT.
0086
0087 DMAR Signature Reserved (signature == "DMAR")
0088
0089 **DMA Remapping table**
0090
0091 x86 only table, will not be supported.
0092
0093 DRTM Signature Reserved (signature == "DRTM")
0094
0095 **Dynamic Root of Trust for Measurement table**
0096
0097 Optional, not currently supported.
0098
0099 ECDT Section 5.2.16 (signature == "ECDT")
0100
0101 **Embedded Controller Description Table**
0102
0103 Optional, not currently supported, but could be used on ARM if and
0104 only if one uses the GPE_BIT field to represent an IRQ number, since
0105 there are no GPE blocks defined in hardware reduced mode. This would
0106 need to be modified in the ACPI specification.
0107
0108 EINJ Section 18.6 (signature == "EINJ")
0109
0110 **Error Injection table**
0111
0112 This table is very useful for testing platform response to error
0113 conditions; it allows one to inject an error into the system as
0114 if it had actually occurred. However, this table should not be
0115 shipped with a production system; it should be dynamically loaded
0116 and executed with the ACPICA tools only during testing.
0117
0118 ERST Section 18.5 (signature == "ERST")
0119
0120 **Error Record Serialization Table**
0121
0122 On a platform supports RAS, this table must be supplied if it is not
0123 UEFI-based; if it is UEFI-based, this table may be supplied. When this
0124 table is not present, UEFI run time service will be utilized to save
0125 and retrieve hardware error information to and from a persistent store.
0126
0127 ETDT Signature Reserved (signature == "ETDT")
0128
0129 **Event Timer Description Table**
0130
0131 Obsolete table, will not be supported.
0132
0133 FACS Section 5.2.10 (signature == "FACS")
0134
0135 **Firmware ACPI Control Structure**
0136
0137 It is unlikely that this table will be terribly useful. If it is
0138 provided, the Global Lock will NOT be used since it is not part of
0139 the hardware reduced profile, and only 64-bit address fields will
0140 be considered valid.
0141
0142 FADT Section 5.2.9 (signature == "FACP")
0143
0144 **Fixed ACPI Description Table**
0145 Required for arm64.
0146
0147
0148 The HW_REDUCED_ACPI flag must be set. All of the fields that are
0149 to be ignored when HW_REDUCED_ACPI is set are expected to be set to
0150 zero.
0151
0152 If an FACS table is provided, the X_FIRMWARE_CTRL field is to be
0153 used, not FIRMWARE_CTRL.
0154
0155 If PSCI is used (as is recommended), make sure that ARM_BOOT_ARCH is
0156 filled in properly - that the PSCI_COMPLIANT flag is set and that
0157 PSCI_USE_HVC is set or unset as needed (see table 5-37).
0158
0159 For the DSDT that is also required, the X_DSDT field is to be used,
0160 not the DSDT field.
0161
0162 FPDT Section 5.2.23 (signature == "FPDT")
0163
0164 **Firmware Performance Data Table**
0165
0166 Optional, not currently supported.
0167
0168 GTDT Section 5.2.24 (signature == "GTDT")
0169
0170 **Generic Timer Description Table**
0171
0172 Required for arm64.
0173
0174 HEST Section 18.3.2 (signature == "HEST")
0175
0176 **Hardware Error Source Table**
0177
0178 ARM-specific error sources have been defined; please use those or the
0179 PCI types such as type 6 (AER Root Port), 7 (AER Endpoint), or 8 (AER
0180 Bridge), or use type 9 (Generic Hardware Error Source). Firmware first
0181 error handling is possible if and only if Trusted Firmware is being
0182 used on arm64.
0183
0184 Must be supplied if RAS support is provided by the platform. It
0185 is recommended this table be supplied.
0186
0187 HPET Signature Reserved (signature == "HPET")
0188
0189 **High Precision Event timer Table**
0190
0191 x86 only table, will not be supported.
0192
0193 IBFT Signature Reserved (signature == "IBFT")
0194
0195 **iSCSI Boot Firmware Table**
0196
0197 Microsoft defined table, support TBD.
0198
0199 IORT Signature Reserved (signature == "IORT")
0200
0201 **Input Output Remapping Table**
0202
0203 arm64 only table, required in order to describe IO topology, SMMUs,
0204 and GIC ITSs, and how those various components are connected together,
0205 such as identifying which components are behind which SMMUs/ITSs.
0206 This table will only be required on certain SBSA platforms (e.g.,
0207 when using GICv3-ITS and an SMMU); on SBSA Level 0 platforms, it
0208 remains optional.
0209
0210 IVRS Signature Reserved (signature == "IVRS")
0211
0212 **I/O Virtualization Reporting Structure**
0213
0214 x86_64 (AMD) only table, will not be supported.
0215
0216 LPIT Signature Reserved (signature == "LPIT")
0217
0218 **Low Power Idle Table**
0219
0220 x86 only table as of ACPI 5.1; starting with ACPI 6.0, processor
0221 descriptions and power states on ARM platforms should use the DSDT
0222 and define processor container devices (_HID ACPI0010, Section 8.4,
0223 and more specifically 8.4.3 and 8.4.4).
0224
0225 MADT Section 5.2.12 (signature == "APIC")
0226
0227 **Multiple APIC Description Table**
0228
0229 Required for arm64. Only the GIC interrupt controller structures
0230 should be used (types 0xA - 0xF).
0231
0232 MCFG Signature Reserved (signature == "MCFG")
0233
0234 **Memory-mapped ConFiGuration space**
0235
0236 If the platform supports PCI/PCIe, an MCFG table is required.
0237
0238 MCHI Signature Reserved (signature == "MCHI")
0239
0240 **Management Controller Host Interface table**
0241
0242 Optional, not currently supported.
0243
0244 MPST Section 5.2.21 (signature == "MPST")
0245
0246 **Memory Power State Table**
0247
0248 Optional, not currently supported.
0249
0250 MSCT Section 5.2.19 (signature == "MSCT")
0251
0252 **Maximum System Characteristic Table**
0253
0254 Optional, not currently supported.
0255
0256 MSDM Signature Reserved (signature == "MSDM")
0257
0258 **Microsoft Data Management table**
0259
0260 Microsoft only table, will not be supported.
0261
0262 NFIT Section 5.2.25 (signature == "NFIT")
0263
0264 **NVDIMM Firmware Interface Table**
0265
0266 Optional, not currently supported.
0267
0268 OEMx Signature of "OEMx" only
0269
0270 **OEM Specific Tables**
0271
0272 All tables starting with a signature of "OEM" are reserved for OEM
0273 use. Since these are not meant to be of general use but are limited
0274 to very specific end users, they are not recommended for use and are
0275 not supported by the kernel for arm64.
0276
0277 PCCT Section 14.1 (signature == "PCCT)
0278
0279 **Platform Communications Channel Table**
0280
0281 Recommend for use on arm64; use of PCC is recommended when using CPPC
0282 to control performance and power for platform processors.
0283
0284 PMTT Section 5.2.21.12 (signature == "PMTT")
0285
0286 **Platform Memory Topology Table**
0287
0288 Optional, not currently supported.
0289
0290 PSDT Section 5.2.11.3 (signature == "PSDT")
0291
0292 **Persistent System Description Table**
0293
0294 Obsolete table, will not be supported.
0295
0296 RASF Section 5.2.20 (signature == "RASF")
0297
0298 **RAS Feature table**
0299
0300 Optional, not currently supported.
0301
0302 RSDP Section 5.2.5 (signature == "RSD PTR")
0303
0304 **Root System Description PoinTeR**
0305
0306 Required for arm64.
0307
0308 RSDT Section 5.2.7 (signature == "RSDT")
0309
0310 **Root System Description Table**
0311
0312 Since this table can only provide 32-bit addresses, it is deprecated
0313 on arm64, and will not be used. If provided, it will be ignored.
0314
0315 SBST Section 5.2.14 (signature == "SBST")
0316
0317 **Smart Battery Subsystem Table**
0318
0319 Optional, not currently supported.
0320
0321 SLIC Signature Reserved (signature == "SLIC")
0322
0323 **Software LIcensing table**
0324
0325 Microsoft only table, will not be supported.
0326
0327 SLIT Section 5.2.17 (signature == "SLIT")
0328
0329 **System Locality distance Information Table**
0330
0331 Optional in general, but required for NUMA systems.
0332
0333 SPCR Signature Reserved (signature == "SPCR")
0334
0335 **Serial Port Console Redirection table**
0336
0337 Required for arm64.
0338
0339 SPMI Signature Reserved (signature == "SPMI")
0340
0341 **Server Platform Management Interface table**
0342
0343 Optional, not currently supported.
0344
0345 SRAT Section 5.2.16 (signature == "SRAT")
0346
0347 **System Resource Affinity Table**
0348
0349 Optional, but if used, only the GICC Affinity structures are read.
0350 To support arm64 NUMA, this table is required.
0351
0352 SSDT Section 5.2.11.2 (signature == "SSDT")
0353
0354 **Secondary System Description Table**
0355
0356 These tables are a continuation of the DSDT; these are recommended
0357 for use with devices that can be added to a running system, but can
0358 also serve the purpose of dividing up device descriptions into more
0359 manageable pieces.
0360
0361 An SSDT can only ADD to the ACPI namespace. It cannot modify or
0362 replace existing device descriptions already in the namespace.
0363
0364 These tables are optional, however. ACPI tables should contain only
0365 one DSDT but can contain many SSDTs.
0366
0367 STAO Signature Reserved (signature == "STAO")
0368
0369 **_STA Override table**
0370
0371 Optional, but only necessary in virtualized environments in order to
0372 hide devices from guest OSs.
0373
0374 TCPA Signature Reserved (signature == "TCPA")
0375
0376 **Trusted Computing Platform Alliance table**
0377
0378 Optional, not currently supported, and may need changes to fully
0379 interoperate with arm64.
0380
0381 TPM2 Signature Reserved (signature == "TPM2")
0382
0383 **Trusted Platform Module 2 table**
0384
0385 Optional, not currently supported, and may need changes to fully
0386 interoperate with arm64.
0387
0388 UEFI Signature Reserved (signature == "UEFI")
0389
0390 **UEFI ACPI data table**
0391
0392 Optional, not currently supported. No known use case for arm64,
0393 at present.
0394
0395 WAET Signature Reserved (signature == "WAET")
0396
0397 **Windows ACPI Emulated devices Table**
0398
0399 Microsoft only table, will not be supported.
0400
0401 WDAT Signature Reserved (signature == "WDAT")
0402
0403 **Watch Dog Action Table**
0404
0405 Microsoft only table, will not be supported.
0406
0407 WDRT Signature Reserved (signature == "WDRT")
0408
0409 **Watch Dog Resource Table**
0410
0411 Microsoft only table, will not be supported.
0412
0413 WPBT Signature Reserved (signature == "WPBT")
0414
0415 **Windows Platform Binary Table**
0416
0417 Microsoft only table, will not be supported.
0418
0419 XENV Signature Reserved (signature == "XENV")
0420
0421 **Xen project table**
0422
0423 Optional, used only by Xen at present.
0424
0425 XSDT Section 5.2.8 (signature == "XSDT")
0426
0427 **eXtended System Description Table**
0428
0429 Required for arm64.
0430 ====== ========================================================================
0431
0432 ACPI Objects
0433 ------------
0434 The expectations on individual ACPI objects that are likely to be used are
0435 shown in the list that follows; any object not explicitly mentioned below
0436 should be used as needed for a particular platform or particular subsystem,
0437 such as power management or PCI.
0438
0439 ===== ================ ========================================================
0440 Name Section Usage for ARMv8 Linux
0441 ===== ================ ========================================================
0442 _CCA 6.2.17 This method must be defined for all bus masters
0443 on arm64 - there are no assumptions made about
0444 whether such devices are cache coherent or not.
0445 The _CCA value is inherited by all descendants of
0446 these devices so it does not need to be repeated.
0447 Without _CCA on arm64, the kernel does not know what
0448 to do about setting up DMA for the device.
0449
0450 NB: this method provides default cache coherency
0451 attributes; the presence of an SMMU can be used to
0452 modify that, however. For example, a master could
0453 default to non-coherent, but be made coherent with
0454 the appropriate SMMU configuration (see Table 17 of
0455 the IORT specification, ARM Document DEN 0049B).
0456
0457 _CID 6.1.2 Use as needed, see also _HID.
0458
0459 _CLS 6.1.3 Use as needed, see also _HID.
0460
0461 _CPC 8.4.7.1 Use as needed, power management specific. CPPC is
0462 recommended on arm64.
0463
0464 _CRS 6.2.2 Required on arm64.
0465
0466 _CSD 8.4.2.2 Use as needed, used only in conjunction with _CST.
0467
0468 _CST 8.4.2.1 Low power idle states (8.4.4) are recommended instead
0469 of C-states.
0470
0471 _DDN 6.1.4 This field can be used for a device name. However,
0472 it is meant for DOS device names (e.g., COM1), so be
0473 careful of its use across OSes.
0474
0475 _DSD 6.2.5 To be used with caution. If this object is used, try
0476 to use it within the constraints already defined by the
0477 Device Properties UUID. Only in rare circumstances
0478 should it be necessary to create a new _DSD UUID.
0479
0480 In either case, submit the _DSD definition along with
0481 any driver patches for discussion, especially when
0482 device properties are used. A driver will not be
0483 considered complete without a corresponding _DSD
0484 description. Once approved by kernel maintainers,
0485 the UUID or device properties must then be registered
0486 with the UEFI Forum; this may cause some iteration as
0487 more than one OS will be registering entries.
0488
0489 _DSM 9.1.1 Do not use this method. It is not standardized, the
0490 return values are not well documented, and it is
0491 currently a frequent source of error.
0492
0493 \_GL 5.7.1 This object is not to be used in hardware reduced
0494 mode, and therefore should not be used on arm64.
0495
0496 _GLK 6.5.7 This object requires a global lock be defined; there
0497 is no global lock on arm64 since it runs in hardware
0498 reduced mode. Hence, do not use this object on arm64.
0499
0500 \_GPE 5.3.1 This namespace is for x86 use only. Do not use it
0501 on arm64.
0502
0503 _HID 6.1.5 This is the primary object to use in device probing,
0504 though _CID and _CLS may also be used.
0505
0506 _INI 6.5.1 Not required, but can be useful in setting up devices
0507 when UEFI leaves them in a state that may not be what
0508 the driver expects before it starts probing.
0509
0510 _LPI 8.4.4.3 Recommended for use with processor definitions (_HID
0511 ACPI0010) on arm64. See also _RDI.
0512
0513 _MLS 6.1.7 Highly recommended for use in internationalization.
0514
0515 _OFF 7.2.2 It is recommended to define this method for any device
0516 that can be turned on or off.
0517
0518 _ON 7.2.3 It is recommended to define this method for any device
0519 that can be turned on or off.
0520
0521 \_OS 5.7.3 This method will return "Linux" by default (this is
0522 the value of the macro ACPI_OS_NAME on Linux). The
0523 command line parameter acpi_os=<string> can be used
0524 to set it to some other value.
0525
0526 _OSC 6.2.11 This method can be a global method in ACPI (i.e.,
0527 \_SB._OSC), or it may be associated with a specific
0528 device (e.g., \_SB.DEV0._OSC), or both. When used
0529 as a global method, only capabilities published in
0530 the ACPI specification are allowed. When used as
0531 a device-specific method, the process described for
0532 using _DSD MUST be used to create an _OSC definition;
0533 out-of-process use of _OSC is not allowed. That is,
0534 submit the device-specific _OSC usage description as
0535 part of the kernel driver submission, get it approved
0536 by the kernel community, then register it with the
0537 UEFI Forum.
0538
0539 \_OSI 5.7.2 Deprecated on ARM64. As far as ACPI firmware is
0540 concerned, _OSI is not to be used to determine what
0541 sort of system is being used or what functionality
0542 is provided. The _OSC method is to be used instead.
0543
0544 _PDC 8.4.1 Deprecated, do not use on arm64.
0545
0546 \_PIC 5.8.1 The method should not be used. On arm64, the only
0547 interrupt model available is GIC.
0548
0549 \_PR 5.3.1 This namespace is for x86 use only on legacy systems.
0550 Do not use it on arm64.
0551
0552 _PRT 6.2.13 Required as part of the definition of all PCI root
0553 devices.
0554
0555 _PRx 7.3.8-11 Use as needed; power management specific. If _PR0 is
0556 defined, _PR3 must also be defined.
0557
0558 _PSx 7.3.2-5 Use as needed; power management specific. If _PS0 is
0559 defined, _PS3 must also be defined. If clocks or
0560 regulators need adjusting to be consistent with power
0561 usage, change them in these methods.
0562
0563 _RDI 8.4.4.4 Recommended for use with processor definitions (_HID
0564 ACPI0010) on arm64. This should only be used in
0565 conjunction with _LPI.
0566
0567 \_REV 5.7.4 Always returns the latest version of ACPI supported.
0568
0569 \_SB 5.3.1 Required on arm64; all devices must be defined in this
0570 namespace.
0571
0572 _SLI 6.2.15 Use is recommended when SLIT table is in use.
0573
0574 _STA 6.3.7, It is recommended to define this method for any device
0575 7.2.4 that can be turned on or off. See also the STAO table
0576 that provides overrides to hide devices in virtualized
0577 environments.
0578
0579 _SRS 6.2.16 Use as needed; see also _PRS.
0580
0581 _STR 6.1.10 Recommended for conveying device names to end users;
0582 this is preferred over using _DDN.
0583
0584 _SUB 6.1.9 Use as needed; _HID or _CID are preferred.
0585
0586 _SUN 6.1.11 Use as needed, but recommended.
0587
0588 _SWS 7.4.3 Use as needed; power management specific; this may
0589 require specification changes for use on arm64.
0590
0591 _UID 6.1.12 Recommended for distinguishing devices of the same
0592 class; define it if at all possible.
0593 ===== ================ ========================================================
0594
0595
0596
0597
0598 ACPI Event Model
0599 ----------------
0600 Do not use GPE block devices; these are not supported in the hardware reduced
0601 profile used by arm64. Since there are no GPE blocks defined for use on ARM
0602 platforms, ACPI events must be signaled differently.
0603
0604 There are two options: GPIO-signaled interrupts (Section 5.6.5), and
0605 interrupt-signaled events (Section 5.6.9). Interrupt-signaled events are a
0606 new feature in the ACPI 6.1 specification. Either - or both - can be used
0607 on a given platform, and which to use may be dependent of limitations in any
0608 given SoC. If possible, interrupt-signaled events are recommended.
0609
0610
0611 ACPI Processor Control
0612 ----------------------
0613 Section 8 of the ACPI specification changed significantly in version 6.0.
0614 Processors should now be defined as Device objects with _HID ACPI0007; do
0615 not use the deprecated Processor statement in ASL. All multiprocessor systems
0616 should also define a hierarchy of processors, done with Processor Container
0617 Devices (see Section 8.4.3.1, _HID ACPI0010); do not use processor aggregator
0618 devices (Section 8.5) to describe processor topology. Section 8.4 of the
0619 specification describes the semantics of these object definitions and how
0620 they interrelate.
0621
0622 Most importantly, the processor hierarchy defined also defines the low power
0623 idle states that are available to the platform, along with the rules for
0624 determining which processors can be turned on or off and the circumstances
0625 that control that. Without this information, the processors will run in
0626 whatever power state they were left in by UEFI.
0627
0628 Note too, that the processor Device objects defined and the entries in the
0629 MADT for GICs are expected to be in synchronization. The _UID of the Device
0630 object must correspond to processor IDs used in the MADT.
0631
0632 It is recommended that CPPC (8.4.5) be used as the primary model for processor
0633 performance control on arm64. C-states and P-states may become available at
0634 some point in the future, but most current design work appears to favor CPPC.
0635
0636 Further, it is essential that the ARMv8 SoC provide a fully functional
0637 implementation of PSCI; this will be the only mechanism supported by ACPI
0638 to control CPU power state. Booting of secondary CPUs using the ACPI
0639 parking protocol is possible, but discouraged, since only PSCI is supported
0640 for ARM servers.
0641
0642
0643 ACPI System Address Map Interfaces
0644 ----------------------------------
0645 In Section 15 of the ACPI specification, several methods are mentioned as
0646 possible mechanisms for conveying memory resource information to the kernel.
0647 For arm64, we will only support UEFI for booting with ACPI, hence the UEFI
0648 GetMemoryMap() boot service is the only mechanism that will be used.
0649
0650
0651 ACPI Platform Error Interfaces (APEI)
0652 -------------------------------------
0653 The APEI tables supported are described above.
0654
0655 APEI requires the equivalent of an SCI and an NMI on ARMv8. The SCI is used
0656 to notify the OSPM of errors that have occurred but can be corrected and the
0657 system can continue correct operation, even if possibly degraded. The NMI is
0658 used to indicate fatal errors that cannot be corrected, and require immediate
0659 attention.
0660
0661 Since there is no direct equivalent of the x86 SCI or NMI, arm64 handles
0662 these slightly differently. The SCI is handled as a high priority interrupt;
0663 given that these are corrected (or correctable) errors being reported, this
0664 is sufficient. The NMI is emulated as the highest priority interrupt
0665 possible. This implies some caution must be used since there could be
0666 interrupts at higher privilege levels or even interrupts at the same priority
0667 as the emulated NMI. In Linux, this should not be the case but one should
0668 be aware it could happen.
0669
0670
0671 ACPI Objects Not Supported on ARM64
0672 -----------------------------------
0673 While this may change in the future, there are several classes of objects
0674 that can be defined, but are not currently of general interest to ARM servers.
0675 Some of these objects have x86 equivalents, and may actually make sense in ARM
0676 servers. However, there is either no hardware available at present, or there
0677 may not even be a non-ARM implementation yet. Hence, they are not currently
0678 supported.
0679
0680 The following classes of objects are not supported:
0681
0682 - Section 9.2: ambient light sensor devices
0683
0684 - Section 9.3: battery devices
0685
0686 - Section 9.4: lids (e.g., laptop lids)
0687
0688 - Section 9.8.2: IDE controllers
0689
0690 - Section 9.9: floppy controllers
0691
0692 - Section 9.10: GPE block devices
0693
0694 - Section 9.15: PC/AT RTC/CMOS devices
0695
0696 - Section 9.16: user presence detection devices
0697
0698 - Section 9.17: I/O APIC devices; all GICs must be enumerable via MADT
0699
0700 - Section 9.18: time and alarm devices (see 9.15)
0701
0702 - Section 10: power source and power meter devices
0703
0704 - Section 11: thermal management
0705
0706 - Section 12: embedded controllers interface
0707
0708 - Section 13: SMBus interfaces
0709
0710
0711 This also means that there is no support for the following objects:
0712
0713 ==== =========================== ==== ==========
0714 Name Section Name Section
0715 ==== =========================== ==== ==========
0716 _ALC 9.3.4 _FDM 9.10.3
0717 _ALI 9.3.2 _FIX 6.2.7
0718 _ALP 9.3.6 _GAI 10.4.5
0719 _ALR 9.3.5 _GHL 10.4.7
0720 _ALT 9.3.3 _GTM 9.9.2.1.1
0721 _BCT 10.2.2.10 _LID 9.5.1
0722 _BDN 6.5.3 _PAI 10.4.4
0723 _BIF 10.2.2.1 _PCL 10.3.2
0724 _BIX 10.2.2.1 _PIF 10.3.3
0725 _BLT 9.2.3 _PMC 10.4.1
0726 _BMA 10.2.2.4 _PMD 10.4.8
0727 _BMC 10.2.2.12 _PMM 10.4.3
0728 _BMD 10.2.2.11 _PRL 10.3.4
0729 _BMS 10.2.2.5 _PSR 10.3.1
0730 _BST 10.2.2.6 _PTP 10.4.2
0731 _BTH 10.2.2.7 _SBS 10.1.3
0732 _BTM 10.2.2.9 _SHL 10.4.6
0733 _BTP 10.2.2.8 _STM 9.9.2.1.1
0734 _DCK 6.5.2 _UPD 9.16.1
0735 _EC 12.12 _UPP 9.16.2
0736 _FDE 9.10.1 _WPC 10.5.2
0737 _FDI 9.10.2 _WPP 10.5.3
0738 ==== =========================== ==== ==========