mbox series

[00/38] cxlflash: OpenCXL transport support

Message ID 1519338010-51782-1-git-send-email-ukrishn@linux.vnet.ibm.com (mailing list archive)
Headers show
Series cxlflash: OpenCXL transport support | expand

Message

Uma Krishnan Feb. 22, 2018, 10:20 p.m. UTC
This patch series adds OpenCXL support to the cxlflash driver. With
this support, new devices using the OpenCXL transport will be supported
by the cxlflash driver along with the existing CXL devices. An effort is
made to keep this transport specific function independent of the existing
core driver that communicates with the AFU.

The first three patches contain a minor fix and staging improvements.

This series is intended for 4.17 and is bisectable.

Matthew R. Ochs (1):
  cxlflash: Avoid clobbering context control register value

Uma Krishnan (37):
  cxlflash: Preserve number of interrupts for master contexts
  cxlflash: Add argument identifier names
  cxlflash: Introduce OpenCXL backend
  cxlflash: Hardware AFU for OpenCXL
  cxlflash: Read host function configuration
  cxlflash: Setup function acTag range
  cxlflash: Read host AFU configuration
  cxlflash: Setup AFU acTag range
  cxlflash: Setup AFU PASID
  cxlflash: Adapter context support for OpenCXL
  cxlflash: Use IDR to manage adapter contexts
  cxlflash: Support adapter file descriptors for OpenCXL
  cxlflash: Support adapter context discovery
  cxlflash: Support image reload policy modification
  cxlflash: MMIO map the AFU
  cxlflash: Support starting an adapter context
  cxlflash: Support process specific mappings
  cxlflash: Support AFU state toggling
  cxlflash: Support reading adapter VPD data
  cxlflash: Setup function OpenCXL link
  cxlflash: Setup OpenCXL transaction layer
  cxlflash: Support process element lifecycle
  cxlflash: Support AFU interrupt management
  cxlflash: Support AFU interrupt mapping and registration
  cxlflash: Support starting user contexts
  cxlflash: Support adapter context polling
  cxlflash: Support adapter context reading
  cxlflash: Support adapter context mmap and release
  cxlflash: Support file descriptor mapping
  cxlflash: Introduce object handle fop
  cxlflash: Setup LISNs for user contexts
  cxlflash: Setup LISNs for master contexts
  cxlflash: Update synchronous interrupt status bits
  cxlflash: Introduce OCXL context state machine
  cxlflash: Register for translation errors
  cxlflash: Support AFU reset
  cxlflash: Enable OpenCXL operations

 drivers/scsi/cxlflash/Kconfig     |    2 +-
 drivers/scsi/cxlflash/Makefile    |    2 +-
 drivers/scsi/cxlflash/backend.h   |   50 +-
 drivers/scsi/cxlflash/common.h    |   10 +-
 drivers/scsi/cxlflash/cxl_hw.c    |   13 +
 drivers/scsi/cxlflash/main.c      |   55 +-
 drivers/scsi/cxlflash/main.h      |    1 +
 drivers/scsi/cxlflash/ocxl_hw.c   | 1428 +++++++++++++++++++++++++++++++++++++
 drivers/scsi/cxlflash/ocxl_hw.h   |   76 ++
 drivers/scsi/cxlflash/sislite.h   |   41 +-
 drivers/scsi/cxlflash/superpipe.c |   14 +
 11 files changed, 1644 insertions(+), 48 deletions(-)
 create mode 100644 drivers/scsi/cxlflash/ocxl_hw.c
 create mode 100644 drivers/scsi/cxlflash/ocxl_hw.h

Comments

Andrew Donnellan Feb. 23, 2018, 4:13 a.m. UTC | #1
On 23/02/18 09:20, Uma Krishnan wrote:
> This patch series adds OpenCXL support to the cxlflash driver. With
> this support, new devices using the OpenCXL transport will be supported
> by the cxlflash driver along with the existing CXL devices. An effort is
> made to keep this transport specific function independent of the existing
> core driver that communicates with the AFU.

It's "OpenCAPI" for the standard, and "ocxl" for the driver - I'd rather 
not add "OpenCXL" to our already somewhat confusing proliferation of 
names :)

I'll try to review as much of the ocxl-specific stuff as I can get to, 
though I'm a bit busy with the OpenCAPI skiboot work and reviewing the 
libocxl userspace library at the moment.


Andrew
Uma Krishnan Feb. 23, 2018, 6:05 p.m. UTC | #2
<html><head></head><body dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="ApplePlainTextBody"><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="ApplePlainTextBody"><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="ApplePlainTextBody"><div class="ApplePlainTextBody"><br><blockquote type="cite">On Feb 22, 2018, at 10:13 PM, Andrew Donnellan &lt;andrew.donnellan@au1.ibm.com&gt; wrote:<br><br>On 23/02/18 09:20, Uma Krishnan wrote:<br><blockquote type="cite">This patch series adds OpenCXL support to the cxlflash driver. With<br>this support, new devices using the OpenCXL transport will be supported<br>by the cxlflash driver along with the existing CXL devices. An effort is<br>made to keep this transport specific function independent of the existing<br>core driver that communicates with the AFU.<br></blockquote><br>It's "OpenCAPI" for the standard, and "ocxl" for the driver - I'd rather not add "OpenCXL" to our already somewhat confusing proliferation of names :)<br><br></blockquote><br>I agree. I will fix it in V2. Thanks for the feedback.<br><br><blockquote type="cite">I'll try to review as much of the ocxl-specific stuff as I can get to, though I'm a bit busy with the OpenCAPI skiboot work and reviewing the libocxl userspace library at the moment.<br><br><br>Andrew<br><br>-- <br>Andrew Donnellan &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OzLabs, ADL Canberra<br>andrew.donnellan@au1.ibm.com &nbsp;IBM Australia Limited<br></blockquote><br></div></div></div></body></html>
Uma Krishnan Feb. 23, 2018, 7:38 p.m. UTC | #3
> On Feb 22, 2018, at 10:13 PM, Andrew Donnellan <andrew.donnellan@au1.ibm.com> wrote:
> 
> On 23/02/18 09:20, Uma Krishnan wrote:
>> This patch series adds OpenCXL support to the cxlflash driver. With
>> this support, new devices using the OpenCXL transport will be supported
>> by the cxlflash driver along with the existing CXL devices. An effort is
>> made to keep this transport specific function independent of the existing
>> core driver that communicates with the AFU.
> 
> It's "OpenCAPI" for the standard, and "ocxl" for the driver - I'd rather not add "OpenCXL" to our already somewhat confusing proliferation of names :)

I agree. :) I will fix it in V2. Thanks for the feedback.
Matthew R. Ochs Feb. 26, 2018, 2:43 p.m. UTC | #4
On Thu, Feb 22, 2018 at 04:20:10PM -0600, Uma Krishnan wrote:
> This patch series adds OpenCXL support to the cxlflash driver. With
> this support, new devices using the OpenCXL transport will be supported
> by the cxlflash driver along with the existing CXL devices. An effort is
> made to keep this transport specific function independent of the existing
> core driver that communicates with the AFU.
> 
> The first three patches contain a minor fix and staging improvements.
> 
> This series is intended for 4.17 and is bisectable.

I'm fine with the entire series and agree that the OpenCXL terminology
should be consistent throughout the kernel.

So...contingent upon a V2 with OpenCXL references being replaced by OCXL:

Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>

> 
> Matthew R. Ochs (1):
>   cxlflash: Avoid clobbering context control register value
> 
> Uma Krishnan (37):
>   cxlflash: Preserve number of interrupts for master contexts
>   cxlflash: Add argument identifier names
>   cxlflash: Introduce OpenCXL backend
>   cxlflash: Hardware AFU for OpenCXL
>   cxlflash: Read host function configuration
>   cxlflash: Setup function acTag range
>   cxlflash: Read host AFU configuration
>   cxlflash: Setup AFU acTag range
>   cxlflash: Setup AFU PASID
>   cxlflash: Adapter context support for OpenCXL
>   cxlflash: Use IDR to manage adapter contexts
>   cxlflash: Support adapter file descriptors for OpenCXL
>   cxlflash: Support adapter context discovery
>   cxlflash: Support image reload policy modification
>   cxlflash: MMIO map the AFU
>   cxlflash: Support starting an adapter context
>   cxlflash: Support process specific mappings
>   cxlflash: Support AFU state toggling
>   cxlflash: Support reading adapter VPD data
>   cxlflash: Setup function OpenCXL link
>   cxlflash: Setup OpenCXL transaction layer
>   cxlflash: Support process element lifecycle
>   cxlflash: Support AFU interrupt management
>   cxlflash: Support AFU interrupt mapping and registration
>   cxlflash: Support starting user contexts
>   cxlflash: Support adapter context polling
>   cxlflash: Support adapter context reading
>   cxlflash: Support adapter context mmap and release
>   cxlflash: Support file descriptor mapping
>   cxlflash: Introduce object handle fop
>   cxlflash: Setup LISNs for user contexts
>   cxlflash: Setup LISNs for master contexts
>   cxlflash: Update synchronous interrupt status bits
>   cxlflash: Introduce OCXL context state machine
>   cxlflash: Register for translation errors
>   cxlflash: Support AFU reset
>   cxlflash: Enable OpenCXL operations
> 
>  drivers/scsi/cxlflash/Kconfig     |    2 +-
>  drivers/scsi/cxlflash/Makefile    |    2 +-
>  drivers/scsi/cxlflash/backend.h   |   50 +-
>  drivers/scsi/cxlflash/common.h    |   10 +-
>  drivers/scsi/cxlflash/cxl_hw.c    |   13 +
>  drivers/scsi/cxlflash/main.c      |   55 +-
>  drivers/scsi/cxlflash/main.h      |    1 +
>  drivers/scsi/cxlflash/ocxl_hw.c   | 1428 +++++++++++++++++++++++++++++++++++++
>  drivers/scsi/cxlflash/ocxl_hw.h   |   76 ++
>  drivers/scsi/cxlflash/sislite.h   |   41 +-
>  drivers/scsi/cxlflash/superpipe.c |   14 +
>  11 files changed, 1644 insertions(+), 48 deletions(-)
>  create mode 100644 drivers/scsi/cxlflash/ocxl_hw.c
>  create mode 100644 drivers/scsi/cxlflash/ocxl_hw.h
> 
> -- 
> 2.1.0
>