\r
#define QUARK_SOC_CPUID_FAMILY_MODEL_STEPPING 0x590\r
\r
+#define CACHE_MTRR_ENABLED 0x800\r
+#define CACHE_FIXED_MTRR_ENABLED 0x400\r
+#define IA32_MTRR_CAP_VCNT_MASK 0xFF\r
+\r
//\r
// Context to save and restore when MTRRs are programmed\r
//\r
{\r
UINT32 VariableMtrrCount;\r
\r
- VariableMtrrCount = (UINT32)(MtrrRegisterRead (QUARK_NC_HOST_BRIDGE_IA32_MTRR_CAP) & MTRR_LIB_IA32_MTRR_CAP_VCNT_MASK);\r
+ VariableMtrrCount = (UINT32)(MtrrRegisterRead (QUARK_NC_HOST_BRIDGE_IA32_MTRR_CAP) & IA32_MTRR_CAP_VCNT_MASK);\r
ASSERT (VariableMtrrCount <= MTRR_NUMBER_OF_VARIABLE_MTRR);\r
return VariableMtrrCount;\r
}\r
\r
ZeroMem (VariableMtrr, sizeof (VARIABLE_MTRR) * MTRR_NUMBER_OF_VARIABLE_MTRR);\r
for (Index = 0, UsedMtrr = 0; Index < FirmwareVariableMtrrCount; Index++) {\r
- if ((VariableSettings->Mtrr[Index].Mask & MTRR_LIB_CACHE_MTRR_ENABLED) != 0) {\r
+ if ((VariableSettings->Mtrr[Index].Mask & CACHE_MTRR_ENABLED) != 0) {\r
VariableMtrr[Index].Msr = (UINT32)Index;\r
VariableMtrr[Index].BaseAddress = (VariableSettings->Mtrr[Index].Base & MtrrValidAddressMask);\r
VariableMtrr[Index].Length = ((~(VariableSettings->Mtrr[Index].Mask & MtrrValidAddressMask)) & MtrrValidBitsMask) + 1;\r
// MTRR Physical Mask\r
//\r
TempQword = ~(Length - 1);\r
- VariableSettings->Mtrr[MtrrNumber].Mask = (TempQword & MtrrValidAddressMask) | MTRR_LIB_CACHE_MTRR_ENABLED;\r
+ VariableSettings->Mtrr[MtrrNumber].Mask = (TempQword & MtrrValidAddressMask) | CACHE_MTRR_ENABLED;\r
}\r
\r
\r
}\r
MtrrType = MTRR_CACHE_INVALID_TYPE;\r
\r
- if ((TempQword & MTRR_LIB_CACHE_MTRR_ENABLED) == 0) {\r
+ if ((TempQword & CACHE_MTRR_ENABLED) == 0) {\r
return CacheUncacheable;\r
}\r
\r
// If address is less than 1M, then try to go through the fixed MTRR\r
//\r
if (Address < BASE_1MB) {\r
- if ((TempQword & MTRR_LIB_CACHE_FIXED_MTRR_ENABLED) != 0) {\r
+ if ((TempQword & CACHE_FIXED_MTRR_ENABLED) != 0) {\r
//\r
// Go through the fixed MTRR\r
//\r
}\r
if (MtrrSetting != NULL) {\r
MtrrSetting->Fixed.Mtrr[MsrNum] = (MtrrSetting->Fixed.Mtrr[MsrNum] & ~ClearMask) | OrMask;\r
- MtrrSetting->MtrrDefType |= MTRR_LIB_CACHE_FIXED_MTRR_ENABLED;\r
+ MtrrSetting->MtrrDefType |= CACHE_FIXED_MTRR_ENABLED;\r
} else {\r
if (!FixedSettingsValid[MsrNum]) {\r
WorkingFixedSettings.Mtrr[MsrNum] = MtrrRegisterRead (mMtrrLibFixedMtrrTable[MsrNum].Msr);\r
// Find first unused MTRR\r
//\r
for (MsrNum = 0; MsrNum < VariableMtrrCount; MsrNum++) {\r
- if ((VariableSettings->Mtrr[MsrNum].Mask & MTRR_LIB_CACHE_MTRR_ENABLED) == 0) {\r
+ if ((VariableSettings->Mtrr[MsrNum].Mask & CACHE_MTRR_ENABLED) == 0) {\r
break;\r
}\r
}\r
// Find unused MTRR\r
//\r
for (; MsrNum < VariableMtrrCount; MsrNum++) {\r
- if ((VariableSettings->Mtrr[MsrNum].Mask & MTRR_LIB_CACHE_MTRR_ENABLED) == 0) {\r
+ if ((VariableSettings->Mtrr[MsrNum].Mask & CACHE_MTRR_ENABLED) == 0) {\r
break;\r
}\r
}\r
// Find unused MTRR\r
//\r
for (; MsrNum < VariableMtrrCount; MsrNum++) {\r
- if ((VariableSettings->Mtrr[MsrNum].Mask & MTRR_LIB_CACHE_MTRR_ENABLED) == 0) {\r
+ if ((VariableSettings->Mtrr[MsrNum].Mask & CACHE_MTRR_ENABLED) == 0) {\r
break;\r
}\r
}\r
// Find unused MTRR\r
//\r
for (; MsrNum < VariableMtrrCount; MsrNum++) {\r
- if ((VariableSettings->Mtrr[MsrNum].Mask & MTRR_LIB_CACHE_MTRR_ENABLED) == 0) {\r
+ if ((VariableSettings->Mtrr[MsrNum].Mask & CACHE_MTRR_ENABLED) == 0) {\r
break;\r
}\r
}\r
DEBUG((DEBUG_CACHE, " Status = %r\n", Status));\r
if (!RETURN_ERROR (Status)) {\r
if (MtrrSetting != NULL) {\r
- MtrrSetting->MtrrDefType |= MTRR_LIB_CACHE_MTRR_ENABLED;\r
+ MtrrSetting->MtrrDefType |= CACHE_MTRR_ENABLED;\r
}\r
MtrrDebugPrintAllMtrrsWorker (MtrrSetting);\r
}\r