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.

TMS320F28386S: Secondary secure bootloader reference design / example

Part Number: TMS320F28386S
Other Parts Discussed in Thread: C2000WARE, TIDM-02011

Hi,

I am trying to develop a project which will have:

1. A customer/secondary flash bootloader which is located in flash sectors 0 & 1, on the core CPU1.

2. An application firmware which is located from flash sector 2 and onwards.

The device will be configured to secure ROM boot to flash point 0x80000 to run this secondary bootloader.

This bootloader is aimed at:

- able to update the application firmware from flash sector 2.

- able to switch/jump to run the application firmware.

Would anyone please provide me with any example/reference design similar to what I want to achieve?

Thank you.

  • We have Flash bootloaders for F2838x - but only RAM build configurations for them, not Flash. You could create a Flash build configuration.

    You can find this in C2000Ware at C:\ti\c2000\C2000Ware_5_00_00_00\driverlib\f2838x\examples\c28x_dual\flash_kernel

    On the other hand, we have Flash bootloaders for F28003x, F28004x with Flash build configurations and the logic to switch from the bootloader firmware to the application firmware. You can find this in the C2000 Digital Power SDK under TIDM-02011, C:\ti\c2000\C2000Ware_DigitalPower_SDK_4_04_00_00\solutions\tidm_02011\f28003x\examples\flash\CCS

    Thanks,

    Sira

  • Thank you very much for the information Sira!  

    I have another question about the secure flash boot and the authentication of the flash region where the application firmware is located.

    If bootloader is located in Sector 0, and the application starts from Sector 1 ....  I'm I right to assume that:

    1. The user customized region CMAC tag should be in stored the memory range of the application, e.g., somewhere in Sector 1 and onwards?

    2. The bootloader should perform the authentication of the application, using "CPU1BROM_calculateCMAC (CMAC_AUTH_START_ADDRESS, CMAC_AUTH_END_ADDRESS, CMAC_AUTH_TAG_ADDRESS), before switching to the application firmware?  It also must include

    #pragma RETAIN(cmac_all)

    #pragma LOCATION (cmac_all, <CMAC location>)

    const struct OMAC_TAG cmac_all = {{0}, <start address>, <end address>};

    3.  CMAC is generated and built into the application hex by the hex tool?

    Thanks!

  • Mei, since CMAC is a separate topic, my suggestion would be to create a separate e2e post on it. It will get routed to the right expert.

    I will close this thread.

    Thanks,

    Sira

  • Hi Sira,

    Thank you for providing me with the information - I have resolved this for the CPU1 & 2 core. 

    I was wondering if you could point me to an example for the CM similar to the CPU1%2 - switching from the bootloader firmware to the application firmware on the CM core?

    Thanks!.

  • Hi Mei Mei,

    The example for CM is located at this folder: C:\ti\c2000\C2000Ware_5_00_00_00\driverlib\f2838x\examples\c28x_cm\flash_kernel

    The Serial Flash Host Programmer App Note (ti.com/lit/sprabv4) has steps detailing programming for the f2838x device. 

    Thanks and regards,

    Charles

  • Thanks very much Charles!