There is experimental UEFI menu support in LAVA
pipeline V2 - it works on the lava-dispatch command line for an
XGene Mustang with UEFI menu but there are problems with the
submission through the UI with escape characters.
Juno devices have menu support in LAVA V1:
However, issues will persist:
1: Menus that use more complex structures will fail to
parse - typically this will be if the menu uses curses of
similar interface instead of line-based.
2: The current support is for a limited set of devices and
UEFI builds and each one can require integration.
3: a UEFI shell is a preferred option for automation - many
uses of the menus only use enough of the menu to get to a
shell.
4. Unless you are actually testing the UEFI build, you can
avoid UEFI entirely by pre-configuring something like grub on
top and interacting with the a shell provided by that. Make a
decision about whether the UEFI on these devices is something
you are explicitly testing or simply using to get to a system
that can run your tests. If you want to test both, consider
having one device-type which uses an unchanging UEFI build and
one device-type that updates the UEFI on each build. That
device-type needs a way of recovering if the UEFI build is
broken - that support depends on the hardware.
5. The aim with UEFI would be that it does become mostly
unchanging and that it provides a common interface to the
kernel across different device types. So for kernel testing, a
static UEFI build is the right answer so that tests only
involve one changing element each run.