C-Boot ROM Description
642
SPRUHE8E – October 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
Example 6-4. Data Stream Structure 8-bit
AA 08
; 0x08AA 8-bit key value
00 00 00 00
; 8 reserved words
00 00 00 00
00 00 00 00
00 00 00 00
3F 00 00 80
; 0x003F8000 EntryAddr, starting point after boot load completes
05 00
; 0x0005 - First block consists of 5 16-bit words
3F 00 10 90
; 0x003F9010 - First block will be loaded starting at 0x3F9010
01 00
; Data loaded = 0x0001 0x0002 0x0003 0x0004 0x0005
02 00
03 00
04 00
05 00
02 00
; 0x0002 - 2nd block consists of 2 16-bit words
3F 00 00 80
; 0x003F8000 - 2nd block will be loaded starting at 0x3F8000
00 77
; Data loaded = 0x7700 0x7625
25 76
00 00
; 0x0000 - Size of 0 indicates end of data stream
After load has completed the following memory values will have been initialized as follows:
Location
Value
0x3F9010
0x0001
0x3F9011
0x0002
0x3F9012
0x0003
0x3F9013
0x0004
0x3F9014
0x0005
0x3F8000
0x7700
0x3F8001
0x7625
PC Begins execution at 0x3F8000
6.6.15.2 Basic Data Transfer Procedure
illustrates the basic process a bootloader uses to determine whether 8-bit or 16-bit data
stream has been selected, transfer that data, and start program execution. This process occurs after the
bootloader finds the valid boot mode selected by the state of TRST and GPIO pins.
The loader first compares the first value sent by the host against the 16-bit key value of 0x10AA. If the
value fetched does not match then the loader will read a second value. This value will be combined with
the first value to form a word. This will then be checked against the 8-bit key value of 0x08AA. If the
loader finds that the header does not match either the 8-bit or 16-bit key value, or if the value is not valid
for the given boot mode then the load will abort.