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.,
SERVERIPfor 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:~#'