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

Heinrich Schuchardt xypron.debian at gmx.de
Thu Nov 19 22:12:10 CET 2020


On 17.11.20 00:53, Simon Glass wrote:
> On Wed, 11 Nov 2020 at 16:30, Heinrich Schuchardt <xypron.glpk at gmx.de> 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 = 0xffffaa078e8dd016
>>     UEFI image [0x0000000000000000:0xffffffffffffffff] '/\selftest'
>>     UEFI image [0x000000001444b000:0x0000000014451fff] 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 <xypron.glpk at gmx.de>
>> ---
>> v2:
>>         no change
>> ---
>>  lib/efi_selftest/efi_selftest_miniapp_exception.c | 2 ++
>>  1 file changed, 2 insertions(+)
>
> Reviewed-by: Simon Glass <sjg at chromium.org>
>
>>
>> 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 0xffffffff\n");
>> +#elif defined(CONFIG_SANDBOX)
>> +       asm volatile (".word 0xffffffff\n");
>
> Does this work on ARM hosts?

Yes it works on aarch64.

Best regards

Heinrich

>
>
>>  #elif defined(CONFIG_X86)
>>         asm volatile (".word 0xffff\n");
>>  #endif
>> --
>> 2.28.0
>>



More information about the U-Boot mailing list