UefiPayloadPkg/UefiPayloadPkg.dsc | 16 ++++++++++++++++ UefiPayloadPkg/UefiPayloadPkg.fdf | 4 ++++ 2 files changed, 20 insertions(+)
Add macro to enable selection of timer
- HPET: UEFI Payload will use HPET timer
- LAPIC: UEFI Payload will use local APIC timer
Signed-off-by: Hua Ma <hua.ma@intel.com>
---
UefiPayloadPkg/UefiPayloadPkg.dsc | 16 ++++++++++++++++
UefiPayloadPkg/UefiPayloadPkg.fdf | 4 ++++
2 files changed, 20 insertions(+)
diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc
index b8b13ad201..4f195c1e52 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc
@@ -139,6 +139,12 @@
# Note: for emulation platform such as QEMU, this may not work and should set it as FALSE
DEFINE CPU_TIMER_LIB_ENABLE = TRUE
+ #
+ # HPET: UEFI Payload will use HPET timer
+ # LAPIC: UEFI Payload will use local APIC timer
+ #
+ DEFINE TIMER_SUPPORT = HPET
+
DEFINE MULTIPLE_DEBUG_PORT_SUPPORT = FALSE
[BuildOptions]
@@ -676,7 +682,17 @@
MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
+!if $(TIMER_SUPPORT) == "HPET"
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
+!elseif $(TIMER_SUPPORT) == "LAPIC"
+ OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf {
+ <LibraryClasses>
+ NestedInterruptTplLib|OvmfPkg/Library/NestedInterruptTplLib/NestedInterruptTplLib.inf
+ }
+!else
+ !error "Invalid TIMER_SUPPORT"
+!endif
+
MdeModulePkg/Universal/Metronome/Metronome.inf
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
diff --git a/UefiPayloadPkg/UefiPayloadPkg.fdf b/UefiPayloadPkg/UefiPayloadPkg.fdf
index 835798be1c..7d04a8cffd 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.fdf
+++ b/UefiPayloadPkg/UefiPayloadPkg.fdf
@@ -161,7 +161,11 @@ INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
!endif
INF UefiCpuPkg/CpuDxe/CpuDxe.inf
+!if $(TIMER_SUPPORT) == "HPET"
INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
+!elseif $(TIMER_SUPPORT) == "LAPIC"
+INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf
+!endif
INF MdeModulePkg/Universal/Metronome/Metronome.inf
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
--
2.39.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113219): https://edk2.groups.io/g/devel/message/113219
Mute This Topic: https://groups.io/mt/103538255/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Hi Hua,
Please make TIMER_SUPPORT a FixedAtBuiildPcd instead of a build flag. Something like PcdDxeTimerSelection or similar.
Thanks,
Nate
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ma, Hua
> Sent: Thursday, January 4, 2024 9:39 PM
> To: devel@edk2.groups.io
> Cc: Ma, Hua <hua.ma@intel.com>
> Subject: [edk2-devel] [PATCH] UefiPayloadPkg: Add macro to enable selection
> of timer
>
> Add macro to enable selection of timer
>
> - HPET: UEFI Payload will use HPET timer
> - LAPIC: UEFI Payload will use local APIC timer
>
> Signed-off-by: Hua Ma <hua.ma@intel.com>
> ---
> UefiPayloadPkg/UefiPayloadPkg.dsc | 16 ++++++++++++++++
> UefiPayloadPkg/UefiPayloadPkg.fdf | 4 ++++
> 2 files changed, 20 insertions(+)
>
> diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc
> b/UefiPayloadPkg/UefiPayloadPkg.dsc
> index b8b13ad201..4f195c1e52 100644
> --- a/UefiPayloadPkg/UefiPayloadPkg.dsc
> +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc
> @@ -139,6 +139,12 @@
> # Note: for emulation platform such as QEMU, this may not work and should
> set it as FALSE
> DEFINE CPU_TIMER_LIB_ENABLE = TRUE
>
> + #
> + # HPET: UEFI Payload will use HPET timer # LAPIC: UEFI Payload will
> + use local APIC timer #
> + DEFINE TIMER_SUPPORT = HPET
> +
> DEFINE MULTIPLE_DEBUG_PORT_SUPPORT = FALSE
>
> [BuildOptions]
> @@ -676,7 +682,17 @@
>
> MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuAp
> p.inf
>
>
> +!if $(TIMER_SUPPORT) == "HPET"
> PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
> +!elseif $(TIMER_SUPPORT) == "LAPIC"
> + OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf {
> + <LibraryClasses>
> +
> +NestedInterruptTplLib|OvmfPkg/Library/NestedInterruptTplLib/NestedInter
> +ruptTplLib.inf
> + }
> +!else
> + !error "Invalid TIMER_SUPPORT"
> +!endif
> +
> MdeModulePkg/Universal/Metronome/Metronome.inf
> MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
> MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
> diff --git a/UefiPayloadPkg/UefiPayloadPkg.fdf
> b/UefiPayloadPkg/UefiPayloadPkg.fdf
> index 835798be1c..7d04a8cffd 100644
> --- a/UefiPayloadPkg/UefiPayloadPkg.fdf
> +++ b/UefiPayloadPkg/UefiPayloadPkg.fdf
> @@ -161,7 +161,11 @@ INF
> MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
> !endif
> INF UefiCpuPkg/CpuDxe/CpuDxe.inf
>
> +!if $(TIMER_SUPPORT) == "HPET"
> INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
> +!elseif $(TIMER_SUPPORT) == "LAPIC"
> +INF OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf
> +!endif
> INF MdeModulePkg/Universal/Metronome/Metronome.inf
> INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
> INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
> --
> 2.39.1.windows.1
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113503): https://edk2.groups.io/g/devel/message/113503
Mute This Topic: https://groups.io/mt/103538255/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.