All of lore.kernel.org
 help / color / mirror / Atom feed
From: mgross@linux.intel.com
To: markgross@kernel.org, mgross@linux.intel.com, arnd@arndb.de,
	bp@suse.de, damien.lemoal@wdc.com, dragan.cvetic@xilinx.com,
	gregkh@linuxfoundation.org, corbet@lwn.net,
	palmerdabbelt@google.com, paul.walmsley@sifive.com,
	peng.fan@nxp.com, robh+dt@kernel.org, shawnguo@kernel.org,
	jassisinghbrar@gmail.com
Cc: linux-kernel@vger.kernel.org,
	Srikanth Thokala <srikanth.thokala@intel.com>,
	linux-doc@vger.kernel.org
Subject: [PATCH v6 08/34] misc: xlink-pcie: Add documentation for XLink PCIe driver
Date: Fri, 12 Feb 2021 14:22:38 -0800	[thread overview]
Message-ID: <20210212222304.110194-9-mgross@linux.intel.com> (raw)
In-Reply-To: <20210212222304.110194-1-mgross@linux.intel.com>

From: Srikanth Thokala <srikanth.thokala@intel.com>

Provide overview of XLink PCIe driver implementation

Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org
Reviewed-by: Mark Gross <mgross@linux.intel.com>
Signed-off-by: Mark Gross <mgross@linux.intel.com>
Signed-off-by: Srikanth Thokala <srikanth.thokala@intel.com>
---
 Documentation/vpu/index.rst      |  1 +
 Documentation/vpu/xlink-pcie.rst | 90 ++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+)
 create mode 100644 Documentation/vpu/xlink-pcie.rst

diff --git a/Documentation/vpu/index.rst b/Documentation/vpu/index.rst
index 7e290e048910..661cc700ee45 100644
--- a/Documentation/vpu/index.rst
+++ b/Documentation/vpu/index.rst
@@ -14,3 +14,4 @@ This documentation contains information for the Intel VPU stack.
    :maxdepth: 2
 
    vpu-stack-overview
+   xlink-pcie
diff --git a/Documentation/vpu/xlink-pcie.rst b/Documentation/vpu/xlink-pcie.rst
new file mode 100644
index 000000000000..85a70990e9c9
--- /dev/null
+++ b/Documentation/vpu/xlink-pcie.rst
@@ -0,0 +1,90 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+================================
+Kernel driver: Xlink-pcie driver
+================================
+Supported chips:
+  * Intel Edge.AI Computer Vision platforms: Keem Bay
+    Suffix: Bay
+    Slave address: 6240
+    Datasheet: Publicly available at Intel
+
+Author: Srikanth Thokala Srikanth.Thokala@intel.com
+
+Introduction
+============
+The Xlink-pcie driver provides transport layer implementation for
+the data transfers to support Xlink protocol subsystem communication with the
+peer device, i.e., between remote host system and Keem Bay device.
+
+The Keem Bay device is an ARM-based SOC that includes a vision processing
+unit (VPU) and deep learning, neural network core in the hardware.
+The Xlink-pcie driver exports a functional device endpoint to the Keem Bay
+device and supports two-way communication with the peer device.
+
+High-level architecture
+=======================
+Remote Host: IA CPU
+Local Host: ARM CPU (Keem Bay)::
+
+        +------------------------------------------------------------------------+
+        |  Remote Host IA CPU              | | Local Host ARM CPU (Keem Bay) |   |
+        +==================================+=+===============================+===+
+        |  User App                        | | User App                      |   |
+        +----------------------------------+-+-------------------------------+---+
+        |   XLink UAPI                     | | XLink UAPI                    |   |
+        +----------------------------------+-+-------------------------------+---+
+        |   XLink Core                     | | XLink Core                    |   |
+        +----------------------------------+-+-------------------------------+---+
+        |   XLink PCIe                     | | XLink PCIe                    |   |
+        +----------------------------------+-+-------------------------------+---+
+        |   XLink-PCIe Remote Host driver  | | XLink-PCIe Local Host driver  |   |
+        +----------------------------------+-+-------------------------------+---+
+        |-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:|:|:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:|
+        +----------------------------------+-+-------------------------------+---+
+        |     PCIe Host Controller         | | PCIe Device Controller        | HW|
+        +----------------------------------+-+-------------------------------+---+
+               ^                                             ^
+               |                                             |
+               |------------- PCIe x2 Link  -----------------|
+
+This XLink PCIe driver comprises of two variants:
+* Local Host driver
+
+  * Intended for ARM CPU
+  * It is based on PCI Endpoint Framework
+  * Driver path: {tree}/drivers/misc/Xlink-pcie/local_host
+
+* Remote Host driver
+
+       * Intended for IA CPU
+       * It is a PCIe endpoint driver
+       * Driver path: {tree}/drivers/misc/Xlink-pcie/remote_host
+
+XLink PCIe communication between local host and remote host is achieved through
+ring buffer management and MSI/Doorbell interrupts.
+
+The Xlink-pcie driver subsystem registers the Keem Bay device as an endpoint
+driver and provides standard Linux PCIe sysfs interface:
+'/sys/bus/pci/devices/xxxx:xx:xx.0/'
+
+
+XLink protocol subsystem
+========================
+Xlink is an abstracted control and communication subsystem based on channel
+identification. It is intended to support VPU technology both at SoC level as
+well as at IP level, over multiple interfaces.
+
+- The Xlink subsystem abstracts several types of communication channels
+  underneath, allowing the usage of different interfaces with the
+  same function call interface.
+- The Communication channels are full-duplex protocol channels allowing
+  concurrent bidirectional communication.
+- The Xlink subsystem also supports control operations to VPU either
+  from standalone local system or from remote system based on communication
+  interface underneath.
+- The Xlink subsystem supports the following communication interfaces:
+    * USB CDC
+    * Gigabit Ethernet
+    * PCIe
+    * IPC
-- 
2.17.1


  parent reply	other threads:[~2021-02-12 22:25 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-12 22:22 [PATCH v6 00/34] Intel Vision Processing base enabling mgross
2021-02-12 22:22 ` [PATCH v6 01/34] Add Vision Processing Unit (VPU) documentation mgross
2021-02-12 22:22 ` [PATCH v6 02/34] dt-bindings: mailbox: Add Intel VPU IPC mailbox bindings mgross
2021-03-05 20:50   ` Rob Herring
2021-02-12 22:22 ` [PATCH v6 03/34] mailbox: vpu-ipc-mailbox: Add support for Intel VPU IPC mailbox mgross
2021-02-15  4:54   ` Jassi Brar
2021-02-18 12:02     ` Alessandrelli, Daniele
2021-02-18 21:09       ` Jassi Brar
2021-02-18 22:40         ` mark gross
2021-02-12 22:22 ` [PATCH v6 04/34] dt-bindings: Add bindings for Keem Bay IPC driver mgross
2021-03-05 21:01   ` Rob Herring
2021-03-08 20:20     ` mark gross
2021-04-12 21:24       ` Jassi Brar
2021-04-20 22:14         ` mark gross
2021-04-21 13:55           ` mark gross
2021-04-21 14:05             ` Jassi Brar
2021-04-21 15:29               ` Alessandrelli, Daniele
2021-02-12 22:22 ` [PATCH v6 05/34] keembay-ipc: Add Keem Bay IPC module mgross
2021-02-12 22:22 ` [PATCH v6 06/34] dt-bindings: Add bindings for Keem Bay VPU IPC driver mgross
2021-02-12 22:22 ` [PATCH v6 07/34] keembay-vpu-ipc: Add Keem Bay VPU IPC module mgross
2021-02-12 22:22 ` mgross [this message]
2021-02-12 22:22 ` [PATCH v6 09/34] misc: xlink-pcie: lh: Add PCIe EPF driver for Local Host mgross
2021-02-12 22:22 ` [PATCH v6 10/34] misc: xlink-pcie: lh: Add PCIe EP DMA functionality mgross
2021-02-12 22:22 ` [PATCH v6 11/34] misc: xlink-pcie: lh: Add core communication logic mgross
2021-02-12 22:22 ` [PATCH v6 12/34] misc: xlink-pcie: lh: Prepare changes for adding remote host driver mgross
2021-02-12 22:22 ` [PATCH v6 13/34] misc: xlink-pcie: rh: Add PCIe EP driver for Remote Host mgross
2021-02-12 22:22 ` [PATCH v6 14/34] misc: xlink-pcie: rh: Add core communication logic mgross
2021-02-12 22:22 ` [PATCH v6 15/34] misc: xlink-pcie: Add XLink API interface mgross
2021-02-12 22:22 ` [PATCH v6 16/34] misc: xlink-pcie: Add asynchronous event notification support for XLink mgross
2021-02-12 22:22 ` [PATCH v6 17/34] xlink-ipc: Add xlink ipc device tree bindings mgross
2021-03-05 21:11   ` Rob Herring
2021-02-12 22:22 ` [PATCH v6 18/34] xlink-ipc: Add xlink ipc driver mgross
2021-02-12 22:22 ` [PATCH v6 19/34] xlink-core: Add xlink core device tree bindings mgross
2021-03-05 21:03   ` Rob Herring
2021-03-08 20:31     ` mark gross
2021-04-12 21:32   ` Dave Hansen
2021-04-20 22:08     ` Gross, Mark
2021-02-12 22:22 ` [PATCH v6 20/34] xlink-core: Add xlink core driver xLink mgross
2021-02-14 17:52   ` Randy Dunlap
2021-02-17 23:29     ` mark gross
2021-02-12 22:22 ` [PATCH v6 21/34] xlink-core: Enable xlink protocol over pcie mgross
2021-02-12 22:22 ` [PATCH v6 22/34] xlink-core: Enable VPU IP management and runtime control mgross
2021-02-12 22:22 ` [PATCH v6 23/34] xlink-core: add async channel and events mgross
2021-02-12 22:22 ` [PATCH v6 24/34] dt-bindings: misc: Add Keem Bay vpumgr mgross
2021-02-12 22:22 ` [PATCH v6 25/34] misc: Add Keem Bay VPU manager mgross
2021-02-14 17:39   ` Randy Dunlap
2021-02-17 23:30     ` mark gross
2021-02-12 22:22 ` [PATCH v6 26/34] dt-bindings: misc: intel_tsens: Add tsens thermal bindings documentation mgross
2021-02-12 22:22 ` [PATCH v6 27/34] misc: Tsens ARM host thermal driver mgross
2021-02-14 17:44   ` Randy Dunlap
2021-02-17 23:33     ` mark gross
2021-02-12 22:22 ` [PATCH v6 28/34] misc: Intel tsens IA host driver mgross
2021-02-14 17:45   ` Randy Dunlap
2021-02-17 23:34     ` mark gross
2021-02-12 22:22 ` [PATCH v6 29/34] Intel tsens i2c slave driver mgross
2021-02-14 17:41   ` Randy Dunlap
2021-02-17 23:35     ` mark gross
2021-02-12 22:23 ` [PATCH v6 30/34] misc:intel_tsens: Intel Keem Bay tsens driver mgross
2021-02-14 17:42   ` Randy Dunlap
2021-02-17 23:36     ` mark gross
2021-02-12 22:23 ` [PATCH v6 31/34] Intel Keembay XLink SMBus driver mgross
2021-02-12 22:23 ` [PATCH v6 32/34] dt-bindings: misc: hddl_dev: Add hddl device management documentation mgross
2021-03-05 21:20   ` Rob Herring
2021-02-12 22:23 ` [PATCH v6 33/34] misc: Hddl device management for local host mgross
2021-02-14 17:47   ` Randy Dunlap
2021-02-17 23:38     ` mark gross
2021-02-12 22:23 ` [PATCH v6 34/34] misc: HDDL device management for IA host mgross
2021-02-14 17:48   ` Randy Dunlap
2021-02-17 23:39     ` mark gross
2021-07-09 18:17 ` [PATCH v6 00/34] Intel Vision Processing base enabling mark gross

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=20210212222304.110194-9-mgross@linux.intel.com \
    --to=mgross@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=bp@suse.de \
    --cc=corbet@lwn.net \
    --cc=damien.lemoal@wdc.com \
    --cc=dragan.cvetic@xilinx.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jassisinghbrar@gmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markgross@kernel.org \
    --cc=palmerdabbelt@google.com \
    --cc=paul.walmsley@sifive.com \
    --cc=peng.fan@nxp.com \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=srikanth.thokala@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.