]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
efi_selftest: on sandbox use host specific assembly
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 2 Sep 2022 00:46:37 +0000 (02:46 +0200)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 3 Sep 2022 06:16:09 +0000 (08:16 +0200)
The selftest checking the handling of exceptions in UEFI binaries is using
assembly to provide an undefined instruction. On the sandbox the correct
form of the instruction depends on the host architecture.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
lib/efi_selftest/efi_selftest_miniapp_exception.c

index 79f9a67859b97a629b9b8b2c98f5f9539fa7bc52..a9ad381001f951ee1c4ff388d2aa6e5995e30f9b 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <common.h>
 #include <efi_api.h>
+#include <host_arch.h>
 
 /*
  * Entry point of the EFI application.
@@ -33,10 +34,16 @@ efi_status_t EFIAPI efi_main(efi_handle_t handle,
        asm volatile (".word 0xe7f7defb\n");
 #elif defined(CONFIG_RISCV)
        asm volatile (".word 0xffffffff\n");
+#elif defined(CONFIG_X86)
+       asm volatile (".word 0xffff\n");
 #elif defined(CONFIG_SANDBOX)
+#if (HOST_ARCH == HOST_ARCH_ARM || HOST_ARCH == HOST_ARCH_AARCH64)
+       asm volatile (".word 0xe7f7defb\n");
+#elif (HOST_ARCH == HOST_ARCH_RISCV32 || HOST_ARCH == HOST_ARCH_RISCV64)
        asm volatile (".word 0xffffffff\n");
-#elif defined(CONFIG_X86)
+#elif (HOST_ARCH == HOST_ARCH_X86 || HOST_ARCH == HOST_ARCH_X86_64)
        asm volatile (".word 0xffff\n");
+#endif
 #endif
        con_out->output_string(con_out, u"Exception not triggered.\n");
        return EFI_ABORTED;