mirror of https://github.com/acidanthera/audk.git
ArmPkg/GenericWatchdogDxe: Set up the watchdog timeout relatively to the system counter
Use the system counter to compute the watchdog compare value as the watchdog compare value is compared to the system counter to check if the watchdog timeout expired or not. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <Ronald.Cron@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16513 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
0b4d97a0ea
commit
2366640023
|
@ -181,7 +181,7 @@ WatchdogSetTimerPeriod (
|
||||||
IN UINT64 TimerPeriod // In 100ns units
|
IN UINT64 TimerPeriod // In 100ns units
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN TimerVal;
|
UINTN SystemCount;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
// if TimerPerdiod is 0, this is a request to stop the watchdog.
|
// if TimerPerdiod is 0, this is a request to stop the watchdog.
|
||||||
|
@ -210,8 +210,8 @@ WatchdogSetTimerPeriod (
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
WatchdogEnable ();
|
WatchdogEnable ();
|
||||||
TimerVal = ArmGenericTimerGetTimerVal ();
|
SystemCount = ArmGenericTimerGetSystemCount ();
|
||||||
Status = WatchdogWriteCompareRegister (TimerVal + mNumTimerTicks);
|
Status = WatchdogWriteCompareRegister (SystemCount + mNumTimerTicks);
|
||||||
} else {
|
} else {
|
||||||
Status = WatchdogWriteOffsetRegister ((UINT32)mNumTimerTicks);
|
Status = WatchdogWriteOffsetRegister ((UINT32)mNumTimerTicks);
|
||||||
WatchdogEnable ();
|
WatchdogEnable ();
|
||||||
|
|
Loading…
Reference in New Issue