Inbound: PCI domain access memory domain outbound: Memory domain access PCI domain
RC access EP: RC memory domain-> outbound-> rc pci domain-> ep pci domain-> inbound-> EP memory domain EP access RC: EP memory domain-> outbound-> ep pci domain-> rc pci domain-> inbound-> RC memory domain
An out is an out-of-the-box interface. The out-of-the-box interface is used to initiate an access request. An in interface is used to access the accessed side.
Ep rc access example (Blue Arrow): (1) first, EP needs to configure outbound, RC needs inbound (usually RC does not need to be configured ), in this way, the EP ing between 0x20000000 on the EP end and 0x50000000 on the RC end is established. (2) modify the content of 0x50000000 on the RC end, and the corresponding changes are displayed on the EP end. Read/write 0x20000000 from EP and read/write 0x50000000 from RC. The result is the same.
Rc ep access example (Black Arrow) :( 1) First, the RC end needs to configure outbound (usually configured in the kernel), and the EP end needs inbound (0x5b000000 inbound to bar2 ), in this way, a ing between 0x20100000 (bar2) on the RC end and 0x5b000000 on the EP end is established. (2) modify the memory content of 0x5b000000 on the EP end. The corresponding changes can be seen at 0x20100000 on the RC end, read/write 0x20100000 from RC and read/write 0x5b000000 from ep. The result is the same.
Mutual access between PCIe inbound, outbound, EP, and RC