Hi
After changing the PCIe Endpoint class code from 0x060000 to 0x058000, the device is successfully enabled and the PCIe link comes up correctly.
Now I am trying to write data from the Root Complex (RC) to the Endpoint (EP) using PIO / MMIO access.
Write Operation from RC
I am using devmem2 on the RC side:
$ devmem2 0x18100004 w 0xDEADBEEF
Output:
/dev/mem opened.
Memory mapped at address 0xffff84e9b000.
Read at address 0x18100004 (0xffff84e9b004): 0xFFFFFFFF
Write at address 0x18100004 (0xffff84e9b004): 0xDEADBEEF, readback 0xDEADBEEF
Observation on EP Side
Using ILA in Vivado, I can see the AXI write data (WDATA = 0xDEADBEEF) reaching the PCIe IP.
However, when I try to read the data from the EP register logic, I only get dummy values (0xFFFFFFFF).
Additionally:
A register shows the value 0xDEC0DE1C
RVALID remains 0
Read response never completes
Questions
1. Is additional configuration required on the EP side to properly handle PIO/MMIO writes?
2.Could this be related to BAR configuration, address decoding, or AXI slave response handling?
Thanks in advance for your support.