cancel
Showing results for 
Search instead for 
Did you mean: 

OpenAMP Linux Side

YRink.1
Associate II

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?

3 REPLIES 3
Olivier GALLIEN
ST Employee

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

Olivier GALLIEN
In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
YRink.1
Associate II

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

YRink.1
Associate II

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?