cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
jack-18
Visitor
Visitor
1,221 Views
Registered: ‎04-11-2019

AXI Memory Mapped to PCIe only reading 0xFFFFFFFF

Hi,

i've got a question regarding to a PCI endpoint Design. I want to read a constant from GPIO but instead of reading my magic number (DEADBEEF), i only read 0xFFFFFFFF.

Block Design 

Block Design.PNG

Adress Editor:

Adress Editor.PNG

PCIe BAR config.

PCIeBARS.PNG

 

 

 

 

 

When i'm using the XDMA IP and connect the GPIO with the AXI Lite i can read my constant, but not with the AXI MM to PCIe IP.

What i'm doing wrong?

Thanks.

 

 

0 Kudos
4 Replies
deepeshm
Xilinx Employee
Xilinx Employee
1,182 Views
Registered: ‎08-06-2008

Does this working in simulation?

If it is in hardware you are checking in, have you checked if the memory read and the completion for the reads are shown on different interfaces of the blocks you have in your design? You can do this by inserting system ILA. Also, make sure you are reading the right memory location. Your address translation parameter has 0x40000000. Any address you use from the host to read will being with 0x4.... You should make sure the read address is going to the correct destination.  

Thanks.

0 Kudos
jack-18
Visitor
Visitor
1,175 Views
Registered: ‎04-11-2019

I just checked it in HW with rweverything.

tried it with different adresses like 0x00000000 and 0x50000000 but it was the same. 

rweverything1.PNG

 

I set up a view debug probes on the AXI bus but it seemed to be dead.

0 Kudos
vortex1601
Explorer
Explorer
1,129 Views
Registered: ‎12-11-2017

You will get all F's if your AXI slave doesn't respond. Instance a System ILA on both of the the AXI buses (switch master, switch slave) and take a look at your transction. Probably what you will see is the switch master port is getting a SLVERR response on RRESP. The switch will do that if the requested address isn't mapped properly.

If you're using a Linux system, try using 'pcimem' which is a simple utility to peek/poke PCIe address space. Get it here: https://github.com/billfarrow/pcimem

0 Kudos
fpgadepixus
Visitor
Visitor
732 Views
Registered: ‎01-31-2019

I am seeing exactly this as well.

DMA access seems fine; I can execute the run_tests.sh script or the performance test and everything passes. I can also read registers using the device /dev/xdma0_control. Any access to /dev/xdma0_user just returns 0xffffffff

Did you manage to find the problem?

I have been trying several different ways to construct the slave on the AXI-Lite bus:

a) using the IP generator to build a slave register file, and attaching to the bus in RTL

b) using the block diagram subsystem automation to build another memory attached to the AXI-Lite bus.

Neither works.

0 Kudos