audk/ArmPkg/Drivers
Marc Zyngier 5e3719aeae ArmPkg/TimerDxe: Always perform an EOI, even for spurious interrupts
The generic timer driver only EOIs the timer interrupt if
the ISTATUS bit is set. This is completely fine if you pretend
that spurious interrupts do not exist. But as a matter of fact,
they do, and the first one will leave the interrupt activated
at the GIC level, making sure that no other interrupt can make
it anymore.

Making sure that each interrupt Ack is paired with an EOI is the
way to go. Oh, and enabling the interrupt each time it is taken
is completely pointless. We entered this function for a good
reason...

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2018-03-06 14:37:39 +00:00
..
ArmCrashDumpDxe ArmPkg: add ArmCrashDumpDxe driver 2017-09-06 17:48:03 +01:00
ArmGic ArmPkg/Gic: force GIC driver to run before CPU arch protocol driver 2018-02-06 18:59:34 +00:00
ArmPciCpuIo2Dxe ArmPkg: implement CpuIo2 protocol driver specific for PCI 2016-04-29 18:04:25 +02:00
CpuDxe ArmPkg/Gic: force GIC driver to run before CPU arch protocol driver 2018-02-06 18:59:34 +00:00
CpuPei ArmPkg: Rectify file modes 2016-01-30 12:25:59 +00:00
GenericWatchdogDxe ArmPkg/GenericWatchdogDxe: Set Watchdog interrupt type 2017-10-05 21:23:39 +01:00
TimerDxe ArmPkg/TimerDxe: Always perform an EOI, even for spurious interrupts 2018-03-06 14:37:39 +00:00