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 10 Next »

x-boot (external boot code) is a first-stage boot-loader placed in eMMC, NAND flash, or SD cards, loaded into system SRAM by i-boot. As it runs on SRAM, its size (including code, data, and stack) must not exceed the system SRAM's capacity. The primary task of x-boot is to initialize the DRAM controller and PHY, perform calibration on DRAM PHY and signals, and once calibrated, the DRAM is ready for use. x-boot then switches the CPU from 32-bit mode to 64-bit mode and loads TF-A and U-Boot from external storage into DRAM, executing TF-A.

x-boot (external boot code) is the first-stage boot loader. It is loaded into internal SRAM and run by internal ROM code of SP7350. Note that before X-Boot initializes and trains DRAM controller, DRAM is not available.

x-boot initializes and trains the SDRAM controller, preparing the DRAM for use. Subsequently, it loads the TF-A (Trusted Firmware-A) and OP-TEE (Open Portable Trusted Execution Environment) images from the fip (firmware image package) partition within ISPBOOOT.BIN, storing them in DRAM. Additionally, the U-Boot image is extracted from offset 0x30000 of ISPBOOOT.BIN and stored in DRAM. Upon successful checksum verification for all images, the system proceeds to execute TF-A, followed by OP-TEE, and finally U-Boot.

x-boot is loaded and run at SRAM before DRAM is available.

x-boot is responsible for doing DDR SDRAM training.

x-boot is responsible for loading U-Boot image.

x-boot is responsible for loading and running TF-A and OP-TEE OS.

General features

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

  2. Support accessing OTP using Sunplus OTPTool via UART0.

  3. Support loading firmware of LPDDR4/DDR4/DDR3 from boot devices.

  4. Support 1D and 2D training of LPDDR4, DDR4 and DDR3 SDRAM.

  5. Support loading image of TF-A (BL31), OP-TEE (BL32) and U-Boot (BL33) from boot devices.

  6. Support secure-boot:

    1. Verify digital signature of fip (TF-A and OP-TEE) and U-Boot images.

    2. Decrypt fip image.

  7. Support warm-boot.

  8. Switch CA55 to 64-bit mode and jump to run TF-A.

image-20240122-104526.png

Drivers locations and features

Drivers

Folders

Features

8-bit NAND

nand/

  1. Support loading U-Boot image from 8-bit NAND flash.

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

  3. Support reading 1K60 ECC sectors.

  4. U-Boot image should be stored in 1K60 sectors.

ADC

adc/

eMMC

sdmmc/

  1. Support loading U-Boot image from eMMC device.

  2. U-Boot image should be stored at User Data Area.

  3. eMMC should contain GUID Partition Table (GPT).

I2C driver

i2c/

  1. Support I2C master mode.

  2. Support 100kHz and 400kHz speeds.

NVMEN (OTP)

otp/

  1. Support read and write OTP.

SD card

sdmmc/

  1. Support loading U-Boot image from an SD card.

  2. U-Boot image should be stored at root directory of first partition of the SD card.

  3. File-name of the U-Boot image should be u-boot.img.

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

SPI-NAND

nand/

  1. Support loading U-Boot image from SPI-NAND flash.

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

  3. Support reading 1K60 ECC sectors.

  4. U-Boot image should be stored in 1K60 ECC sectors.

  5. Support SPI-NAND flash mounted in X1 or X2 position.

USB2.0 Host

usb/

  1. Support loading U-Boot image from an USB flash drive in USB2.0 port.

  2. U-Boot image should be stored at root directory of first partition of the USB flash drive.

  3. File-name of the U-Boot image should be u-boot.img.

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

  5. Support high-speed read operation only

USB3.0 Host

usb/

  1. Support loading U-Boot image from an USB flash drive in USB3.0 port.

  2. U-Boot image should be stored at root directory of first partition of the USB flash drive.

  3. File-name of the U-Boot image should be u-boot.img.

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

  5. Support high-speed read operation only

Other files

Type

Folders

Files

machine

arch/arm/sp7350/

a64up/

aboot.S

boot.ld

cache.c

cpu/

include/

page_table/

start.S

default config files

configs/

sp7350_emmc_ev_defconfig

sp7350_sdcard_ev_defconfig

All defconfig files are placed at configs/. Normally, the file name proceed with sp7350- and followed by defconfig, like sp7350_emmc_ev_defconfig, sp7350_sdcard_ev_defconfig, and etc.

  • No labels