C-Boot ROM Description
594
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
Table 6-25. C-Boot ROM Exceptions Handling (continued)
Exception Event Source
Description
C-Boot ROM action
C-Boot ROM state after
exception
C28FLUNCERR
C28 Flash Uncorrectable Error
NMI
cbrom_handle_nmi :-> Clear
NMI Flags, Save error status in
CTOMBOOTSTS register,
send IPC message to master
and wait in while(1) loop for
master to handle the error state
Wait in While(1) loop, for reset
frommaster.
ACIBERR
CIB Error NMI Flag
cbrom_handle_nmi :-> Clear
NMI Flags, Save error status in
CTOMBOOTSTS register bits
and wait in while(1) loop for
master to handle the error
state.
NMI is generated to M3 also,
so no need to send an IPC
message.
Wait in While(1) loop, for reset
from master.
ILLEGAL
ITRAP exception
cbrom_itrap_isr :-> IPC
Message is sent to master and
iTrap address is written to
CTOMIPCADDR.
CTOMBOOTSTS register is set
to reflect the error status and
wait in while(1) loop for master
to handle the error state.
Wait in While(1) loop, for reset
frommaster.
PIE VECTOR ADDRESS
MISMATCH
PIE vector fetch mismatch
handler at 0x3FFFBE
Update CTOMBOOTSTS to
reflect the error, and the ROM
handler @0x3FFFBE will send
an IPC message to master and
wait in while(1) loop for master
to handle the error state.
Wait in While(1) loop, for reset
from master.
Spurious PIE interrupts
Any un-supported PIE interrupt
occurs
Send an IPC message to
master, with the spurious
interrupt no. ACK the spurious
interrupt and continue doing
whatever C-Boot ROM was
doing before
Continue to boot
6.6.14 C-Boot ROM Bootloader Functionality
This section explains each of the supported peripheral boot mode(s) on C-Boot ROM, in detail.
On Concerto, the data transfer protocols or stream structures that allow boot data transfer between C-
Boot ROM and Host device, are compatible to the respective bootloaders on Piccolo class of C2000
devices. This allows user to re-use the same tools used to send boot data to Piccolo(s) also to send boot
data to C-Boot ROM on Concerto devices.
6.6.14.1
C-Boot Data Stream Structure
The following two tables and associated examples show the structure of the data stream incoming 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.