Hi Guo ,

yes, I know it is merged, and I have some update based on that change.

I get comments from Ray, and he suggests using BaseCpuTimerLib for Universal Payload by default.

The reason is that we only want to enable UPL on latest CPUs and they should all support the BaseCpuTimerLib. (qemu is the exception, and can be special handled by change its Macro)

I was convinced by Ray, so I send patch to modify the default value.

Sorry for changing the same content so soon.

 

BTW, seems I missed devel@edk2.groups.io when I sent the patch. Include it in the thread.

 

Thanks

Zhiguang

 


发件人: Dong, Guo <guo.dong@intel.com>
发送时间: 星期三, 一月 19, 2022 11:36 下午
收件人: Liu, Zhiguang
抄送: Ni, Ray; Ma, Maurice; You, Benjamin
主题: RE: [PATCH] UefiPayloadPkg: Use BaseCpuTimerLib for Universal Payload by default

 

Hi Zhiguang,

This patch was merged  on Monday. Did you make any changes to get this email?

Thanks,
Guo

-----Original Message-----
From: Liu, Zhiguang <zhiguang.liu@intel.com>
Sent: Wednesday, January 19, 2022 2:17 AM
To: devel@edk2.groups.io
Cc: Dong, Guo <guo.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Ma, Maurice <maurice.ma@intel.com>; You, Benjamin <benjamin.you@intel.com>
Subject: [PATCH] UefiPayloadPkg: Use BaseCpuTimerLib for Universal Payload by default

Current, a macro CPU_TIMER_LIB_ENABLE is added to determine which timerlib is used. BaseCpuTimerLib.inf is a better way and only fit for recent CPU.
Meanwhile, Universal Payload are only aimed to work with recent CPU.
Therefore, for Universal Payload, use the BaseCpuTimerLib by default

Cc: Guo Dong <guo.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Benjamin You <benjamin.you@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
---
 UefiPayloadPkg/UefiPayloadPkg.dsc | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc
index 65c1bd610e..1ce96a51c1 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc
@@ -111,10 +111,10 @@
   DEFINE SERIAL_DRIVER_ENABLE = TRUE   DEFINE PERFORMANCE_MEASUREMENT_ENABLE  = FALSE -  # For recent X86 CPU, 0x15 CPUID instruction will return Time Stamp Counter.-  # This is recommended way to get the time, and also how BaseCpuTimerLib works.-  # However, some CPU doesn't support this feature, so disable it by default.-  DEFINE CPU_TIMER_LIB_ENABLE  = FALSE+  # For recent X86 CPU, 0x15 CPUID instruction will return Time Stamp Counter Frequence.+  # This is how BaseCpuTimerLib works, and a recommended way to get Frequence, so set the default value as TRUE.+  # Note: for emulation platform such as QEMU, this may not work and should set it as FALSE+  DEFINE CPU_TIMER_LIB_ENABLE  = TRUE  [BuildOptions]   *_*_*_CC_FLAGS                 = -D DISABLE_NEW_DEPRECATED_INTERFACES@@ -222,7 +222,7 @@
   #   # Platform   #-!if $(CPU_TIMER_LIB_ENABLE) == TRUE+!if $(CPU_TIMER_LIB_ENABLE) == TRUE && $(UNIVERSAL_PAYLOAD) == TRUE   TimerLib|UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf !else   TimerLib|UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf--
2.32.0.windows.2