This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
Hello,
For my usecase, I will have a linux userspace app that needs to communicate with the c7x cores to assign them tasks and get the results. This seems like a very typical usecase to me.
To this end, I'd like to be able to load my development version of the c7x application via CCS so that I don't have to reboot the linux system every time I change the firmware. It would also be useful for debugging.
It seems like this isn't working, though. The debugger shows the upload happening very slowly but ultimately I'm unable to run the code. This seems like a very obvious and critical workflow, but I can't find any documentation on how to get it working. What is the procedure? How can I dynamically change the c7x firmware without rebooting linux?
Hi Tyler,
To this end, I'd like to be able to load my development version of the c7x application via CCS so that I don't have to reboot the linux system every time I change the firmware. It would also be useful for debugging.
This is not possible. The loading and booting of a C7x firmware on Linux is either through the U-Boot C7x remoteproc driver or through the Linux Kernel's C7x remoteproc driver. There is no support for the driver to stop and start a C7x firmware at runtime today.
You can use CCS to connect and debug an already booted C7x processor, and there is no provision for the Linux kernel to come up and communicate dynamically for a firmware booted through a debugger. The Linux driver needs to process the firmware for it to know the IPC resource usage details, to initialize the virtio-rpmsg-bus stack in the kernel.
How can I dynamically change the c7x firmware without rebooting linux?
You can put a while loop at the beginning of your firmware, boot the firmware through Linux, connect to your core, and debug the exchange.
You could use the 'No-Boot' bootmode w/o Linux if you were developing and debugging your stand-alone C7x firmware. But this is not your current usecase.
How can I dynamically change the c7x firmware without rebooting linux?
There are no alternatives here other than what I mentioned above.
regards
Suman