123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- CONFIGURING PCI ENDPOINT USING CONFIGFS
- Kishon Vijay Abraham I <kishon@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/
|