efi_selftest: substitute ResetSystem() by do_reset()
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 22 Aug 2020 07:14:56 +0000 (09:14 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Mon, 24 Aug 2020 14:37:53 +0000 (16:37 +0200)
If ResetSystem() is not implemented at runtime, call do_reset() after
test completion.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_selftest/efi_selftest.c

index 5b01610..6eec8ae 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (c) 2017 Heinrich Schuchardt <xypron.glpk@gmx.de>
  */
 
+#include <command.h>
 #include <efi_selftest.h>
 #include <vsprintf.h>
 
@@ -309,8 +310,13 @@ efi_status_t EFIAPI efi_selftest(efi_handle_t image_handle,
        /* Reset system */
        efi_st_printf("Preparing for reset. Press any key...\n");
        efi_st_get_key();
-       runtime->reset_system(EFI_RESET_WARM, EFI_NOT_READY,
-                             sizeof(reset_message), reset_message);
+
+       if (IS_ENABLED(CONFIG_EFI_HAVE_RUNTIME_RESET))
+               runtime->reset_system(EFI_RESET_WARM, EFI_NOT_READY,
+                                     sizeof(reset_message), reset_message);
+       else
+               do_reset(NULL, 0, 0, NULL);
+
        efi_st_printf("\n");
        efi_st_error("Reset failed\n");