Tool/software:
I am using AM64x Linux SDK 10.0 (or potentially the latest AM64x Linux SDK 9.2.1). When I use the Linux remoteproc driver to shut down an R5F core, and boot it back up, my processor hangs.
An example terminal output on SDK 10.0 is here:
root@am64xx-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== 5000000.m4fss ==> /sys/class/remoteproc/remoteproc1/name <== 78000000.r5f ... ==> /sys/class/remoteproc/remoteproc2/name <== 78200000.r5f ... root@am64xx-evm:~# echo stop > /sys/class/remoteproc/remoteproc2/state [602661.859629] platform 78200000.r5f: k3_r5_rproc_stop: timeout waiting for rproc completion event [602661.862122] remoteproc remoteproc2: stopped remote processor 78200000.r5f root@am64xx-evm:~# root@am64xx-evm:~# echo stop > /sys/class/remoteproc/remoteproc1/state [602683.363624] platform 78000000.r5f: k3_r5_rproc_stop: timeout waiting for rproc completion event [602683.363857] remoteproc remoteproc1: stopped remote processor 78000000.r5f root@am64xx-evm:~# echo start > /sys/class/remoteproc/remoteproc1/state [602696.928024] remoteproc remoteproc1: powering up 78000000.r5f [602696.929099] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 434436 // output freezes here
Fun fact: The "Remoteproc" driver is for managing "remote processor cores", where a "remote processor" is any non-Linux processor on the device.