From: Christophe Lombard <clombard@linux.vnet.ibm.com>
To: linuxppc-dev@lists.ozlabs.org, fbarrat@linux.vnet.ibm.com,
imunsie@au1.ibm.com, andrew.donnellan@au1.ibm.com
Subject: [PATCH 0/7] cxl: Add support for Coherent Accelerator Interface Architecture 2.0
Date: Wed, 1 Feb 2017 18:30:06 +0100 [thread overview]
Message-ID: <1485970213-25532-1-git-send-email-clombard@linux.vnet.ibm.com> (raw)
This series adds support for a cxl card which supports the Coherent
Accelerator Interface Architecture 2.0.
It requires IBM Power9 system and the Power Service Layer, version 9.
The PSL provides the address translation and system memory cache for
CAIA compliant Accelerators.
the PSL attaches to the IBM Processor chip through the PCIe link using
the PSL-specific “CAPI Protocol” Transaction Layer Packets.
The PSL and CAPP communicate using PowerBus packets.
When using a PCIe link the PCIe Host Bridge (PHB) decodes the CAPI
Protocol Packets from the PSL and forwards them as PowerBus data
packets. The PSL also has an optional DMA feature which allows the AFU
to send native PCIe reads and writes to the Processor.
CAIA 2 introduces new features:
* There are several similarities among the two programming models:
Dedicated-Process and shared models.
* DMA support
* Nest MMU to handle translation addresses.
* ...
It builds on top of the existing cxl driver for the first version of
CAIA. Today only the bare-metal environment supports these new features.
Compatibility with the CAIA, version 1, allows applications and system
software to migrate from one implementation to another with minor
changes.
Most of the differences are:
* Power Service Layer registers: p1 and p2 registers. These new
registers require reworking The service layer API (in cxl.h).
* Support of Radix mode. Power9 consist of multiple memory management
model. So we need to select the right Translation mechanism mode.
* Dedicated-Shared Process Programming Model
* Process element entry. Structure cxl_process_element_common is
redefined.
* Translation Fault Handling. Only a page fault is now handle by the
driver cxl when a translation fault is occurred.
Roughly 3/4 of the code is common between the two CAIA version. When
the code needs to call a specific implementation, it does so
through an API. The PSL8 and PSL9 implementations each describe
their own definition. See struct cxl_service_layer_ops.
The first 3 patches are mostly cleanup and fixes, separating the
psl8-specific code from the code which will also be used for psl9.
Patches 4 restructure existing code, to easily add the psl
implementation.
Patch 5 and 6 rename and isolate implementation-specific code.
Patch 7 introduces the core of the PSL9-specific code.
Tested on Simulation environment.
Christophe Lombard (7):
cxl: Read vsec perst load image
cxl: Remove unused values in bare-metal environment.
cxl: Keep track of mm struct associated with a context
cxl: Update implementation service layer
cxl: Rename some psl8 specific functions
cxl: Isolate few psl8 specific calls
cxl: Add psl9 specific code
drivers/misc/cxl/api.c | 16 ++-
drivers/misc/cxl/context.c | 66 +++++++--
drivers/misc/cxl/cxl.h | 207 +++++++++++++++++++++++-----
drivers/misc/cxl/debugfs.c | 41 ++++--
drivers/misc/cxl/fault.c | 138 ++++++-------------
drivers/misc/cxl/file.c | 14 +-
drivers/misc/cxl/guest.c | 10 +-
drivers/misc/cxl/irq.c | 54 +++++++-
drivers/misc/cxl/native.c | 318 +++++++++++++++++++++++++++++++++++-------
drivers/misc/cxl/pci.c | 337 ++++++++++++++++++++++++++++++++++++++-------
drivers/misc/cxl/trace.h | 43 ++++++
11 files changed, 976 insertions(+), 268 deletions(-)
--
2.7.4
next reply other threads:[~2017-02-01 17:30 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-01 17:30 Christophe Lombard [this message]
2017-02-01 17:30 ` [PATCH 1/7] cxl: Read vsec perst load image Christophe Lombard
2017-02-02 4:15 ` Andrew Donnellan
2017-02-01 17:30 ` [PATCH 2/7] cxl: Remove unused values in bare-metal environment Christophe Lombard
2017-02-02 4:16 ` Andrew Donnellan
2017-02-01 17:30 ` [PATCH 3/7] cxl: Keep track of mm struct associated with a context Christophe Lombard
2017-02-28 7:44 ` Andrew Donnellan
[not found] ` <66dee4f8-5897-2948-5813-c021b83379f8@linux.vnet.ibm.com>
2017-03-20 2:09 ` Andrew Donnellan
2017-02-01 17:30 ` [PATCH 4/7] cxl: Update implementation service layer Christophe Lombard
2017-03-02 6:48 ` Andrew Donnellan
2017-02-01 17:30 ` [PATCH 5/7] cxl: Rename some psl8 specific functions Christophe Lombard
2017-03-02 6:55 ` Andrew Donnellan
2017-02-01 17:30 ` [PATCH 6/7] cxl: Isolate few psl8 specific calls Christophe Lombard
2017-03-03 7:06 ` Andrew Donnellan
2017-02-01 17:30 ` [PATCH 7/7] cxl: Add psl9 specific code Christophe Lombard
2017-03-02 6:55 ` Andrew Donnellan
2017-03-03 7:10 ` Andrew Donnellan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1485970213-25532-1-git-send-email-clombard@linux.vnet.ibm.com \
--to=clombard@linux.vnet.ibm.com \
--cc=andrew.donnellan@au1.ibm.com \
--cc=fbarrat@linux.vnet.ibm.com \
--cc=imunsie@au1.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).