summaryrefslogtreecommitdiffstats
path: root/Documentation/driver-api/cxl
diff options
context:
space:
mode:
authorBen Widawsky <ben.widawsky@intel.com>2021-02-16 20:09:51 -0800
committerDan Williams <dan.j.williams@intel.com>2021-02-16 20:36:38 -0800
commit8adaf747c9f0b470aea1b0c88583aa0a344e1540 (patch)
treebfcca72b9429c977778ad98b2d97cb6184f97b9d /Documentation/driver-api/cxl
parent4cdadfd5e0a70017fec735b7b6d7f2f731842dc6 (diff)
downloadlinux-8adaf747c9f0b470aea1b0c88583aa0a344e1540.tar.gz
linux-8adaf747c9f0b470aea1b0c88583aa0a344e1540.tar.bz2
linux-8adaf747c9f0b470aea1b0c88583aa0a344e1540.zip
cxl/mem: Find device capabilities
Provide enough functionality to utilize the mailbox of a memory device. The mailbox is used to interact with the firmware running on the memory device. The flow is proven with one implemented command, "identify". Because the class code has already told the driver this is a memory device and the identify command is mandatory. CXL devices contain an array of capabilities that describe the interactions software can have with the device or firmware running on the device. A CXL compliant device must implement the device status and the mailbox capability. Additionally, a CXL compliant memory device must implement the memory device capability. Each of the capabilities can [will] provide an offset within the MMIO region for interacting with the CXL device. The capabilities tell the driver how to find and map the register space for CXL Memory Devices. The registers are required to utilize the CXL spec defined mailbox interface. The spec outlines two mailboxes, primary and secondary. The secondary mailbox is earmarked for system firmware, and not handled in this driver. Primary mailboxes are capable of generating an interrupt when submitting a background command. That implementation is saved for a later time. Reported-by: Colin Ian King <colin.king@canonical.com> (coverity) Reported-by: Dan Carpenter <dan.carpenter@oracle.com> (smatch) Signed-off-by: Ben Widawsky <ben.widawsky@intel.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> (v2) Link: https://www.computeexpresslink.org/download-the-specification Link: https://lore.kernel.org/r/20210217040958.1354670-3-ben.widawsky@intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'Documentation/driver-api/cxl')
-rw-r--r--Documentation/driver-api/cxl/memory-devices.rst14
1 files changed, 14 insertions, 0 deletions
diff --git a/Documentation/driver-api/cxl/memory-devices.rst b/Documentation/driver-api/cxl/memory-devices.rst
index 71617e9002f1..43177e700d62 100644
--- a/Documentation/driver-api/cxl/memory-devices.rst
+++ b/Documentation/driver-api/cxl/memory-devices.rst
@@ -13,3 +13,17 @@ Address space is handled via HDM (Host Managed Device Memory) decoders
that optionally define a device's contribution to an interleaved address
range across multiple devices underneath a host-bridge or interleaved
across host-bridges.
+
+Driver Infrastructure
+=====================
+
+This section covers the driver infrastructure for a CXL memory device.
+
+CXL Memory Device
+-----------------
+
+.. kernel-doc:: drivers/cxl/mem.c
+ :doc: cxl mem
+
+.. kernel-doc:: drivers/cxl/mem.c
+ :internal: