Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.d...@intel.com> --- .../Source/C/Include/Common/UefiInternalFormRepresentation.h | 9 +++++---- BaseTools/Source/C/VfrCompile/VfrFormPkg.h | 6 +++++- BaseTools/Source/C/VfrCompile/VfrSyntax.g | 4 ++++ 3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h index d17b633..b8ce637 100644 --- a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h +++ b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h @@ -713,14 +713,15 @@ typedef struct _EFI_IFR_QUESTION_HEADER { UINT16 VarOffset; } VarStoreInfo; UINT8 Flags; } EFI_IFR_QUESTION_HEADER; -#define EFI_IFR_FLAG_READ_ONLY 0x01 -#define EFI_IFR_FLAG_CALLBACK 0x04 -#define EFI_IFR_FLAG_RESET_REQUIRED 0x10 -#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80 +#define EFI_IFR_FLAG_READ_ONLY 0x01 +#define EFI_IFR_FLAG_CALLBACK 0x04 +#define EFI_IFR_FLAG_RESET_REQUIRED 0x10 +#define EFI_IFR_FLAG_RECONNECT_REQUIRED 0x40 +#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80 typedef struct _EFI_IFR_DEFAULTSTORE { EFI_IFR_OP_HEADER Header; EFI_STRING_ID DefaultName; UINT16 DefaultId; diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h index d2ff72c..84300a7 100644 --- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h +++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h @@ -420,11 +420,15 @@ public: _FLAG_CLEAR (Flags, 0x08); if (_FLAG_TEST_AND_CLEAR (Flags, EFI_IFR_FLAG_RESET_REQUIRED)) { mHeader->Flags |= EFI_IFR_FLAG_RESET_REQUIRED; } - + + if (_FLAG_TEST_AND_CLEAR (Flags, EFI_IFR_FLAG_RECONNECT_REQUIRED)) { + mHeader->Flags |= EFI_IFR_FLAG_RECONNECT_REQUIRED; + } + // // Set LateCheck Flag to compatible for framework flag // but it uses 0x20 as its flag, if in the future UEFI may take this flag // if (_FLAG_TEST_AND_CLEAR (Flags, 0x20)) { diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g index 17a62b4..fba8967 100644 --- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g +++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g @@ -189,10 +189,11 @@ VfrParserStart ( #token DefaultFlag("DEFAULT") "DEFAULT" #token ManufacturingFlag("MANUFACTURING") "MANUFACTURING" #token InteractiveFlag("INTERACTIVE") "INTERACTIVE" #token NVAccessFlag("NV_ACCESS") "NV_ACCESS" #token ResetRequiredFlag("RESET_REQUIRED") "RESET_REQUIRED" +#token ReconnectRequiredFlag("RECONNECT_REQUIRED") "RECONNECT_REQUIRED" #token LateCheckFlag("LATE_CHECK") "LATE_CHECK" #token ReadOnlyFlag("READ_ONLY") "READ_ONLY" #token OptionOnlyFlag("OPTIONS_ONLY") "OPTIONS_ONLY" #token Class("class") "class" #token Subclass("subclass") "subclass" @@ -1184,10 +1185,11 @@ vfrQuestionHeader[CIfrQuestionHeader & QHObj, EFI_QUESION_TYPE QType = QUESTION_ questionheaderFlagsField[UINT8 & Flags] : ReadOnlyFlag << $Flags |= 0x01; >> | InteractiveFlag << $Flags |= 0x04; >> | ResetRequiredFlag << $Flags |= 0x10; >> + | ReconnectRequiredFlag << $Flags |= 0x40; >> | O:OptionOnlyFlag << if (mCompatibleMode) { $Flags |= 0x80; } else { gCVfrErrorHandle.HandleWarning ( @@ -1840,10 +1842,11 @@ flagsField : Number | InteractiveFlag | ManufacturingFlag | DefaultFlag | ResetRequiredFlag + | ReconnectRequiredFlag | N:NVAccessFlag << if (!mCompatibleMode) { gCVfrErrorHandle.HandleWarning ( VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, N->getLine(), @@ -3499,10 +3502,11 @@ oneofoptionFlagsField [UINT8 & HFlags, UINT8 & LFlags] : N:Number << $LFlags |= _STOU8(N->getText(), N->getLine()); >> | "OPTION_DEFAULT" << $LFlags |= 0x10; >> | "OPTION_DEFAULT_MFG" << $LFlags |= 0x20; >> | InteractiveFlag << $HFlags |= 0x04; >> | ResetRequiredFlag << $HFlags |= 0x10; >> + | ReconnectRequiredFlag << $HFlags |= 0x40; >> | ManufacturingFlag << $LFlags |= 0x20; >> | DefaultFlag << $LFlags |= 0x10; >> | A:NVAccessFlag << if (mCompatibleMode) { $HFlags |= 0x08; -- 1.9.5.msysgit.1 ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel