In Linux kernel 6.12, we remove the separate PRU RPMsg (RPMessage) driver, and use the generic RPMsg driver instead. However, the changes were not complete in time for Linux SDK 11.0. This means that PRU RPMsg does not work out-of-the-box in AM62x Linux SDK 11.0 and AM64x Linux SDK 11.0. Please follow these steps to enable PRU RPMsg on these SDK releases.
All changes will be integrated for AM62x Linux SDK 11.1 and AM64x Linux SDK 11.1.
How to run the out-of-the-box PRU Demo?
Steps to run the out-of-the-box PRU demo are different than the documentation for prior SDK releases. Until the RPMsg Quick Start Guide has been updated, please refer to the reply further down in this FAQ.
Error outputs
If you try to load firmware with PRU RPMsg without following the below steps, the firmware load may fail like this:
// find which PRU core you want to connect to // remoteprocX association can change each boot, so use the name to determine // which core is which root@am64xx-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== 78000000.r5f ... ==> /sys/class/remoteproc/remoteproc9/name <== 30034000.pru // now let's check which firmware will get loaded by default root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc9/firmware am64x-pru0_0-fw root@am64xx-evm:~# ls -al /lib/firmware/ ... lrwxrwxrwx 1 root root 53 Mar 9 2018 am64x-pru0_0-fw -> /usr/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out // now let's try to load the RPMsg Echo firmware root@am64xx-evm:~# echo start > /sys/class/remoteproc/remoteproc9/state [258582.547936] remoteproc remoteproc9: powering up 30034000.pru [258582.553702] remoteproc remoteproc9: Booting fw image am64x-pru0_0-fw, size 118672 [258582.556543] rproc-virtio rproc-virtio.5.auto: .kick method not defined for 30034000.pru [258582.556576] remoteproc remoteproc9: failed to probe subdevices for 30034000.pru: -22 [258582.556930] remoteproc remoteproc9: Boot failed: -22 -sh: echo: write error: Invalid argument