Hello,
I am working on C6678-based PCIe endpoint using 64-bit PCIe addressing. I am unable to read PCIe config space (through BARs 2/3) starting at 0x2180_0000 in C6678 memory map. I can, however, read the PCIe application registers through BARs 0/1.
My Inbound BARs are set up as:
initC6678PcieMemoryRegions: Region 0: BAR = 0x00000002, START = 0x380300000000, OFFSET = 0x00800000
initC6678PcieMemoryRegions: Region 1: BAR = 0x00000004, START = 0x380280000000, OFFSET = 0x80000000
initC6678PcieMemoryRegions: Region 2: BAR = 0x00000000, START = 0x000000000, OFFSET = 0x00000000
initC6678PcieMemoryRegions: Region 3: BAR = 0x00000000, START = 0x000000000, OFFSET = 0x00000000
where, the START addresses for IB_BARs 0 and 1 are set to the addresses of the PCIe BARs 0/1 and 2/3, respectively.
So, IB_BAR(1) is used to access DDR memory at 0x8000_0000 and above through BARs 4/5 while IB_BAR(0) is used to access all memory/registers having addresses less than 0x8000_0000.
I am able to read and write core-specific L2SRAM (i.e. 0x108x_xxxx | CORE << 24) but when reading PCIe config through the same IB_BAR the reads all return 0xffff_ffff.
For example, the contents of the ROM boot version string when retrieved through IB_BAR(0) look correct:
ROM Boot Version String:
0x0000: 0x76 0x31 0x2e 0x31 0x32 0x20 0x53 0x61 0x74 0x20 0x41 0x75 0x67 0x20 0x31 0x33 v1.12 Sat Aug 13
0x0010: 0x20 0x31 0x35 0x3a 0x32 0x31 0x3a 0x30 0x37 0x20 0x32 0x30 0x31 0x31 0x20 0x69 15:21:07 2011 i
0x0020: 0x32 0x63 0x20 0x6d 0x61 0x63 0x20 0x73 0x72 0x69 0x6f 0x20 0x70 0x63 0x69 0x65 2c mac srio pcie
0x0030: 0x20 0x76 0x75 0x73 0x72 0x20 0x73 0x70 0x69 0x00 0x00 0x00 0x00 0x00 0x00 0x00 vusr spi.......
Is it possible to read from PCIe root complex the C6678 PCIe Config information provided at 0x2180_00000?
Thank you!
Brad