Hi,
I am working around with both the BB PRUs, properly installed the codes using
make install_PRU0
make install_PRU1
I load:
echo ‘am335x-pru0-fw’ in > /sys/class/remoteproc/remoteproc1/firmware
echo ‘am335x-pru1-fw’ in > /sys/class/remoteproc/remoteproc2/firmware
code works fine and sweet. but after a reboot the firmwares got swapped.
at some point, you need to cp (copy) your firmware into am335x-pru?-fw … where is this done?
AND as far as I know, this needs to be done every time at reboot… I don’t know of any way that PRU firmware survives a reboot… this is why my first question is about what OS version you are running, I’d love to find out how to have my PRU code survive a reboot.
In linux, the offset number in remoteproc is not stable between reboots. /sys/class/remoteproc/remoteprocX/… So don’t hardcode your script to copy specific firwmare based off that one # if you run tree in that directory you’ll see a memory offset:
debian@23-am335x-bbb:~$ tree /sys/class/remoteproc/remoteproc1/ | grep pru
├── device -> ../../../4a334000.pru
debian@23-am335x-bbb:~$ tree /sys/class/remoteproc/remoteproc2/ | grep pru
├── device -> ../../../4a338000.pru
Use those magic numbers to help you figure out pru0 vs pru1 … (also kernel specifc…)
debian@23-am335x-bbb:~$ uname -r
5.10.168-ti-r77
If you copy your firmware am335x-pru1-fw/am335x-pru0-fw under /lib/firwmare/ and also copy them into hte initrd, they will be auto-loaded on bootup…