Hello,
I'm currently trying to use the PCIe Inbound Translation Code to enable access of DSP registers from a Host PC. I'm currently seeing some results that are confusing to me, and I wonder if I'm missing any steps, possibly related to memory protection or anything like that.
For hardware, I'm currently using the TMDXEVM6657LE, with the AMC to PCIe adapter card.
From a Linux PC, I currently do the following:
PCI_Bar_0 [PCI_IB_BAR0 ] = 3;
PCI_Bar_0 [PCI_IB_START0_LO] = base_physical_address_of_bar_3;
PCI_Bar_0 [PCI_IB_START0_HI] = 0x0;
PCI_Bar_0 [PCI_IB_OFFSET0 ] = 0x01812000;
My understanding now, is that if I wanted to read the DSP Register at 0x01812000, I could dereference the first DWord on PCI Bar 3. However, when I do this, I get a value of 0xFFFFFFFF, while the XDS560 Emulator shows me 0x00080001 as I might expect.
I've also noticed this same issue with the memory region at 0x21800000.
I am able to correctly read the CorePac0 L2 SRAM, which is at 0x10800000.
Are the memories outside of the L2 (and probably L1) protected from being read by the PCIe Controller in some way? Could anyone point me to a piece of documentation that might clear this up for me.
Thanks!
Bill Lynch