mirror of https://github.com/acidanthera/audk.git
Vlv2TbltDevicePkg: Remove reference deprecated macro.
Cc: Jeff Fan <jeff.fan@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: David Wei <david.wei@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
This commit is contained in:
parent
309e799ba1
commit
1382ffb629
|
@ -196,16 +196,22 @@ SetPeiCacheMode (
|
|||
// Cache the flash area to improve the boot performance in PEI phase
|
||||
//
|
||||
Index = 0;
|
||||
MtrrSetting.Variables.Mtrr[0].Base = (FixedPcdGet32 (PcdFlashAreaBaseAddress) | CacheWriteProtected);
|
||||
MtrrSetting.Variables.Mtrr[0].Mask = ((~((UINT64)(FixedPcdGet32 (PcdFlashAreaSize) - 1))) & ValidMtrrAddressMask) | MTRR_LIB_CACHE_MTRR_ENABLED;
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[0].Base)->Uint64 = FixedPcdGet32 (PcdFlashAreaBaseAddress);
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[0].Base)->Bits.Type = CacheWriteProtected;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[0].Mask)->Uint64 = (~((UINT64)(FixedPcdGet32 (PcdFlashAreaSize) - 1))) & ValidMtrrAddressMask;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[0].Mask)->Bits.V = 1;
|
||||
|
||||
Index ++;
|
||||
|
||||
MemOverflow =0;
|
||||
while (MaxMemoryLength > MemOverflow){
|
||||
MtrrSetting.Variables.Mtrr[Index].Base = (MemOverflow & ValidMtrrAddressMask) | CacheWriteBack;
|
||||
MemoryLength = MaxMemoryLength - MemOverflow;
|
||||
MemoryLength = GetPowerOfTwo64 (MemoryLength);
|
||||
MtrrSetting.Variables.Mtrr[Index].Mask = ((~(MemoryLength - 1)) & ValidMtrrAddressMask) | MTRR_LIB_CACHE_MTRR_ENABLED;
|
||||
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Base)->Uint64 = MemOverflow & ValidMtrrAddressMask;
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Base)->Bits.Type = CacheWriteBack;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Mask)->Uint64 = (~(MemoryLength - 1)) & ValidMtrrAddressMask;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Mask)->Bits.V = 1;
|
||||
|
||||
MemOverflow += MemoryLength;
|
||||
Index++;
|
||||
|
@ -216,23 +222,28 @@ SetPeiCacheMode (
|
|||
while (MaxMemoryLength != MemoryLength) {
|
||||
MemoryLengthUc = GetPowerOfTwo64 (MaxMemoryLength - MemoryLength);
|
||||
|
||||
MtrrSetting.Variables.Mtrr[Index].Base = ((MaxMemoryLength - MemoryLengthUc) & ValidMtrrAddressMask) | CacheUncacheable;
|
||||
MtrrSetting.Variables.Mtrr[Index].Mask= ((~(MemoryLengthUc - 1)) & ValidMtrrAddressMask) | MTRR_LIB_CACHE_MTRR_ENABLED;
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Base)->Uint64 = (MaxMemoryLength - MemoryLengthUc) & ValidMtrrAddressMask;
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Base)->Bits.Type = CacheUncacheable;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Mask)->Uint64 = (~(MemoryLengthUc - 1)) & ValidMtrrAddressMask;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Mask)->Bits.V = 1;
|
||||
|
||||
MaxMemoryLength -= MemoryLengthUc;
|
||||
Index++;
|
||||
}
|
||||
|
||||
MemOverflow =0x100000000;
|
||||
while (HighMemoryLength > 0) {
|
||||
MtrrSetting.Variables.Mtrr[Index].Base = (MemOverflow & ValidMtrrAddressMask) | CacheWriteBack;
|
||||
|
||||
MemoryLength = HighMemoryLength;
|
||||
MemoryLength = GetPowerOfTwo64 (MemoryLength);
|
||||
|
||||
if (MemoryLength > MemOverflow){
|
||||
MemoryLength = MemOverflow;
|
||||
}
|
||||
|
||||
MtrrSetting.Variables.Mtrr[Index].Mask = ((~(MemoryLength - 1)) & ValidMtrrAddressMask) | MTRR_LIB_CACHE_MTRR_ENABLED;
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Base)->Uint64 = MemOverflow & ValidMtrrAddressMask;
|
||||
((MSR_IA32_MTRR_PHYSBASE_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Base)->Bits.Type = CacheWriteBack;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Mask)->Uint64 = (~(MemoryLength - 1)) & ValidMtrrAddressMask;
|
||||
((MSR_IA32_MTRR_PHYSMASK_REGISTER *) &MtrrSetting.Variables.Mtrr[Index].Mask)->Bits.V = 1;
|
||||
|
||||
MemOverflow += MemoryLength;
|
||||
HighMemoryLength -= MemoryLength;
|
||||
|
|
|
@ -84,6 +84,7 @@ Abstract:
|
|||
#include <Guid/PlatformCpuInfo.h>
|
||||
#include <Guid/OsSelection.h>
|
||||
#include <Guid/SmramMemoryReserve.h>
|
||||
#include <Register/Msr.h>
|
||||
|
||||
#define SMC_LAN_ON 0x46
|
||||
#define SMC_LAN_OFF 0x47
|
||||
|
|
Loading…
Reference in New Issue