2019-07-08 10:32 AM
Hi,
i am trying to understand where and how are RETRAM, MCUSRAM, virtio ring buffer descriptors and virtio buffers allocated. In the next link:
https://wiki.st.com/stm32mpu/wiki/Linux_remoteproc_framework_overview
It is described the device tree configurations for these reserved-memories. These device tree nodes are read by the st_remoteproc.c driver within the st_rproc_parse_fw function. Inside st_rproc_parse_fw memory regions are registered calling rproc_mem_entry_init and rproc_of_resm_mem_entry_init which are declared in remoteproc_core.c.
My question is where these memories and buffers are allocated? Which functions are used to allocated them? dma_alloc_coherent() function for example does not look the right function as we have fixed physical addresses that need to be mapped to share specific memories between MPU and MCU.
Thanks
2019-07-11 04:36 AM
I'm not sure how the memory is allocated but I guess Remoteproc happens in the MCU SRAM 3 region. This region is specifically designed for IPC between M4 and A7 core.