I have a Cyclone V SOC system, and the ARM is running Linux, and the FPGA is running SDI video and VIP suite items. The FPGA DDR memory is being used by the VIP suite and all works well. The ARM is using the DDR memory attached to it, and Linux does not have any problems running. The ARM can configure the VIP suite over the LWAXI bus, and the ARM can write to the FPGA DDR memory from the H2F_AXI bus connected to one of the ports of the MPFE DDR controller.
In a particular system, it has been working well, and then someone does something and the ARM can no longer access the FPGA DDR memory, even after it has been powered down and back up again. The FPGA DDR memory is still working because the VIP suite is running through frame buffers, etc. The ARM DDR memory is working because Linux is running correctly. But as soon as I try and access the FPGA DDR memory from the ARM, the whole system stops - the ARM completely freezes.
The only way I can see this happening is if the FPGA DDR transaction holds wait and never releases it. But how can that happen even once, when the system runs reliably the rest of the time, but also, having been left running for two weeks, it then fails, and continues to fail every time it's rebooted. The only way I could fix it was to load some new firmware in, yet the firmware it had, had been tested for months without problems. I am concerned that the same will happen to this in a few weeks time.
Any clues gratefully received.
View all questions in SoC Design forum