2020-12-15 08:19 AM
Hi,
iam trying to get an understanding of the OpenAMP Framework and i wanna use it for interprocess communication with the STM32MP1. As my understanding, the OpenAMP Framework could be used from Baremetal/RTOS side and apparently also from Linux Side. But when i had a look to the stm-wiki site i only found an Implementation of the OpenAMP to the Cortex M4 not to the A-Cores. So my question is, if there is any example to use OpenAMP also on the A-Cores, with the STM32MP1. Another Question is, if its possible to run the Linux in Slave Mode and the M4 In Mastermode? In my understanding its not possible with the STM32MP1 or?
2020-12-16 04:22 AM
Hi @Community member ,
Please have a look to https://wiki.st.com/stm32mpu/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_principle and https://wiki.st.com/stm32mpu/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_example.
It's a good exemple of how to manage OpenAMP Linux side.
>> Another Question is, if its possible to run the Linux in Slave Mode and the M4 In Mastermode?
From system point of view in MP1 A7/Linux is master and M4 a coproc : system can only boot on A7 and system resource are own by A7.
But from application point of view once M4 has been booted by A7/linux, nothing prevent to consider M4 process as the main/master and A7 as a slave.
Olivier
2020-12-16 05:49 AM
Hi,
yes as i expected, you can only boot the m4 via the a7. Thats allright.
I had a look about "exchanging large data buffers" and it seems to be a good usage for a better perfomance. Anyway, is this rpmsg-sdb driver a part of the OpenAMP Standard or will be a part. Cause in my understanding i see no usage of the OpenAMP Framework on Linux side. Iam writing my thesis about OpenAMP with STM32MP1, so its a good infromation to have. Another question is, the transfer seems to be limited only for exchaning data buffers to Cortex A. How much work it would be approx. to change the driver that its possible to send also Buffers to the Cortex-M?
Is there any userspace example with a rpmsg driver with I/O Handling in Linux for the direct buffer exchange?
Yannik
2020-12-17 07:15 AM
I had a look into https://wiki.st.com/stm32mpu/wiki/Exchanging_buffers_with_the_coprocessor. And iam still confused about the ARM-A side. Are the driver rpmsg and rproc_core part of the Linux-Kernel or part of the OpenAMP Community? Or which drivers are implemented or distributed by the OpenAMP Community on Linux side?