///\r
BOOLEAN mEnableLocking = TRUE;\r
\r
+//\r
+// It will record the current boot error flag before EndOfDxe.\r
+//\r
+VAR_ERROR_FLAG mCurrentBootVarErrFlag = VAR_ERROR_FLAG_NO_ERROR;\r
\r
/**\r
Routine used to track statistical information about variable usage. \r
}\r
);\r
\r
+ if (!mEndOfDxe) {\r
+ //\r
+ // Before EndOfDxe, just record the current boot variable error flag to local variable,\r
+ // and leave the variable error flag in NV flash as the last boot variable error flag.\r
+ // After EndOfDxe in InitializeVarErrorFlag (), the variable error flag in NV flash\r
+ // will be initialized to this local current boot variable error flag.\r
+ //\r
+ mCurrentBootVarErrFlag &= Flag;\r
+ return;\r
+ }\r
+\r
//\r
// Record error flag (it should have be initialized).\r
//\r
return;\r
}\r
\r
- Flag = VAR_ERROR_FLAG_NO_ERROR;\r
+ Flag = mCurrentBootVarErrFlag;\r
DEBUG ((EFI_D_INFO, "Initialize variable error flag (%02x)\n", Flag));\r
\r
Status = FindVariable (\r