juno-uefi
UEFI
Arm 64-bit (AArch64)
Arm Juno Development Platform
Inheritance
- juno-uefi
- base
Key facts
- Vendor
- Arm
- Bootloader family
- UEFI
- Architecture
- Arm 64-bit (AArch64) (guessed from the name)
- Console device
ttyS0- Baud rate
115200- Connections
- serial
Overridable variables (5)
Variables set with a default value in this template. They can be overridden from the device dictionary or, for some of them, from the job context.
| Variable | Default |
|---|---|
| console_device | 'ttyS0' |
| baud_rate | '115200' |
| base_kernel_args | '' |
| tftp_bootargs | 'console=' + console_device + ',' + baud_rate + ' earlyprintk=uart8250-32bit,0x1c020000 debug root=/dev/nfs rw nfsroot={SERVER_IP}:{NFSROOTFS},tcp,hard {{ base_ip_args }}' |
| nor_flash_bootargs | 'dtb=board.dtb initrd=ramdisk.img console=' + console_device + ',' + baud_rate + ' androidboot.hardware=juno systemd.log_target=null rootwait root=/dev/sda1' |
Fixed settings (1)
| Variable | Value |
|---|---|
| hard_reset_command | power_off_command + '; sleep 10; ' + power_on_command |
{# device_type: juno #}
{% extends 'base.jinja2' %}
{% set console_device = console_device | default('ttyS0') %}
{% set baud_rate = baud_rate | default('115200') %}
{% set base_kernel_args = base_kernel_args | default('') %}
{% set tftp_bootargs = tftp_bootargs | default('console=' + console_device + ',' + baud_rate + ' earlyprintk=uart8250-32bit,0x1c020000 debug root=/dev/nfs rw nfsroot={SERVER_IP}:{NFSROOTFS},tcp,hard {{ base_ip_args }}') %}
{% set nor_flash_bootargs = nor_flash_bootargs | default('dtb=board.dtb initrd=ramdisk.img console=' + console_device + ',' + baud_rate + ' androidboot.hardware=juno systemd.log_target=null rootwait root=/dev/sda1') %}
{% if not hard_reset_command %}
{% if power_off_command and power_on_command %}
{% set hard_reset_command = power_off_command + '; sleep 10; ' + power_on_command %}
{% endif %}
{% endif %}
{% block body %}
character_delays:
boot: 50
actions:
deploy:
# list of deployment methods which this device supports
methods:
tftp:
boot:
# list of connection methods which this device supports
connections:
serial:
# list of boot methods which this device supports.
methods:
uefi-menu:
parameters:
character_delay: 300
interrupt_prompt: The default boot selection will start in
interrupt_string: ' '
item_markup:
- "["
- "]"
item_class: '0-9'
separator: ' '
label_class: 'a-zA-Z0-9\\s\\:'
bootloader_prompt: 'Start:'
boot_message: "Loaded: LinuxImage"
# interrupt: # character needed to interrupt u-boot, single whitespace by default
# method specific stanza
nor_flash:
- select:
items:
- 'Boot Manager'
wait: "Choice:"
- select:
items:
- 'Add Boot Device Entry'
wait: "Select the Boot Device:"
- select:
items:
- 'NOR Flash'
wait: "File path of the EFI Application or the kernel:"
- select:
enter: norkern
wait: "Is an EFI Application?"
- select:
enter: n
wait: "Has FDT support?"
- select:
enter: y
wait: "Add an initrd:"
- select:
enter: n
wait: 'Arguments to pass to the binary:'
- select:
enter: "{{ nor_flash_bootargs }}"
wait: 'Description for this new Entry:'
- select:
enter: '{TEST_MENU_NAME}'
wait: "Choice:"
- select:
items:
- 'Update FDT path'
wait: "Select the Boot Device:"
- select:
items:
- 'TFTP on MAC Address: {{ mac_address }}'
wait: "File path of the FDT blob:"
- select:
enter: 'board.dtb'
wait: "Choice:"
- select:
items:
- 'Return to main menu'
wait: "Start:"
- select:
items:
- '{TEST_MENU_NAME}'
tftp:
- select:
items:
- 'Boot Manager'
wait: "Choice:"
- select:
items:
- 'Add Boot Device Entry'
wait: "Select the Boot Device:"
- select:
items:
- 'TFTP on MAC Address: {{ mac_address }}'
wait: "Get the IP address from DHCP:"
- select:
enter: y
wait: "Get the TFTP server IP address:"
- select:
enter: '{SERVER_IP}'
wait: "File path of the EFI Application or the kernel :"
- select:
enter: '{KERNEL}'
wait: "Is an EFI Application?"
- select:
enter: n
wait: "Has FDT support?"
- select:
enter: y
wait: "Add an initrd:"
- select:
enter: n
wait: 'Arguments to pass to the binary:'
- select:
enter: "{{ tftp_bootargs }}"
wait: 'Description for this new Entry:'
- select:
enter: '{TEST_MENU_NAME}'
wait: "Choice:"
- select:
items:
- 'Update FDT path'
wait: "Select the Boot Device:"
- select:
items:
- 'TFTP on MAC Address: {{ mac_address }}'
wait: "Get the IP address from DHCP:"
- select:
enter: y
wait: "Get the TFTP server IP address:"
- select:
enter: '{SERVER_IP}'
wait: "File path of the FDT blob :"
- select:
enter: '{DTB}'
wait: "Choice:"
- select:
items:
- 'Return to main menu'
wait: "Start:"
- select:
items:
- '{TEST_MENU_NAME}'
{% endblock body %}
{% block parameters %}
parameters:
media: # four USB slots.
usb:
UUID-required: True
{{ usb_label|default('Kingston_DataTraveler') }}:
uuid: "{{ usb_uuid }}"
device_id: "{{ usb_device_id|default(0) }}" # the bootloader device id for this media on the 'usb' interface
{% endblock parameters %}
hostname: 'juno-uefi-01'
devicetype: 'juno-uefi'
constants:
# POSIX os (not AOSP)
posix:
lava_test_sh_cmd: /bin/sh
lava_test_results_dir: /lava-%s
lava_test_shell_file: ~/.bashrc
# bootloader specific
barebox:
interrupt-prompt: 'Hit m for menu or any other key to stop autoboot'
interrupt-character: '
'
final-message: 'Starting kernel'
error-messages:
- '### ERROR ### Please RESET the board ###'
- 'ERROR: .*'
- '.*: Out of memory'
u-boot:
interrupt-prompt: 'Hit any key to stop autoboot'
interrupt-character: ' '
interrupt_ctrl_list: []
interrupt-newline: True
final-message: 'Starting kernel'
error-messages:
- 'Resetting CPU'
- 'Must RESET board to recover'
- 'TIMEOUT'
- 'Retry count exceeded'
- 'Retry time exceeded; starting again'
- 'The remote end did not respond in time.'
- 'File not found'
- 'Bad Linux ARM64 Image magic!'
- 'Wrong Ramdisk Image Format'
- 'Ramdisk image is corrupt or invalid'
- 'ERROR: Failed to allocate'
- 'TFTP error: trying to overwrite reserved memory'
- 'Bad Linux RISCV Image magic!'
- 'Wrong Image Format for boot'
- 'ERROR: Did not find a cmdline Flattened Device Tree'
- 'ERROR: RD image overlaps OS image'
- 'kernel_comp_addr_r or kernel_comp_size is not provided'
- 'zimage: Bad magic'
dfu-download: 'DOWNLOAD \.\.\. OK\r\nCtrl\+C to exit \.\.\.'
grub:
interrupt-prompt: 'for a command-line'
interrupt-character: 'c'
interrupt-newline: False
error-messages:
- "error: missing (.*) symbol."
- "error: couldn't send network packet"
- "error: destination unreachable"
- "error: couldn't autoconfigure"
- "error: timeout reading"
- "error: you need to load the kernel first."
- "error: file '(.*)' not found"
- "error: no such device"
- "error: disk '(.*)' not found"
- "error: unknown filesystem"
grub-efi:
interrupt-prompt: 'for a command-line'
interrupt-character: 'c'
error-messages:
- 'Undefined OpCode Exception PC at'
- 'Synchronous Exception at'
- "error: missing (.*) symbol."
- "error: couldn't send network packet"
- "error: destination unreachable"
- "error: couldn't autoconfigure"
- "error: timeout reading"
- "error: you need to load the kernel first."
- "error: file '(.*)' not found"
- "error: no such device"
- "error: disk '(.*)' not found"
- "error: unknown filesystem"
ipxe:
interrupt-prompt: 'Press Ctrl-B for the iPXE command line'
interrupt_ctrl_list: ['b']
error-messages:
- 'No configuration methods succeeded'
- 'Connection timed out'
depthcharge:
final-message: 'Starting kernel'
error-messages:
- 'Tftp failed.'
- 'Dhcp release failed.'
- 'No space left for ramdisk'
- 'TFTP failed for ramdisk.'
- 'Dhcp release failed.'
- 'Out of space adding TFTP server IP to the command line.'
- 'No network device.'
- 'Error code \d+( \([\w\s]+\))?\r\n'
# OS shutdown message
# Override: set as the shutdown-message parameter of an Action.
# SHUTDOWN_MESSAGE
shutdown-message: 'The system is going down for reboot NOW'
# Kernel starting message
kernel-start-message: 'Linux version [0-9]'
# Default shell prompt for AutoLogin
# DEFAULT_SHELL_PROMPT
default-shell-prompt: 'lava-test: # '
# pexpect.spawn maxread
# SPAWN_MAXREAD - in bytes, quoted as a string
# 1 to turn off buffering, pexpect default is 2000
# maximum may be limited by platform issues to 4092
# avoid setting searchwindowsize:
# Data before searchwindowsize point is preserved, but not searched.
spawn_maxread: '4092'
# Set the failure retry to default or override it
failure_retry: 1
# Override boot_retry
boot_retry:
parameters:
media: # four USB slots.
usb:
UUID-required: True
Kingston_DataTraveler:
uuid: ""
device_id: "0" # the bootloader device id for this media on the 'usb' interface
character_delays:
boot: 50
actions:
deploy:
# list of deployment methods which this device supports
methods:
tftp:
boot:
# list of connection methods which this device supports
connections:
serial:
# list of boot methods which this device supports.
methods:
uefi-menu:
parameters:
character_delay: 300
interrupt_prompt: The default boot selection will start in
interrupt_string: ' '
item_markup:
- "["
- "]"
item_class: '0-9'
separator: ' '
label_class: 'a-zA-Z0-9\\s\\:'
bootloader_prompt: 'Start:'
boot_message: "Loaded: LinuxImage"
# interrupt: # character needed to interrupt u-boot, single whitespace by default
# method specific stanza
nor_flash:
- select:
items:
- 'Boot Manager'
wait: "Choice:"
- select:
items:
- 'Add Boot Device Entry'
wait: "Select the Boot Device:"
- select:
items:
- 'NOR Flash'
wait: "File path of the EFI Application or the kernel:"
- select:
enter: norkern
wait: "Is an EFI Application?"
- select:
enter: n
wait: "Has FDT support?"
- select:
enter: y
wait: "Add an initrd:"
- select:
enter: n
wait: 'Arguments to pass to the binary:'
- select:
enter: "dtb=board.dtb initrd=ramdisk.img console=ttyS0,115200 androidboot.hardware=juno systemd.log_target=null rootwait root=/dev/sda1"
wait: 'Description for this new Entry:'
- select:
enter: '{TEST_MENU_NAME}'
wait: "Choice:"
- select:
items:
- 'Update FDT path'
wait: "Select the Boot Device:"
- select:
items:
- 'TFTP on MAC Address: '
wait: "File path of the FDT blob:"
- select:
enter: 'board.dtb'
wait: "Choice:"
- select:
items:
- 'Return to main menu'
wait: "Start:"
- select:
items:
- '{TEST_MENU_NAME}'
tftp:
- select:
items:
- 'Boot Manager'
wait: "Choice:"
- select:
items:
- 'Add Boot Device Entry'
wait: "Select the Boot Device:"
- select:
items:
- 'TFTP on MAC Address: '
wait: "Get the IP address from DHCP:"
- select:
enter: y
wait: "Get the TFTP server IP address:"
- select:
enter: '{SERVER_IP}'
wait: "File path of the EFI Application or the kernel :"
- select:
enter: '{KERNEL}'
wait: "Is an EFI Application?"
- select:
enter: n
wait: "Has FDT support?"
- select:
enter: y
wait: "Add an initrd:"
- select:
enter: n
wait: 'Arguments to pass to the binary:'
- select:
enter: "console=ttyS0,115200 earlyprintk=uart8250-32bit,0x1c020000 debug root=/dev/nfs rw nfsroot={SERVER_IP}:{NFSROOTFS},tcp,hard {{ base_ip_args }}"
wait: 'Description for this new Entry:'
- select:
enter: '{TEST_MENU_NAME}'
wait: "Choice:"
- select:
items:
- 'Update FDT path'
wait: "Select the Boot Device:"
- select:
items:
- 'TFTP on MAC Address: '
wait: "Get the IP address from DHCP:"
- select:
enter: y
wait: "Get the TFTP server IP address:"
- select:
enter: '{SERVER_IP}'
wait: "File path of the FDT blob :"
- select:
enter: '{DTB}'
wait: "Choice:"
- select:
items:
- 'Return to main menu'
wait: "Start:"
- select:
items:
- '{TEST_MENU_NAME}'
timeouts:
actions:
apply-overlay-image:
minutes: 2
dd-image:
minutes: 10
download-retry:
minutes: 15
http-download:
minutes: 5
lava-test-shell:
minutes: 3
nfs-deploy:
minutes: 10
power-off:
seconds: 10
bootloader-commands:
minutes: 3
bootloader-interrupt:
seconds: 30
u-boot-interrupt:
seconds: 30
umount-retry:
seconds: 45
auto-login-action:
minutes: 2
bootloader-action:
minutes: 3
uboot-action:
minutes: 3
uboot-commands:
minutes: 3
bootloader-retry:
minutes: 3
boot-qemu-image:
minutes: 2
boot-image-retry:
minutes: 2
flash-uboot-ums:
minutes: 20
musca-deploy:
minutes: 3
musca-boot:
minutes: 1
unmount-musca-usbmsd:
seconds: 30
pdu-reboot:
seconds: 30
reset-device:
seconds: 30
connections:
dd-image:
minutes: 10
uboot-commands:
seconds: 30
bootloader-commands:
seconds: 30
auto-login-action:
minutes: 2
bootloader-interrupt:
seconds: 30
u-boot-interrupt:
seconds: 30
lava-test-shell:
seconds: 10
lava-docker-test-shell:
seconds: 10
Rendered with the default values (no device dictionary), using LAVA's own template environment.