Using the ARM Boot Loader

This subsection explains how to use the hex conversion utility with the boot loader for C28x devices with ARM cores. The boot loader accepts the formats listed in Table 12-3.

Table 12-3 Boot Table Source Formats

Format Option
Parallel boot GP I/O 8 bit --gpio8
Parallel boot GP I/O 16 bit --gpio16
8-bit SPI boot --spi8

The ARM on C28x devices with ARM cores can boot through the SPI-A 8-bit, GP I/O 8-bit, or GP I/I 16-bit interface. The format of the boot table is shown in Table 12-4.

Table 12-4 Boot Table Format

Description Bytes Content
Boot table header 1-2 Key value (0x10AA or 0x08AA)
3-18 Register initialization value or reserved for future use
19-22 Entry point
Block header 23-24 Block size in number of bytes (nl)
25-28 Destination address of the block
Block data 29-30 Raw data for the block (nl bytes)
Block header 31 + nl Block size in number of bytes
. Destination address of the block
Block data . Raw data for the block
Additional block headers and data, as required ... Content as appropriate
Block header with size 0 0x0000; indicates the end of the boot table.

The ARM on C28x devices with ARM cores can boot through either the serial 8-bit or parallel interface with either 8- or 16-bit data. The format is the same for any combination: the boot table consists of a field containing the destination address, a field containing the length, and a block containing the data. You can boot only one section. If you are booting from an 8-bit channel, 8-bit bytes are stored in the table with MSBs first; the hex conversion utility automatically builds the table in the correct format. Use the following options to specify the boot table source:

The command file in Example 3 allows you to boot the .text and .cinit sections of test.out from a 16-bit-wide EPROM at location 0x3FFC00. The map file test.map is also generated.