Shared DDR RAM access on AMP system

Edward Wingate edwingate8 at gmail.com
Thu Dec 14 18:27:23 EST 2017


On a dual-core ARM SOC (Zynq7020), I have Linux running on core0 and
an RTOS running on core1.  I share data between the two cores with a
4MB block of DDR RAM that I've marked in the MMU as shareable and
non-cacheable.  I use an entry in the device tree and the
uio_pdrv_genirq driver to create an uio device (/dev/uio0) in Linux.
With this device, I can use mmap to read/write the block of DDR RAM
from Linux.

Even though it's meant for memory mapped devices, the uio_pdrv_genirq
driver seems to work for accessing shared DDR RAM.  Are there any
potential issues that may arise from using this driver for accessing
shared DDR RAM?

Is the uio_dmem_genirq driver more appropriate for this? I couldn't
get it to work though, perhaps because of this bug:
https://forums.xilinx.com/t5/Embedded-Linux/Bug-in-uio-dmem-genirq-UIO-driver-support-for-device-tree/td-p/569120

Thanks for any advice/help.

Ed



More information about the Kernelnewbies mailing list