SPRUIU1C July 2020 – February 2024 DRA821U , DRA821U-Q1
ROM bootloader (or ROM Code) is a software that resides in a on-chip read-only memory (ROM) to assist the customer in transferring and executing their application code. The device has two ROM codes operating in tandem – the MCU ROM code, and the DMSC ROM code.
In order to accommodate various system scenarios, the ROM Code supports several boot modes. These boot modes can be broadly classified as:
During a host boot, the device is configured to receive code from a host via the selected interface. Either the host writes the application code directly into internal memory or the ROM Code receives the application code on the selected interface and stores it in internal memory.
During a memory boot, the device transfers code from non-volatile memory to internal memory for execution.
In all boot modes, the entire boot operation can be partitioned into two sections:
During initialization, the ROM Code configures the device resources (PLLs, peripherals, pins) as needed to support the boot process. The resources used depend on the boot mode requirements.
During the boot process the boot image can be loaded into device memory and executed, or executed in place, depending on the boot peripheral. DMSC will perform code verification and allow, or forbid, the image execution.
Main configuration source for boot after power-up are the BOOTMODE pins sampled automatically after reset release and stored in device status registers. At ROM Code startup, these pin values are read from the registers to create the boot peripheral list and the boot configuration tables used later to initialize and startup the PLLs and boot peripherals.
The ROM Code also provides a multi-stage boot mechanism.