Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
9 years ago

My AXI4 Lite slave hangs CPU after read. Write transactions work correctly

Hi,

I have ported my AXI4-Lite to IPbus bridge from Zynq to Altera Cyclone V.

Unfortunately, it behaves in a strange way in Cyclone V.

Tests have been done with "devmem" tool in Buildroot compiled Linux.

There is also Altera sys-id component connected to the same bridge using the same clock and reset signals, which works perfectly, so the clock and reset signals are correct and the lwhps2fpga bridge is enabled (at the U-Boot level).

Below are the Signal Tap recordings for write transactions (32-bit write, and 64-bit write).

devmem 0xff200124 32 0xdad98123

http://www.alteraforum.com/forum/attachment.php?attachmentid=12186&stc=1

devmem 0xff200000 64 0x12345678fedcba98

http://www.alteraforum.com/forum/attachment.php?attachmentid=12187&stc=1

Unfortunately, for read accesses the CPU hangs just after the first (in case of 64-bit read)

or the only (in case of 32-bit read) transaction is finished:

devmem 0xff200000 64

http://www.alteraforum.com/forum/attachment.php?attachmentid=12188&stc=1

devmem 0xff20001c

http://www.alteraforum.com/forum/attachment.php?attachmentid=12189&stc=1

The transaction is completed correctly at the slave level, however it looks like the information about completion doesn't reach the CPU.

I attach sources of the component. It contains a few IPbus slaves conencted to the bridge. One of registers drives 8 lines conncted to LEDs via "leds" conduit.

The verified Xilinx version is almost the same. It only does not use the WPROT and RPROT ports and uses narrower LEDS conduit (3 LEDS).

What can be the reason of such strange behaviour on the Cyclone V platform?

TIA & Regards,

Wojtek

14 Replies