Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Documentation: PCI: Add specification for the *PCI test* function device

Add specification for the *PCI test* virtual function device. The endpoint
function driver and the host PCI driver should be created based on this
specification.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

authored by

Kishon Vijay Abraham I and committed by
Bjorn Helgaas
42fc2ac6 3a401a2c

+68
+2
Documentation/PCI/00-INDEX
··· 16 16 - guide to add endpoint controller driver and endpoint function driver. 17 17 endpoint/pci-endpoint-cfs.txt 18 18 - guide to use configfs to configure the PCI endpoint function. 19 + endpoint/pci-test-function.txt 20 + - specification of *PCI test* function device.
+66
Documentation/PCI/endpoint/pci-test-function.txt
··· 1 + PCI TEST 2 + Kishon Vijay Abraham I <kishon@ti.com> 3 + 4 + Traditionally PCI RC has always been validated by using standard 5 + PCI cards like ethernet PCI cards or USB PCI cards or SATA PCI cards. 6 + However with the addition of EP-core in linux kernel, it is possible 7 + to configure a PCI controller that can operate in EP mode to work as 8 + a test device. 9 + 10 + The PCI endpoint test device is a virtual device (defined in software) 11 + used to test the endpoint functionality and serve as a sample driver 12 + for other PCI endpoint devices (to use the EP framework). 13 + 14 + The PCI endpoint test device has the following registers: 15 + 16 + 1) PCI_ENDPOINT_TEST_MAGIC 17 + 2) PCI_ENDPOINT_TEST_COMMAND 18 + 3) PCI_ENDPOINT_TEST_STATUS 19 + 4) PCI_ENDPOINT_TEST_SRC_ADDR 20 + 5) PCI_ENDPOINT_TEST_DST_ADDR 21 + 6) PCI_ENDPOINT_TEST_SIZE 22 + 7) PCI_ENDPOINT_TEST_CHECKSUM 23 + 24 + *) PCI_ENDPOINT_TEST_MAGIC 25 + 26 + This register will be used to test BAR0. A known pattern will be written 27 + and read back from MAGIC register to verify BAR0. 28 + 29 + *) PCI_ENDPOINT_TEST_COMMAND: 30 + 31 + This register will be used by the host driver to indicate the function 32 + that the endpoint device must perform. 33 + 34 + Bitfield Description: 35 + Bit 0 : raise legacy IRQ 36 + Bit 1 : raise MSI IRQ 37 + Bit 2 - 7 : MSI interrupt number 38 + Bit 8 : read command (read data from RC buffer) 39 + Bit 9 : write command (write data to RC buffer) 40 + Bit 10 : copy command (copy data from one RC buffer to another 41 + RC buffer) 42 + 43 + *) PCI_ENDPOINT_TEST_STATUS 44 + 45 + This register reflects the status of the PCI endpoint device. 46 + 47 + Bitfield Description: 48 + Bit 0 : read success 49 + Bit 1 : read fail 50 + Bit 2 : write success 51 + Bit 3 : write fail 52 + Bit 4 : copy success 53 + Bit 5 : copy fail 54 + Bit 6 : IRQ raised 55 + Bit 7 : source address is invalid 56 + Bit 8 : destination address is invalid 57 + 58 + *) PCI_ENDPOINT_TEST_SRC_ADDR 59 + 60 + This register contains the source address (RC buffer address) for the 61 + COPY/READ command. 62 + 63 + *) PCI_ENDPOINT_TEST_DST_ADDR 64 + 65 + This register contains the destination address (RC buffer address) for 66 + the COPY/WRITE command.