Skip to content

UEFI

The uefi boot method boots the DUT using commands sent to the UEFI shell.

To boot by selecting entries in the UEFI menu instead, see UEFI Menu.

- boot:
    method: uefi
    commands: nfs
    prompts:
    - 'root@genericarmv8:~#'

LAVA resets the device and, if needed, selects the UEFI shell in the UEFI menu. LAVA then interrupts the shell startup when the shell_interrupt_prompt is printed and sends the commands one by one, waiting for the bootloader_prompt after each command.

commands

Either the name of a set of commands defined in the device-type template, or a list of commands.

Placeholders like {KERNEL} or {DTB} are replaced by LAVA. See placeholder substitution.

shell_menu

Optional. The name of the menu entries, defined in the device-type template, to select in order to drop to the UEFI shell. Overrides the shell_menu from the device configuration.

Newer firmware usually starts the shell without any menu interaction. Set shell_menu to an empty string to skip the menu:

- boot:
    method: uefi
    commands: nfs
    shell_menu: ''
    prompts:
    - 'root@genericarmv8:~#'

auto_login

See auto_login.

prompts

See prompts.

transfer_overlay

See transfer_overlay.

Device configuration

The device-type template must define the uefi boot method with the following parameters:

Parameter Description
bootloader_prompt Required. The UEFI shell prompt, for example Shell>
shell_interrupt_prompt Required. The message printed before starting the shell
shell_interrupt_string Required. The string sent to interrupt the shell startup
shell_menu Optional. The name of the menu entries to select to drop to the shell

When shell_menu is used, the menu parameters (interrupt_prompt, interrupt_string, menu_prompt, menu_boot_message, item_markup, item_class, separator, label_class...) are the same as for UEFI Menu.

actions:
  boot:
    methods:
      uefi:
        parameters:
          bootloader_prompt: 'Shell>'
          shell_interrupt_prompt: 'any other key to continue'
          shell_interrupt_string: ' '
          shell_menu: shell
          interrupt_prompt: The default boot selection will start in
          interrupt_string: ' '
          menu_boot_message: 'UEFI Interactive Shell'
          menu_prompt: 'Start:'
          item_markup:
          - '['
          - ']'
          item_class: '0-9'
          separator: ' '
          line_separator: dos
          label_class: 'a-zA-Z0-9\s\:'
        shell:
        - select:
            items:
            - 'Shell'
        nfs:
          commands:
          - norkern console=ttyAMA0,115200n8 root=/dev/nfs rw ...

See vexpress.jinja2 for an example.