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.

TMS320F280025: options for Firmware update?

Part Number: TMS320F280025
Other Parts Discussed in Thread: C2000WARE

Team,

What is the most suited way to do a firmware update?

I assume that the ROM bootloader is usually used to Boot a custom firmware in RAM.
This custom firmware (or 2nd level bootloader) will :
   -Run and initialize the interface it needs to use
   -Load the update via the interface and burn it to FLASH
Is my understanding correct? Am I missing some steps?

What are the most suited interface (supported by the bootloader) for this? What interface do you advise to use?
What is the most common in term of code size (smallest, that could fit in the 24kB RAM) and in term of update speed (fastest interface)?
Do we have a ready to use example that would use the Bootloader (SCI, CAN, etc) to load some code in RAM?

Do we have some code example showing the use of the Flash API and giving an example of such 2nd level booloader?
Do we have some guidelines for Flash partitioning in case for example you can a Flash page for log info?
Any feedback on mechanism for recovery in case the update fails?

Can firmware update be done as well at the application level as well?
Any guidelines for this?

Thanks in advance,

A.

  • Cna you please refer the TRM which should answer many of your questions. Further if you have any queries i would be happy to help.

  • Anthony,

    Replies in-lined below:

    I assume that the ROM bootloader is usually used to Boot a custom firmware in RAM.
    This custom firmware (or 2nd level bootloader) will :
       -Run and initialize the interface it needs to use
       -Load the update via the interface and burn it to FLASH
    Is my understanding correct? Am I missing some steps?

    [Sira] Yes, the Peripheral ROM Bootloader (e.g. SCI) will load a SCI Flash Kernel (aka Custom bootloader aka Secondary bootloader) into RAM, and execution will pass onto the Kernel. This will download the Application from the Host and program it to Flash.

    What are the most suited interface (supported by the bootloader) for this? What interface do you advise to use?

    [Sira] SCI, CAN, USB are common. SCI is what TI has the widest support for, in terms of example Flash Kernels.


    What is the most common in term of code size (smallest, that could fit in the 24kB RAM) and in term of update speed (fastest interface)?

    [Sira] I don't know that I can make a good comparison, since we don't have too many alternatives. Here is a list. As you can see, other than SCI, we have USB support only on 1 Gen-3 device family. SCI should work on F28002x.

    • SCI (F2802x, 03x, 05x, 07x, 37xS, 37xD, 004x)
    • CAN (03x, 06x) - \device_support\f2806x\examples\c28\f28069_can_flash_kernel,  \device_support\f2803x\examples\c28\f2803x_can_flash_kernel
    • USB (37xD)

    Do we have a ready to use example that would use the Bootloader (SCI, CAN, etc) to load some code in RAM?

    [Sira] So you'll notice that the above list doesn't mention F28002x (or F2838x), but we are currently working on these Kernels. The F28002x is ready and can be shared (e.g. on TIDrive). It will go into an upcoming C2000Ware release.

    Do we have some code example showing the use of the Flash API and giving an example of such 2nd level booloader?

    [Sira] Yes, as mentioned above.


    Do we have some guidelines for Flash partitioning in case for example you can a Flash page for log info?

    [Sira] Can you elaborate? Are you saying you want to reserve a portion of Flash for some logging info? That should be fine, you'll just need to modify the Flash kernel to not Erase all of Flash during the update. I can discuss details with you once you have the code.

    Any feedback on mechanism for recovery in case the update fails?

    [Sira] Usually in these cases, you just have to power cycle and retry the update. The odds of a failed update corrupting Flash (e.g. OTP) are very small.

    Can firmware update be done as well at the application level as well?

    [Sira] Can you elaborate on this? Are you asking if the FW update can occur while the application is running? That would fall into the LFU (Live Firmware Update) space. The SCI Flash kernel would need to be resident in Flash. The flow would be different. You would not invoke the SCI ROM bootloader. We can discuss more in email. I have created an LFU build configuration in the SCI Flash Kernel. It works.

    Thanks,

    Sira

  • Hi Sira,

    Thanks for the detailed answer!

    For now I don't need more info.  Looking forward to have the "Live firmware update - TIDM-02011" code/UG available in the next DigitalPower SDK release (planned for 1Q/2Q 2021):
    www.ti.com/.../C2000WARE-DIGITALPOWER-SDK

    A.

  • Anthony, sure. Let me know if you have more questions once the release is made. I will close this issue for now.

    Thanks,

    Sira