www.ti.com
Bootloader Features
179
SPRUI07–March 2020
Submit Documentation Feedback
Copyright © 2020, Texas Instruments Incorporated
Boot ROM
• I2C-A boot mode (I2C-A)
In this mode, the boot ROM will load code and data into on-chip memory from an external serial
EEPROM or flash at address 0x50 on the I2C-A bus. The EEPROM must adhere to conventional I2C
EEPROM protocol with a 16-bit base address architecture.
• eCAN Boot Mode (eCAN-A)
In this mode, the eCAN-A peripheral is used to transfer data and code into the on-chip memory using
eCAN-A mailbox 1. The transfer is an 8-bit data stream with two 8-bit values being transferred during
each communication.
• McBSP Boot Mode (McBSP-A)
Synchronously transfers code from McBSP-A to internal memory. McBSP-A is configured for slave
mode operation, that is, it receives the frame sync and clock from the host. Upon receiving a word, the
McBSP echoes the data back to the host.
• Boot from GPIO Port (Parallel Boot from GPIO0-GPIO15)
In this mode, the boot ROM uses GPIO port A pins GPIO0-GPIO15 to load code and data from an
external source. This mode supports both 8-bit and 16-bit data streams. Since this mode requires a
number of GPIO pins, it is typically used to download code for flash programming when the device is
connected to a platform explicitly for flash programming and not a target board.
• Boot From XINTF (Parallel Boot From XD[15:0])
This mode is similar to the GPIO parallel boot mode except the boot ROM uses XINTF data lines
XD[15:0] to load code and data from an external source instead of GPIO pins. This mode supports
both 8-bit and 16-bit data streams. The user can specify the PLL configuration as well as XINTF timing
through the input data stream.
2.2.10 Bootloader Data Stream Structure
Table 2-4 and Example 2-3 show the structure of the incoming data stream to the bootloader. The basic
structure is the same for all the bootloaders and is based on the C54x source data stream generated by
the C54x hex utility. The C28x hex utility (hex2000.exe) has been updated to support this structure. The
hex2000.exe utility is included with the C2000 code generation tools. All values in the data stream
structure are in hex.
The first 16-bit word in the data stream is known as the key value. The key value is used to tell the
bootloader the width of the incoming stream: 8 or 16 bits. Note that not all bootloaders will accept both 8
and 16-bit streams. Please refer to the detailed information on each loader for the valid data stream width.
For an 8-bit data stream, the key value is 0x08AA and for a 16-bit stream it is 0x10AA. If a bootloader
receives an invalid key value, then the load is aborted. In this case, the entry point for the flash memory
(0x33 7FF6) will be used.
The next eight words are used to initialize register values or otherwise enhance the bootloader by passing
values to it. If a bootloader does not use these values then they are reserved for future use and the
bootloader simply reads the value and then discards it. Only the SPI and I2C and parallel XINTF
bootloaders use these words to initialize registers.
The tenth and eleventh words comprise the 22-bit entry point address. This address is used to initialize
the PC after the boot load is complete. This address is most likely the entry point of the program
downloaded by the bootloader.
The twelfth word in the data stream is the size of the first data block to be transferred. The size of the
block is defined for 8-bit and 16-bit data stream formats as the number of 16-bit words in the block. For
example, to transfer a block of twenty 8-bit data values from an 8-bit data stream, the block size would be
0x000A to indicate ten 16-bit words.
The next two words indicate to the loader the destination address of the block of data. Following the size
and address will be the 16-bit words that form that block of data.