I am trying to implement multiple rpmsg channel support on the Arm R5 via OpenAMP to the A53. The work is being done on a custom board using the UltraScale+ xczu3cg.
Currently we have only one channel open between the R5 & A53 and the implementation is based on the OpenAMP latency test example.
Are there any resources or examples that I can reference in order to implement our multi channel requirement?
Thanks in advance.
I’m assuming you mean 2 channels, one for R5-0 and the other for R5-1.
If you are using different IPI channels, there will be a separate base address for each channel that you use.
Please refer to Chapter 13 (Interrupts in UG1085).
If you see the table each IPI channel has a different base address. For instance, default echo_test application in SDK is written for R5-0 and if you check the base address it is
#define XPAR_PSU_IPI_1_S_AXI_BASEADDR 0xFF310000U
So if if you want tio use Channel 2 for instance, it will be 0xFF320000U
The openamp wiki has examples for OpenAMP with RPMsg in kernelspace with 2 rpu slaves where a channel is generated for each slave