
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@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(