Fix an issue on FixedMtreProgramming - AND/OR mask incorrect.
authorjyao1 <jyao1>
Sun, 28 Sep 2014 01:07:13 +0000 (01:07 +0000)
committerjyao1 <jyao1@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 28 Sep 2014 01:07:13 +0000 (01:07 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0

signed-off by: Yao, Jiewen <jiewen.yao@intel.com>
reviewed by: Rangarajan, Ravi P <ravi.p.rangarajan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16181 6f19259b-4bc3-4df7-8a09-765794883524

IntelFspPkg/Library/BaseCacheLib/CacheLib.c

index 5c77962..40d404d 100644 (file)
@@ -381,7 +381,7 @@ ProgramFixedMtrr (
     *Len -= mFixedMtrrTable[MsrNum].Length;\r
     *Base += mFixedMtrrTable[MsrNum].Length;\r
   }\r
-  TempQword = AsmReadMsr64 (mFixedMtrrTable[MsrNum].Msr) & (~ClearMask | OrMask);\r
+  TempQword = (AsmReadMsr64 (mFixedMtrrTable[MsrNum].Msr) & (~ClearMask)) | OrMask;\r
   AsmWriteMsr64 (mFixedMtrrTable[MsrNum].Msr, TempQword);\r
 \r
   return EFI_SUCCESS;\r