Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

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.

Features

i-boot has the following features:

  1. Output log at UART0 at 115,200 bps.

  2. UART0 pins can be turned off by OTP bit.

  3. Read IV_MX[6..3] pins to decide boot-device.

  4. 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)

  5. Support secure-boot.

    1. Verify digital signature of x-boot image.

    2. Decrypt x-boot image.

  6. Secure-boot is enabled by OTP bit.

  7. Support warm-boot (wake up from deep-sleep mode).

  8. Support peripheral-reset signal (output from G_MX2).

Main flow

image-20240125-054441.png

image-20240125-053602.png

image-20240125-054245.png

Device drivers

Drivers

Features

8-bit NAND

  1. First block of 8-bit NAND flash should contain Sunplus Boot Profile Header.

  2. Support reading 1K60 ECC sectors.

  3. x-boot image should be stored in 1K60 ECC sectors.

  4. Set MS control of pins of 8-bit NAND flash.

  5. Read cycle-time is 240 nS.

eMMC

  1. x-boot image should be stored at Boot Area Partition 1.

  2. Set MS control of pins of eMMC device.

  3. Bus clock is 25 MHz.

SPI-NAND

  1. First block of SPI-NAND flash should contain Sunplus Boot Profile Header.

  2. Support reading 1K60 ECC sectors.

  3. x-boot image should be stored in 1K60 ECC sectors.

  4. Support X1 and X2 position of SPI-NAND.

  5. Set MS control-bit of pins of SPI-NAND flash.

  6. Bus clock is 11.2 MHz.

SD card

  1. x-boot image should be stored at offset 0 of the file ISPBOOOT.BIN.

  2. File ISPBOOOT.BIN should be stored root directory of first partition of the SD card.

  3. First partition of the SD card should be FAT32 or FAT16 format.

  4. Bus clock is 5 MHz.

USB2.0 Host

  1. x-boot image should be stored at offset 0 of the file ISPBOOOT.BIN.

  2. File ISPBOOOT.BIN should be stored root directory of first partition of the USB flash drive.

  3. First partition of the USB flash drive should be FAT32 or FAT16 format.

  4. Support high-speed read operation only

USB3.0 Host

  1. x-boot image should be stored at offset 0 of the file ISPBOOOT.BIN.

  2. File ISPBOOOT.BIN should be stored root directory of first partition of the USB flash drive.

  3. First partition of the USB flash drive should be FAT32 or FAT16 format.

  4. Support high-speed read operation only

Boot core and other cores

CPU core 0 is the boot core 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 initializing itself until core 0 wake up them.

image-20240122-034028.png

image-20240122-034050.png

Run Control of CPU Pen (at bootcompat session) :

image-20240122-034202.png

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:

  1. If MX1 = 0, JTAG interface of CA55 of SP7350 will be enabled.

  2. If MX2 = 0, SP7350 will enter test mode. Always set to 1 for normal operation.

Add label

  • No labels