Re: [PATCH 3/3] efi_selftest: implement exception test for sandbox
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
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