ArmVirtPkg: reinstate timer unmask quirk for Xen
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Mon, 23 Apr 2018 14:55:18 +0000 (16:55 +0200)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 26 Apr 2018 06:31:40 +0000 (08:31 +0200)
commitef42ef7e6dd70112ce2af1757e765b7bcde7a70a
treed4bd80d80bd7b6bc234666b9d5c8296d32b5414d
parent5853e2e45092ee49a88971ef0c5f97ac808ed47d
ArmVirtPkg: reinstate timer unmask quirk for Xen

Commit 411a373ed642 ("ArmPkg/TimerDxe: remove workaround for KVM timer
handling") removed the virtual timer handling quirk that cleared the
mask bit in the control register when enabling the timer, under the
assumption that only ancient KVM host implementations required it.
However, Julien reports that Xen also masks the timer interrupt in the
guest view of the timer control register, and therefore needs the same
quirk.

So let's reinstate it, but using a Xen specific implementation of the
timer support library, so that other virt platforms remain unchanged.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Julien Grall <julien.grall@arm.com>
Acked-by: Julien Grall <julien.grall@arm.com>
ArmVirtPkg/ArmVirtXen.dsc
ArmVirtPkg/Library/XenArmGenericTimerVirtCounterLib/XenArmGenericTimerVirtCounterLib.c [new file with mode: 0644]
ArmVirtPkg/Library/XenArmGenericTimerVirtCounterLib/XenArmGenericTimerVirtCounterLib.inf [new file with mode: 0644]