diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h index 1cea4f0e25..9ef6f07787 100644 --- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h +++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h @@ -1455,7 +1455,7 @@ public: return Ret; } - if (LFlags & EFI_IFR_DISPLAY) { + if (LFlags & EDKII_IFR_DISPLAY_BIT) { mOneOf->Flags = LFlags; } else { mOneOf->Flags = LFlags | EDKII_IFR_DISPLAY_UINT_DEC_BIT; diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g index 3f896c6f1a..55fd067f8a 100644 --- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g +++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g @@ -2930,6 +2930,7 @@ vfrNumericFlags [CIfrNumeric & NObj, UINT32 LineNum] : } _PCATCH(NObj.SetFlags (HFlags, LFlags, IsDisplaySpecified), LineNum); } else if ((_GET_CURRQEST_VARTINFO().mVarStoreId != EFI_VARSTORE_ID_INVALID) && (_GET_CURRQEST_VARTINFO().mIsBitVar)) { + LFlags &= EDKII_IFR_DISPLAY_BIT; LFlags |= (EDKII_IFR_NUMERIC_SIZE_BIT & (_GET_CURRQEST_VARSIZE())); _PCATCH(NObj.SetFlagsForBitField (HFlags, LFlags, IsDisplaySpecified), LineNum); } @@ -3105,6 +3106,8 @@ vfrOneofFlagsField [CIfrOneOf & OObj, UINT32 LineNum] : } _PCATCH(OObj.SetFlags (HFlags, LFlags), LineNum); } else if (_GET_CURRQEST_VARTINFO().mVarStoreId != EFI_VARSTORE_ID_INVALID) { + LFlags &= EDKII_IFR_DISPLAY_BIT; + LFlags |= (EDKII_IFR_NUMERIC_SIZE_BIT & (_GET_CURRQEST_VARSIZE())); _PCATCH(OObj.SetFlagsForBitField (HFlags, LFlags), LineNum); } >>