On Tue, Oct 05, 2021 at 11:39:39AM +0800, Min Xu wrote: > RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429 > > TDX guest supports LocalApicTimer. But in current OvmfPkg the supported > timer is 8254TimerDxe. So gUefiOvmfPkgTokenSpaceGuid.PcdTimerSelector > is introduced to select the running Timer. The Timer driver will check > the TimerSelector in its entry point. The default Timer is 8254.
Hmm. We already have a local apic timer implementation (XenTimerDxe). Works fine with kvm, microvm already uses that. See commit 76602f45dcd9 ("OvmfPkg/Microvm: use XenTimerDxe (lapic timer)"). So, first I'd suggest to just use that (maybe rename the thing to avoid confusion as it isn't really Xen specific). Next question is whenever there is a need for a runtime switch. I doubt it is possible to create a virtual machine without lapic, so switching ovmf from 8254 (aka pit) to lapic unconditionally should work fine. Quick smoke test (patch below) shows no obvious problems. take care, Gerd >From 948aaf555a864da1d6f2ccc8dddc7e22cefb76e1 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kra...@redhat.com> Date: Tue, 12 Oct 2021 14:58:18 +0200 Subject: [PATCH 1/1] OvmfPkgX64: use lapic timer --- OvmfPkg/OvmfPkgX64.dsc | 4 ++-- OvmfPkg/OvmfPkgX64.fdf | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 52f7598cf1c7..687aae6e3e68 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -620,6 +620,7 @@ [PcdsDynamicDefault] gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 !endif + gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0 # Set video resolution for text setup. @@ -765,10 +766,9 @@ [Components] } MdeModulePkg/Universal/EbcDxe/EbcDxe.inf - OvmfPkg/8259InterruptControllerDxe/8259.inf UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf UefiCpuPkg/CpuDxe/CpuDxe.inf - OvmfPkg/8254TimerDxe/8254Timer.inf + OvmfPkg/XenTimerDxe/XenTimerDxe.inf OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index b6cc3cabdd69..9ca723dc8604 100644 --- a/OvmfPkg/OvmfPkgX64.fdf +++ b/OvmfPkg/OvmfPkgX64.fdf @@ -232,10 +232,9 @@ [FV.DXEFV] INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf -INF OvmfPkg/8259InterruptControllerDxe/8259.inf INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf INF UefiCpuPkg/CpuDxe/CpuDxe.inf -INF OvmfPkg/8254TimerDxe/8254Timer.inf +INF OvmfPkg/XenTimerDxe/XenTimerDxe.inf INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf -- 2.31.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#81828): https://edk2.groups.io/g/devel/message/81828 Mute This Topic: https://groups.io/mt/86085771/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-