All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 00/18] Implement NTB Controller using multiple PCI EP
@ 2020-09-30 15:35 ` Kishon Vijay Abraham I
  0 siblings, 0 replies; 60+ messages in thread
From: Kishon Vijay Abraham I @ 2020-09-30 15:35 UTC (permalink / raw)
  To: Bjorn Helgaas, Jonathan Corbet, Kishon Vijay Abraham I,
	Lorenzo Pieralisi, Arnd Bergmann, Jon Mason, Dave Jiang,
	Allen Hubbe, Tom Joseph, Rob Herring
  Cc: Greg Kroah-Hartman, linux-pci, linux-doc, linux-kernel, linux-ntb

This series is about implementing SW defined Non-Transparent Bridge (NTB)
using multiple endpoint (EP) 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. Link to presentation
and video 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]
v4 patch series can be found @ [6]
v5 patch series can be found @ [7]
v6 patch series can be found @ [8]

Changes from v6:
1) Fixed issues when multiple NTB devices are creating using multiple
   functions
2) Fixed issue with writing scratchpad register
3) Created a video demo @ [9]

Changes from v5:
1) Fixed a formatting issue in Kconfig pointed out by Randy
2) Checked for Error or Null in pci_epc_add_epf()

Changes from v4:
1) Fixed error condition checks in pci_epc_add_epf()

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://linuxplumbersconf.org/event/4/contributions/395/
[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
[6] -> http://lore.kernel.org/r/20200915042110.3015-1-kishon@ti.com
[7] -> http://lore.kernel.org/r/20200918064227.1463-1-kishon@ti.com
[8] -> http://lore.kernel.org/r/20200924092519.17082-1-kishon@ti.com
[9] -> https://youtu.be/dLKKxrg5-rY

Kishon Vijay Abraham I (18):
  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: cadence: Configure LM_EP_FUNC_CFG based on epc->function_num_map
  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 configfs 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               |  755 ++++++
 drivers/ntb/test/ntb_tool.c                   |    1 +
 .../pci/controller/cadence/pcie-cadence-ep.c  |   60 +-
 drivers/pci/endpoint/functions/Kconfig        |   12 +
 drivers/pci/endpoint/functions/Makefile       |    1 +
 drivers/pci/endpoint/functions/pci-epf-ntb.c  | 2114 +++++++++++++++++
 drivers/pci/endpoint/functions/pci-epf-test.c |   13 +-
 drivers/pci/endpoint/pci-ep-cfs.c             |  176 +-
 drivers/pci/endpoint/pci-epc-core.c           |  130 +-
 drivers/pci/endpoint/pci-epf-core.c           |  105 +-
 include/linux/pci-epc.h                       |   39 +-
 include/linux/pci-epf.h                       |   28 +-
 include/linux/pci_ids.h                       |    1 +
 23 files changed, 3934 insertions(+), 73 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


^ permalink raw reply	[flat|nested] 60+ messages in thread
* Re: [PATCH v7 13/18] PCI: endpoint: Add EP function driver to provide NTB functionality
@ 2020-10-03  2:05 kernel test robot
  0 siblings, 0 replies; 60+ messages in thread
From: kernel test robot @ 2020-10-03  2:05 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 3799 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20200930153519.7282-14-kishon@ti.com>
References: <20200930153519.7282-14-kishon@ti.com>
TO: Kishon Vijay Abraham I <kishon@ti.com>
TO: Bjorn Helgaas <helgaas@kernel.org>
TO: Jonathan Corbet <corbet@lwn.net>
TO: Kishon Vijay Abraham I <kishon@ti.com>
TO: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
TO: Arnd Bergmann <arnd@arndb.de>
TO: Jon Mason <jdmason@kudzu.us>
TO: Dave Jiang <dave.jiang@intel.com>
TO: Allen Hubbe <allenbh@gmail.com>
TO: Tom Joseph <tjoseph@cadence.com>
TO: Rob Herring <robh@kernel.org>

Hi Kishon,

I love your patch! Perhaps something to improve:

[auto build test WARNING on ntb/ntb-next]
[also build test WARNING on char-misc/char-misc-testing lwn/docs-next v5.9-rc7 next-20201002]
[cannot apply to pci/next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Kishon-Vijay-Abraham-I/Implement-NTB-Controller-using-multiple-PCI-EP/20200930-233926
base:   https://github.com/jonmason/ntb ntb-next
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: i386-randconfig-m021-20201003 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/pci/endpoint/functions/pci-epf-ntb.c:1992 epf_ntb_mw1_show() warn: potential spectre issue 'ntb->mws_size' [w]
drivers/pci/endpoint/functions/pci-epf-ntb.c:1993 epf_ntb_mw1_store() warn: potential spectre issue 'ntb->mws_size' [w]
drivers/pci/endpoint/functions/pci-epf-ntb.c:1994 epf_ntb_mw2_show() warn: potential spectre issue 'ntb->mws_size' [w]
drivers/pci/endpoint/functions/pci-epf-ntb.c:1995 epf_ntb_mw2_store() warn: potential spectre issue 'ntb->mws_size' [w]
drivers/pci/endpoint/functions/pci-epf-ntb.c:1996 epf_ntb_mw3_show() warn: potential spectre issue 'ntb->mws_size' [w]
drivers/pci/endpoint/functions/pci-epf-ntb.c:1997 epf_ntb_mw3_store() warn: potential spectre issue 'ntb->mws_size' [w]
drivers/pci/endpoint/functions/pci-epf-ntb.c:1998 epf_ntb_mw4_show() warn: potential spectre issue 'ntb->mws_size' [w]
drivers/pci/endpoint/functions/pci-epf-ntb.c:1999 epf_ntb_mw4_store() warn: potential spectre issue 'ntb->mws_size' [w]

vim +1992 drivers/pci/endpoint/functions/pci-epf-ntb.c

b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30  1986  
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30  1987  EPF_NTB_R(spad_count)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30  1988  EPF_NTB_W(spad_count)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30  1989  EPF_NTB_R(db_count)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30  1990  EPF_NTB_W(db_count)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30  1991  EPF_NTB_R(num_mws)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1992  EPF_NTB_MW_R(mw1)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1993  EPF_NTB_MW_W(mw1)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1994  EPF_NTB_MW_R(mw2)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1995  EPF_NTB_MW_W(mw2)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1996  EPF_NTB_MW_R(mw3)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1997  EPF_NTB_MW_W(mw3)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1998  EPF_NTB_MW_R(mw4)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30 @1999  EPF_NTB_MW_W(mw4)
b2ec0fa3dd3ab53 Kishon Vijay Abraham I 2020-09-30  2000  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32330 bytes --]

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2020-11-16 15:46 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-30 15:35 [PATCH v7 00/18] Implement NTB Controller using multiple PCI EP Kishon Vijay Abraham I
2020-09-30 15:35 ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 01/18] Documentation: PCI: Add specification for the *PCI NTB* function device Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 02/18] PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 03/18] PCI: endpoint: Add helper API to get the 'next' unreserved BAR Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 04/18] PCI: endpoint: Make *_free_bar() to return error codes on failure Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 05/18] PCI: endpoint: Remove unused pci_epf_match_device() Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 06/18] PCI: endpoint: Add support to associate secondary EPC with EPF Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 07/18] PCI: endpoint: Add support in configfs to associate two EPCs " Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 08/18] PCI: endpoint: Add pci_epc_ops to map MSI irq Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 09/18] PCI: endpoint: Add pci_epf_ops for epf drivers to expose function specific attrs Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 10/18] PCI: endpoint: Allow user to create sub-directory of 'EPF Device' directory Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 11/18] PCI: cadence: Implement ->msi_map_irq() ops Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 12/18] PCI: cadence: Configure LM_EP_FUNC_CFG based on epc->function_num_map Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 13/18] PCI: endpoint: Add EP function driver to provide NTB functionality Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 14/18] PCI: Add TI J721E device to pci ids Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 15/18] NTB: Add support for EPF PCI-Express Non-Transparent Bridge Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-11-09  9:37   ` Sherry Sun
2020-11-09 14:21     ` Kishon Vijay Abraham I
2020-11-10  2:25       ` Sherry Sun
2020-11-10 14:20         ` Kishon Vijay Abraham I
2020-11-10 14:59           ` Arnd Bergmann
2020-11-10 15:42             ` Kishon Vijay Abraham I
2020-11-11  2:49               ` Sherry Sun
2020-11-12 11:12                 ` Kishon Vijay Abraham I
2020-11-12 12:35                   ` Sherry Sun
2020-11-12 13:24               ` Arnd Bergmann
2020-11-16  5:19                 ` Kishon Vijay Abraham I
2020-11-16 15:37                   ` Arnd Bergmann
2020-11-16 15:45                     ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 16/18] NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 17/18] Documentation: PCI: Add configfs binding documentation for pci-ntb endpoint function Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-09-30 15:35 ` [PATCH v7 18/18] Documentation: PCI: Add userguide for PCI endpoint NTB function Kishon Vijay Abraham I
2020-09-30 15:35   ` Kishon Vijay Abraham I
2020-10-05  5:57 ` [PATCH v7 00/18] Implement NTB Controller using multiple PCI EP Kishon Vijay Abraham I
2020-10-05  5:57   ` Kishon Vijay Abraham I
2020-10-20  8:15   ` Kishon Vijay Abraham I
2020-10-20  8:15     ` Kishon Vijay Abraham I
2020-10-20 13:18     ` Lorenzo Pieralisi
2020-11-03  7:58       ` Kishon Vijay Abraham I
2020-11-03  7:58         ` Kishon Vijay Abraham I
2020-11-03  8:25         ` Alan Mikhak
2020-10-03  2:05 [PATCH v7 13/18] PCI: endpoint: Add EP function driver to provide NTB functionality kernel test robot

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.