www.ti.com
11.2.3.2 UART Boot Loader Data Sequences
11.2.3.3 Host Utility Data Format
ARM ROM Boot Modes
The serial boot loader data sequences consist of handshake messages, UBL header, and the UBL
payload itself. The messages use a fixed 8-byte ASCII string including a null string terminator. Short
messages have leading spaces besides the null.
lists the values for the handshake sequences and header for UBL.
Table 11-6. UART Data Sequences
Sequence
Sequence
Usage
BOOTME
^BOOTME/0
Notify host utility serial boot mode begins. This is an 8-byte ASCII value. ^ is
a space.
ACK
^^^^ACK/0
For the host utility to respond within the time out period by sending a 28-byte
header to prepare for reception of user boot loader. The check sum is a
UBL 8-byte check sum
32-bit check sum. Note that the RBL jumps the program counter to the start
UBL 4-byte count
address (i.e. UBL entry point) after the downloading process.
UBL 4-byte ARM physical
start address
TBD 4-byte zeros
BEGIN
^^BEGIN/0
RBL to signal host utility to begin transmission of user boot loader
DONE
^^^DONE/0
RBL to signal host utility that data received is OK and the transfer can be
terminated
BAD ADDR
BADADDR/0
Bad start address received
BAD COUNT
^BADCNT/0
Bad count received
CORRUPT
CORRUPT/0
RBL to signal host utility that there is an error with the transmission. The host
utility asks you to reset the board.
UBL
Variable
The format for UBL is the same as NAND boot.
The CRC 32 check sum value is calculated for the UBL data and passed by the host serial utility. The
polynomial used for CRC32 is:
X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0.
The RBL expects the data sent from the host utility to be in a perticular format. This section describes the
data format for the ACK, 1KB CRC32 table, and UBL sequences.
All data sent from the host to the RBL must be in ASCII format. The host utility must tranfer the ACK
sequence as shown in
, CRC32 table as shown in
, and UBL in the same format as
the CRC32 table (
). The check sum8 is calculated as shown in
. The check sum8 is
calcuated after each transfer completes. Also note that since eight bytes are necessary to do the check
sum8 calculation, the host utility must be sure to send a multiple of eight bytes of total data.
Example 11-1. Host Serial Utility Transmission of Characters
For a given UBL data, let the check sum (CRC32) value calculated be 0x ffaa 10a1. Then, instead of
the host utility transmitting “ascii (0xff) ascii (0xaa) ascii (0x10) ascii (a1)” , it will transmit “ffaa 10a1”.
These 8 characters (bytes) are appropriately interpreted by the RBL.
You can generate the user boot loader using any ARM code generation tools, but the final format is
expected in binary memory image format with no headers, etc.
SPRUFB3 – September 2007
Boot Modes
169