cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

acpi_object_usage.rst (27462B)


      1===========
      2ACPI Tables
      3===========
      4
      5The expectations of individual ACPI tables are discussed in the list that
      6follows.
      7
      8If a section number is used, it refers to a section number in the ACPI
      9specification where the object is defined.  If "Signature Reserved" is used,
     10the table signature (the first four bytes of the table) is the only portion
     11of the table recognized by the specification, and the actual table is defined
     12outside of the UEFI Forum (see Section 5.2.6 of the specification).
     13
     14For ACPI on arm64, tables also fall into the following categories:
     15
     16       -  Required: DSDT, FADT, GTDT, MADT, MCFG, RSDP, SPCR, XSDT
     17
     18       -  Recommended: BERT, EINJ, ERST, HEST, PCCT, SSDT
     19
     20       -  Optional: BGRT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT, IBFT,
     21          IORT, MCHI, MPST, MSCT, NFIT, PMTT, RASF, SBST, SLIT, SPMI, SRAT,
     22          STAO, TCPA, TPM2, UEFI, XENV
     23
     24       -  Not supported: BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT, MSDM, OEMx,
     25          PSDT, RSDT, SLIC, WAET, WDAT, WDRT, WPBT
     26
     27====== ========================================================================
     28Table  Usage for ARMv8 Linux
     29====== ========================================================================
     30BERT   Section 18.3 (signature == "BERT")
     31
     32       **Boot Error Record Table**
     33
     34       Must be supplied if RAS support is provided by the platform.  It
     35       is recommended this table be supplied.
     36
     37BOOT   Signature Reserved (signature == "BOOT")
     38
     39       **simple BOOT flag table**
     40
     41       Microsoft only table, will not be supported.
     42
     43BGRT   Section 5.2.22 (signature == "BGRT")
     44
     45       **Boot Graphics Resource Table**
     46
     47       Optional, not currently supported, with no real use-case for an
     48       ARM server.
     49
     50CPEP   Section 5.2.18 (signature == "CPEP")
     51
     52       **Corrected Platform Error Polling table**
     53
     54       Optional, not currently supported, and not recommended until such
     55       time as ARM-compatible hardware is available, and the specification
     56       suitably modified.
     57
     58CSRT   Signature Reserved (signature == "CSRT")
     59
     60       **Core System Resources Table**
     61
     62       Optional, not currently supported.
     63
     64DBG2   Signature Reserved (signature == "DBG2")
     65
     66       **DeBuG port table 2**
     67
     68       License has changed and should be usable.  Optional if used instead
     69       of earlycon=<device> on the command line.
     70
     71DBGP   Signature Reserved (signature == "DBGP")
     72
     73       **DeBuG Port table**
     74
     75       Microsoft only table, will not be supported.
     76
     77DSDT   Section 5.2.11.1 (signature == "DSDT")
     78
     79       **Differentiated System Description Table**
     80
     81       A DSDT is required; see also SSDT.
     82
     83       ACPI tables contain only one DSDT but can contain one or more SSDTs,
     84       which are optional.  Each SSDT can only add to the ACPI namespace,
     85       but cannot modify or replace anything in the DSDT.
     86
     87DMAR   Signature Reserved (signature == "DMAR")
     88
     89       **DMA Remapping table**
     90
     91       x86 only table, will not be supported.
     92
     93DRTM   Signature Reserved (signature == "DRTM")
     94
     95       **Dynamic Root of Trust for Measurement table**
     96
     97       Optional, not currently supported.
     98
     99ECDT   Section 5.2.16 (signature == "ECDT")
    100
    101       **Embedded Controller Description Table**
    102
    103       Optional, not currently supported, but could be used on ARM if and
    104       only if one uses the GPE_BIT field to represent an IRQ number, since
    105       there are no GPE blocks defined in hardware reduced mode.  This would
    106       need to be modified in the ACPI specification.
    107
    108EINJ   Section 18.6 (signature == "EINJ")
    109
    110       **Error Injection table**
    111
    112       This table is very useful for testing platform response to error
    113       conditions; it allows one to inject an error into the system as
    114       if it had actually occurred.  However, this table should not be
    115       shipped with a production system; it should be dynamically loaded
    116       and executed with the ACPICA tools only during testing.
    117
    118ERST   Section 18.5 (signature == "ERST")
    119
    120       **Error Record Serialization Table**
    121
    122       On a platform supports RAS, this table must be supplied if it is not
    123       UEFI-based; if it is UEFI-based, this table may be supplied. When this
    124       table is not present, UEFI run time service will be utilized to save
    125       and retrieve hardware error information to and from a persistent store.
    126
    127ETDT   Signature Reserved (signature == "ETDT")
    128
    129       **Event Timer Description Table**
    130
    131       Obsolete table, will not be supported.
    132
    133FACS   Section 5.2.10 (signature == "FACS")
    134
    135       **Firmware ACPI Control Structure**
    136
    137       It is unlikely that this table will be terribly useful.  If it is
    138       provided, the Global Lock will NOT be used since it is not part of
    139       the hardware reduced profile, and only 64-bit address fields will
    140       be considered valid.
    141
    142FADT   Section 5.2.9 (signature == "FACP")
    143
    144       **Fixed ACPI Description Table**
    145       Required for arm64.
    146
    147
    148       The HW_REDUCED_ACPI flag must be set.  All of the fields that are
    149       to be ignored when HW_REDUCED_ACPI is set are expected to be set to
    150       zero.
    151
    152       If an FACS table is provided, the X_FIRMWARE_CTRL field is to be
    153       used, not FIRMWARE_CTRL.
    154
    155       If PSCI is used (as is recommended), make sure that ARM_BOOT_ARCH is
    156       filled in properly - that the PSCI_COMPLIANT flag is set and that
    157       PSCI_USE_HVC is set or unset as needed (see table 5-37).
    158
    159       For the DSDT that is also required, the X_DSDT field is to be used,
    160       not the DSDT field.
    161
    162FPDT   Section 5.2.23 (signature == "FPDT")
    163
    164       **Firmware Performance Data Table**
    165
    166       Optional, not currently supported.
    167
    168GTDT   Section 5.2.24 (signature == "GTDT")
    169
    170       **Generic Timer Description Table**
    171
    172       Required for arm64.
    173
    174HEST   Section 18.3.2 (signature == "HEST")
    175
    176       **Hardware Error Source Table**
    177
    178       ARM-specific error sources have been defined; please use those or the
    179       PCI types such as type 6 (AER Root Port), 7 (AER Endpoint), or 8 (AER
    180       Bridge), or use type 9 (Generic Hardware Error Source).  Firmware first
    181       error handling is possible if and only if Trusted Firmware is being
    182       used on arm64.
    183
    184       Must be supplied if RAS support is provided by the platform.  It
    185       is recommended this table be supplied.
    186
    187HPET   Signature Reserved (signature == "HPET")
    188
    189       **High Precision Event timer Table**
    190
    191       x86 only table, will not be supported.
    192
    193IBFT   Signature Reserved (signature == "IBFT")
    194
    195       **iSCSI Boot Firmware Table**
    196
    197       Microsoft defined table, support TBD.
    198
    199IORT   Signature Reserved (signature == "IORT")
    200
    201       **Input Output Remapping Table**
    202
    203       arm64 only table, required in order to describe IO topology, SMMUs,
    204       and GIC ITSs, and how those various components are connected together,
    205       such as identifying which components are behind which SMMUs/ITSs.
    206       This table will only be required on certain SBSA platforms (e.g.,
    207       when using GICv3-ITS and an SMMU); on SBSA Level 0 platforms, it
    208       remains optional.
    209
    210IVRS   Signature Reserved (signature == "IVRS")
    211
    212       **I/O Virtualization Reporting Structure**
    213
    214       x86_64 (AMD) only table, will not be supported.
    215
    216LPIT   Signature Reserved (signature == "LPIT")
    217
    218       **Low Power Idle Table**
    219
    220       x86 only table as of ACPI 5.1; starting with ACPI 6.0, processor
    221       descriptions and power states on ARM platforms should use the DSDT
    222       and define processor container devices (_HID ACPI0010, Section 8.4,
    223       and more specifically 8.4.3 and 8.4.4).
    224
    225MADT   Section 5.2.12 (signature == "APIC")
    226
    227       **Multiple APIC Description Table**
    228
    229       Required for arm64.  Only the GIC interrupt controller structures
    230       should be used (types 0xA - 0xF).
    231
    232MCFG   Signature Reserved (signature == "MCFG")
    233
    234       **Memory-mapped ConFiGuration space**
    235
    236       If the platform supports PCI/PCIe, an MCFG table is required.
    237
    238MCHI   Signature Reserved (signature == "MCHI")
    239
    240       **Management Controller Host Interface table**
    241
    242       Optional, not currently supported.
    243
    244MPST   Section 5.2.21 (signature == "MPST")
    245
    246       **Memory Power State Table**
    247
    248       Optional, not currently supported.
    249
    250MSCT   Section 5.2.19 (signature == "MSCT")
    251
    252       **Maximum System Characteristic Table**
    253
    254       Optional, not currently supported.
    255
    256MSDM   Signature Reserved (signature == "MSDM")
    257
    258       **Microsoft Data Management table**
    259
    260       Microsoft only table, will not be supported.
    261
    262NFIT   Section 5.2.25 (signature == "NFIT")
    263
    264       **NVDIMM Firmware Interface Table**
    265
    266       Optional, not currently supported.
    267
    268OEMx   Signature of "OEMx" only
    269
    270       **OEM Specific Tables**
    271
    272       All tables starting with a signature of "OEM" are reserved for OEM
    273       use.  Since these are not meant to be of general use but are limited
    274       to very specific end users, they are not recommended for use and are
    275       not supported by the kernel for arm64.
    276
    277PCCT   Section 14.1 (signature == "PCCT)
    278
    279       **Platform Communications Channel Table**
    280
    281       Recommend for use on arm64; use of PCC is recommended when using CPPC
    282       to control performance and power for platform processors.
    283
    284PMTT   Section 5.2.21.12 (signature == "PMTT")
    285
    286       **Platform Memory Topology Table**
    287
    288       Optional, not currently supported.
    289
    290PSDT   Section 5.2.11.3 (signature == "PSDT")
    291
    292       **Persistent System Description Table**
    293
    294       Obsolete table, will not be supported.
    295
    296RASF   Section 5.2.20 (signature == "RASF")
    297
    298       **RAS Feature table**
    299
    300       Optional, not currently supported.
    301
    302RSDP   Section 5.2.5 (signature == "RSD PTR")
    303
    304       **Root System Description PoinTeR**
    305
    306       Required for arm64.
    307
    308RSDT   Section 5.2.7 (signature == "RSDT")
    309
    310       **Root System Description Table**
    311
    312       Since this table can only provide 32-bit addresses, it is deprecated
    313       on arm64, and will not be used.  If provided, it will be ignored.
    314
    315SBST   Section 5.2.14 (signature == "SBST")
    316
    317       **Smart Battery Subsystem Table**
    318
    319       Optional, not currently supported.
    320
    321SLIC   Signature Reserved (signature == "SLIC")
    322
    323       **Software LIcensing table**
    324
    325       Microsoft only table, will not be supported.
    326
    327SLIT   Section 5.2.17 (signature == "SLIT")
    328
    329       **System Locality distance Information Table**
    330
    331       Optional in general, but required for NUMA systems.
    332
    333SPCR   Signature Reserved (signature == "SPCR")
    334
    335       **Serial Port Console Redirection table**
    336
    337       Required for arm64.
    338
    339SPMI   Signature Reserved (signature == "SPMI")
    340
    341       **Server Platform Management Interface table**
    342
    343       Optional, not currently supported.
    344
    345SRAT   Section 5.2.16 (signature == "SRAT")
    346
    347       **System Resource Affinity Table**
    348
    349       Optional, but if used, only the GICC Affinity structures are read.
    350       To support arm64 NUMA, this table is required.
    351
    352SSDT   Section 5.2.11.2 (signature == "SSDT")
    353
    354       **Secondary System Description Table**
    355
    356       These tables are a continuation of the DSDT; these are recommended
    357       for use with devices that can be added to a running system, but can
    358       also serve the purpose of dividing up device descriptions into more
    359       manageable pieces.
    360
    361       An SSDT can only ADD to the ACPI namespace.  It cannot modify or
    362       replace existing device descriptions already in the namespace.
    363
    364       These tables are optional, however.  ACPI tables should contain only
    365       one DSDT but can contain many SSDTs.
    366
    367STAO   Signature Reserved (signature == "STAO")
    368
    369       **_STA Override table**
    370
    371       Optional, but only necessary in virtualized environments in order to
    372       hide devices from guest OSs.
    373
    374TCPA   Signature Reserved (signature == "TCPA")
    375
    376       **Trusted Computing Platform Alliance table**
    377
    378       Optional, not currently supported, and may need changes to fully
    379       interoperate with arm64.
    380
    381TPM2   Signature Reserved (signature == "TPM2")
    382
    383       **Trusted Platform Module 2 table**
    384
    385       Optional, not currently supported, and may need changes to fully
    386       interoperate with arm64.
    387
    388UEFI   Signature Reserved (signature == "UEFI")
    389
    390       **UEFI ACPI data table**
    391
    392       Optional, not currently supported.  No known use case for arm64,
    393       at present.
    394
    395WAET   Signature Reserved (signature == "WAET")
    396
    397       **Windows ACPI Emulated devices Table**
    398
    399       Microsoft only table, will not be supported.
    400
    401WDAT   Signature Reserved (signature == "WDAT")
    402
    403       **Watch Dog Action Table**
    404
    405       Microsoft only table, will not be supported.
    406
    407WDRT   Signature Reserved (signature == "WDRT")
    408
    409       **Watch Dog Resource Table**
    410
    411       Microsoft only table, will not be supported.
    412
    413WPBT   Signature Reserved (signature == "WPBT")
    414
    415       **Windows Platform Binary Table**
    416
    417       Microsoft only table, will not be supported.
    418
    419XENV   Signature Reserved (signature == "XENV")
    420
    421       **Xen project table**
    422
    423       Optional, used only by Xen at present.
    424
    425XSDT   Section 5.2.8 (signature == "XSDT")
    426
    427       **eXtended System Description Table**
    428
    429       Required for arm64.
    430====== ========================================================================
    431
    432ACPI Objects
    433------------
    434The expectations on individual ACPI objects that are likely to be used are
    435shown in the list that follows; any object not explicitly mentioned below
    436should be used as needed for a particular platform or particular subsystem,
    437such as power management or PCI.
    438
    439===== ================ ========================================================
    440Name   Section         Usage for ARMv8 Linux
    441===== ================ ========================================================
    442_CCA   6.2.17          This method must be defined for all bus masters
    443                       on arm64 - there are no assumptions made about
    444                       whether such devices are cache coherent or not.
    445                       The _CCA value is inherited by all descendants of
    446                       these devices so it does not need to be repeated.
    447                       Without _CCA on arm64, the kernel does not know what
    448                       to do about setting up DMA for the device.
    449
    450                       NB: this method provides default cache coherency
    451                       attributes; the presence of an SMMU can be used to
    452                       modify that, however.  For example, a master could
    453                       default to non-coherent, but be made coherent with
    454                       the appropriate SMMU configuration (see Table 17 of
    455                       the IORT specification, ARM Document DEN 0049B).
    456
    457_CID   6.1.2           Use as needed, see also _HID.
    458
    459_CLS   6.1.3           Use as needed, see also _HID.
    460
    461_CPC   8.4.7.1         Use as needed, power management specific.  CPPC is
    462                       recommended on arm64.
    463
    464_CRS   6.2.2           Required on arm64.
    465
    466_CSD   8.4.2.2         Use as needed, used only in conjunction with _CST.
    467
    468_CST   8.4.2.1         Low power idle states (8.4.4) are recommended instead
    469                       of C-states.
    470
    471_DDN   6.1.4           This field can be used for a device name.  However,
    472                       it is meant for DOS device names (e.g., COM1), so be
    473                       careful of its use across OSes.
    474
    475_DSD   6.2.5           To be used with caution.  If this object is used, try
    476                       to use it within the constraints already defined by the
    477                       Device Properties UUID.  Only in rare circumstances
    478                       should it be necessary to create a new _DSD UUID.
    479
    480                       In either case, submit the _DSD definition along with
    481                       any driver patches for discussion, especially when
    482                       device properties are used.  A driver will not be
    483                       considered complete without a corresponding _DSD
    484                       description.  Once approved by kernel maintainers,
    485                       the UUID or device properties must then be registered
    486                       with the UEFI Forum; this may cause some iteration as
    487                       more than one OS will be registering entries.
    488
    489_DSM   9.1.1           Do not use this method.  It is not standardized, the
    490                       return values are not well documented, and it is
    491                       currently a frequent source of error.
    492
    493\_GL   5.7.1           This object is not to be used in hardware reduced
    494                       mode, and therefore should not be used on arm64.
    495
    496_GLK   6.5.7           This object requires a global lock be defined; there
    497                       is no global lock on arm64 since it runs in hardware
    498                       reduced mode.  Hence, do not use this object on arm64.
    499
    500\_GPE  5.3.1           This namespace is for x86 use only.  Do not use it
    501                       on arm64.
    502
    503_HID   6.1.5           This is the primary object to use in device probing,
    504		       though _CID and _CLS may also be used.
    505
    506_INI   6.5.1           Not required, but can be useful in setting up devices
    507                       when UEFI leaves them in a state that may not be what
    508                       the driver expects before it starts probing.
    509
    510_LPI   8.4.4.3         Recommended for use with processor definitions (_HID
    511		       ACPI0010) on arm64.  See also _RDI.
    512
    513_MLS   6.1.7           Highly recommended for use in internationalization.
    514
    515_OFF   7.2.2           It is recommended to define this method for any device
    516                       that can be turned on or off.
    517
    518_ON    7.2.3           It is recommended to define this method for any device
    519                       that can be turned on or off.
    520
    521\_OS   5.7.3           This method will return "Linux" by default (this is
    522                       the value of the macro ACPI_OS_NAME on Linux).  The
    523                       command line parameter acpi_os=<string> can be used
    524                       to set it to some other value.
    525
    526_OSC   6.2.11          This method can be a global method in ACPI (i.e.,
    527                       \_SB._OSC), or it may be associated with a specific
    528                       device (e.g., \_SB.DEV0._OSC), or both.  When used
    529                       as a global method, only capabilities published in
    530                       the ACPI specification are allowed.  When used as
    531                       a device-specific method, the process described for
    532                       using _DSD MUST be used to create an _OSC definition;
    533                       out-of-process use of _OSC is not allowed.  That is,
    534                       submit the device-specific _OSC usage description as
    535                       part of the kernel driver submission, get it approved
    536                       by the kernel community, then register it with the
    537                       UEFI Forum.
    538
    539\_OSI  5.7.2           Deprecated on ARM64.  As far as ACPI firmware is
    540		       concerned, _OSI is not to be used to determine what
    541		       sort of system is being used or what functionality
    542		       is provided.  The _OSC method is to be used instead.
    543
    544_PDC   8.4.1           Deprecated, do not use on arm64.
    545
    546\_PIC  5.8.1           The method should not be used.  On arm64, the only
    547                       interrupt model available is GIC.
    548
    549\_PR   5.3.1           This namespace is for x86 use only on legacy systems.
    550                       Do not use it on arm64.
    551
    552_PRT   6.2.13          Required as part of the definition of all PCI root
    553                       devices.
    554
    555_PRx   7.3.8-11        Use as needed; power management specific.  If _PR0 is
    556                       defined, _PR3 must also be defined.
    557
    558_PSx   7.3.2-5         Use as needed; power management specific.  If _PS0 is
    559                       defined, _PS3 must also be defined.  If clocks or
    560                       regulators need adjusting to be consistent with power
    561                       usage, change them in these methods.
    562
    563_RDI   8.4.4.4         Recommended for use with processor definitions (_HID
    564		       ACPI0010) on arm64.  This should only be used in
    565		       conjunction with _LPI.
    566
    567\_REV  5.7.4           Always returns the latest version of ACPI supported.
    568
    569\_SB   5.3.1           Required on arm64; all devices must be defined in this
    570                       namespace.
    571
    572_SLI   6.2.15          Use is recommended when SLIT table is in use.
    573
    574_STA   6.3.7,          It is recommended to define this method for any device
    575       7.2.4           that can be turned on or off.  See also the STAO table
    576                       that provides overrides to hide devices in virtualized
    577                       environments.
    578
    579_SRS   6.2.16          Use as needed; see also _PRS.
    580
    581_STR   6.1.10          Recommended for conveying device names to end users;
    582                       this is preferred over using _DDN.
    583
    584_SUB   6.1.9           Use as needed; _HID or _CID are preferred.
    585
    586_SUN   6.1.11          Use as needed, but recommended.
    587
    588_SWS   7.4.3           Use as needed; power management specific; this may
    589                       require specification changes for use on arm64.
    590
    591_UID   6.1.12          Recommended for distinguishing devices of the same
    592                       class; define it if at all possible.
    593===== ================ ========================================================
    594
    595
    596
    597
    598ACPI Event Model
    599----------------
    600Do not use GPE block devices; these are not supported in the hardware reduced
    601profile used by arm64.  Since there are no GPE blocks defined for use on ARM
    602platforms, ACPI events must be signaled differently.
    603
    604There are two options: GPIO-signaled interrupts (Section 5.6.5), and
    605interrupt-signaled events (Section 5.6.9).  Interrupt-signaled events are a
    606new feature in the ACPI 6.1 specification.  Either - or both - can be used
    607on a given platform, and which to use may be dependent of limitations in any
    608given SoC.  If possible, interrupt-signaled events are recommended.
    609
    610
    611ACPI Processor Control
    612----------------------
    613Section 8 of the ACPI specification changed significantly in version 6.0.
    614Processors should now be defined as Device objects with _HID ACPI0007; do
    615not use the deprecated Processor statement in ASL.  All multiprocessor systems
    616should also define a hierarchy of processors, done with Processor Container
    617Devices (see Section 8.4.3.1, _HID ACPI0010); do not use processor aggregator
    618devices (Section 8.5) to describe processor topology.  Section 8.4 of the
    619specification describes the semantics of these object definitions and how
    620they interrelate.
    621
    622Most importantly, the processor hierarchy defined also defines the low power
    623idle states that are available to the platform, along with the rules for
    624determining which processors can be turned on or off and the circumstances
    625that control that.  Without this information, the processors will run in
    626whatever power state they were left in by UEFI.
    627
    628Note too, that the processor Device objects defined and the entries in the
    629MADT for GICs are expected to be in synchronization.  The _UID of the Device
    630object must correspond to processor IDs used in the MADT.
    631
    632It is recommended that CPPC (8.4.5) be used as the primary model for processor
    633performance control on arm64.  C-states and P-states may become available at
    634some point in the future, but most current design work appears to favor CPPC.
    635
    636Further, it is essential that the ARMv8 SoC provide a fully functional
    637implementation of PSCI; this will be the only mechanism supported by ACPI
    638to control CPU power state.  Booting of secondary CPUs using the ACPI
    639parking protocol is possible, but discouraged, since only PSCI is supported
    640for ARM servers.
    641
    642
    643ACPI System Address Map Interfaces
    644----------------------------------
    645In Section 15 of the ACPI specification, several methods are mentioned as
    646possible mechanisms for conveying memory resource information to the kernel.
    647For arm64, we will only support UEFI for booting with ACPI, hence the UEFI
    648GetMemoryMap() boot service is the only mechanism that will be used.
    649
    650
    651ACPI Platform Error Interfaces (APEI)
    652-------------------------------------
    653The APEI tables supported are described above.
    654
    655APEI requires the equivalent of an SCI and an NMI on ARMv8.  The SCI is used
    656to notify the OSPM of errors that have occurred but can be corrected and the
    657system can continue correct operation, even if possibly degraded.  The NMI is
    658used to indicate fatal errors that cannot be corrected, and require immediate
    659attention.
    660
    661Since there is no direct equivalent of the x86 SCI or NMI, arm64 handles
    662these slightly differently.  The SCI is handled as a high priority interrupt;
    663given that these are corrected (or correctable) errors being reported, this
    664is sufficient.  The NMI is emulated as the highest priority interrupt
    665possible.  This implies some caution must be used since there could be
    666interrupts at higher privilege levels or even interrupts at the same priority
    667as the emulated NMI.  In Linux, this should not be the case but one should
    668be aware it could happen.
    669
    670
    671ACPI Objects Not Supported on ARM64
    672-----------------------------------
    673While this may change in the future, there are several classes of objects
    674that can be defined, but are not currently of general interest to ARM servers.
    675Some of these objects have x86 equivalents, and may actually make sense in ARM
    676servers.  However, there is either no hardware available at present, or there
    677may not even be a non-ARM implementation yet.  Hence, they are not currently
    678supported.
    679
    680The following classes of objects are not supported:
    681
    682       -  Section 9.2: ambient light sensor devices
    683
    684       -  Section 9.3: battery devices
    685
    686       -  Section 9.4: lids (e.g., laptop lids)
    687
    688       -  Section 9.8.2: IDE controllers
    689
    690       -  Section 9.9: floppy controllers
    691
    692       -  Section 9.10: GPE block devices
    693
    694       -  Section 9.15: PC/AT RTC/CMOS devices
    695
    696       -  Section 9.16: user presence detection devices
    697
    698       -  Section 9.17: I/O APIC devices; all GICs must be enumerable via MADT
    699
    700       -  Section 9.18: time and alarm devices (see 9.15)
    701
    702       -  Section 10: power source and power meter devices
    703
    704       -  Section 11: thermal management
    705
    706       -  Section 12: embedded controllers interface
    707
    708       -  Section 13: SMBus interfaces
    709
    710
    711This also means that there is no support for the following objects:
    712
    713====   =========================== ====   ==========
    714Name   Section                     Name   Section
    715====   =========================== ====   ==========
    716_ALC   9.3.4                       _FDM   9.10.3
    717_ALI   9.3.2                       _FIX   6.2.7
    718_ALP   9.3.6                       _GAI   10.4.5
    719_ALR   9.3.5                       _GHL   10.4.7
    720_ALT   9.3.3                       _GTM   9.9.2.1.1
    721_BCT   10.2.2.10                   _LID   9.5.1
    722_BDN   6.5.3                       _PAI   10.4.4
    723_BIF   10.2.2.1                    _PCL   10.3.2
    724_BIX   10.2.2.1                    _PIF   10.3.3
    725_BLT   9.2.3                       _PMC   10.4.1
    726_BMA   10.2.2.4                    _PMD   10.4.8
    727_BMC   10.2.2.12                   _PMM   10.4.3
    728_BMD   10.2.2.11                   _PRL   10.3.4
    729_BMS   10.2.2.5                    _PSR   10.3.1
    730_BST   10.2.2.6                    _PTP   10.4.2
    731_BTH   10.2.2.7                    _SBS   10.1.3
    732_BTM   10.2.2.9                    _SHL   10.4.6
    733_BTP   10.2.2.8                    _STM   9.9.2.1.1
    734_DCK   6.5.2                       _UPD   9.16.1
    735_EC    12.12                       _UPP   9.16.2
    736_FDE   9.10.1                      _WPC   10.5.2
    737_FDI   9.10.2                      _WPP   10.5.3
    738====   =========================== ====   ==========