Under construction…
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
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 boot-devices: SPI-NOR flash, SPI-NAND flash, 8-bit NAND flash, eMMC, SD card, USB flash drive
Support secure-boot.
5.1. Verify digital signature of x-boot image.
5.2. Decrypt x-boot image.
Secure-boot is enabled by OTP bit.
Support warm-boot.
Support peripheral-reset signal (output from G_MX2).
Drivers | Features |
8-bit NAND |
|
eMMC |
|
SPI-NAND |
|
SD card |
|
USB2.0 Host |
|
USB3.0 Host |
|
Boot core and others
CPU core 0 is the boot core.
CPU core 0 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-boot.
Run Control of CPU Pen (at bootcompat session) :
CPU_WAIT_INIT_VAL (0xffffffff) // CPU waiting (spinning)
CPU_WAIT_A64_VAL (0xfffffffe) // CPU goes to A64
x (address other than above) // CPU goes to x
Bootstrap pins of SP7350
State of bootstrap pins of SP7350 will be read into bootstrap register (G0.31) at the moment that power-on reset is released. Refer to definition of boot-strap pins of SP7350 below:
Boot-strap pins of SP7350 | Boot devices | |||||||
MX6 | MX5 | MX4 | MX3 | MX2 | MX1 | MX0 | ||
1 | 1 | 1 | 1 | 1 | x | x | eMMC boot | |
1 | 1 | 1 | 0 | 1 | x | x | SPI-NAND boot | |
1 | 1 | 0 | 1 | 1 | x | x | USB boot | |
1 | 1 | 0 | 0 | 1 | x | x | SDC boot | |
1 | 0 | 1 | 1 | 1 | x | x | SPI-NOR | |
1 | 0 | 0 | 0 | 1 | x | x | 8-bit NAND |
Note:
If MX1 = 0, JTAG interface of CA55 of SP7350 will be enabled.
If MX2 = 0, SP7350 will enter test mode. Always set to 1 for normal operation.
Add label