| .. 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). |