[U-Boot] [RFC] efi_loader: Add test to boot OpenBSD's efi bootloader

Mark Kettenis mark.kettenis at xs4all.nl
Sun Aug 6 18:54:28 UTC 2017


> From: Rob Clark <robdclark at gmail.com>
> Date: Sun,  6 Aug 2017 12:10:28 -0400
> 
> Signed-off-by: Rob Clark <robdclark at gmail.com>
> ---
> Kinda works, but since we don't have an 'exit' command like grub, we
> have to reboot, which leaves the "board" in a bad state (I guess,
> since the next test fails).  I haven't tackled the travis bits to get
> travis to download OpenBSD's bootloader, or other little details like
> that.

What does the grub "exit" command do?  Simply call EFI_BOOT_SERVICE.Exit()?
Wouldn't be too difficult for me to add a command that does this.

The OpenBSD bootloader currently just executes an illegal instruction
as EFI_RUNTIME_SERVICES.ResetSystem() didn't work at the time I wrote
the code.  Perhaps I should revisit that issue now.

>  test/py/tests/test_efi_loader.py | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/test/py/tests/test_efi_loader.py b/test/py/tests/test_efi_loader.py
> index 5d7f5dbfb2..376f6442a3 100644
> --- a/test/py/tests/test_efi_loader.py
> +++ b/test/py/tests/test_efi_loader.py
> @@ -193,3 +193,22 @@ def test_efi_grub_net(u_boot_console):
>  
>      # And give us our U-Boot prompt back
>      u_boot_console.run_command('')
> +
> + at pytest.mark.buildconfigspec('cmd_bootefi')
> +def test_efi_openbsd_net(u_boot_console):
> +    """Run OpenBSD's bootloader via TFTP.
> +
> +    The bootaa64.efi file is downloaded from the TFTP server and
> +    gets executed.
> +    """
> +
> +    addr = fetch_tftp_file(u_boot_console, 'env__efi_loader_openbsd_file')
> +
> +    u_boot_console.run_command('bootefi %x' % addr, wait_for_prompt=False)
> +
> +    # Check that bootloader loads properly:
> +    u_boot_console.wait_for('boot>')
> +
> +    # There is no exit, but there is a reboot cmd.. maybe we need to do
> +    # more than this to get u-boot running again??
> +    u_boot_console.run_command('reboot', wait_for_prompt=False, wait_for_echo=False)
> -- 
> 2.13.0
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
> 
> 


More information about the U-Boot mailing list