[U-Boot] [PATCH 1/1] efi_loader: efi_set_watchdog_timer return EFI_SUCCESS

Alexander Graf agraf at suse.de
Fri Aug 18 08:50:54 UTC 2017



On 17.08.17 19:18, Heinrich Schuchardt wrote:
> The UEFI standard requires a watchdog timer that is preset to
> five minutes. After this period the system is reset.
> 
> The watchdog shall be disabled by ExitBootServices.
> 
> An EFI application can call efi_set_watchdog_timer to either
> reset the watchdog timer or disable it. This may be necessary
> if the EFI application has an interactive interface which may
> be used for more than five minutes, e.g. the grub console.
> 
> U-Boot currently does not implement this watchdog.
> 
> If efi_set_watchdog_timer is called to reset the watchdog we
> can safely return EFI_SUCCESS to signal that we will not
> interrupt the EFI application in the timeout interval.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>

U-Boot actually implements a watchdog, but doesn't expose the details of 
it to UEFI payloads.

Could you please explain why you need to fake a successful return code 
here? A payload may depend on the fact that the watchdog does actually 
trigger after n seconds, but with this change wouldn't have any chance 
to know it won't happen.


Alex

> ---
>   lib/efi_loader/efi_boottime.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
> index 2674c5187e..de6646feb0 100644
> --- a/lib/efi_loader/efi_boottime.c
> +++ b/lib/efi_loader/efi_boottime.c
> @@ -887,7 +887,7 @@ static efi_status_t EFIAPI efi_set_watchdog_timer(unsigned long timeout,
>   {
>   	EFI_ENTRY("%ld, 0x%"PRIx64", %ld, %p", timeout, watchdog_code,
>   		  data_size, watchdog_data);
> -	return efi_unsupported(__func__);
> +	return EFI_EXIT(EFI_SUCCESS);
>   }
>   
>   static efi_status_t EFIAPI efi_connect_controller(
> 


More information about the U-Boot mailing list