i-boot (internal boot code) is stored in the chip's internal mask ROM. Upon power-on reset, when the system initializes, the program counters of all CPUs (four ARM Cortex A55) are set to point to the entry point address of the i-boot program. Once the power-on reset deasserts, the CPUs start executing from the entry point address of the i-boot program. i-boot first initializes the CPU, sets up all interrupt vectors, initializes the stack, initializes the cache, configures serial ports, sets timers, and more. After initialization, it loads x-boot from external storage devices into SRAM and executes it.
A built-in ROM code.
Load x-boot image from a boot storage device into SRAM and run it.
Support 6 boot storage devices:
SPI-NOR flash, SPI-NAND flash, 8-bit NAND flash, eMMC, SD card
USB2.0 and USB3.0 flash drives
Support secure-boot.
Support encrypted x-boot.
CPU core 0 is the boot-core and is responsible for booting.
CPU core 1, 2 and 3 spin at i-boot until being waked up.
Support warm-boot (wake up from deep-sleep mode).
Features of i-boot
Table of Contents |
---|
Features
i-boot has the following features:
Output log at UART0 at 115,200 bps.
UART0 pins can be turned off by OTP bit.
Read IV_MX[6..3] pins to decide boot-device.
Support 5 boot-devices: SPI-NOR flash, SPI-NAND flash, 8-bit NAND flash, eMMC, SD card, USB flash drive (on either USB2.0 or USB3.0 port)
Support secure-boot.
...
Verify digital signature of x-boot image.
...
Decrypt x-boot image.
Secure-boot is enabled by OTP bit.
Support warm-boot (wake up from deep-sleep mode).
Support peripheral-reset signal (output from G_MX2).
Main flow
Device drivers
Drivers | Features | 8-bit NAND|
Support loading x-boot image from 8-bit NAND flash. |
| |
eMMC device. |
| |
SPI-NAND |
| |
SD card . |
| |
USB2.0 Host |
| |
USB3.0 Host Support loading x-boot image from an USB flash drive in USB3.0 port. |
|
Boot core and
...
other cores
CPU core 0 is the boot core .CPU core 0 and is responsible for booting. It is responsible for all boot processes from i-boot to Linux. CPU core 1, 2 and 3 spin (enter wfe mode) after initialize itself at i-bootinitializing itself until core 0 wake up them.
...
Run Control of CPU Pen (at bootcompat session) :
...