Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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