Note that RPMsg kernel space refers to the kernel drivers implementing VirtIO, RPMsg and Remoteproc and that RPMsg user space refers to the OpenAMP implementation of VirtIO, RPMsg and Remoteproc.
|
Linux kernel RPMsg/Remoteproc on APU + OpenAMP library used on RPU |
OpenAMP library used on Linux userspace + OpenAMP library used on RPU |
Libmetal library used on both APU and RPU |
---|---|---|---|
Linux boots RPU (RPU is a coprocessor to Linux APU host) |
Yes |
Yes See Building Linux Applications Using OpenAMP RPMsg in Linux Userspace |
Yes |
Supports warm restart: Auto APU/RPU reconnect after APU restart |
Yes See |
No |
User defined |
Supports pre-defined shared memory range |
Yes |
Yes See Building Linux Applications Using OpenAMP RPMsg in Linux Userspace |
Yes See Shared Memory and Enable Linux Demo Application Using Libmetal with PetaLinux Tools |
Linux can dynamically allocate shared memory range |
Yes |
No |
No |
Supports Multiple communication channels (e.g. both RPUs) |
Yes See OpenAMP Demos |
Yes See OpenAMP Demos |
Yes See OpenAMP Demos |
Works with FSBL RPU boot |
No |
Yes |
Yes See |
Data Transfer Overhead |
Memory copy between user application and Linux kernel, and Linux kernel space to shared memory |
Memory copy between user application and shared memory |
|