DDR access from the PRU


I’ve been trying to figure out how to access DDR memory from the PRU and I’ve been coming up short. What i want to do is write data directly from the PRU to DDR, preferably a block of memory that has been malloced() by the C driver program. EDMA would be perfect, but even manual access would be enough.

In the one example that includes DDR access, I don’t understand how this should work though… it’s calling mmap() on all memory and just poking bytes, which could be bad.

Does anyone know how this should be done? Either giving the PRU access to a malloced() block of memory or better, using the EDMA controller to transfer data from the PRU into DDR?


FYI I found the solution here: http://hipstercircuits.com/?p=468