mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 02:36:21 +00:00
4cdadfd5e0
The CXL.mem protocol allows a device to act as a provider of "System RAM" and/or "Persistent Memory" that is fully coherent as if the memory was attached to the typical CPU memory controller. With the CXL-2.0 specification a PCI endpoint can implement a "Type-3" device interface and give the operating system control over "Host Managed Device Memory". See section 2.3 Type 3 CXL Device. The memory range exported by the device may optionally be described by the platform firmware memory map, or by infrastructure like LIBNVDIMM to provision persistent memory capacity from one, or more, CXL.mem devices. A pre-requisite for Linux-managed memory-capacity provisioning is this cxl_mem driver that can speak the mailbox protocol defined in section 8.2.8.4 Mailbox Registers. For now just land the initial driver boiler-plate and Documentation/ infrastructure. Signed-off-by: Ben Widawsky <ben.widawsky@intel.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Acked-by: David Rientjes <rientjes@google.com> (v1) Cc: Jonathan Corbet <corbet@lwn.net> Link: https://www.computeexpresslink.org/download-the-specification Link: https://lore.kernel.org/r/20210217040958.1354670-2-ben.widawsky@intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
117 lines
1.7 KiB
ReStructuredText
117 lines
1.7 KiB
ReStructuredText
========================================
|
|
The Linux driver implementer's API guide
|
|
========================================
|
|
|
|
The kernel offers a wide variety of interfaces to support the development
|
|
of device drivers. This document is an only somewhat organized collection
|
|
of some of those interfaces — it will hopefully get better over time! The
|
|
available subsections can be seen below.
|
|
|
|
.. class:: toc-title
|
|
|
|
Table of contents
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
|
|
driver-model/index
|
|
basics
|
|
infrastructure
|
|
ioctl
|
|
early-userspace/index
|
|
pm/index
|
|
clk
|
|
device-io
|
|
dma-buf
|
|
device_link
|
|
component
|
|
message-based
|
|
infiniband
|
|
frame-buffer
|
|
regulator
|
|
reset
|
|
iio/index
|
|
input
|
|
usb/index
|
|
firewire
|
|
pci/index
|
|
cxl/index
|
|
spi
|
|
i2c
|
|
ipmb
|
|
ipmi
|
|
i3c/index
|
|
interconnect
|
|
devfreq
|
|
hsi
|
|
edac
|
|
scsi
|
|
libata
|
|
target
|
|
mailbox
|
|
mtdnand
|
|
miscellaneous
|
|
mei/index
|
|
mtd/index
|
|
mmc/index
|
|
nvdimm/index
|
|
w1
|
|
rapidio/index
|
|
s390-drivers
|
|
vme
|
|
80211/index
|
|
uio-howto
|
|
firmware/index
|
|
pinctl
|
|
gpio/index
|
|
md/index
|
|
media/index
|
|
misc_devices
|
|
nfc/index
|
|
dmaengine/index
|
|
slimbus
|
|
soundwire/index
|
|
thermal/index
|
|
fpga/index
|
|
acpi/index
|
|
auxiliary_bus
|
|
backlight/lp855x-driver.rst
|
|
connector
|
|
console
|
|
dcdbas
|
|
eisa
|
|
isa
|
|
isapnp
|
|
io-mapping
|
|
io_ordering
|
|
generic-counter
|
|
lightnvm-pblk
|
|
memory-devices/index
|
|
men-chameleon-bus
|
|
ntb
|
|
nvmem
|
|
parport-lowlevel
|
|
pps
|
|
ptp
|
|
phy/index
|
|
pti_intel_mid
|
|
pwm
|
|
pldmfw/index
|
|
rfkill
|
|
serial/index
|
|
sm501
|
|
switchtec
|
|
sync_file
|
|
vfio-mediated-device
|
|
vfio
|
|
xilinx/index
|
|
xillybus
|
|
zorro
|
|
|
|
.. only:: subproject and html
|
|
|
|
Indices
|
|
=======
|
|
|
|
* :ref:`genindex`
|