M-Boot ROM Description
554
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
All the NMI exceptions in M-Boot ROM are handled as said above by the handler .
mbrom_nmi_interrupt_handler().
The HardFault Exception in M-Boot ROM is handled as said above by the handler .
mbrom_hard_fault_isr_handler().
Spurious NVIC interrupt in M-Boot ROM is handled as said above by the handler IntDefaultHandler().
6.5.15 M-Boot ROM Boot Modes
This section gives details on how M-Boot ROM configures the device for different supported boot modes
and how M-Boot ROM handles data transfer in each boot mode. Serial Boot, EMAC Boot and CAN Boot
mode data transfer protocols between Concerto and the Host device that sends boot data to M-Boot ROM
are compatible to respective bootloaders in Stellaris devices.
The M-Boot ROM Parallel Boot data transfer protocol is compatible to the C2000 Parallel bootloader,
found on Piccolo devices. This allows users to re-use existing LM Flash programmer HOST software
collateral and other C2000 collateral to send boot data to Concerto devices.
6.5.15.1 M-Boot ROM Serial Boot Mode
There are three serial interfaces that can be used for communicating with the bootloader: UART0, SSI0,
and I2C0. All three share a common protocol and differ only in the physical connections and signaling
used to transfer the bytes of the protocol.
When serial boot mode is selected, M-Boot ROM polls each of these interfaces sequentially for the boot
mode commands and boots from the interface on which it receives data.
6.5.15.1.1 UART Interface
The UART0 interface uses below pins to communicate with the bootloader.
UART0_RX
PA0_GPIO0, peripheral MODE -1
UART0_TX
PA1_GPIO1, peripheral MODE -1
The device communicating with the bootloader is responsible for driving the UART0_RX pin on the
Concerto Microcontroller while the Concerto Microcontroller drives the UART0_TX pin.
The serial data format is fixed at 8 data bits, no parity, and one stop bit. An auto-baud feature is used to
determine the baud rate at which data is transmitted. Note that the system clock must be at least 32 times
the baud rate, this determines the maximum baud rate that can be used.
Max Baud Rate that can be used = M3SSCLK frequency/32
In M-Boot ROM M3SSCLK = PLLSYSCLK = MAINOSC Clock
So, max baud rate on this device = M AINOSC/32
When an application calls back to the ROM-based bootloader to start an update over the UART port, the
auto-baud feature is bypassed, along with UART configuration and pin configuration. Therefore, the UART
must be configured and the UART pins switched to their hardware function before calling the bootloader.
6.5.15.1.2 SSI INTERFACE
The SSI0 interface bootloader uses below GPIO pins for SSI communications.
SSI0_CS
PA3_GPIO3, peripheral MODE -1
SSI0_CLK
PA2_GPIO2, peripheral MODE -1
SSI0_TX
PA5_GPIO5, peripheral MODE -1
SSI0_RX
PA4_GPIO4, peripheral MODE -1