summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2007-08-27 01:01:44 +0000
committermdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2007-08-27 01:01:44 +0000
commitb1e06d22aa02bae89ddaf1058af33c76cf6d30aa (patch)
treeea2009f14dd6c668d439fa76712d136753a4a660
parent82baff17cc11cde25d467b3ea900e8ed72121cb9 (diff)
downloadedk2-b1e06d22aa02bae89ddaf1058af33c76cf6d30aa.zip
edk2-b1e06d22aa02bae89ddaf1058af33c76cf6d30aa.tar.gz
edk2-b1e06d22aa02bae89ddaf1058af33c76cf6d30aa.tar.bz2
Handle case when PAL calls 13 or 14 may not be available.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/MdePkg@3708 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c b/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c
index 8d3c3fd..9fe33ec 100644
--- a/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c
+++ b/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c
@@ -152,13 +152,6 @@ GetPerformanceCounterProperties (
PAL_CALL_RETURN PalRet;
UINT64 BaseFrequence;
- PalRet = PalCallStatic (NULL, 13, 0, 0, 0);
- ASSERT (PalRet.Status == 0);
- BaseFrequence = PalRet.r9;
-
- PalRet = PalCallStatic (NULL, 14, 0, 0, 0);
- ASSERT (PalRet.Status == 0);
-
if (StartValue != NULL) {
*StartValue = 0;
}
@@ -167,5 +160,16 @@ GetPerformanceCounterProperties (
*EndValue = (UINT64)(-1);
}
+ PalRet = PalCallStatic (NULL, 13, 0, 0, 0);
+ if (PalRet.Status != 0) {
+ return 1000000;
+ }
+ BaseFrequence = PalRet.r9;
+
+ PalRet = PalCallStatic (NULL, 14, 0, 0, 0);
+ if (PalRet.Status != 0) {
+ return 1000000;
+ }
+
return BaseFrequence * (PalRet.r11 >> 32) / (UINT32)PalRet.r11;
}