Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Subsequently, x-boot loads the images of TF-A (BL31), OP-TEE (BL32), and U-Boot (BL33) from a storage device into DRAM. The CPU (core 0) then switches itself from 32-bit mode to 64-bit by triggering a software reset. It proceeds to awaken other cores (core 1, 2, 3) and transitions them to 64-bit mode. Finally, all cores execute TF-A.

Table of Contents

Table of Contents

Features

...

The flow chart below illustrates the process from i-boot's reset vector to the jump to TF-A for all cores

...

Source

...

Files

The source files for x-boot are located in the "boot/xobot/" directory under the project's top folder. The entry point for x-boot is the label "_start" in the assembly file "arch/arm/sp7350/start.S". Notably, "_start" is situated at an offset of 32 bytes within the x-boot module, with the initial 32-byte space reserved for a header. The "_start" subroutine initializes the C execution environment and subsequently jumps to the C main function, the "xboot_main()" subroutine in the "xboot.c" file. The "xboot.c" file serves as the top-level control file for x-boot, governing the entire flow of operations.

...

Files or folders

Descriptions

adc/

Contains subroutines for ADC.

arch/arm/sp7350/

Houses CPU-relevant codes, including:

  • a64up module

  • CPU and cache-related codes

  • MMU table page creating codes

  • Linker script file: boot.ld

  • Start-up file: start.S

bin/

Output folder

common/

Contains common code, such as verifying images.

configs/

Contains defconfig files for boards.

cpio/

Contains CPIO codes.

draminit/

Contains DRAM-related codes.

fat/

Contains codes for FAT file-system operations.

i2c/

Contains subroutines for I2C interface.

include/

Contains many constant definitions used in x-boot.

lib/

Contains images CRC verification codes.

nand/

Contains SPI-NAND and 8-bit NAND drivers.

otp/

Contains subroutines for accessing OTP.

romshare/

Contains the entry table for accessing secure functions in i-boot.

sdmmc/

Contains SD card and eMMC drivers.

tools/

Contains some utilities used by x-boot.

usb/

Contains USB2.0 and USB3.0 drivers.

warmboot/

Contains a concise version of x-boot for running during warm-boot.

Kconfig

Menu config file of x-boot.

Makefile

Make file of x-boot

xboot.c

Main C file of x-boot.

Driver

...

Specifications and

...

Features

x-boot incorporates a range of device drivers, each offering specific features to facilitate various operations. The following table outlines the detailed specifications and features of these drivers.

...

During system boot, i-boot reads boot-related information from the boot switch and the OTP (One-Time Programmable) memory within the chip. This information is then stored in the C structure g_bootinfo. x-boot directly utilizes the data in the g_bootinfo structure to determine the boot mode and process.

...

x-boot Log and

...

Explanation

Line 1: Banner (version) of x-boot

...