Back to Linux

CEDT - CXL Early Discovery Table

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

7.02.2 KB
Original Source

.. SPDX-License-Identifier: GPL-2.0

================================ CEDT - CXL Early Discovery Table

The CXL Early Discovery Table is generated by BIOS to describe the CXL memory regions configured at boot by the BIOS.

CHBS

The CXL Host Bridge Structure describes CXL host bridges. Other than describing device register information, it reports the specific host bridge UID for this host bridge. These host bridge ID's will be referenced in other tables.

Example ::

      Subtable Type : 00 [CXL Host Bridge Structure]
           Reserved : 00
             Length : 0020

Associated host bridge : 00000007 <- Host bridge _UID Specification version : 00000001 Reserved : 00000000 Register base : 0000010370400000 Register length : 0000000000010000

CFMWS

The CXL Fixed Memory Window structure describes a memory region associated with one or more CXL host bridges (as described by the CHBS). It additionally describes any inter-host-bridge interleave configuration that may have been programmed by BIOS.

Example ::

        Subtable Type : 01 [CXL Fixed Memory Window Structure]
             Reserved : 00
               Length : 002C
             Reserved : 00000000
  Window base address : 000000C050000000   <- Memory Region
          Window size : 0000003CA0000000

Interleave Members (2^n) : 01 <- Interleave configuration Interleave Arithmetic : 00 Reserved : 0000 Granularity : 00000000 Restrictions : 0006 QtgId : 0001 First Target : 00000007 <- Host Bridge _UID Next Target : 00000006 <- Host Bridge _UID

The restriction field dictates what this SPA range may be used for (memory type, voltile vs persistent, etc). One or more bits may be set. ::

Bit[0]: CXL Type 2 Memory Bit[1]: CXL Type 3 Memory Bit[2]: Volatile Memory Bit[3]: Persistent Memory Bit[4]: Fixed Config (HPA cannot be re-used)

INTRA-host-bridge interleave (multiple devices on one host bridge) is NOT reported in this structure, and is solely defined via CXL device decoder programming (host bridge and endpoint decoders).