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.

AM2634: TMDSCNCD263

Part Number: AM2634

Hello,

I am working on a bootloader and need to download the secondary bootloader in the RAM. How the vectors at address 0x00000000 will be handled?

I expect to write the software in the ram and then jump to the software's start address, the start address of any software should be at 0x00000000. so like this, the vectors for the primary bootloader will be overwritten.

What is the correct handling for this?

Moreover, I will download the application in the QSPI flash and the bootloader will copy it to the RAM for execution.

The sequence will be, ROM bootloader will load the SBL and then the SBL will load my bootloader software and then my bootloader software will load the application. How should this be handled?

Yours,
Abdelrhman Afifi 

  • Hi Abdelrhman Afifi,

    I expect to write the software in the ram and then jump to the software's start address, the start address of any software should be at 0x00000000. so like this, the vectors for the primary bootloader will be overwritten.

    Yes, currently the TI-SBL follows the similar flow for 08.06 release. It overwrites the SBL vector table with Application vector table and then asserts a sub-system reset. The CPU starts as a fresh reset release with new vector table in place.

    What is the correct handling for this?

    There are 2 ways -

    • Either you jump from SBL to Application by doing a simple branch instruction. In this case, you must handle the interrupts, MPUs settings again.
    • Or, you can do what TI-SBL is currently doing. But as per the 09.00 release, the TI-SBL will be first disabling the interrupts, overwriting the vector table and then asserting a reset. To prevent spurious interrupts during the overwrite, that can disrupt the flow of the software.
    How should this be handled?

    It does not matter how many levels of bootloader you intend to create. The sequence shall remain the same for all of them from hardware point of view. You load the software into the RAM, your vector table has to be the same address due to ARM limitations for R5F CPUs. The FSM trigger (Subsystem reset) resets the entire subsystem.

    Best Regards,
    Aakash

  • Hello,

    But as per the 09.00 release

    How can I download version 09.00?

    I find the latest version as 08_06.



    Yours,

  • Hi ,

    The release is not public yet. It is planned to be released by 3rd to 4th week of Aug. But the flow is very simple. Do you have any doubts on the same ?

    Best Regards,
    Aakash