--- Quote Start ---
How did you measure the performance comparison between using the ACP port and FPGA-SDRAM port?
--- Quote End ---
Running the clock at 150Mhz and seeing how much streaming data we could get over the bus from an mSGDMA. From my notes: ACP was 280MB/s, f2h_axi was 380MB/s, f2h_sdram was 564MB/s.
--- Quote Start ---
If I would use the ACP port, do I need to cast the buffer to an unsigned long long to manage the data in 64 bits format? is it required? My FPGA module has a 32 bits bus data.
--- Quote End ---
I think you'll get best performance with a 64-bit bus, but I don't think the datatype of the structure matters since all software accesses to memory will go through the optimized cache/memory-interfaces first. But if you do any kind of random access in the FPGA module (as opposed to streaming), though, that should probably be in 64-bit chunks and might turn out to be easier with the ACP port, but will of course be much slower than streaming.
--- Quote Start ---
I am trying to setup the ACP port, so I have some questions:
1. Do I need to use the FPGA to HPS port instead the FPGA to SDRAM ports?
--- Quote End ---
Yes, only the FPGA to HPS works for ACP. f2h_axi on my qsys.
--- Quote Start ---
2. Do I need to cast the buffer I allocated in the driver to a 'unsigned long long' to read/write data? is it required?
--- Quote End ---
I don't see any need to per above.
--- Quote Start ---
3. Is it required to set the f2h_AR[AW]CACHE attributes as you said in the second post?
--- Quote End ---
Check if latest Qsys does this automatically now. But it might still be needed.
--- Quote Start ---
After sending the command to perform the DMA task using the ACP port (phy_addr | 0x80000000) I got a "Kernel panic - not syncing", do you have a repository where I can take a look at the code of your driver when using the ACP?
--- Quote End ---
Sorry, no, but I'm using configuration identical to GnuRadio. I do recall spending a lot of time getting the right boot-loader/device-tree/kernel/, any chance it is that? If so, try to get any kind of working system at all first so you can rule out these issues. Then, just add/subtract your HDL to this working system. When I started my project late 2014, I did everything from the SocKit Linaro Desktop at rocketboards, that was my golden model. I could add/delete software and hardware incrementally from that version and know immediately if I'd done something wrong.