This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
See my earlier post http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/301264/1051049.aspx#1051049
Regards, Eric
The first is OB write, you have something in your LL2 and write to 0x6001_5678, now what is the PCIE address across the bus? It is 0x9001_5678 via OB Translation.
The second is OB read, you want to read something into your DDR3. So the DST is your DDR3 and SRC is 0x6xxx_xxxx alike. The address on the PCIE bus is of 0x12345678_70000000. The OB regions 18/19 translates 0x6980_0000 and 0x6990_0000 into those 12 MB region.
Regards, Eric
Outbound transfer means the local device initiates the transactions to write to or read from the external device. The CPU or the device-level EDMA is used for outbound data transfer. The PCIe module does not have built-in EDMA.
Inbound transfer means the external device initiates the transactions to write to or read from the local device. The PCIe module has a master port to transfer the data to or from the device memory; no CPU or EDMA is needed for inbound transfer in the local device.
But there is no limit for which two regions are chosen. For example, if we choose Region 18 and Region 19 for the translation.
Bits [27:23] = 18 = 10010b --> 0x6900_0000;
Bits [27:23] = 19 = 10011b --> 0x6980_0000;
0x8912_5678 is the destination of the movement. 0x1234_5678 is the external address HI 32-bit. The point is, from your local PCIE device, you are moving data between 0x8912_5678 and 0x6900_0000 for 12MB range, this move can use EDMA or CPU. The OB translates the 0x6900_0000 into PCIE bus address of 0x1234_5678_7000_0000.
Regards, Eric