Documentation/driver-api/cxl/platform/acpi.rst

Source file repositories/reference/linux-study-clean/Documentation/driver-api/cxl/platform/acpi.rst

File Facts

System
Linux kernel
Corpus path
Documentation/driver-api/cxl/platform/acpi.rst
Extension
.rst
Size
2472 bytes
Lines
77
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0

===========
ACPI Tables
===========

ACPI is the "Advanced Configuration and Power Interface", which is a standard
that defines how platforms and OS manage power and configure computer hardware.
For the purpose of this theory of operation, when referring to "ACPI" we will
usually refer to "ACPI Tables" - which are the way a platform (BIOS/EFI)
communicates static configuration information to the operation system.

The Following ACPI tables contain *static* configuration and performance data
about CXL devices.

.. toctree::
   :maxdepth: 1

   acpi/cedt.rst
   acpi/srat.rst
   acpi/hmat.rst
   acpi/slit.rst
   acpi/dsdt.rst

The SRAT table may also contain generic port/initiator content that is intended
to describe the generic port, but not information about the rest of the path to
the endpoint.

Linux uses these tables to configure kernel resources for statically configured
(by BIOS/EFI) CXL devices, such as:

- NUMA nodes
- Memory Tiers
- NUMA Abstract Distances
- SystemRAM Memory Regions
- Weighted Interleave Node Weights

ACPI Debugging
==============

The :code:`acpidump -b` command dumps the ACPI tables into binary format.

The :code:`iasl -d` command disassembles the files into human readable format.

Example :code:`acpidump -b && iasl -d cedt.dat` ::

   [000h 0000   4]   Signature : "CEDT"    [CXL Early Discovery Table]

Common Issues
-------------
Most failures described here result in a failure of the driver to surface
memory as a DAX device and/or kmem.

* CEDT CFMWS targets list UIDs do not match CEDT CHBS UIDs.
* CEDT CFMWS targets list UIDs do not match DSDT CXL Host Bridge UIDs.
* CEDT CFMWS Restriction Bits are not correct.
* CEDT CFMWS Memory regions are poorly aligned.
* CEDT CFMWS Memory regions spans a platform memory hole.
* CEDT CHBS UIDs do not match DSDT CXL Host Bridge UIDs.
* CEDT CHBS Specification version is incorrect.
* SRAT is missing regions described in CEDT CFMWS.

  * Result: failure to create a NUMA node for the region, or
    region is placed in wrong node.

* HMAT is missing data for regions described in CEDT CFMWS.

  * Result: NUMA node being placed in the wrong memory tier.

* SLIT has bad data.

Annotation

Implementation Notes