Bootloader format

The information in this section may not be of interest to many users.  The data format used with the bootloader is normally provided by Diamond or functions provided in the SMT6025 SDK

The bootloader is started when a TIM is taken out of reset. It scans the comports and selects the first to present data as the "boot link". From this link, the bootloader then accepts a program as a sequence of 32-bit words in a particular format and loads it into the TIM.

There are two supported formats:

New format

All of the current Sundance bootloaders accept a format that does not have the limitations of the old format (see later), and can load code and data anywhere within a processor's available memory.

"Safe address for loader" should be the address of a 1KB block of executable memory that will not be overwritten by the incoming code and data. Note that the loader has finished its work before the loaded program starts to execute, so the safe address could be within the program's stack or heap areas.

Word Meaning
0xBBBB0002 Specify new format
Safe address for loader The address where the bootloader should move itself before loading the sections to avoid being overwritten by itself.
Section 1 Size  Size of the section in words
Section 1 Physical address Where the section is to be loaded to in DSP memory space.
Section 1 Data The actual section data
... For all of the sections...
Section N Size  Size of the final section in words
Section N Physical address Where the section is to be loaded to in DSP memory space.
Section N Data The actual section data
0x00000000  
Entry point address Address where the bootloader should jump to start the loaded program executing.

 

Old format

This was the original format accepted by the bootloaders and is only retained for backwards compatibility. It has the following limitations:

Word Meaning
0x00003779 Specify old format
Discarded value  
Discarded value  
Discarded value  
Entry point address Address where the bootloader should jump to once the program has been completely loaded.
Discarded value  
Section 1 Size Size of the section in words
Section 1 Physical address Where the section is to be loaded to in DSP memory space.
Section 1 Data The actual section data
.... For all of the sections ...
Section N size  Size of the final section in words
Section N Physical address  
Section N Data  
0x00000000 Informs the bootloader there are no more sections, and it should jump to the entry point address.