Merge tag 'libnvdimm-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[linux-2.6-microblaze.git] / Documentation / driver-api / cxl / memory-devices.rst
1 .. SPDX-License-Identifier: GPL-2.0
2 .. include:: <isonum.txt>
3
4 ===================================
5 Compute Express Link Memory Devices
6 ===================================
7
8 A Compute Express Link Memory Device is a CXL component that implements the
9 CXL.mem protocol. It contains some amount of volatile memory, persistent memory,
10 or both. It is enumerated as a PCI device for configuration and passing
11 messages over an MMIO mailbox. Its contribution to the System Physical
12 Address space is handled via HDM (Host Managed Device Memory) decoders
13 that optionally define a device's contribution to an interleaved address
14 range across multiple devices underneath a host-bridge or interleaved
15 across host-bridges.
16
17 Driver Infrastructure
18 =====================
19
20 This section covers the driver infrastructure for a CXL memory device.
21
22 CXL 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
31 CXL 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.c
40    :doc: cxl core
41
42 External Interfaces
43 ===================
44
45 CXL IOCTL Interface
46 -------------------
47
48 .. kernel-doc:: include/uapi/linux/cxl_mem.h
49    :doc: UAPI
50
51 .. kernel-doc:: include/uapi/linux/cxl_mem.h
52    :internal: