lkml.org 
[lkml]   [2020]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v4 00/17] Implement NTB Controller using multiple PCI EP
Date
This series is about implementing SW defined NTB using
multiple endpoint instances. This series has been tested using
2 endpoint instances in J7 connected to J7 board on one end and DRA7 board
on the other end. However there is nothing platform specific for the NTB
functionality.

This was presented in Linux Plumbers Conference. The presentation
can be found @ [1]

RFC patch series can be found @ [2]
v1 patch series can be found @ [3]
v2 patch series can be found @ [4]
v3 patch series can be found @ [5]

Changes from v3:
1) Fixed Documentation edits suggested by Randy Dunlap <rdunlap@infradead.org>

Changes from v2:
1) Add support for the user to create sub-directory of 'EPF Device'
directory (for endpoint function specific configuration using
configfs).
2) Add documentation for NTB specific attributes in configfs
3) Check for PCI_CLASS_MEMORY_RAM (PCIe class) before binding ntb_hw_epf
driver
4) Other documentation fixes

Changes from v1:
1) As per Rob's comment, removed support for creating NTB function
device from DT
2) Add support to create NTB EPF device using configfs (added support in
configfs to associate primary and secondary EPC with EPF.

Changes from RFC:
1) Converted the DT binding patches to YAML schema and merged the
DT binding patches together
2) NTB documentation is converted to .rst
3) One HOST can now interrupt the other HOST using MSI-X interrupts
4) Added support for teardown of memory window and doorbell
configuration
5) Add support to provide support 64-bit memory window size from
DT

[1] -> https://www.linuxplumbersconf.org/event/4/contributions/395/attachments/284/481/Implementing_NTB_Controller_Using_PCIe_Endpoint_-_final.pdf
[2] -> http://lore.kernel.org/r/20190926112933.8922-1-kishon@ti.com
[3] -> http://lore.kernel.org/r/20200514145927.17555-1-kishon@ti.com
[4] -> http://lore.kernel.org/r/20200611130525.22746-1-kishon@ti.com
[5] -> http://lore.kernel.org/r/20200904075052.8911-1-kishon@ti.com

Kishon Vijay Abraham I (17):
Documentation: PCI: Add specification for the *PCI NTB* function
device
PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit
BAR
PCI: endpoint: Add helper API to get the 'next' unreserved BAR
PCI: endpoint: Make *_free_bar() to return error codes on failure
PCI: endpoint: Remove unused pci_epf_match_device()
PCI: endpoint: Add support to associate secondary EPC with EPF
PCI: endpoint: Add support in configfs to associate two EPCs with EPF
PCI: endpoint: Add pci_epc_ops to map MSI irq
PCI: endpoint: Add pci_epf_ops for epf drivers to expose function
specific attrs
PCI: endpoint: Allow user to create sub-directory of 'EPF Device'
directory
PCI: cadence: Implement ->msi_map_irq() ops
PCI: endpoint: Add EP function driver to provide NTB functionality
PCI: Add TI J721E device to pci ids
NTB: Add support for EPF PCI-Express Non-Transparent Bridge
NTB: tool: Enable the NTB/PCIe link on the local or remote side of
bridge
Documentation: PCI: Add binding documentation for pci-ntb endpoint
function
Documentation: PCI: Add userguide for PCI endpoint NTB function

.../PCI/endpoint/function/binding/pci-ntb.rst | 38 +
Documentation/PCI/endpoint/index.rst | 3 +
.../PCI/endpoint/pci-endpoint-cfs.rst | 10 +
.../PCI/endpoint/pci-ntb-function.rst | 351 +++
Documentation/PCI/endpoint/pci-ntb-howto.rst | 160 ++
drivers/misc/pci_endpoint_test.c | 1 -
drivers/ntb/hw/Kconfig | 1 +
drivers/ntb/hw/Makefile | 1 +
drivers/ntb/hw/epf/Kconfig | 6 +
drivers/ntb/hw/epf/Makefile | 1 +
drivers/ntb/hw/epf/ntb_hw_epf.c | 751 ++++++
drivers/ntb/test/ntb_tool.c | 1 +
.../pci/controller/cadence/pcie-cadence-ep.c | 50 +
drivers/pci/endpoint/functions/Kconfig | 12 +
drivers/pci/endpoint/functions/Makefile | 1 +
drivers/pci/endpoint/functions/pci-epf-ntb.c | 2106 +++++++++++++++++
drivers/pci/endpoint/functions/pci-epf-test.c | 13 +-
drivers/pci/endpoint/pci-ep-cfs.c | 176 +-
drivers/pci/endpoint/pci-epc-core.c | 131 +-
drivers/pci/endpoint/pci-epf-core.c | 105 +-
include/linux/pci-epc.h | 38 +-
include/linux/pci-epf.h | 28 +-
include/linux/pci_ids.h | 1 +
23 files changed, 3918 insertions(+), 67 deletions(-)
create mode 100644 Documentation/PCI/endpoint/function/binding/pci-ntb.rst
create mode 100644 Documentation/PCI/endpoint/pci-ntb-function.rst
create mode 100644 Documentation/PCI/endpoint/pci-ntb-howto.rst
create mode 100644 drivers/ntb/hw/epf/Kconfig
create mode 100644 drivers/ntb/hw/epf/Makefile
create mode 100644 drivers/ntb/hw/epf/ntb_hw_epf.c
create mode 100644 drivers/pci/endpoint/functions/pci-epf-ntb.c

--
2.17.1

\
 
 \ /
  Last update: 2020-09-15 06:22    [W:0.084 / U:5.624 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site