is it somehow possible to update “firmware” running (previously loaded by vf610_cm4_rproc module) on M4 core from Linux without rebooting a whole board? I think that there is nothing like M4 only reset in the SoC, but I would expect some workaround for this. Because how to develop applications for the M4? Resetting board after every change sounds like a bad joke…
There is no M4 only reset, so the only way to get to a clean slate is using the System wide SoC reset. While remoteproc does provide a method implementation to shutdown the remote core, for example, see here, due to the above reason this is not possible to implement for the Vybrid remoteproc driver. As far as I know remoteproc also does not allow to reload code on the fly, however, theoretically it could have been possible if the remote core could be shutdown and the remoteproc module was reloaded and thus reloading the firmware. This is however not possible for Vybrid due to the above.
Thanks for explanation. But what is a common development approach for VF61 M4? Really rebooting the board after each code change?
If I would work with M4 core only, I can imagine booting it from u-boot and loading image from TFTP, which could be reasonably fast. But if I want to debug some interaction with Linux environment, then rebooting all the time sounds really lengthy.
Maybe using JTAG there could be some workaround for development purposes available?