Hardware watchdogs don't currently get stopped as part of ExitBootServices, this can result in resets during boot if the OS doesn't have a driver for the watchdog, or if the driver isn't loaded in time.
As with the EFI watchdog, stop any hardware watchdogs as well. Signed-off-by: Casey Connolly <[email protected]> --- lib/efi_loader/efi_boottime.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index ddc935d22409..2df6d2c7954a 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -21,8 +21,9 @@ #include <time.h> #include <u-boot/crc.h> #include <usb.h> #include <watchdog.h> +#include <wdt.h> #include <asm/global_data.h> #include <linux/libfdt_env.h> DECLARE_GLOBAL_DATA_PTR; @@ -2263,8 +2264,9 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle, efi_update_table_header_crc32(&systab.hdr); /* Give the payload some time to boot */ efi_set_watchdog(0); + wdt_stop_all(); schedule(); out: if (IS_ENABLED(CONFIG_EFI_TCG2_PROTOCOL)) { if (ret != EFI_SUCCESS) -- 2.52.0

