1 .. SPDX-License-Identifier: GPL-2.0 2 3 ======================================= 4 Configuring PCI Endpoint Using CONFIGFS 5 ======================================= 6 7 :Author: Kishon Vijay Abraham I <kishon@ti.com> 8 9 The PCI Endpoint Core exposes configfs entry ( 10 PCI endpoint function and to bind the endpoint 11 with the endpoint controller. (For introducing 12 configure the PCI Endpoint Function refer to [ 13 14 Mounting configfs 15 ================= 16 17 The PCI Endpoint Core layer creates pci_ep dir 18 directory. configfs can be mounted using the f 19 20 mount -t configfs none /sys/kernel/con 21 22 Directory Structure 23 =================== 24 25 The pci_ep configfs has two directories at its 26 functions. Every EPC device present in the sys 27 the *controllers* directory and every EPF driv 28 will have an entry in the *functions* director 29 :: 30 31 /sys/kernel/config/pci_ep/ 32 .. controllers/ 33 .. functions/ 34 35 Creating EPF Device 36 =================== 37 38 Every registered EPF driver will be listed in 39 entries corresponding to EPF driver will be cr 40 :: 41 42 /sys/kernel/config/pci_ep/functions/ 43 .. <EPF Driver1>/ 44 ... <EPF Device 11>/ 45 ... <EPF Device 21>/ 46 ... <EPF Device 31>/ 47 .. <EPF Driver2>/ 48 ... <EPF Device 12>/ 49 ... <EPF Device 22>/ 50 51 In order to create a <EPF device> of the type 52 user has to create a directory inside <EPF Dri 53 54 Every <EPF device> directory consists of the f 55 used to configure the standard configuration h 56 (These entries are created by the framework wh 57 created) 58 :: 59 60 .. <EPF Driver1>/ 61 ... <EPF Device 11>/ 62 ... vendorid 63 ... deviceid 64 ... revid 65 ... progif_cod 66 ... subclass_c 67 ... baseclass_ 68 ... cache_line 69 ... subsys_ven 70 ... subsys_id 71 ... interrupt_ 72 ... <Symlink E 73 ... primary/ 74 ... <S 75 ... secondary/ 76 ... <S 77 78 If an EPF device has to be associated with 2 E 79 Non-transparent bridge), symlink of endpoint c 80 interface should be added in 'primary' directo 81 controller connected to secondary interface sh 82 directory. 83 84 The <EPF Device> directory can have a list of 85 (<Symlink EPF Device 31>) to other <EPF Device 86 be created by the user to represent the virtua 87 the physical function. In the above directory 88 physical function and <EPF Device 31> is a vir 89 it's linked to another EPF device, cannot be l 90 91 EPC Device 92 ========== 93 94 Every registered EPC device will be listed in 95 entries corresponding to EPC device will be cr 96 :: 97 98 /sys/kernel/config/pci_ep/controllers/ 99 .. <EPC Device1>/ 100 ... <Symlink EPF Devic 101 ... <Symlink EPF Devic 102 ... start 103 .. <EPC Device2>/ 104 ... <Symlink EPF Devic 105 ... <Symlink EPF Devic 106 ... start 107 108 The <EPC Device> directory will have a list of 109 <EPF Device>. These symbolic links should be c 110 represent the functions present in the endpoin 111 that represents a physical function can be lin 112 113 The <EPC Device> directory will also have a *s 114 "1" is written to this field, the endpoint dev 115 establish the link with the host. This is usua 116 all the EPF devices are created and linked wit 117 :: 118 119 | controllers/ 120 | <Directory: 121 | <Sym 122 | star 123 | functions/ 124 | <Directory: 125 | <Dir 126 127 128 129 130 131 132 133 134 135 136 137 138 [1] Documentation/PCI/endpoint/pci-endpoint.rs
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.