Problem:
We have a few reports of users experiencing a system reboot 5 minutes into a PXE network boot of MemTest86 Site Edition. The cause was determined to be that certain bootloaders/chainloaders (eg. iPXE) periodically set a watchdog timer of 5 minutes, which when expired causes the system to reset.
Solution:
1) Disable the watchdog timer in the bootloader
This option is applicable only if the bootloader source can be modified and re-compiled.
Locate the call to the UEFI Boot Services function SetWatchdogTimer() and disable the watchdog timer by calling it as follows:
In the case of iPXE, this call is found in the file interface/efi/efi_watchdog.c. The following change would be required:
to
2) Use MemTest86 v7.6 (or later)
MemTest86 v7.6 (or later) implements a workaround by attempting to disable the watchdog timer at periodic intervals while the test is running.
Note that this workaround may not work if MemTest86 is waiting for user input (eg. in the main menu). In this particular case, MemTest86 cannot disable the watchdog timer before the timer period expires.
For a more proper fix, consider implementing the first solution (making the necessary changes to the bootloader source)
Reference:
http://forum.ipxe.org/showthread.php?tid=755
http://wiki.phoenix.com/wiki/index.p...dogTimer.28.29
We have a few reports of users experiencing a system reboot 5 minutes into a PXE network boot of MemTest86 Site Edition. The cause was determined to be that certain bootloaders/chainloaders (eg. iPXE) periodically set a watchdog timer of 5 minutes, which when expired causes the system to reset.
Solution:
1) Disable the watchdog timer in the bootloader
This option is applicable only if the bootloader source can be modified and re-compiled.
Locate the call to the UEFI Boot Services function SetWatchdogTimer() and disable the watchdog timer by calling it as follows:
Code:
bs->SetWatchdogTimer (0, 0, 0, NULL );
Code:
#define WATCHDOG_TIMEOUT_SECS ( 5 * 60 )
Code:
#define WATCHDOG_TIMEOUT_SECS ( 0 )
MemTest86 v7.6 (or later) implements a workaround by attempting to disable the watchdog timer at periodic intervals while the test is running.
Note that this workaround may not work if MemTest86 is waiting for user input (eg. in the main menu). In this particular case, MemTest86 cannot disable the watchdog timer before the timer period expires.
For a more proper fix, consider implementing the first solution (making the necessary changes to the bootloader source)
Reference:
http://forum.ipxe.org/showthread.php?tid=755
http://wiki.phoenix.com/wiki/index.p...dogTimer.28.29
Comment