On 5/12/25 9:21 AM, Gregory Price wrote: > v3: > - Cross-links (Bagas) > - Grammar and spelling (Randy) > - added fixups to access-coordinates (Bagas) > - Drop TODO sections (use-case, memory-tiering, CDAT/UEFI, SRAT Genport) > I unfortunately won't be able to come back around to this for > a while, so I'd rather not let this rot. Applied to cxl/next > > --- > > This series converts CXL Boot to Bash Docs from LSFMM '25 to Linux > Kernel Docs. In brief, this document covers (almost) everything Linux > expects from platforms to successfully bring volatile CXL memory > capacity online as a DAX device and/or SystemRAM. > > It covers: > > - Platform configuration data (ACPI Tables, EFI Memory Map, EFI Configs) > - Linux Build and Boot Parameters > - Linux consumption of Platform, Build, and Boot params > - Linux creation of base resources (NUMA nodes, memory tiers, etc) > - CXL Driver probe process and sysfs structure > - DAX Driver interactions between the CXL driver and memory hotplug > - Memory hotplug interactions > - Page allocator interactions (NUMA nodes, Memory Zones, Reclaim, etc). > > Included are example platform configurations (ACPI tables) and cxl > decoder configurations to guide platform developers on expected > configurations (which may be more strict than the CXL spec). > > Co-developed-by: Joshua Hahn <joshua.hahnjy@xxxxxxxxx> > Signed-off-by: Joshua Hahn <joshua.hahnjy@xxxxxxxxx> > Signed-off-by: Gregory Price <gourry@xxxxxxxxxx> > > Gregory Price (17): > cxl: update documentation structure in prep for new docs > cxl: docs - access-coordinates doc fixups > cxl: docs/devices - add cxl device and protocol reference > cxl: docs/platform/bios-and-efi documentation > cxl: docs/platform/acpi reference documentation > cxl: docs/platform/example-configs documentation > cxl: docs/linux - overview > cxl: docs/linux - early boot configuration > cxl: docs/linux - add cxl-driver theory of operation > cxl: docs/linux/cxl-driver - add example configurations > cxl: docs/linux/dax-driver documentation > cxl: docs/linux/memory-hotplug > cxl: docs/allocation/dax > cxl: docs/allocation/page-allocator > cxl: docs/allocation/reclaim > cxl: docs/allocation/hugepages > cxl: docs - add self-referencing cross-links > > .../driver-api/cxl/allocation/dax.rst | 60 ++ > .../driver-api/cxl/allocation/hugepages.rst | 32 + > .../cxl/allocation/page-allocator.rst | 85 +++ > .../driver-api/cxl/allocation/reclaim.rst | 51 ++ > .../driver-api/cxl/devices/device-types.rst | 165 +++++ > Documentation/driver-api/cxl/index.rst | 45 +- > .../cxl/{ => linux}/access-coordinates.rst | 35 +- > .../driver-api/cxl/linux/cxl-driver.rst | 630 ++++++++++++++++++ > .../driver-api/cxl/linux/dax-driver.rst | 43 ++ > .../driver-api/cxl/linux/early-boot.rst | 137 ++++ > .../example-configurations/hb-interleave.rst | 314 +++++++++ > .../intra-hb-interleave.rst | 291 ++++++++ > .../multi-interleave.rst | 401 +++++++++++ > .../example-configurations/single-device.rst | 246 +++++++ > .../driver-api/cxl/linux/memory-hotplug.rst | 78 +++ > .../driver-api/cxl/linux/overview.rst | 103 +++ > .../driver-api/cxl/platform/acpi.rst | 76 +++ > .../driver-api/cxl/platform/acpi/cedt.rst | 62 ++ > .../driver-api/cxl/platform/acpi/dsdt.rst | 28 + > .../driver-api/cxl/platform/acpi/hmat.rst | 32 + > .../driver-api/cxl/platform/acpi/slit.rst | 21 + > .../driver-api/cxl/platform/acpi/srat.rst | 44 ++ > .../driver-api/cxl/platform/bios-and-efi.rst | 262 ++++++++ > .../cxl/platform/example-configs.rst | 13 + > .../example-configurations/flexible.rst | 296 ++++++++ > .../example-configurations/hb-interleave.rst | 107 +++ > .../multi-dev-per-hb.rst | 90 +++ > .../example-configurations/one-dev-per-hb.rst | 136 ++++ > ...ry-devices.rst => theory-of-operation.rst} | 10 +- > 29 files changed, 3867 insertions(+), 26 deletions(-) > create mode 100644 Documentation/driver-api/cxl/allocation/dax.rst > create mode 100644 Documentation/driver-api/cxl/allocation/hugepages.rst > create mode 100644 Documentation/driver-api/cxl/allocation/page-allocator.rst > create mode 100644 Documentation/driver-api/cxl/allocation/reclaim.rst > create mode 100644 Documentation/driver-api/cxl/devices/device-types.rst > rename Documentation/driver-api/cxl/{ => linux}/access-coordinates.rst (84%) > create mode 100644 Documentation/driver-api/cxl/linux/cxl-driver.rst > create mode 100644 Documentation/driver-api/cxl/linux/dax-driver.rst > create mode 100644 Documentation/driver-api/cxl/linux/early-boot.rst > create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/hb-interleave.rst > create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/intra-hb-interleave.rst > create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/multi-interleave.rst > create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/single-device.rst > create mode 100644 Documentation/driver-api/cxl/linux/memory-hotplug.rst > create mode 100644 Documentation/driver-api/cxl/linux/overview.rst > create mode 100644 Documentation/driver-api/cxl/platform/acpi.rst > create mode 100644 Documentation/driver-api/cxl/platform/acpi/cedt.rst > create mode 100644 Documentation/driver-api/cxl/platform/acpi/dsdt.rst > create mode 100644 Documentation/driver-api/cxl/platform/acpi/hmat.rst > create mode 100644 Documentation/driver-api/cxl/platform/acpi/slit.rst > create mode 100644 Documentation/driver-api/cxl/platform/acpi/srat.rst > create mode 100644 Documentation/driver-api/cxl/platform/bios-and-efi.rst > create mode 100644 Documentation/driver-api/cxl/platform/example-configs.rst > create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/flexible.rst > create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/hb-interleave.rst > create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/multi-dev-per-hb.rst > create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/one-dev-per-hb.rst > rename Documentation/driver-api/cxl/{memory-devices.rst => theory-of-operation.rst} (98%) >