[PATCH v2 04/22] Documentation: PCI: Guide to use pci endpoint configfs
Joao Pinto
Joao.Pinto at synopsys.com
Fri Feb 17 05:05:32 PST 2017
Às 9:50 AM de 2/17/2017, Kishon Vijay Abraham I escreveu:
> Add Documentation to help users use pci endpoint to configure
> pci endpoint function and to bind the endpoint function
> with endpoint controller.
>
> Signed-off-by: Kishon Vijay Abraham I <kishon at ti.com>
> ---
> Documentation/PCI/00-INDEX | 2 +
> Documentation/PCI/endpoint/pci-endpoint-cfs.txt | 84 +++++++++++++++++++++++
> 2 files changed, 86 insertions(+)
> create mode 100644 Documentation/PCI/endpoint/pci-endpoint-cfs.txt
>
> diff --git a/Documentation/PCI/00-INDEX b/Documentation/PCI/00-INDEX
> index ba950b2..f84a23c 100644
> --- a/Documentation/PCI/00-INDEX
> +++ b/Documentation/PCI/00-INDEX
> @@ -14,3 +14,5 @@ pcieaer-howto.txt
> - the PCI Express Advanced Error Reporting Driver Guide HOWTO
> endpoint/pci-endpoint.txt
> - guide to add endpoint controller driver and endpoint function driver.
> +endpoint/pci-endpoint-cfs.txt
> + - guide to use configfs to configure the pci endpoint function.
> diff --git a/Documentation/PCI/endpoint/pci-endpoint-cfs.txt b/Documentation/PCI/endpoint/pci-endpoint-cfs.txt
> new file mode 100644
> index 0000000..d9f8734
> --- /dev/null
> +++ b/Documentation/PCI/endpoint/pci-endpoint-cfs.txt
> @@ -0,0 +1,84 @@
> + CONFIGURING PCI ENDPOINT USING CONFIGFS
> + Kishon Vijay Abraham I <kishon at ti.com>
> +
> +The PCI Endpoint Core exposes configfs entry (pci_ep) in order to configure the
> +PCI endpoint function and in order to bind the endpoint function
> +with the endpoint controller. (For introducing other mechanisms to
> +configure the PCI Endpoint Function refer [1]).
> +
> +*) Mounting configfs
> +
> +The PCI Endpoint Core layer creates pci_ep directory in the mounted configfs
> +directory. configfs can be mounted using the following command.
> +
> + mount -t configfs none /sys/kernel/config
> +
> +*) Directory Structure
> +
> +The pci_ep configfs directory structure has been created to reflect the
> +natural tree like structure of PCI devices. So every directory created
> +inside pci_ep represents a EPC device and every directory created inside
> +epf directory represents EPF device.
> +
> +/sys/kernel/config/pci_ep/
> + | <dir>/ --------------------------------------> [2]
> + | epc
> + | epf/
> + | <dir>/ --------------------------> [3]
> + | vendorid
> + | deviceid
> + | revid
> + | progif_code
> + | subclass_code
> + | baseclass_code
> + | cache_line_size
> + | subsys_vendor_id
> + | subsys_id
> + | interrupt_pin
> + | function
> +
> +*) Creating configfs entry for EPC
> +
> +Any directory created inside *pci_ep* represents an EPC device. In the above
> +directory structure [2] represents an EPC device. It consists of
> +
> + *) epc: Use it to associate the configfs entry to an actual EPC device.
> + The list of valid entries for this field can be obtained from
> + ls /sys/class/pci_epc/
> +
> + *) epf: Directory that contains all the endpoint functions. The name
> + of the created directory determines the driver this particular
> + epf device will be bound to. The name can be obtained either
> + from the function binding documentation [4] or
> + ls /sys/bus/pci-epf/drivers
> +
> + If more than one endpoint function device has to be bound to
> + the same driver, then the directory should be created using
> + the following notation
> + mkdir <name>.<num>
> +
> +*) Creating configfs entry for EPF
> +
> +Any directory created inside *epf* directory represents an EPF device. In the
> +above directory structure, [3] represents an EPF device. It consists of the
> +following entries that can be used to configure the standard configuration
> +header of the endpoint function. (These entries are created by the
> +framework when any new directory is created inside epf directory.)
> +
> + | vendorid
> + | deviceid
> + | revid
> + | progif_code
> + | subclass_code
> + | baseclass_code
> + | cache_line_size
> + | subsys_vendor_id
> + | subsys_id
> + | interrupt_pin
> +
> +The following entry identifies the function driver that is bound to the
> +function device
> + | function
> +
> +[1] -> Documentation/PCI/endpoint/pci-endpoint.txt
> +[4] -> Documentation/PCI/endpoint/function/binding/
>
Good content.
Acked-By: Joao Pinto <jpinto at synopsys.com>
More information about the linux-arm-kernel
mailing list