1.. SPDX-License-Identifier: GPL-2.0 2 3=========== 4ACPI Tables 5=========== 6 7ACPI is the "Advanced Configuration and Power Interface", which is a standard 8that defines how platforms and OS manage power and configure computer hardware. 9For the purpose of this theory of operation, when referring to "ACPI" we will 10usually refer to "ACPI Tables" - which are the way a platform (BIOS/EFI) 11communicates static configuration information to the operation system. 12 13The Following ACPI tables contain *static* configuration and performance data 14about CXL devices. 15 16.. toctree:: 17 :maxdepth: 1 18 19 acpi/cedt.rst 20 acpi/srat.rst 21 acpi/hmat.rst 22 acpi/slit.rst 23 acpi/dsdt.rst 24 25The SRAT table may also contain generic port/initiator content that is intended 26to describe the generic port, but not information about the rest of the path to 27the endpoint. 28 29Linux uses these tables to configure kernel resources for statically configured 30(by BIOS/EFI) CXL devices, such as: 31 32- NUMA nodes 33- Memory Tiers 34- NUMA Abstract Distances 35- SystemRAM Memory Regions 36- Weighted Interleave Node Weights 37 38ACPI Debugging 39============== 40 41The :code:`acpidump -b` command dumps the ACPI tables into binary format. 42 43The :code:`iasl -d` command disassembles the files into human readable format. 44 45Example :code:`acpidump -b && iasl -d cedt.dat` :: 46 47 [000h 0000 4] Signature : "CEDT" [CXL Early Discovery Table] 48 49Common Issues 50------------- 51Most failures described here result in a failure of the driver to surface 52memory as a DAX device and/or kmem. 53 54* CEDT CFMWS targets list UIDs do not match CEDT CHBS UIDs. 55* CEDT CFMWS targets list UIDs do not match DSDT CXL Host Bridge UIDs. 56* CEDT CFMWS Restriction Bits are not correct. 57* CEDT CFMWS Memory regions are poorly aligned. 58* CEDT CFMWS Memory regions spans a platform memory hole. 59* CEDT CHBS UIDs do not match DSDT CXL Host Bridge UIDs. 60* CEDT CHBS Specification version is incorrect. 61* SRAT is missing regions described in CEDT CFMWS. 62 63 * Result: failure to create a NUMA node for the region, or 64 region is placed in wrong node. 65 66* HMAT is missing data for regions described in CEDT CFMWS. 67 68 * Result: NUMA node being placed in the wrong memory tier. 69 70* SLIT has bad data. 71 72 * Result: Lots of performance mechanisms in the kernel will be very unhappy. 73 74All of these issues will appear to users as if the driver is failing to 75support CXL - when in reality they are all the failure of a platform to 76configure the ACPI tables correctly. 77