diff --git a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h index d17b633c2e..8c2edf20f3 100644 --- a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h +++ b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h @@ -6,7 +6,7 @@ @par Revision Reference: These definitions are from UEFI2.1. - Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this @@ -715,10 +715,11 @@ typedef struct _EFI_IFR_QUESTION_HEADER { 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; diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h index d2ff72c155..84300a7584 100644 --- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h +++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h @@ -422,7 +422,11 @@ public: 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 diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g index 17a62b409a..fba8967fd2 100644 --- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g +++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g @@ -191,6 +191,7 @@ VfrParserStart ( #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" @@ -1186,6 +1187,7 @@ questionheaderFlagsField[UINT8 & Flags] : ReadOnlyFlag << $Flags |= 0x01; >> | InteractiveFlag << $Flags |= 0x04; >> | ResetRequiredFlag << $Flags |= 0x10; >> + | ReconnectRequiredFlag << $Flags |= 0x40; >> | O:OptionOnlyFlag << if (mCompatibleMode) { $Flags |= 0x80; @@ -1842,6 +1844,7 @@ flagsField : | ManufacturingFlag | DefaultFlag | ResetRequiredFlag + | ReconnectRequiredFlag | N:NVAccessFlag << if (!mCompatibleMode) { gCVfrErrorHandle.HandleWarning ( @@ -3501,6 +3504,7 @@ oneofoptionFlagsField [UINT8 & HFlags, UINT8 & LFlags] : | "OPTION_DEFAULT_MFG" << $LFlags |= 0x20; >> | InteractiveFlag << $HFlags |= 0x04; >> | ResetRequiredFlag << $HFlags |= 0x10; >> + | ReconnectRequiredFlag << $HFlags |= 0x40; >> | ManufacturingFlag << $LFlags |= 0x20; >> | DefaultFlag << $LFlags |= 0x10; >> | A:NVAccessFlag <<