From 34d609402bfec75c51a02deac7733c9a0128f55d Mon Sep 17 00:00:00 2001 From: Akshay Behl Date: Sun, 8 Jun 2025 23:09:04 +0530 Subject: UefiCpuPkg/CpuTimerDxeRiscV64: Use DT based timer frequency in Timer driver There is GetPerformanceCounterProperties() that relies on Device Tree to fetch timer frequency and removes the dependency from the PCDs, use that instead. Signed-off-by: Akshay Behl Co-authored-by: Dhaval Sharma --- UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf | 2 +- UefiCpuPkg/CpuTimerDxeRiscV64/Timer.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf b/UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf index f2a2cf1..812b674 100644 --- a/UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf +++ b/UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf @@ -32,6 +32,7 @@ CpuLib UefiBootServicesTableLib UefiDriverEntryPoint + TimerLib [LibraryClasses.RISCV64] RiscVSbiLib @@ -42,7 +43,6 @@ [Pcd] gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride ## CONSUMES - gUefiCpuPkgTokenSpaceGuid.PcdCpuCoreCrystalClockFrequency ## CONSUMES [Protocols] gEfiCpuArchProtocolGuid ## CONSUMES diff --git a/UefiCpuPkg/CpuTimerDxeRiscV64/Timer.c b/UefiCpuPkg/CpuTimerDxeRiscV64/Timer.c index 216f48a..14780e4 100644 --- a/UefiCpuPkg/CpuTimerDxeRiscV64/Timer.c +++ b/UefiCpuPkg/CpuTimerDxeRiscV64/Timer.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "Timer.h" // @@ -114,7 +115,7 @@ TimerInterruptHandler ( mTimerNotifyFunction ( DivU64x32 ( EFI_TIMER_PERIOD_SECONDS (PeriodStart - mLastPeriodStart), - PcdGet64 (PcdCpuCoreCrystalClockFrequency) + GetPerformanceCounterProperties (NULL, NULL) ) ); } @@ -129,7 +130,7 @@ TimerInterruptHandler ( PeriodStart += DivU64x32 ( MultU64x32 ( mTimerPeriod, - PcdGet64 (PcdCpuCoreCrystalClockFrequency) + GetPerformanceCounterProperties (NULL, NULL) ), 1000000u ); // convert to tick @@ -232,7 +233,7 @@ TimerDriverSetTimerPeriod ( PeriodStart += DivU64x32 ( MultU64x32 ( mTimerPeriod, - PcdGet64 (PcdCpuCoreCrystalClockFrequency) + GetPerformanceCounterProperties (NULL, NULL) ), 1000000u ); // convert to tick -- cgit v1.1