2 Kishon Vijay Abraham I <kishon@ti.com>
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
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).
14 The PCI endpoint test device has the following registers:
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 8) PCI_ENDPOINT_TEST_IRQ_TYPE
24 9) PCI_ENDPOINT_TEST_IRQ_NUMBER
26 *) PCI_ENDPOINT_TEST_MAGIC
28 This register will be used to test BAR0. A known pattern will be written
29 and read back from MAGIC register to verify BAR0.
31 *) PCI_ENDPOINT_TEST_COMMAND:
33 This register will be used by the host driver to indicate the function
34 that the endpoint device must perform.
37 Bit 0 : raise legacy IRQ
39 Bit 2 : raise MSI-X IRQ
40 Bit 3 : read command (read data from RC buffer)
41 Bit 4 : write command (write data to RC buffer)
42 Bit 5 : copy command (copy data from one RC buffer to another
45 *) PCI_ENDPOINT_TEST_STATUS
47 This register reflects the status of the PCI endpoint device.
57 Bit 7 : source address is invalid
58 Bit 8 : destination address is invalid
60 *) PCI_ENDPOINT_TEST_SRC_ADDR
62 This register contains the source address (RC buffer address) for the
65 *) PCI_ENDPOINT_TEST_DST_ADDR
67 This register contains the destination address (RC buffer address) for
68 the COPY/WRITE command.
70 *) PCI_ENDPOINT_TEST_IRQ_TYPE
72 This register contains the interrupt type (Legacy/MSI) triggered
73 for the READ/WRITE/COPY and raise IRQ (Legacy/MSI) commands.
80 *) PCI_ENDPOINT_TEST_IRQ_NUMBER
82 This register contains the triggered ID interrupt.