From b219108e5154c92975ff56cfa8e022c89e6f410b Mon Sep 17 00:00:00 2001 From: vanjeff Date: Tue, 7 Nov 2006 08:43:22 +0000 Subject: [PATCH] added PcdPlatformBusSpeed for BaseTimerLibLocalApic, thus this timer instance needn't depend on types of CPUs git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1909 6f19259b-4bc3-4df7-8a09-765794883524 --- EdkModulePkg/EdkModulePkg.fpd | 56 +++ EdkNt32Pkg/Nt32.fpd | 16 + .../BaseTimerLibLocalApic.msa | 10 + .../BaseTimerLibLocalApic/x86TimerLib.c | 15 +- MdePkg/MdePkg.fpd | 333 +++++++++--------- MdePkg/MdePkg.spd | 23 +- 6 files changed, 270 insertions(+), 183 deletions(-) diff --git a/EdkModulePkg/EdkModulePkg.fpd b/EdkModulePkg/EdkModulePkg.fpd index a2da834923..6a7d0bb46e 100644 --- a/EdkModulePkg/EdkModulePkg.fpd +++ b/EdkModulePkg/EdkModulePkg.fpd @@ -858,6 +858,14 @@ 1 0 + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + NULL @@ -4863,6 +4871,14 @@ 1 0x06 + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + NULL @@ -5032,6 +5048,14 @@ 1 0x06 + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + NULL @@ -5201,6 +5225,14 @@ 1 0x06 + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + NULL @@ -6036,6 +6068,14 @@ 1 0 + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + NULL @@ -10075,6 +10115,14 @@ 1 0 + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + NULL @@ -14118,6 +14166,14 @@ 1 0 + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + NULL diff --git a/EdkNt32Pkg/Nt32.fpd b/EdkNt32Pkg/Nt32.fpd index 42e33a691f..0d95efdd2d 100644 --- a/EdkNt32Pkg/Nt32.fpd +++ b/EdkNt32Pkg/Nt32.fpd @@ -578,6 +578,14 @@ 1 TRUE + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + FV_RECOVERY @@ -2529,6 +2537,14 @@ 1 FALSE + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + FV_RECOVERY diff --git a/MdePkg/Library/BaseTimerLibLocalApic/BaseTimerLibLocalApic.msa b/MdePkg/Library/BaseTimerLibLocalApic/BaseTimerLibLocalApic.msa index f24d6daabe..f1d22f2603 100644 --- a/MdePkg/Library/BaseTimerLibLocalApic/BaseTimerLibLocalApic.msa +++ b/MdePkg/Library/BaseTimerLibLocalApic/BaseTimerLibLocalApic.msa @@ -35,6 +35,9 @@ DebugLib + + PcdLib + x86TimerLib.c @@ -49,4 +52,11 @@ EFI_SPECIFICATION_VERSION 0x00020000 EDK_RELEASE_VERSION 0x00020000 + + + PcdPlatformBusSpeed + gEfiMdePkgTokenSpaceGuid + This value is the Bus Speed on platform + + \ No newline at end of file diff --git a/MdePkg/Library/BaseTimerLibLocalApic/x86TimerLib.c b/MdePkg/Library/BaseTimerLibLocalApic/x86TimerLib.c index 87c33a7c5d..d2935cf83a 100644 --- a/MdePkg/Library/BaseTimerLibLocalApic/x86TimerLib.c +++ b/MdePkg/Library/BaseTimerLibLocalApic/x86TimerLib.c @@ -19,18 +19,9 @@ **/ // -// The following 2 arrays are used in calculating the frequency of local APIC +// The following array is used in calculating the frequency of local APIC // timer. Refer to IA-32 developers' manual for more details. // - -GLOBAL_REMOVE_IF_UNREFERENCED -CONST UINT32 mTimerLibLocalApicFrequencies[] = { - 100000000, - 133000000, - 200000000, - 166000000 -}; - GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT8 mTimerLibLocalApicDivisor[] = { 0x02, 0x04, 0x08, 0x10, @@ -73,7 +64,7 @@ InternalX86GetTimerFrequency ( ) { return - mTimerLibLocalApicFrequencies[AsmMsrBitFieldRead32 (44, 16, 18)] / + PcdGet32(PcdPlatformBusSpeed) / mTimerLibLocalApicDivisor[MmioBitFieldRead32 (ApicBase + 0x3e0, 0, 3)]; } @@ -255,5 +246,5 @@ GetPerformanceCounterProperties ( *EndValue = 0; } - return (UINT64)InternalX86GetTimerFrequency (ApicBase); + return PcdGet32(PcdPlatformBusSpeed); } diff --git a/MdePkg/MdePkg.fpd b/MdePkg/MdePkg.fpd index e0213a5d87..e4a3fa3f12 100644 --- a/MdePkg/MdePkg.fpd +++ b/MdePkg/MdePkg.fpd @@ -1,15 +1,5 @@ - - + MdePkgAll 0fe7dd3e-0969-48c3-8cd2-de9a190088e2 @@ -31,6 +21,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. DEBUG RELEASE UNIFIED Build/Mde + + DEFAULT + dummy.fdf @@ -113,6 +106,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + + NULL LIBRARY @@ -661,6 +664,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + + NULL LIBRARY @@ -1221,6 +1234,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + + NULL LIBRARY @@ -1769,6 +1792,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + 4 + 200000000 + + NULL LIBRARY @@ -2254,153 +2287,135 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - - - - - -
-
-
- - - - - - - - - -
- - - - - - - - -
- - - - - - - - -
- -
-
-
- - - - - - - - -
-
-
- - - - - - - -
-
- - - - - - - -
-
-
- - - - - - - - - - -
-
-
-
- - - - - - - - - - -
-
-
-
- - - - - - - - - - -
-
-
-
- - - - - - - - -
-
-
-
- - - - - - - -
-
-
-
- - - - - - - - -
- - - - + + + + + +
+
+
+ + + + + + + + +
+ + + + + + + +
+ + + + + + +
+ +
+
+
+ + + + + + + +
+
+
+ + + + + + +
+
+ + + + + + +
+
+
+ + + + + + + +
+
+
+
+ + + + + + + + +
+
+
+
+ + + + + + + + +
+
+
+
+ + + + + + + +
+
+
+
+ + + + + + +
+
+
+
+ + + + + + + +
+ + + diff --git a/MdePkg/MdePkg.spd b/MdePkg/MdePkg.spd index cac04220c9..5abbddaa61 100644 --- a/MdePkg/MdePkg.spd +++ b/MdePkg/MdePkg.spd @@ -1,15 +1,5 @@ - - + MdePkg 5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec @@ -28,7 +18,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 - true + false false @@ -2334,5 +2324,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 0xE0000000 The base address of PCI Express MMIO window. + + PcdPlatformBusSpeed + 0x0000000c + gEfiMdePkgTokenSpaceGuid + UINT32 + FIXED_AT_BUILD PATCHABLE_IN_MODULE + 200000000 + This value is the Bus Speed on platform + \ No newline at end of file -- 2.39.2