Re: [PATCH 3/3] efi_selftest: implement exception test for sandbox

2020-11-11 Thread Simon Glass
On Tue, 10 Nov 2020 at 16:09, Heinrich Schuchardt  wrote:
>
> Provide a unit test that causes an illegal instruction to occur.
>
> The test can be run with the following commands:
>
> => setenv efi_selftest exception
> => bootefi selftest
>
> This might be the output:
>
> Executing 'exception'
> EFI application triggers exception.
> Illegal instruction
> pc = 0x1444d016, pc_reloc = 0xaa078e8dd016
> UEFI image [0x:0x] '/\selftest'
> UEFI image [0x1444b000:0x14451fff] pc=0x2016 '/bug.efi'
> Resetting ...
>
> It would tell us that the exception was triggered by an instruction
> 0x2016 bytes after the load address of the binary with filename /bug.efi.
>
> Signed-off-by: Heinrich Schuchardt 
> ---
>  lib/efi_selftest/efi_selftest_miniapp_exception.c | 2 ++
>  1 file changed, 2 insertions(+)

Test for U-Boot code should be via U-Boot directly and not EFI. It is
OK to have an EFI test as well if you like, but I really don't want to
rely on the EFI complexity to test U-Boot itself.

Regards,
Simon


[PATCH 3/3] efi_selftest: implement exception test for sandbox

2020-11-10 Thread Heinrich Schuchardt
Provide a unit test that causes an illegal instruction to occur.

The test can be run with the following commands:

=> setenv efi_selftest exception
=> bootefi selftest

This might be the output:

Executing 'exception'
EFI application triggers exception.
Illegal instruction
pc = 0x1444d016, pc_reloc = 0xaa078e8dd016
UEFI image [0x:0x] '/\selftest'
UEFI image [0x1444b000:0x14451fff] pc=0x2016 '/bug.efi'
Resetting ...

It would tell us that the exception was triggered by an instruction
0x2016 bytes after the load address of the binary with filename /bug.efi.

Signed-off-by: Heinrich Schuchardt 
---
 lib/efi_selftest/efi_selftest_miniapp_exception.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/efi_selftest/efi_selftest_miniapp_exception.c 
b/lib/efi_selftest/efi_selftest_miniapp_exception.c
index 63c63d75f1..59b7e5100a 100644
--- a/lib/efi_selftest/efi_selftest_miniapp_exception.c
+++ b/lib/efi_selftest/efi_selftest_miniapp_exception.c
@@ -33,6 +33,8 @@ efi_status_t EFIAPI efi_main(efi_handle_t handle,
asm volatile (".word 0xe7f7defb\n");
 #elif defined(CONFIG_RISCV)
asm volatile (".word 0x\n");
+#elif defined(CONFIG_SANDBOX)
+   asm volatile (".word 0x\n");
 #elif defined(CONFIG_X86)
asm volatile (".word 0x\n");
 #endif
--
2.28.0