diff options
Diffstat (limited to 'EmbeddedPkg')
-rw-r--r-- | EmbeddedPkg/TemplateTimerDxe/Timer.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/EmbeddedPkg/TemplateTimerDxe/Timer.c b/EmbeddedPkg/TemplateTimerDxe/Timer.c index 4bfa3e8622..a48d4b52eb 100644 --- a/EmbeddedPkg/TemplateTimerDxe/Timer.c +++ b/EmbeddedPkg/TemplateTimerDxe/Timer.c @@ -72,7 +72,11 @@ TimerInterruptHandler ( {
EFI_TPL OriginalTPL;
- // Mask all interrupts
+ //
+ // DXE core uses this callback for the EFI timer tick. The DXE core uses locks
+ // that raise to TPL_HIGH and then restore back to current level. Thus we need
+ // to make sure TPL level is set to TPL_HIGH while we are handling the timer tick.
+ //
OriginalTPL = gBS->RaiseTPL (TPL_HIGH_LEVEL);
MmioWrite32 (TIMER_CMD, 0);
|