M-Boot ROM Description
590
SPRUHE8E – October 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
•
RAM Initialization
–
Zero-Initialize all master subsystem RAM(s) if the reset cause if POR or XRS.
–
If reset cause is not POR and not XRS, then Zero-Initialize Boot ROM stack memory (which is part
of C2 RAM – refer to
).
•
Call mbrom_init_device().
6.5.10.2 MBROM_INIT_DEVICE()
•
mbrom_master_system_init ()
–
M-Boot ROM run-time environment initialization
–
Clocks Initialization:
•
If reset cause is POR or XRS then configure SYSDIVSEL and M3SSDIVSEL to divide by ‘1’. So
that PLLSYSCLK = OSCCLK and M3SSCLK = PLLSYSCLK.
•
mbrom_control_system_init()
–
Brings the control subsystem out of reset.
•
mbrom_analog_system_init()
–
Brings ACIB and Analog subsystem out of reset.
•
M-Boot ROM WIR Mode Check – Refer to WIR Mode section in the
System Control and Interrupts
chapter.
•
mbrom_get_bootmode()
–
Reads the boot mode GPIO to identify boot mode selected, as per .
–
If boot mode is boot_to_flash.
•
Call mbrom_start_app(M_BOOT_ROM_Z1_FLASH_ENTRY_POINT or user programmed entry
point).
–
If boot mode is boot_from_serial
•
ConfigureDevice()
•
PickInterface()
•
Updater()
•
Download application data from any of the available serial communication peripherals
(UART0/SSI0/I2C0) on to RAM.
•
Call mbrom_start_app(M_BOOT_ROM_SERIAL_BOOT_MODE_ENTRY_POINT)
–
If boot mode is boot_to_RAM
•
Call mbrom_start_app(M_BOOT_ROM_RAM_ENTRY_POINT)
–
If boot mode is boot_from_EMAC
•
Download application data from EMAC peripheral to RAM.
•
Call mbrom_start_app(M_BOOT_ROM_RAM_ENTRY_POINT).
–
If boot mode is boot_from_CAN
•
Download application data from CAN peripheral to RAM.
•
Call mbrom_start_app(M_BOOT_ROM_CAN_BOOT_MODE_ENTRY_POINT).
–
If boot mode is boot_from_parallel_IOs
•
Download application data from PARALLEL IOs to RAM.
•
Call mbrom_start_app(M_BOOT_ROM_PARALLEL_BOOT_MODE_ENTRY_POINT).
–
If boot mode is boot_from_ssi0_master_mode
•
Download application data from SSI Slave connected to SSI0.
•
Call mbrom_start_app(M_BOOT_FROM_SSI0_MASTER_MODE_ENTRY_POINT).
–
If boot mode is boot_from_i2c0_master_mode
•
Download application data from I2C Slave connected to I2C0, the slave is addressed at 0x52.