From nobody Mon Feb 9 05:13:42 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+84738+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+84738+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1639400393; cv=none; d=zohomail.com; s=zohoarc; b=hCQG2X5GmqgxGHruL3v6ZZn1TIDQpnXYKhUFCFbslWkX3UYNCZI4pDMMoYFCr0C6nycro8Qb743hMU8XFbjulJhm9fGytSqNtMUOhQQI1duNRN27oL+atuwraUI3gW3NI7ugs5vz6wtuj6PkyByH6V69dBrnBp/zBHRk1C0tRt0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639400393; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=/qIxOJdnwXXevlYi6BRQVeGHid95U9Y02O2gazyJZNw=; b=Z6S8jZNT8/Hsd1N0GdmsRZEYFpNx1lQFcuC1ybjEZuYcqr897knIclTlwuyECT0tq4g53HjG1r2y2BtNCpjJ+lC0Rt3JrzOUnl8R7qlrq3LLmvm8CmwJQjW+ITMb+UD0w2lUwtkJmbhVEl92K57Lh4rlgjoiQcKOUp7tfjsZo+k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+84738+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1639400393864402.5763148594466; Mon, 13 Dec 2021 04:59:53 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id 9jjMYY1788612xJQWjUMUqfj; Mon, 13 Dec 2021 04:59:53 -0800 X-Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web11.10632.1639400372217809539 for ; Mon, 13 Dec 2021 04:59:53 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10196"; a="302106173" X-IronPort-AV: E=Sophos;i="5.88,202,1635231600"; d="scan'208";a="302106173" X-Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2021 04:59:52 -0800 X-IronPort-AV: E=Sophos;i="5.88,202,1635231600"; d="scan'208";a="517739159" X-Received: from mxu9-mobl1.ccr.corp.intel.com ([10.249.173.142]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2021 04:59:49 -0800 From: "Min Xu" To: devel@edk2.groups.io Cc: Min Xu , Jiewen Yao , Gerd Hoffmann , Anthony Perard , Julien Grall , Eric Dong , Ray Ni Subject: [edk2-devel] [PATCH V4 31/31] OvmfPkg: Move LocalApicTimerDxe to UefiCpuPkg Date: Mon, 13 Dec 2021 20:57:02 +0800 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,min.m.xu@intel.com X-Gm-Message-State: 1tz1Z1Frd5qz0Gg46b8GWslBx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1639400393; bh=4mM0+k6tXJyILTbd805UfYxrNS/OdfG+wYPqT+mlOac=; h=Cc:Date:From:Reply-To:Subject:To; b=t+Rh7snKD5KJ2rne2IO7WciSc0h+F/xHkh7ZD5gg4o+X8LL8j/RGOpsVJa4yAXWI7sA PjXMEGv5/Avis+LV9gdETIpDQeQ9QERzDMdU8CMe3e5r46xDhMG1ME1zmuy62OrTvFOwS 2RNJI2kvCZ00VpIlNh/vPLAckW2sIs/RvAg= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1639400395026100001 Content-Type: text/plain; charset="utf-8" BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3711 OvmfPkg.dec is removed from [Packages] because it doesn't depend on OvmfPkg. LocalApicTimerDxe is moved to UefiCpuPkg. Cc: Jiewen Yao Cc: Gerd Hoffmann Cc: Anthony Perard Cc: Julien Grall Cc: Eric Dong Cc: Ray Ni Acked-by: Anthony Perard Signed-off-by: Min Xu --- OvmfPkg/AmdSev/AmdSevX64.dsc | 2 +- OvmfPkg/AmdSev/AmdSevX64.fdf | 2 +- OvmfPkg/Microvm/MicrovmX64.dsc | 2 +- OvmfPkg/Microvm/MicrovmX64.fdf | 2 +- OvmfPkg/OvmfPkgIa32.dsc | 2 +- OvmfPkg/OvmfPkgIa32.fdf | 2 +- OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- OvmfPkg/OvmfPkgIa32X64.fdf | 2 +- OvmfPkg/OvmfPkgX64.dsc | 2 +- OvmfPkg/OvmfPkgX64.fdf | 2 +- OvmfPkg/OvmfXen.dsc | 2 +- OvmfPkg/OvmfXen.fdf | 2 +- .../LocalApicTimerDxe/LocalApicTimerDxe.c | 33 +++++++++---------- .../LocalApicTimerDxe/LocalApicTimerDxe.h | 18 +++++----- .../LocalApicTimerDxe/LocalApicTimerDxe.inf | 17 ++++++++-- UefiCpuPkg/UefiCpuPkg.dsc | 1 + 16 files changed, 52 insertions(+), 41 deletions(-) rename {OvmfPkg =3D> UefiCpuPkg}/LocalApicTimerDxe/LocalApicTimerDxe.c (91= %) rename {OvmfPkg =3D> UefiCpuPkg}/LocalApicTimerDxe/LocalApicTimerDxe.h (92= %) rename {OvmfPkg =3D> UefiCpuPkg}/LocalApicTimerDxe/LocalApicTimerDxe.inf (= 62%) diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc index 6c53c805e824..b2636febee3d 100644 --- a/OvmfPkg/AmdSev/AmdSevX64.dsc +++ b/OvmfPkg/AmdSev/AmdSevX64.dsc @@ -679,7 +679,7 @@ MdeModulePkg/Universal/EbcDxe/EbcDxe.inf UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf UefiCpuPkg/CpuDxe/CpuDxe.inf - OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { diff --git a/OvmfPkg/AmdSev/AmdSevX64.fdf b/OvmfPkg/AmdSev/AmdSevX64.fdf index 77e391f2106a..b3691e79e552 100644 --- a/OvmfPkg/AmdSev/AmdSevX64.fdf +++ b/OvmfPkg/AmdSev/AmdSevX64.fdf @@ -208,7 +208,7 @@ INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStu= bDxe.inf INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf INF UefiCpuPkg/CpuDxe/CpuDxe.inf -INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf +INF UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.= inf INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc index 8fdb583877dd..7e5c131d39b3 100644 --- a/OvmfPkg/Microvm/MicrovmX64.dsc +++ b/OvmfPkg/Microvm/MicrovmX64.dsc @@ -658,7 +658,7 @@ =20 MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf MdeModulePkg/Universal/EbcDxe/EbcDxe.inf - OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf UefiCpuPkg/CpuDxe/CpuDxe.inf OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf diff --git a/OvmfPkg/Microvm/MicrovmX64.fdf b/OvmfPkg/Microvm/MicrovmX64.fdf index 3b8370a15dff..62827b23e485 100644 --- a/OvmfPkg/Microvm/MicrovmX64.fdf +++ b/OvmfPkg/Microvm/MicrovmX64.fdf @@ -215,7 +215,7 @@ INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf -INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf +INF UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf INF UefiCpuPkg/CpuDxe/CpuDxe.inf INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.= inf diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index ff5b9d707341..a1192c24f6e0 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -770,7 +770,7 @@ OvmfPkg/8259InterruptControllerDxe/8259.inf OvmfPkg/8254TimerDxe/8254Timer.inf !else - OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf !endif OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index 9e2e90763714..c90580bc1341 100644 --- a/OvmfPkg/OvmfPkgIa32.fdf +++ b/OvmfPkg/OvmfPkgIa32.fdf @@ -218,7 +218,7 @@ INF UefiCpuPkg/CpuDxe/CpuDxe.inf INF OvmfPkg/8259InterruptControllerDxe/8259.inf INF OvmfPkg/8254TimerDxe/8254Timer.inf !else - INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + INF UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf !endif INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.= inf INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index db44a5217f69..ee390c064547 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -786,7 +786,7 @@ OvmfPkg/8259InterruptControllerDxe/8259.inf OvmfPkg/8254TimerDxe/8254Timer.inf !else - OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf !endif OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf index 035c439e5237..7c88850bd7f2 100644 --- a/OvmfPkg/OvmfPkgIa32X64.fdf +++ b/OvmfPkg/OvmfPkgIa32X64.fdf @@ -222,7 +222,7 @@ INF UefiCpuPkg/CpuDxe/CpuDxe.inf INF OvmfPkg/8259InterruptControllerDxe/8259.inf INF OvmfPkg/8254TimerDxe/8254Timer.inf !else - INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + INF UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf !endif INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.= inf INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index d1c1dc257797..771fa9da13e9 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -788,7 +788,7 @@ OvmfPkg/8259InterruptControllerDxe/8259.inf OvmfPkg/8254TimerDxe/8254Timer.inf !else - OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf !endif OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index c00b61f75c4c..72da93586c8f 100644 --- a/OvmfPkg/OvmfPkgX64.fdf +++ b/OvmfPkg/OvmfPkgX64.fdf @@ -245,7 +245,7 @@ INF UefiCpuPkg/CpuDxe/CpuDxe.inf INF OvmfPkg/8259InterruptControllerDxe/8259.inf INF OvmfPkg/8254TimerDxe/8254Timer.inf !else - INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + INF UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf !endif INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.= inf INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc index 91e011f78404..f82c3adfe69c 100644 --- a/OvmfPkg/OvmfXen.dsc +++ b/OvmfPkg/OvmfXen.dsc @@ -554,7 +554,7 @@ MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf =20 MdeModulePkg/Universal/EbcDxe/EbcDxe.inf - OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf + UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf UefiCpuPkg/CpuDxe/CpuDxe.inf OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/OvmfXen.fdf b/OvmfPkg/OvmfXen.fdf index 8e9c6721f183..ac615f66b84e 100644 --- a/OvmfPkg/OvmfXen.fdf +++ b/OvmfPkg/OvmfXen.fdf @@ -298,7 +298,7 @@ INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf -INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf +INF UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf INF UefiCpuPkg/CpuDxe/CpuDxe.inf INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf diff --git a/OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.c b/UefiCpuPkg/Loc= alApicTimerDxe/LocalApicTimerDxe.c similarity index 91% rename from OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.c rename to UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.c index 98610ebd3b06..5dce7a3223aa 100644 --- a/OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.c +++ b/UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.c @@ -54,8 +54,8 @@ volatile UINT64 mTimerPeriod =3D 0; VOID EFIAPI TimerInterruptHandler ( - IN EFI_EXCEPTION_TYPE InterruptType, - IN EFI_SYSTEM_CONTEXT SystemContext + IN EFI_EXCEPTION_TYPE InterruptType, + IN EFI_SYSTEM_CONTEXT SystemContext ) { EFI_TPL OriginalTPL; @@ -63,9 +63,6 @@ TimerInterruptHandler ( OriginalTPL =3D gBS->RaiseTPL (TPL_HIGH_LEVEL); =20 if (mTimerNotifyFunction !=3D NULL) { - // - // @bug : This does not handle missed timer interrupts - // mTimerNotifyFunction (mTimerPeriod); } =20 @@ -109,8 +106,8 @@ TimerInterruptHandler ( EFI_STATUS EFIAPI TimerDriverRegisterHandler ( - IN EFI_TIMER_ARCH_PROTOCOL *This, - IN EFI_TIMER_NOTIFY NotifyFunction + IN EFI_TIMER_ARCH_PROTOCOL *This, + IN EFI_TIMER_NOTIFY NotifyFunction ) { // @@ -160,8 +157,8 @@ TimerDriverRegisterHandler ( EFI_STATUS EFIAPI TimerDriverSetTimerPeriod ( - IN EFI_TIMER_ARCH_PROTOCOL *This, - IN UINT64 TimerPeriod + IN EFI_TIMER_ARCH_PROTOCOL *This, + IN UINT64 TimerPeriod ) { UINT64 TimerCount; @@ -169,6 +166,11 @@ TimerDriverSetTimerPeriod ( UINT32 DivideValue =3D 1; =20 if (TimerPeriod =3D=3D 0) { + // + // Stop the timer + // + InitializeApicTimer (0, 0, FALSE, LOCAL_APIC_TIMER_VECTOR); + // // Disable timer interrupt for a TimerPeriod of 0 // @@ -231,8 +233,8 @@ TimerDriverSetTimerPeriod ( EFI_STATUS EFIAPI TimerDriverGetTimerPeriod ( - IN EFI_TIMER_ARCH_PROTOCOL *This, - OUT UINT64 *TimerPeriod + IN EFI_TIMER_ARCH_PROTOCOL *This, + OUT UINT64 *TimerPeriod ) { if (TimerPeriod =3D=3D NULL) { @@ -264,7 +266,7 @@ TimerDriverGetTimerPeriod ( EFI_STATUS EFIAPI TimerDriverGenerateSoftInterrupt ( - IN EFI_TIMER_ARCH_PROTOCOL *This + IN EFI_TIMER_ARCH_PROTOCOL *This ) { EFI_TPL OriginalTPL; @@ -276,9 +278,6 @@ TimerDriverGenerateSoftInterrupt ( OriginalTPL =3D gBS->RaiseTPL (TPL_HIGH_LEVEL); =20 if (mTimerNotifyFunction !=3D NULL) { - // - // @bug : This does not handle missed timer interrupts - // mTimerNotifyFunction (mTimerPeriod); } =20 @@ -304,8 +303,8 @@ TimerDriverGenerateSoftInterrupt ( EFI_STATUS EFIAPI TimerDriverInitialize ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_STATUS Status; diff --git a/OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.h b/UefiCpuPkg/Loc= alApicTimerDxe/LocalApicTimerDxe.h similarity index 92% rename from OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.h rename to UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.h index a68b7b4c4bc4..93706995f8ab 100644 --- a/OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.h +++ b/UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.h @@ -50,8 +50,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent EFI_STATUS EFIAPI TimerDriverInitialize ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable ) ; =20 @@ -86,8 +86,8 @@ TimerDriverInitialize ( EFI_STATUS EFIAPI TimerDriverRegisterHandler ( - IN EFI_TIMER_ARCH_PROTOCOL *This, - IN EFI_TIMER_NOTIFY NotifyFunction + IN EFI_TIMER_ARCH_PROTOCOL *This, + IN EFI_TIMER_NOTIFY NotifyFunction ) ; =20 @@ -122,8 +122,8 @@ TimerDriverRegisterHandler ( EFI_STATUS EFIAPI TimerDriverSetTimerPeriod ( - IN EFI_TIMER_ARCH_PROTOCOL *This, - IN UINT64 TimerPeriod + IN EFI_TIMER_ARCH_PROTOCOL *This, + IN UINT64 TimerPeriod ) ; =20 @@ -146,8 +146,8 @@ TimerDriverSetTimerPeriod ( EFI_STATUS EFIAPI TimerDriverGetTimerPeriod ( - IN EFI_TIMER_ARCH_PROTOCOL *This, - OUT UINT64 *TimerPeriod + IN EFI_TIMER_ARCH_PROTOCOL *This, + OUT UINT64 *TimerPeriod ) ; =20 @@ -171,7 +171,7 @@ TimerDriverGetTimerPeriod ( EFI_STATUS EFIAPI TimerDriverGenerateSoftInterrupt ( - IN EFI_TIMER_ARCH_PROTOCOL *This + IN EFI_TIMER_ARCH_PROTOCOL *This ) ; =20 diff --git a/OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf b/UefiCpuPkg/L= ocalApicTimerDxe/LocalApicTimerDxe.inf similarity index 62% rename from OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf rename to UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf index 3ad28a148c5b..9980085fc776 100644 --- a/OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf +++ b/UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf @@ -1,6 +1,13 @@ ## @file # Local APIC timer driver that provides Timer Arch protocol. -# PcdFSBClock is defined in MdePkg and it should be set by the consumer. +# +# This driver is to support fixed frequency. If a real platform happens +# to have fixed frequency, then it can be used. In this case the consumer +# should set PcdFSBClock which is defined in MdePkg. +# +# Another restriction is that LocalApicTimerDxe cannot coexist with +# SourceLevelDebug (which rely on Local Apic Timer). Anyone who choose +# this driver as the DXE timer dirver should be aware of it. # # Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.
# Copyright (c) 2019, Citrix Systems, Inc. @@ -15,13 +22,17 @@ FILE_GUID =3D 52fe8196-f9de-4d07-b22f-51f77a0e7c41 MODULE_TYPE =3D DXE_DRIVER VERSION_STRING =3D 1.0 - ENTRY_POINT =3D TimerDriverInitialize =20 +# +# The following information is for reference only and not required by the = build tools. +# +# VALID_ARCHITECTURES =3D IA32 X64 +# + [Packages] MdePkg/MdePkg.dec UefiCpuPkg/UefiCpuPkg.dec - OvmfPkg/OvmfPkg.dec =20 [LibraryClasses] UefiBootServicesTableLib diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc index 870b45284087..00cf1286a3ca 100644 --- a/UefiCpuPkg/UefiCpuPkg.dsc +++ b/UefiCpuPkg/UefiCpuPkg.dsc @@ -172,6 +172,7 @@ } UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf + UefiCpuPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf =20 [BuildOptions] *_*_*_CC_FLAGS =3D -D DISABLE_NEW_DEPRECATED_INTERFACES --=20 2.29.2.windows.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#84738): https://edk2.groups.io/g/devel/message/84738 Mute This Topic: https://groups.io/mt/87696613/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-