Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎03-15-2017

OpenAMP Framework

I have been working in order to understand and run the OpenAMP example.  I am following: I am using the las peta-linux and vivado  2019.1.

Some of the steps seem to be deprecated.

For example:

- Enable userspace firmware loading support:

Device Drivers --->Generic Driver Options ---><*> Userspace firmware loading support

This configuration is not shown in the configuration menu:


Screenshot from 2019-06-17 15-36-13.png

- Ensure the OpenAMP applications and rpmsg modules are enabled:

Filesystem Packages ---> misc ---> packagegroup-petalinux-openamp ---> [*] packagegroup-petalinux-openampNote:packagegroup-petalinux-openamp

enables many openamp related sub-components. If you need more fine-grained control, do not set this packagegroup. Instead, enable the following individual components as needed:

rpmsg-echo-test, rpmsg-mat-mul, rpmsg-proxy-app, rpmsg-proxy-module, rpmsg-user-module

In the configuration menu again these options were not shown.

Finally, I got the following issue when I try to run the echo_example:

root@DBS:~# echo image_echo_test > /sys/class/remoteproc/remoteproc0/firmware
root@DBS:~# echo start > /sys/class/remoteproc/remoteproc0/state
remoteproc remoteproc0: powering up remoteproc@0
remoteproc remoteproc0: Booting fw image image_echo_test, size 2684984
remoteproc remoteproc0: bad phdr da 0x3e000000 mem 0x1aa74
remoteproc remoteproc0: Failed to load program segments: -22
remoteproc remoteproc0: Boot failed: -22
-sh: echo: write error: Invalid argument


Thank You I appreciate any insight.

Kevin Patino
0 Kudos
3 Replies
Registered: ‎05-10-2017

Hi Kevin,

Please use the latest document we have for 2019.1 along with the tools you are using


Don’t forget to reply, kudo, and accept as solution.
0 Kudos
Registered: ‎06-25-2019

That version of the  doc "UG1186 (v2019.1) May 22, 2019"  *is* the problem.

Registered: ‎03-15-2017


I fix that issue, If you are working with other boards you need to be sure and config the dtsi file with the propper RAM information, also you need to change the linker script in the baremetal application.


However, Now I got another issue in the baremetal application example. let me show you the logs.


remoteproc remoteproc0: powering up remoteproc@0
remoteproc remoteproc0: Booting fw image openamp.elf, size 2703804
Starting application...
Successfully intialize remoteproc.
Initialize remoteproc successfully.
creating remoteproc virtio
virtio_rpmsg_buinitializing rpmsg vdev
initializing rpmsg vdev
Try to create rpmsg endpoint.0
Size of Data = 40, status = 7 , err_flag: 4
Avail_size = 496 1
Data = 0 488695288 , Len = 488695276 488695280
Pointer to buff = 0, tick_count = 15000
ERROR: Failed to create endpoint. : -2005
Stopping application...
remoteproc remoteproc0: registered virt)
remoteproc remoteproc0: remote processor remoteproc@0 is now up


As you can see the error ERROR: Failed to create endpoint. : -2005 . I have added  aditional information in the logs and the error seems to be realtedwith the virtio size buffer.


Could you give any advice how to fix that error?


I appreciate your help. Just in case I am working with a PYNQ board and the echo example. I have attached my dtsi file, linker script and example configuration file.



Kevin Patino