Merge branch 'work.init' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[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/bus.c
40    :doc: cxl core
41
42 .. kernel-doc:: drivers/cxl/core/pmem.c
43    :doc: cxl pmem
44
45 .. kernel-doc:: drivers/cxl/core/regs.c
46    :doc: cxl registers
47
48 External Interfaces
49 ===================
50
51 CXL IOCTL Interface
52 -------------------
53
54 .. kernel-doc:: include/uapi/linux/cxl_mem.h
55    :doc: UAPI
56
57 .. kernel-doc:: include/uapi/linux/cxl_mem.h
58    :internal: