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:
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. |
This was the original format accepted by the bootloaders and is only retained for backwards compatibility. It has the following limitations:
No code or data can be loaded to the part of internal memory from where the loader executes (within addresses 0x00000000—0x00002000).
On processors with separate internal program and data spaces (C6x0x) nothing can be loaded into internal program memory.
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. |