Skip to content

U-Boot

The u-boot boot method boots the downloaded files using U-Boot commands.

- boot:
    method: u-boot
    commands: nfs
    prompts:
    - '/ #'

commands

Specifies a predefined set of U-Boot commands that LAVA will execute to boot the device. The commands are templates where LAVA substitutes placeholders with actual values, such as:

  • File locations of downloaded kernel, ramdisk, and dtb files
  • Network configuration details (e.g., SERVERIP for TFTP server address)
  • NFS server location and mount paths (when using NFS boot)

See your device configuration for the complete list of supported commands. Common command sets include:

Command Description
ramdisk Boot from kernel and ramdisk loaded via TFTP
nfs Boot kernel via TFTP, mount root filesystem via NFS
nbd Boot using Network Block Device
usb Boot from USB storage
sata Boot from SATA storage

Certain elements of the command line are available for modification using the job context. For example, NXP Layerscape platforms support booting from Alternate Bank, keeping Main Bank safe. If you want to boot the board from Alternate Bank, you can do it by adding context variable uboot_altbank: true. By default, its value is set to false.

context:
  uboot_altbank: true

reset

By default, LAVA will reset the board power when executing this action. You can skip this step by setting reset: false.

This is useful when the device is already booted into U-Boot from a previous boot action (such as fastboot).

The following example demonstrates a workflow where U-Boot is first deployed and booted via fastboot, then the u-boot boot method is used without resetting.

- deploy:
    to: fastboot
    docker:
      image: lavalabteam/adb-fastboot
      local: true
    images:
      boot:
        url: https://example.com/uboot.img
    timeout:
      seconds: 90

- boot:
    method: fastboot
    docker:
      image: lavalabteam/adb-fastboot
      local: true
    timeout:
      seconds: 30

# Boot with u-boot commands without resetting as device is already in U-Boot
- boot:
    method: u-boot
    reset: false
    commands: nfs
    prompts:
    - 'root@board:~#'

See also

Raspberry Pi (U-Boot) device setup