|  | .. SPDX-License-Identifier: GPL-2.0 | 
|  |  | 
|  | ===================================== | 
|  | Driver for PCI Endpoint Test Function | 
|  | ===================================== | 
|  |  | 
|  | This driver should be used as a host side driver if the root complex is | 
|  | connected to a configurable PCI endpoint running ``pci_epf_test`` function | 
|  | driver configured according to [1]_. | 
|  |  | 
|  | The "pci_endpoint_test" driver can be used to perform the following tests. | 
|  |  | 
|  | The PCI driver for the test device performs the following tests: | 
|  |  | 
|  | #) verifying addresses programmed in BAR | 
|  | #) raise legacy IRQ | 
|  | #) raise MSI IRQ | 
|  | #) raise MSI-X IRQ | 
|  | #) read data | 
|  | #) write data | 
|  | #) copy data | 
|  |  | 
|  | This misc driver creates /dev/pci-endpoint-test.<num> for every | 
|  | ``pci_epf_test`` function connected to the root complex and "ioctls" | 
|  | should be used to perform the above tests. | 
|  |  | 
|  | ioctl | 
|  | ----- | 
|  |  | 
|  | PCITEST_BAR: | 
|  | Tests the BAR. The number of the BAR to be tested | 
|  | should be passed as argument. | 
|  | PCITEST_LEGACY_IRQ: | 
|  | Tests legacy IRQ | 
|  | PCITEST_MSI: | 
|  | Tests message signalled interrupts. The MSI number | 
|  | to be tested should be passed as argument. | 
|  | PCITEST_MSIX: | 
|  | Tests message signalled interrupts. The MSI-X number | 
|  | to be tested should be passed as argument. | 
|  | PCITEST_SET_IRQTYPE: | 
|  | Changes driver IRQ type configuration. The IRQ type | 
|  | should be passed as argument (0: Legacy, 1:MSI, 2:MSI-X). | 
|  | PCITEST_GET_IRQTYPE: | 
|  | Gets driver IRQ type configuration. | 
|  | PCITEST_WRITE: | 
|  | Perform write tests. The size of the buffer should be passed | 
|  | as argument. | 
|  | PCITEST_READ: | 
|  | Perform read tests. The size of the buffer should be passed | 
|  | as argument. | 
|  | PCITEST_COPY: | 
|  | Perform read tests. The size of the buffer should be passed | 
|  | as argument. | 
|  |  | 
|  | .. [1] Documentation/PCI/endpoint/function/binding/pci-test.rst |