diff options
author | mdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-08-27 01:01:44 +0000 |
---|---|---|
committer | mdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-08-27 01:01:44 +0000 |
commit | 580ad4a03d84ba7a97f10a27c3838c178227b685 (patch) | |
tree | 9b5bec9c70ff068ff98a755964f6f988d45d62c1 /MdePkg/Library/SecPeiDxeTimerLibCpu | |
parent | 055a4a3d795b1ba5f00ba9a3241a5b8fde41b141 (diff) | |
download | edk2-platforms-580ad4a03d84ba7a97f10a27c3838c178227b685.tar.xz |
Handle case when PAL calls 13 or 14 may not be available.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3708 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/SecPeiDxeTimerLibCpu')
-rw-r--r-- | MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c b/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c index 8d3c3fd6f3..9fe33ec134 100644 --- a/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c +++ b/MdePkg/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;
}
|