Versions Compared

Key

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

U-Boot , short for (Universal Boot Loader-loader), developed by Denx Software Engineering, is an open-source bootloader commonly used in embedded systems and development boards. It serves as the initial program that loads the operating system, notably the Linux kernel, into memory DRAM and prepares the system for execution. U-Boot is highly configurable and supports a wide range of architectures and hardware platforms. Moreover, it is licensed as free software under the GNU General Public License, fostering collaborative development and widespread adoption.

Refer to:

https://www.denx.de/project/u-boot/

The U-Boot Documentation

Contents

Table of Contents
stylenone

Features of U-Boot

Key features and characteristics of U-Boot include:

  1. Versatility: U-Boot is designed to be versatile and can be adapted to various architectures, including ARM, MIPS, x86, PowerPC, and more. This adaptability makes it a popular choice for a wide range of embedded systems and development boards.

  2. Open Source: U-Boot is released under the GNU General Public License (GPL), providing users with the freedom to view, modify, and distribute the source code. This open-source nature encourages collaboration and allows developers to tailor the bootloader to specific requirements.

  3. Boot Sequence Control: U-Boot handles the initialization and configuration of the hardware during the boot process. It allows users to interact with the bootloader through a command-line interface, enabling them to control the boot sequence, load kernel images, and set various parameters.

  4. Support for Various Storage Devices: U-Boot supports loading firmware and kernel images from a variety of storage devices, including NAND and NOR flash memory, SD cards, USB storage, TFTP (Trivial File Transfer Protocol) servers, and more.

  5. Environment Variables: U-Boot allows the configuration of environment variables that store important settings, such as boot parameters and memory addresses. These variables provide flexibility and ease of customization for different hardware setups.

  6. Network Booting: U-Boot supports network booting, allowing systems to load kernel images and other files over the network using protocols like TFTP or NFS (Network File System). This is particularly useful in embedded systems where storage may be limited or unnecessary.

  7. Development and Debugging Tools: U-Boot includes tools for debugging and development, such as memory and register inspection, script execution, and support for common debugging interfaces like JTAG (Joint Test Action Group).

  8. Community Support: U-Boot has an active community of developers and users. The community provides documentation, forums, and support, making it easier for users to troubleshoot issues, share knowledge, and stay updated on the latest developments.

U-Boot is widely used in embedded systems, development boards, and various open-source projects due to its flexibility, open-source nature, and broad hardware support. It plays a crucial role in the boot process of many embedded devices, enabling the loading and execution of operating systems on diverse hardware platforms.

...

  1. .

Features of U-Boot of SP7350

U-Boot serves as the second-stage boot-loader in this system. U-Boot is widely used in embedded systems, supporting various computer architectures. It is free software under the GNU General Public License. SP7350 platform. After initializing itself, U-Boot then loads Linux kernel image from external storage devices into DRAM and executes it. As it runs in DRAM, its size is no longer limited by SRAM of SP7350 (only limited by the system's DRAM size), ranging from hundreds of kilobytes to several megabytes.

Apart from being a bootloader for loading the Linux kernel, U-Boot supports access to storage devices like read images from external storage device such as USB flash drives , or SD cards , hard disks, reads and burns and write images into NOR flash, NAND flash, and eMMC , and supports file systems such as FAT, ext2, ext3, ext4, nfs, ubifs. It also supports network protocols and functions like Ethernet, DHCP, BOOTP, TFTP, NFS, among many others. After initializing itself and external devices, U-Boot then loads Linux from external storage into DRAM and executes it.

...

devices in system. key features of U-Boot of SP7350 are listed below:

  1. Support console at UART0 (@ 115,200 bps).

  2. Support booting Linux from SPI-NOR flash.Support booting Linux from , SPI-NAND and flash, 8-bit NAND flashes.Support booting Linux from flash or eMMC device.

  3. Support secure-boot (check hash value of Linux image).Support in-system program SPI-NOR flash.Support in-system program , SPI-NAND and flash, 8-bit NAND flashes.Support in-system program flash or eMMC device.

  4. Support read ISP images (stored in ISPBOOOT.BIN) from USB flash drives or SD cards for in-system program (ISP).

  5. Support secure-boot (check hash value of Linux image).

  6. Support fastboot function for eMMC device.

  7. Support fastboot for SPI-NAND and 8-bit NAND flashes (only for updating Linux kernel or rootfs partition).

Drivers

...

and features

The source files of U-Boot are conveniently located within the "boot/uboot/" directory under the project's top directory. For the SP7350 platform, a wide array of device drivers is supported. These drivers are within the "drivers" directory under the U-Boot directory. Below is a reference table detailing the drivers along with their corresponding feature descriptions:

Drivers

Folders or files

 Features

8-bit NAND

drivers/mtd/nand/raw/sp_paranand/

  1. Support U-Boot mtd framework.

  2. Support read and write standard 2k/4k/8k ECC sectors.

  3. Support read and write 1K60 ECC sectors.

  4. Support block and chip erase.

Clock

drivers/clk/sunplus/

  1. Support clock functions for all devices used in U-Boot.

eMMC

drivers/mmc/sp_mmc*.*

  1. Support U-Boot MMC framework.

  2. Support read and write User Data Area.

  3. Support read and write RPMB partition.

  4. Support DMA mode.

Giga Ethernet

drivers/net/designware.c

  1. Support 802.3 packets transactions.

  2. Support 100M and 1000M speeds.

I2C

drivers/i2c/sp_i2c_mas.c

  1. Support I2C master mode access.

  2. Support 100kHz and 400kHz speeds.

NVNEM (OTP)

drivers/soc/sunplus/

  1. Support write and read OTP.

Reset

drivers/reset/reset-sunplus.c

  1. Support reset functions for all devices used in U-Boot.

Pinctrl

drivers/pinctrl/sunplus/

  1. Support pin-mux of all devices.

  2. Support all GPIO pins.

SD card

drivers/mmc/sp_sd*.*

  1. Support U-Boot MMC framework.

  2. Support read and write operations.

  3. Support DMA mode.

SPI

drivers/spi/designware_spi.c

  1. Support SPI master mode access.

  2. Support set clock frequency.

  3. Support mode 0, 1, 2 and 3.

SPI-NAND

drivers/mtd/nand/raw/sp_*_q645.*

  1. Support U-Boot mtd framework.

  2. Support read and write standard 2k ECC sectors.

  3. Support read and write 1K60 ECC sectors..

  4. Support block and chip erase.

  5. Support 4-bit operations.

  6. Support set clock frequency.

SPI-NOR

drivers/spi/sp_spi_nor.c

  1. Support U-Boot mtd framework.

  2. Support read and write operations.

  3. Support block and chip erase.

  4. Support set clock frequency.

UART

drivers/serial/serial_sunplus.c

  1. Support U-Boot console (@ 115,200).

USB2.0 EHCI

drivers/usb/host/ehci-sunplus.c

  1. Support high-speed read and write operations.

USB2.0 OHCI

 

  1. Support full-speed read and write operations.

USB3.0 DRD driver

drivers/usb/host/xhci-spdwc3.c
drivers/phy/phy-sunplus-dwc3.c

  1. Support super-speed, high-speed and full-speed access.

  2. Support host and device mode.

  3. Support USB type C receptacle.

Video (MIPI/DSI-TX)

drivers/video/sunplus/sp7350/disp/

  1. Support U-Boot video console.

Other files

The following table lists platform-related files or folders

Type

Folders

Files

 

board

board/sunplus/sp7350/

 

machine

arch/arm/mach-pentagram/

scripts

include/configs/

pentagram_common_sp7350_c.h

defconfig files

configs/

sp7350_*_defconfig

...