I have configured the PCIe driver as Root Complex according to the requirements mentioned in the reference manual. I am able to read the PCIe controller of the End Point device correctly. The memory region that I have defined in my configuration are read correctly in the BAR0 and BAR1 (lower 32 bits in BAR0 and upper 32 bits in BAR1) registers of the End Point device. But when I try to read the address of memory region I get 0x0 at all the points of memory region. I am also unable to write to any register of the memory region.
I think the address translation of memory region is not right. Can anyone guide me regarding target address in 64-bit architecture platform?
The steps i have followed are (for PEX2):
ATU.index register = 0x2;
ATU.Lower base address reg = 0x0;
ATU.Upperbase address reg = 0x4a;
ATU.Limit Reg = 0xffff_ffff;
ATU.Lowe Target Addr = 0x0;
ATU. Upper Target Addr = 0x4a;
ATU.Control1 Reg = 0x0;
ATU. Control2 reg = 0x80000000;
Also, what should be the Memory Base and Limit address for perfect routing?
Can anyone provide me SDK for LS1046? As i didn't found any.