diff --git a/Library/OcCpuLib/OcCpuLib.c b/Library/OcCpuLib/OcCpuLib.c index 844ccf009c2..42b445b7407 100644 --- a/Library/OcCpuLib/OcCpuLib.c +++ b/Library/OcCpuLib/OcCpuLib.c @@ -693,7 +693,7 @@ ScanAmdProcessor ( case AMD_CPU_EXT_FAMILY_1AH: if (Cpu->CPUFrequencyFromVMT == 0) { CofVid = AsmReadMsr64 (K10_PSTATE_STATUS); - CoreFrequencyID = (UINT16)BitFieldRead64 (CofVid, 0, 11); // 12-bit field for FID + CoreFrequencyID = (UINT8)BitFieldRead64 (CofVid, 0, 11); // 12-bit field for FID // On AMD Family 1Ah and later, if the Frequency ID (FID) exceeds 0x0f, // the core frequency is scaled by a factor of 5. This scaling behavior @@ -814,13 +814,10 @@ ScanAmdProcessor ( // if (MaxBusRatio == 0) { Cpu->FSBFrequency = 100000000; // 100 MHz like Intel part. + } else if (Cpu->ExtFamily == AMD_CPU_EXT_FAMILY_1AH) { + Cpu->FSBFrequency = DivU64x32 (Cpu->CPUFrequency, CoreFrequencyID); // No divisor for Family 1Ah } else { - // Special handling for Family 1Ah - if (Cpu->ExtFamily == AMD_CPU_EXT_FAMILY_1AH) { - Cpu->FSBFrequency = DivU64x32 (Cpu->CPUFrequency, CoreFrequencyID); // No divisor for Family 1Ah - } else { - Cpu->FSBFrequency = DivU64x32 (Cpu->CPUFrequency, MaxBusRatio); - } + Cpu->FSBFrequency = DivU64x32 (Cpu->CPUFrequency, MaxBusRatio); } } }