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.

AWR1642: How to use secondary bootloader

Part Number: AWR1642
Other Parts Discussed in Thread: UNIFLASH

Hi,

My customer is using CAN to update the firmware in SPI flash.

He send the new BIN data from PC to AWR1642 using CAN, then overwrite the QSPI flash from address 0. After re-power up, the new image can be read into RAM and run.

How to use secondary bootloader to handle multi image? The customer doesn't want to overwrite the image in QSPI.

Is there any way to change the MSS & DSS image's boot address? How?

Thanks.

Regards,

Wesley

  • Hello Wesley,

    Similar query to update the SPI flash and care about for the SBL is in below post.

    Let us know if this is helpful for your customer usecase.

    I need to confirm if we can change the boot address. I will get back to you on this query.

    Thanks,

    Raghu

  • Hello Wesley,

    You may also follow the thread
    e2e.ti.com/.../626916
    that is also a related post.
    Regarding changing the boot address, it is not possible to change the boot address for MSS.

    Best regards,
    Naveen
  • Hi Naveen,

    Is there any example code for secondary bootloader?

    My customer's application requires handling of multiple images (factory programmed and back-up).
    He wants to do as follow:
    - have a factory image on the Flash (reserved addresses);
    - have a user image on the Flash at another address, which will be used when booting the xWR1xxx;
    - when a new image is sent to the xWR1xxx, the user image gets replaced by the new version and if a problem happens, the xWR1xxx boots from the factory image;

    If the example code is not available, can you please give a guide to implement this function?

    Thanks,
    Wesley
  • Hi Wesley,

    We do have a provision in the bootloading process that may fit your usecase. You may consider this to see if it fits your requirement.

    There is a provision in Uniflash to load MetaImage1/2/3/4. These are images loaded at a fixed offset of 512 MB each in the SFLASH. If the bootup of MetaImage1 (location 0) fails to boot for whatever reason, the image (MetaImage2) at location 512KB is attempted and so on for upto 4 such images.

    Best regards,
    Naveen
  • Hi Naveen,

    Thanks for your help.

    It works. I still have a question.

    How the ROM code check if the image is broken or not? 

    If only several bits of this image are changed, will it be detected by ROM code?

    Thanks.

    Regards,

    Wesley.

  • Hi Wesley,

    The Meta header in the multicore image that you create has a CRC for each of the images present. As the bootloader loads the image, if the CRC based integrity check fails, the image is considered broken.

    Best regards,

    Naveen

  • Hi Naveen,

    Thanks for your help. I'm clear now.

    Regards,

    Wesley.