On 11.01.21 11:24, Frank Wunderlich wrote: > >> Gesendet: Montag, 11. Januar 2021 um 09:57 Uhr >> Von: "Heinrich Schuchardt" <xypron.g...@gmx.de> > >> I observed that on some recent version Linux before 5.10 booting seemed >> to be delayed by dozens of seconds on many boards. On which Linux >> version did you see the problem? >> >>>>> >>>>> I've not much experience (yet) with the "EFI stub". But if it takes >>>>> this >>>>> long, wouldn't it make sense that this stub also supports the WDT? >>>> >>>> efi_timer_check() calls WATCHDOG_RESET() trying to avoid that the >>>> hardware watchdog is triggered. > >>> So efi_timer_check() is called quite frequently and should be enough >>> to reset the U-Boot WDT while residing in EFI? Not sure, why the reset >>> occurs in Matthias's case then. > > Matthias could you check if/when/how often efi_timer_check is called in you > bootprocess? > >> efi_timer_check() is only invoked, if the UEFI API is invoked. >> Especially if the problem occurs after ExitBootServices() it is not >> called anymore. >> >>> >>>> There is a software watchdog >>>> defaulting to 5 minutes in efi_watchdog.c which can be modified >>>> via the EFI API. > >> It would be interesting to understand if your problem occurs before or >> after efi_exit_boot_services() is called. You could you add printf() >> statements after EFI_ENTRY() and before EFI_EXIT() to see if it is reached. >> >> Could you further, please, test if adding wdt_stop() to the start of >> do_bootefi() in cmd/bootefi.c solves your problem. > > should efi_timer_check not be called there to reset WDT-timer a last time to > leave the > maximum time for booting linux kernel? maybe a wdt_stop is not neccessary > anymore then
WATCHDOG_RESET() is already the last call in efi_exit_boot_services(). Best regards Heinrich