wiki:catalina/boot

Version 1 (modified by Tim Harvey, 2 days ago) ( diff )

initial page

Catalina Boot Firmware

The 'Boot Firmware' for Catalina is defined as the combination of the firmware stages through up to and including the bootloader. This can be broken down into the following stages:

  • Boot ROM (internal on i.MX95 SoC): fetch first level boot firmware from boot device (ie MMC) into OCRAM
  • OEI DDR - This runs on the Cortex M33 CPU and configures DRAM
  • OEI TCM - This runs on the Cortex M33 CPU and configures Tightly Coupled Memory
  • SM - The System Manager runs on the M33 CPU and stays resident as an SCMI Server manfing power control, clocks and pinmux
  • SPL (Secondary Program Loader) - A55 CPU (U-Boot)
  • ATF (ARM Trusted Firmware) - A55 CPU
  • Bootloader (U-Boot) - A55 CPU

Gateworks provides pre-built Boot Firmware ready to flash onto boot devices as well as source for building and/or modifying the boot firmware yourself.

i.MX95 BOOT ROM

The BOOT ROM is firmware baked into the SoC and is in charge of loading code from the 'boot device' into OCRAM (On-Chip RAM), verifying signatures (if using trusted boot) and executing it.

The BOOT ROM fetches code from an offset depending on the boot device.

Boot Firmware Image

The boot firmware image contains all of the components of the 'Boot Firmware':

  • OEI DDR
  • OEI TCM
  • SM
  • ARM Trusted Firmware (ATF)
  • SPL
  • U-Boot
  • U-Boot environment

eMMC boot partition

For eMMC boot devices, the boot firmware is typically put on the eMMC boot0 hardware partition to keep it separate from the eMMC user partition used for the OS which keeps your boot firmware isolated from your OS (filesystems as well as disk partition table)

The U-Boot environment data sits at an offset of 0x3e0000 (4M - 128K) so that it fit within the minimal size of the 4MB boot hardware partitions.

U-Boot Bootloader

Read more on the dedicated bootloader page here: Catalina U-Boot Bootloader

Note: See TracWiki for help on using the wiki.