world leader in high performance signal processing
Trace: » features

U-Boot Features

U‑Boot is a boot loader program that is usually stored in flash memory on the embedded system. U‑Boot can load files from a variety of peripherals such as a serial connection, an ethernet network connection, or flash memories. Often times, U-Boot is the program that gets executed at system reset which will automatically load up another application (such as the Linux kernel). U-Boot can even parse many types of filesystems on many types of storage devices.


  • Autoboot - Autoboot will automatically boot the system on power up or reset of the board after the timer counts down. The countdown timer is setup with a default time of 5 seconds. If a key is pressed before this time, the autoboot procedure halts and the user is brought to the U‑Boot command line.
  • OS Loading Commands - A number of OS loading commands are available that can be executed from the U-Boot command line. Commands such as boot, bootelf, bootldr, bootm, bootp, and bootvx are available to load various file types.
  • Upgrade Features - U‑Boot can easily upgrade itself with a new version from within U‑Boot. JTAG or ICE connection are not necessary in this case. See the upgrading document.
  • Networking - U‑Boot has support for the common network commands ping, tftp, and dhcp. See setting_up_a_tftp_server and setting_up_a_dhcp_server for additional information.
  • Environment Variables - Environment variables can be set, saved, and displayed through the U‑Boot command line using the commands set, save, and print.
  • Serial downloading of an Image - Files can be downloaded right through the serial port onto the target system using either the kermit protocol and loadb or the Y-modem protocol and loady. See serial_port_loading_files.
  • Flexible MAC addresses - U‑Boot can read its ethernet address from the board configuration file during build time, from the ethaddr environment variable at runtime, or from a standard location such as flash or external EEPROM.
  • Flash Support - U-Boot can read parallel NOR flash, serial (4-wire SPI-compatible interface) NOR flash, NAND flash, or I2C serial flashes devices.
  • Accessing different memory devices - In addition to standard flash technologies, U-Boot can access external storage devices such as USB drives, IDE hard drives, or Compact Flash devices.
  • Bootable Sources - U-Boot can boot from any device the Blackfin bootrom can directly read. Even if U-Boot cannot be booted directly from a particular source, U-Boot can read from it and boot programs from it.
  • So Much More - There are plenty of other fun features that U-Boot supports. For more information, see the toplevel README file in the U-Boot source code.

Example Commands

The following is an incomplete list of available commands that can be executed from the U‑Boot command line. The supported commands may differ according to your configuration and version. Please refer to compiling. This list can be displayed within U‑Boot by executing the help command.

bfin> help
?       - alias for 'help'
autoscr - run script from memory
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootldr - boot ldr image from memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
cplbinfo- display current CPLB tables
crc32   - checksum calculation
date    - get/set/reset date & time
dcache  - enable or disable data cache
dhcp    - boot image via network using DHCP/TFTP protocol
echo    - echo args to console
eeprom  - EEPROM sub-system
erase   - erase FLASH memory
flinfo  - print FLASH memory information
fsinfo  - print information about filesystems
fsload  - load binary file from a filesystem image
go      - start application at address 'addr'
help    - print online help
icache  - enable or disable instruction cache
icrc32  - checksum calculation
iloop   - infinite loop on address range
imd     - i2c memory display
iminfo  - print header information for application image
imls    - list all images found in flash
imm     - i2c memory modify (auto-incrementing)
imw     - memory write (fill)
imxtract- extract a part of a multi-image
inm     - memory modify (constant address)
iprobe  - probe to discover valid I2C chip addresses
itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing)
mtest   - simple RAM test
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reginfo - print register information
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sleep   - delay execution for some time
strings - display strings
tftpboot- boot image via network using TFTP protocol
version - print monitor version