~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/PCI/endpoint/pci-ntb-howto.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/PCI/endpoint/pci-ntb-howto.rst (Version linux-6.11.5) and /Documentation/PCI/endpoint/pci-ntb-howto.rst (Version linux-6.9.12)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2                                                     2 
  3 ==============================================      3 ===================================================================
  4 PCI Non-Transparent Bridge (NTB) Endpoint Func      4 PCI Non-Transparent Bridge (NTB) Endpoint Function (EPF) User Guide
  5 ==============================================      5 ===================================================================
  6                                                     6 
  7 :Author: Kishon Vijay Abraham I <kishon@ti.com>      7 :Author: Kishon Vijay Abraham I <kishon@ti.com>
  8                                                     8 
  9 This document is a guide to help users use pci      9 This document is a guide to help users use pci-epf-ntb function driver
 10 and ntb_hw_epf host driver for NTB functionali     10 and ntb_hw_epf host driver for NTB functionality. The list of steps to
 11 be followed in the host side and EP side is gi     11 be followed in the host side and EP side is given below. For the hardware
 12 configuration and internals of NTB using confi     12 configuration and internals of NTB using configurable endpoints see
 13 Documentation/PCI/endpoint/pci-ntb-function.rs     13 Documentation/PCI/endpoint/pci-ntb-function.rst
 14                                                    14 
 15 Endpoint Device                                    15 Endpoint Device
 16 ===============                                    16 ===============
 17                                                    17 
 18 Endpoint Controller Devices                        18 Endpoint Controller Devices
 19 ---------------------------                        19 ---------------------------
 20                                                    20 
 21 For implementing NTB functionality at least tw     21 For implementing NTB functionality at least two endpoint controller devices
 22 are required.                                      22 are required.
 23                                                    23 
 24 To find the list of endpoint controller device     24 To find the list of endpoint controller devices in the system::
 25                                                    25 
 26         # ls /sys/class/pci_epc/                   26         # ls /sys/class/pci_epc/
 27         2900000.pcie-ep  2910000.pcie-ep           27         2900000.pcie-ep  2910000.pcie-ep
 28                                                    28 
 29 If PCI_ENDPOINT_CONFIGFS is enabled::              29 If PCI_ENDPOINT_CONFIGFS is enabled::
 30                                                    30 
 31         # ls /sys/kernel/config/pci_ep/control     31         # ls /sys/kernel/config/pci_ep/controllers
 32         2900000.pcie-ep  2910000.pcie-ep           32         2900000.pcie-ep  2910000.pcie-ep
 33                                                    33 
 34                                                    34 
 35 Endpoint Function Drivers                          35 Endpoint Function Drivers
 36 -------------------------                          36 -------------------------
 37                                                    37 
 38 To find the list of endpoint function drivers      38 To find the list of endpoint function drivers in the system::
 39                                                    39 
 40         # ls /sys/bus/pci-epf/drivers              40         # ls /sys/bus/pci-epf/drivers
 41         pci_epf_ntb   pci_epf_ntb                  41         pci_epf_ntb   pci_epf_ntb
 42                                                    42 
 43 If PCI_ENDPOINT_CONFIGFS is enabled::              43 If PCI_ENDPOINT_CONFIGFS is enabled::
 44                                                    44 
 45         # ls /sys/kernel/config/pci_ep/functio     45         # ls /sys/kernel/config/pci_ep/functions
 46         pci_epf_ntb   pci_epf_ntb                  46         pci_epf_ntb   pci_epf_ntb
 47                                                    47 
 48                                                    48 
 49 Creating pci-epf-ntb Device                        49 Creating pci-epf-ntb Device
 50 ----------------------------                       50 ----------------------------
 51                                                    51 
 52 PCI endpoint function device can be created us     52 PCI endpoint function device can be created using the configfs. To create
 53 pci-epf-ntb device, the following commands can     53 pci-epf-ntb device, the following commands can be used::
 54                                                    54 
 55         # mount -t configfs none /sys/kernel/c     55         # mount -t configfs none /sys/kernel/config
 56         # cd /sys/kernel/config/pci_ep/            56         # cd /sys/kernel/config/pci_ep/
 57         # mkdir functions/pci_epf_ntb/func1        57         # mkdir functions/pci_epf_ntb/func1
 58                                                    58 
 59 The "mkdir func1" above creates the pci-epf-nt     59 The "mkdir func1" above creates the pci-epf-ntb function device that will
 60 be probed by pci_epf_ntb driver.                   60 be probed by pci_epf_ntb driver.
 61                                                    61 
 62 The PCI endpoint framework populates the direc     62 The PCI endpoint framework populates the directory with the following
 63 configurable fields::                              63 configurable fields::
 64                                                    64 
 65         # ls functions/pci_epf_ntb/func1           65         # ls functions/pci_epf_ntb/func1
 66         baseclass_code    deviceid          ms     66         baseclass_code    deviceid          msi_interrupts    pci-epf-ntb.0
 67         progif_code       secondary         su     67         progif_code       secondary         subsys_id         vendorid
 68         cache_line_size   interrupt_pin     ms     68         cache_line_size   interrupt_pin     msix_interrupts   primary
 69         revid             subclass_code     su     69         revid             subclass_code     subsys_vendor_id
 70                                                    70 
 71 The PCI endpoint function driver populates the     71 The PCI endpoint function driver populates these entries with default values
 72 when the device is bound to the driver. The pc     72 when the device is bound to the driver. The pci-epf-ntb driver populates
 73 vendorid with 0xffff and interrupt_pin with 0x     73 vendorid with 0xffff and interrupt_pin with 0x0001::
 74                                                    74 
 75         # cat functions/pci_epf_ntb/func1/vend     75         # cat functions/pci_epf_ntb/func1/vendorid
 76         0xffff                                     76         0xffff
 77         # cat functions/pci_epf_ntb/func1/inte     77         # cat functions/pci_epf_ntb/func1/interrupt_pin
 78         0x0001                                     78         0x0001
 79                                                    79 
 80                                                    80 
 81 Configuring pci-epf-ntb Device                     81 Configuring pci-epf-ntb Device
 82 -------------------------------                    82 -------------------------------
 83                                                    83 
 84 The user can configure the pci-epf-ntb device      84 The user can configure the pci-epf-ntb device using its configfs entry. In order
 85 to change the vendorid and the deviceid, the f     85 to change the vendorid and the deviceid, the following
 86 commands can be used::                             86 commands can be used::
 87                                                    87 
 88         # echo 0x104c > functions/pci_epf_ntb/     88         # echo 0x104c > functions/pci_epf_ntb/func1/vendorid
 89         # echo 0xb00d > functions/pci_epf_ntb/     89         # echo 0xb00d > functions/pci_epf_ntb/func1/deviceid
 90                                                    90 
 91 The PCI endpoint framework also automatically      91 The PCI endpoint framework also automatically creates a sub-directory in the
 92 function attribute directory. This sub-directo     92 function attribute directory. This sub-directory has the same name as the name
 93 of the function device and is populated with t     93 of the function device and is populated with the following NTB specific
 94 attributes that can be configured by the user:     94 attributes that can be configured by the user::
 95                                                    95 
 96         # ls functions/pci_epf_ntb/func1/pci_e     96         # ls functions/pci_epf_ntb/func1/pci_epf_ntb.0/
 97         db_count    mw1         mw2         mw     97         db_count    mw1         mw2         mw3         mw4         num_mws
 98         spad_count                                 98         spad_count
 99                                                    99 
100 A sample configuration for NTB function is giv    100 A sample configuration for NTB function is given below::
101                                                   101 
102         # echo 4 > functions/pci_epf_ntb/func1    102         # echo 4 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/db_count
103         # echo 128 > functions/pci_epf_ntb/fun    103         # echo 128 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/spad_count
104         # echo 2 > functions/pci_epf_ntb/func1    104         # echo 2 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/num_mws
105         # echo 0x100000 > functions/pci_epf_nt    105         # echo 0x100000 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/mw1
106         # echo 0x100000 > functions/pci_epf_nt    106         # echo 0x100000 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/mw2
107                                                   107 
108 Binding pci-epf-ntb Device to EP Controller       108 Binding pci-epf-ntb Device to EP Controller
109 --------------------------------------------      109 --------------------------------------------
110                                                   110 
111 NTB function device should be attached to two     111 NTB function device should be attached to two PCI endpoint controllers
112 connected to the two hosts. Use the 'primary'     112 connected to the two hosts. Use the 'primary' and 'secondary' entries
113 inside NTB function device to attach one PCI e    113 inside NTB function device to attach one PCI endpoint controller to
114 primary interface and the other PCI endpoint c    114 primary interface and the other PCI endpoint controller to the secondary
115 interface::                                       115 interface::
116                                                   116 
117         # ln -s controllers/2900000.pcie-ep/ f    117         # ln -s controllers/2900000.pcie-ep/ functions/pci-epf-ntb/func1/primary
118         # ln -s controllers/2910000.pcie-ep/ f    118         # ln -s controllers/2910000.pcie-ep/ functions/pci-epf-ntb/func1/secondary
119                                                   119 
120 Once the above step is completed, both the PCI    120 Once the above step is completed, both the PCI endpoint controllers are ready to
121 establish a link with the host.                   121 establish a link with the host.
122                                                   122 
123                                                   123 
124 Start the Link                                    124 Start the Link
125 --------------                                    125 --------------
126                                                   126 
127 In order for the endpoint device to establish     127 In order for the endpoint device to establish a link with the host, the _start_
128 field should be populated with '1'. For NTB, b    128 field should be populated with '1'. For NTB, both the PCI endpoint controllers
129 should establish link with the host::             129 should establish link with the host::
130                                                   130 
131         # echo 1 > controllers/2900000.pcie-ep    131         # echo 1 > controllers/2900000.pcie-ep/start
132         # echo 1 > controllers/2910000.pcie-ep    132         # echo 1 > controllers/2910000.pcie-ep/start
133                                                   133 
134                                                   134 
135 RootComplex Device                                135 RootComplex Device
136 ==================                                136 ==================
137                                                   137 
138 lspci Output                                      138 lspci Output
139 ------------                                      139 ------------
140                                                   140 
141 Note that the devices listed here correspond t    141 Note that the devices listed here correspond to the values populated in
142 "Creating pci-epf-ntb Device" section above::     142 "Creating pci-epf-ntb Device" section above::
143                                                   143 
144         # lspci                                   144         # lspci
145         0000:00:00.0 PCI bridge: Texas Instrum    145         0000:00:00.0 PCI bridge: Texas Instruments Device b00d
146         0000:01:00.0 RAM memory: Texas Instrum    146         0000:01:00.0 RAM memory: Texas Instruments Device b00d
147                                                   147 
148                                                   148 
149 Using ntb_hw_epf Device                           149 Using ntb_hw_epf Device
150 -----------------------                           150 -----------------------
151                                                   151 
152 The host side software follows the standard NT    152 The host side software follows the standard NTB software architecture in Linux.
153 All the existing client side NTB utilities lik    153 All the existing client side NTB utilities like NTB Transport Client and NTB
154 Netdev, NTB Ping Pong Test Client and NTB Tool    154 Netdev, NTB Ping Pong Test Client and NTB Tool Test Client can be used with NTB
155 function device.                                  155 function device.
156                                                   156 
157 For more information on NTB see                   157 For more information on NTB see
158 :doc:`Non-Transparent Bridge <../../driver-api    158 :doc:`Non-Transparent Bridge <../../driver-api/ntb>`
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php