M-Boot ROM Description
548
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
•
Enable NMI
•
Call mbrom_init_device()
6.5.10.2 MBROM_INIT_DEVICE()
•
Call mbrom_master_system_init ()
–
Call mbrom_var_init()
–
If the source of the reset is POR, then clear the POR and the XRSn flag
–
If the source of the reset is XRSn, then clear the XRSn flag
–
If the source of the reset is a FUSE error, then enable watchdog0 and trigger watchdog reset
–
If the source of the reset is HWBIST, then branch to the OTP HWBIST reset handler
•
Bring the control and analog subsystem out of reset
•
If EMU0 =0 and EMU1 = 1, then put the device in wait in reset mode.
•
Configure BOOT MODE pins and read device boot mode using configured BOOT MODE pins (or)
using default boot mode pins
•
If boot mode = boot-to-flash, branch to the flash start address 0x200030 (or) branch to the alternate
flash start address stored in CUSTOMER_OTP_Z2_FLASH_ENTRY_POINT (0x68080C)
•
If boot mode = serial boot (I2C0, SSI0 and UART0) mode, then execute the following functions:
–
ConfigureDevice()
–
PickInterface()
–
Updater()
–
Download application data from any of the serial peripherals (UART0 / SSI0 / I2C0) onto RAM
–
Call mbrom_start_app M_BOOT_ROM_SERIAL_BOOT_MODE_ENTRY_POINT)
•
If boot mode = boot to RAM mode, then call mbrom_start_app(RAM_ENTRY_POINT)
•
If boot mode = boot to EMAC mode, then
–
Download application data from the EMAC peripheral to RAM
–
Call mbrom_start_app(M_BOOT_ROM_EMAC_BOOT_MODE_ENTRY_POINT)
•
If boot mode = boot to CAN mode, then
–
Download application data from the CAN peripheral to RAM
–
Call mbrom_start_app(M_BOOT_ROM_CAN_BOOT_MODE_ENTRY_POINT)
•
If boot mode = boot to parallel mode, then
–
Download application data using parallel GPIOs to RAM
–
Call mbrom_start_app(M_BOOT_ROM_PARALLEL_BOOT_MODE_ENTRY_POINT)
•
If boot mode = boot to SSI0 master mode, then
–
Download application data using the SSI0 master mode to RAM
–
Call mbrom_start_app(M_BOOT_ROM_SSI0_MASTER_BOOT_MODE_ENTRY_POINT)
•
If boot mode = boot to I2C master mode, then
–
Download application data using the I2C master mode to RAM
–
Call mbrom_start_app(M_BOOT_ROM_I2C0_MASTER_BOOT_MODE_ENTRY_POINT)
•
If boot mode is boot_to_OTP
–
Call mbrom_start_app(M_BOOT_ROM_OTP_ENTRY_POINT
•
If boot mode is invalid, then default to the boot-to-flash mode.
6.5.10.3 MBROM_START_APP(ENTRY_POINT_ADDRESS)
•
Reset device configuration set up by M-Boot ROM for boot purposes.
–
Disable clock to all peripherals