• Ben Widawsky's avatar
    cxl/mem: Find device capabilities · 8adaf747
    Ben Widawsky authored
    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: default avatarBen 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.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    8adaf747
cxl.h 3.26 KB