All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Kishon Vijay Abraham I <kishon@ti.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Jon Mason <jdmason@kudzu.us>, Dave Jiang <dave.jiang@intel.com>,
	Allen Hubbe <allenbh@gmail.com>, Rob Herring <robh@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Tom Joseph <tjoseph@cadence.com>,
	linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-ntb@googlegroups.com
Subject: Re: [PATCH v3 17/17] Documentation: PCI: Add userguide for PCI endpoint NTB function
Date: Sat, 5 Sep 2020 15:08:12 -0700	[thread overview]
Message-ID: <f16f5a90-13c1-bfc6-ad83-1c6becbf1629@infradead.org> (raw)
In-Reply-To: <20200904075052.8911-18-kishon@ti.com>

On 9/4/20 12:50 AM, Kishon Vijay Abraham I wrote:
> Add documentation to help users use pci-epf-ntb function driver and
> existing host side NTB infrastructure for NTB functionality.
> 
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
>  Documentation/PCI/endpoint/index.rst         |   1 +
>  Documentation/PCI/endpoint/pci-ntb-howto.rst | 160 +++++++++++++++++++
>  2 files changed, 161 insertions(+)
>  create mode 100644 Documentation/PCI/endpoint/pci-ntb-howto.rst

Hi,
There are a few edits below:


> diff --git a/Documentation/PCI/endpoint/pci-ntb-howto.rst b/Documentation/PCI/endpoint/pci-ntb-howto.rst
> new file mode 100644
> index 000000000000..2fbb0a051c3b
> --- /dev/null
> +++ b/Documentation/PCI/endpoint/pci-ntb-howto.rst
> @@ -0,0 +1,160 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +======================
> +PCI NTB EPF User Guide
> +======================
> +
> +:Author: Kishon Vijay Abraham I <kishon@ti.com>
> +
> +This document is a guide to help users use pci-epf-ntb function driver
> +and ntb_hw_epf host driver for NTB functionality. The list of steps to
> +be followed in the host side and EP side is given below. For the hardware
> +configuration and internals of NTB using configurable endpoints see
> +Documentation/PCI/endpoint/pci-ntb-function.rst
> +
> +Endpoint Device
> +===============
> +
> +Endpoint Controller Devices
> +---------------------------
> +
> +For implementing NTB functionality atleast two endpoint controller devices

                                      at least

> +are required.
> +To find the list of endpoint controller devices in the system::
> +
> +        # ls /sys/class/pci_epc/
> +          2900000.pcie-ep  2910000.pcie-ep
> +
> +If PCI_ENDPOINT_CONFIGFS is enabled::
> +
> +	# ls /sys/kernel/config/pci_ep/controllers
> +	  2900000.pcie-ep  2910000.pcie-ep
> +
> +
> +Endpoint Function Drivers
> +-------------------------
> +
> +To find the list of endpoint function drivers in the system::
> +
> +	# ls /sys/bus/pci-epf/drivers
> +	  pci_epf_ntb   pci_epf_ntb
> +
> +If PCI_ENDPOINT_CONFIGFS is enabled::
> +
> +	# ls /sys/kernel/config/pci_ep/functions
> +	  pci_epf_ntb   pci_epf_ntb
> +
> +
> +Creating pci-epf-ntb Device
> +----------------------------
> +
> +PCI endpoint function device can be created using the configfs. To create
> +pci-epf-ntb device, the following commands can be used::
> +
> +	# mount -t configfs none /sys/kernel/config
> +	# cd /sys/kernel/config/pci_ep/
> +	# mkdir functions/pci_epf_ntb/func1
> +
> +The "mkdir func1" above creates the pci-epf-ntb function device that will
> +be probed by pci_epf_ntb driver.
> +
> +The PCI endpoint framework populates the directory with the following
> +configurable fields::
> +
> +	# ls functions/pci_epf_ntb/func1
> +          baseclass_code    deviceid          msi_interrupts    pci-epf-ntb.0
> +          progif_code       secondary         subsys_id         vendorid
> +          cache_line_size   interrupt_pin     msix_interrupts   primary
> +          revid             subclass_code     subsys_vendor_id
> +
> +The PCI endpoint function driver populates these entries with default values
> +when the device is bound to the driver. The pci-epf-ntb driver populates
> +vendorid with 0xffff and interrupt_pin with 0x0001::
> +
> +	# cat functions/pci_epf_ntb/func1/vendorid
> +	  0xffff
> +	# cat functions/pci_epf_ntb/func1/interrupt_pin
> +	  0x0001
> +
> +
> +Configuring pci-epf-ntb Device
> +-------------------------------
> +
> +The user can configure the pci-epf-ntb device using configfs entry. In order

                                                 using its configfs entry.

> +to change the vendorid and the deviceid, the following
> +commands can be used::
> +
> +	# echo 0x104c > functions/pci_epf_ntb/func1/vendorid
> +	# echo 0xb00d > functions/pci_epf_ntb/func1/deviceid
> +
> +In-order to configure NTB specific attributes, a new sub-directory to func1

   In order

> +should be created::
> +
> +	# mkdir functions/pci_epf_ntb/func1/pci_epf_ntb.0/
> +
> +The NTB function driver will populate this directory with various attributes
> +that can be configured by the user::
> +
> +	# ls functions/pci_epf_ntb/func1/pci_epf_ntb.0/
> +          db_count    mw1         mw2         mw3         mw4         num_mws
> +          spad_count
> +
> +A sample configuration for NTB function is given below::
> +
> +	# echo 4 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/db_count
> +	# echo 128 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/spad_count
> +	# echo 2 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/num_mws
> +	# echo 0x100000 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/mw1
> +	# echo 0x100000 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/mw2
> +
> +Binding pci-epf-ntb Device to EP Controller
> +--------------------------------------------
> +
> +NTB function device should be attached to two PCIe endpoint controllers
> +connected to the two hosts. Use the 'primary' and 'secondary' entries
> +inside NTB function device to attach one PCIe endpoint controller to
> +primary interface and the other PCIe endpoint controller to the secondary
> +interface. ::
> +
> +        # ln -s controllers/2900000.pcie-ep/ functions/pci-epf-ntb/func1/primary
> +        # ln -s controllers/2910000.pcie-ep/ functions/pci-epf-ntb/func1/secondary
> +
> +Once the above step is completed, both the PCI endpoint controllers is ready to

                                                                       are ready

> +establish a link with the host.
> +
> +
> +Start the Link
> +--------------
> +
> +In order for the endpoint device to establish a link with the host, the _start_
> +field should be populated with '1'. For NTB, both the PCIe endpoint controllers
> +should establish link with the host::
> +
> +        #echo 1 > controllers/2900000.pcie-ep/start
> +        #echo 1 > controllers/2910000.pcie-ep/start
> +
> +
> +RootComplex Device
> +==================
> +
> +lspci Output
> +------------
> +
> +Note that the devices listed here correspond to the value populated in 1.4

Can you use a section name (or reference) here instead of "1.4"?  I can't see 1.4
when reading with an editor.

> +above::
> +
> +        # lspci
> +        0000:00:00.0 PCI bridge: Texas Instruments Device b00d
> +        0000:01:00.0 RAM memory: Texas Instruments Device b00d
> +
> +
> +Using ntb_hw_epf Device
> +-----------------------
> +
> +The host side software follows the standard NTB software architecture in Linux.
> +All the existing client side NTB utilities like NTB Transport Client and NTB
> +Netdev, NTB Ping Pong Test Client and NTB Tool Test Clientcan be used with NTB

                                                       Client can be

> +function device.
> +
> +For more information on NTB see
> +Documentation/driver-api/ntb.rst


thanks.
-- 
~Randy


  reply	other threads:[~2020-09-05 22:08 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-04  7:50 [PATCH v3 00/17] Implement NTB Controller using multiple PCI EP Kishon Vijay Abraham I
2020-09-04  7:50 ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 01/17] Documentation: PCI: Add specification for the *PCI NTB* function device Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 02/17] PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 03/17] PCI: endpoint: Add helper API to get the 'next' unreserved BAR Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 04/17] PCI: endpoint: Make *_free_bar() to return error codes on failure Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 05/17] PCI: endpoint: Remove unused pci_epf_match_device() Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 06/17] PCI: endpoint: Add support to associate secondary EPC with EPF Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 07/17] PCI: endpoint: Add support in configfs to associate two EPCs " Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 08/17] PCI: endpoint: Add pci_epc_ops to map MSI irq Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 09/17] PCI: endpoint: Add pci_epf_ops for epf drivers to expose function specific attrs Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 10/17] PCI: endpoint: Allow user to create sub-directory of 'EPF Device' directory Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 11/17] PCI: cadence: Implement ->msi_map_irq() ops Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 12/17] PCI: endpoint: Add EP function driver to provide NTB functionality Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 13/17] PCI: Add TI J721E device to pci ids Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 14/17] NTB: Add support for EPF PCI-Express Non-Transparent Bridge Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 15/17] NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 16/17] Documentation: PCI: Add binding documentation for pci-ntb endpoint function Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-04  7:50 ` [PATCH v3 17/17] Documentation: PCI: Add userguide for PCI endpoint NTB function Kishon Vijay Abraham I
2020-09-04  7:50   ` Kishon Vijay Abraham I
2020-09-05 22:08   ` Randy Dunlap [this message]
2020-09-14 15:36     ` Kishon Vijay Abraham I
2020-09-14 15:36       ` Kishon Vijay Abraham I

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=f16f5a90-13c1-bfc6-ad83-1c6becbf1629@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=allenbh@gmail.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=corbet@lwn.net \
    --cc=dave.jiang@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jdmason@kudzu.us \
    --cc=kishon@ti.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-ntb@googlegroups.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=robh@kernel.org \
    --cc=tjoseph@cadence.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.