Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Documentation/driver-api/cxl: Introduce conventions.rst

There exists shipping platforms that bend, break, or otherwise lean on
ambiguities in the CXL specification. Without driver changes to accommodate
these deviations, end users are left without CXL subsystem RAS features.
Specifically, provisioning, error translation, and other flows require the
CXL subsystem to understand the platforms CXL topology beyond undecorated
memory address ranges.

Those isolated compatibility problems risk growing into deeper upstream
maintenance burden if different platform vendors arrive at diverging
solutions. For example, there are multiple options for resolving
low-memory-mmio intersecting large-interleave-ways CXL windows. Linux
should only entertain one solution to that problem.

Now, with the ACPI Specification Working Group, situations like this would
be resolved with the "Code First ECN" process to codify Linux expectations
in a specification. In the absence of such a process for the CXL
specification, create a file in Linux documentation to detail the
motivations, assumptions, tradeoffs, and proposals for amending
specification language.

The goal is to capture the issues such that platform vendors arrive at
compatible solutions for these problems and serve as a repository for
potential specification updates. The expectation is to update
conventions.rst along with CXL subsystem code changes to accommodate the
platform topology.

[ dj: Rebased against v6.16-rc1 ]

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Robert Richter <rrichter@amd.com>
Link: https://patch.msgid.link/20250603185254.3730099-1-dan.j.williams@intel.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>

authored by

Dan Williams and committed by
Dave Jiang
7ac6612d d0b3b7b2

+48
+47
Documentation/driver-api/cxl/conventions.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + .. include:: <isonum.txt> 3 + 4 + ======================================= 5 + Compute Express Link: Linux Conventions 6 + ======================================= 7 + 8 + There exists shipping platforms that bend or break CXL specification 9 + expectations. Record the details and the rationale for those deviations. 10 + Borrow the ACPI Code First template format to capture the assumptions 11 + and tradeoffs such that multiple platform implementations can follow the 12 + same convention. 13 + 14 + <(template) Title> 15 + ================== 16 + 17 + Document 18 + -------- 19 + CXL Revision <rev>, Version <ver> 20 + 21 + License 22 + ------- 23 + SPDX-License Identifier: CC-BY-4.0 24 + 25 + Creator/Contributors 26 + -------------------- 27 + 28 + Summary of the Change 29 + --------------------- 30 + 31 + <Detail the conflict with the specification and where available the 32 + assumptions and tradeoffs taken by the hardware platform.> 33 + 34 + 35 + Benefits of the Change 36 + ---------------------- 37 + 38 + <Detail what happens if platforms and Linux do not adopt this 39 + convention.> 40 + 41 + References 42 + ---------- 43 + 44 + Detailed Description of the Change 45 + ---------------------------------- 46 + 47 + <Propose spec language that corrects the conflict.>
+1
Documentation/driver-api/cxl/index.rst
··· 14 14 15 15 theory-of-operation 16 16 maturity-map 17 + conventions 17 18 18 19 .. toctree:: 19 20 :maxdepth: 2