1.. SPDX-License-Identifier: GPL-2.0
2.. include:: <isonum.txt>
3
4===================================
5Compute Express Link Memory Devices
6===================================
7
8A Compute Express Link Memory Device is a CXL component that implements the
9CXL.mem protocol. It contains some amount of volatile memory, persistent memory,
10or both. It is enumerated as a PCI device for configuration and passing
11messages over an MMIO mailbox. Its contribution to the System Physical
12Address space is handled via HDM (Host Managed Device Memory) decoders
13that optionally define a device's contribution to an interleaved address
14range across multiple devices underneath a host-bridge or interleaved
15across host-bridges.
16
17Driver Infrastructure
18=====================
19
20This section covers the driver infrastructure for a CXL memory device.
21
22CXL Memory Device
23-----------------
24
25.. kernel-doc:: drivers/cxl/pci.c
26   :doc: cxl pci
27
28.. kernel-doc:: drivers/cxl/pci.c
29   :internal:
30
31CXL Core
32--------
33.. kernel-doc:: drivers/cxl/cxl.h
34   :doc: cxl objects
35
36.. kernel-doc:: drivers/cxl/cxl.h
37   :internal:
38
39.. kernel-doc:: drivers/cxl/core/bus.c
40   :doc: cxl core
41
42.. kernel-doc:: drivers/cxl/core/bus.c
43   :identifiers:
44
45.. kernel-doc:: drivers/cxl/core/pmem.c
46   :doc: cxl pmem
47
48.. kernel-doc:: drivers/cxl/core/regs.c
49   :doc: cxl registers
50
51.. kernel-doc:: drivers/cxl/core/mbox.c
52   :doc: cxl mbox
53
54External Interfaces
55===================
56
57CXL IOCTL Interface
58-------------------
59
60.. kernel-doc:: include/uapi/linux/cxl_mem.h
61   :doc: UAPI
62
63.. kernel-doc:: include/uapi/linux/cxl_mem.h
64   :internal:
65