Hi!
You have to use kmalloc() to allocate a phisically contiguous buffer in memory. It will give you the physical address you can access from the FPGA and a virtual access to access the buffer from inside the driver. But kmalloc is in cached memory so you have to add 0x80000000 to the physical address and use that address from the FPGA to access through ACP port in a coherent way. The problem is that you need to first configure ACP.
If you want to access from the L3 to SDRAM port you , first you have to allocate a buffer with dma_alloc_coherent(). This function allocates physically contiguous buffer non-cached.
You can check my example in:https://github.com/robertofem/CycloneVSoC_Examples/tree/master/DE1-SoC/Linux_Modules/DMA_PL330_LKM_basic It allocates the 2 kinds of buffer, configures ACP and performs a DMA transfer from processor memories to FPGA. It is still not well documented but I think its easy to understand and you can see how functions are called.
Cheers