public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [patch 00/11] Remove PcdFrameworkCompatibilitySupport
@ 2019-04-29  2:15 Dandan Bi
  2019-04-29  2:15 ` [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support Dandan Bi
                   ` (11 more replies)
  0 siblings, 12 replies; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:15 UTC (permalink / raw)
  To: devel
  Cc: Bob Feng, Liming Gao, Ray Ni, Hao Wu, Eric Dong, Michael D Kinney,
	Kelly Steele, Zailiang Sun, Yi Qian, Laszlo Ersek, Jiewen Yao,
	Chao, Jian J Wang

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Patch 1-10 remove usage of PcdFrameworkCompatibilitySupport.
patch 11 remove PcdFrameworkCompatibilitySupport

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Zailiang Sun <zailiang.sun@intel.com>
Cc: Yi Qian <yi.qian@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com
Cc: Jian J Wang <jian.j.wang@intel.com>
Dandan Bi (11):
  BaseTools/VfrCompile: Remove framework VFR support
  FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage
  IntelFrameworkModulePkg: Remove PcdFrameworkCompatibilitySupport usage
  MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  MdeModulePkg/CdExpress: Remove PcdFrameworkCompatibilitySupport usage
  MdeModulePkg/Setup: Remove PcdFrameworkCompatibilitySupport usage
  QuarkPlatformPkg: Remove PcdFrameworkCompatibilitySupport usage
  SignedCapsulePkg: Remove PcdFrameworkCompatibilitySupport usage
  UefiCpuPkg: Remove PcdFrameworkCompatibilitySupport usage
  Vlv2TbltDevicePkg: Remove PcdFrameworkCompatibilitySupport usage
  MdeModulePkg: Remove PcdFrameworkCompatibilitySupport

 BaseTools/Source/C/VfrCompile/VfrCompiler.cpp |  35 +----
 BaseTools/Source/C/VfrCompile/VfrCompiler.h   |   3 +-
 BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp  |  23 +--
 BaseTools/Source/C/VfrCompile/VfrFormPkg.h    |   3 +-
 BaseTools/Source/C/VfrCompile/VfrSyntax.g     | 103 +-------------
 .../Source/C/VfrCompile/VfrUtilityLib.cpp     |  52 +------
 BaseTools/Source/C/VfrCompile/VfrUtilityLib.h |   7 +-
 .../VfrCompiler_Utility_Man_Page.rtf          |   4 -
 FatPkg/FatPei/FatLiteApi.c                    |  10 +-
 FatPkg/FatPei/FatPei.inf                      |   4 -
 .../Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c |  10 +-
 .../Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf      |   3 +-
 MdeModulePkg/Core/Dxe/DxeMain.inf             |   6 +-
 MdeModulePkg/Core/Dxe/Image/Image.c           | 132 +-----------------
 MdeModulePkg/Core/Dxe/Image/Image.h           |  85 +----------
 MdeModulePkg/Core/Pei/FwVol/FwVol.c           |  65 ---------
 MdeModulePkg/Core/Pei/PeiMain.inf             |   1 -
 MdeModulePkg/MdeModulePkg.dec                 |   8 --
 MdeModulePkg/MdeModulePkg.uni                 |   6 -
 .../Disk/CdExpressPei/CdExpressPei.inf        |   5 +-
 .../Disk/CdExpressPei/PeiCdExpress.c          |  10 +-
 .../Universal/SetupBrowserDxe/IfrParse.c      |  86 +-----------
 .../SetupBrowserDxe/SetupBrowserDxe.inf       |   6 +-
 .../Pei/PlatformInit/Generic/Recovery.c       |  50 ++-----
 .../Pei/PlatformInit/PlatformEarlyInit.inf    |   3 +-
 .../RecoveryModuleLoadPei.c                   |   6 +-
 .../RecoveryModuleLoadPei.inf                 |   5 +-
 .../Universal/Acpi/S3Resume2Pei/S3Resume.c    |  30 ----
 .../Acpi/S3Resume2Pei/S3Resume2Pei.inf        |   3 +-
 Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc       |   3 +-
 Vlv2TbltDevicePkg/PlatformPkgIA32.dsc         |   3 +-
 Vlv2TbltDevicePkg/PlatformPkgX64.dsc          |   3 +-
 32 files changed, 48 insertions(+), 725 deletions(-)

-- 
2.18.0.windows.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
@ 2019-04-29  2:15 ` Dandan Bi
  2019-05-07  5:52   ` [edk2-devel] " Bob Feng
  2019-05-07  6:00   ` Liming Gao
  2019-04-29  2:15 ` [patch 02/11] FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage Dandan Bi
                   ` (10 subsequent siblings)
  11 siblings, 2 replies; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:15 UTC (permalink / raw)
  To: devel; +Cc: Bob Feng, Liming Gao

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently there is no usage of framework VFR,
remove the support from VfrCompile.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 BaseTools/Source/C/VfrCompile/VfrCompiler.cpp |  35 +-----
 BaseTools/Source/C/VfrCompile/VfrCompiler.h   |   3 +-
 BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp  |  23 +---
 BaseTools/Source/C/VfrCompile/VfrFormPkg.h    |   3 +-
 BaseTools/Source/C/VfrCompile/VfrSyntax.g     | 103 +-----------------
 .../Source/C/VfrCompile/VfrUtilityLib.cpp     |  52 +--------
 BaseTools/Source/C/VfrCompile/VfrUtilityLib.h |   7 +-
 .../VfrCompiler_Utility_Man_Page.rtf          |   4 -
 8 files changed, 15 insertions(+), 215 deletions(-)

diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
index c4d4d261ad..5f4d262d85 100644
--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
@@ -1,10 +1,10 @@
 /** @file
 
   VfrCompiler main class and main function.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "stdio.h"
@@ -72,11 +72,10 @@ CVfrCompiler::OptionInitialization (
   mOptions.PreprocessorOutputFileName    = NULL;
   mOptions.VfrBaseFileName               = NULL;
   mOptions.IncludePaths                  = NULL;
   mOptions.SkipCPreprocessor             = TRUE;
   mOptions.CPreprocessorOptions          = NULL;
-  mOptions.CompatibleMode                = FALSE;
   mOptions.HasOverrideClassGuid          = FALSE;
   mOptions.WarningAsError                = FALSE;
   mOptions.AutoDefault                   = FALSE;
   mOptions.CheckDefault                  = FALSE;
   memset (&mOptions.OverrideClassGuid, 0, sizeof (EFI_GUID));
@@ -140,12 +139,10 @@ CVfrCompiler::OptionInitialization (
         DebugError (NULL, 0, 1001, "Missing option", "-od - missing C-preprocessor argument");
         goto Fail;
       }
 
       AppendCPreprocessorOptions (Argv[Index]);
-    } else if (stricmp(Argv[Index], "-c") == 0 || stricmp(Argv[Index], "--compatible-framework") == 0) {
-      mOptions.CompatibleMode = TRUE;
     } else if (stricmp(Argv[Index], "-s") == 0|| stricmp(Argv[Index], "--string-db") == 0) {
       Index++;
       if ((Index >= Argc) || (Argv[Index][0] == '-')) {
         DebugError (NULL, 0, 1001, "Missing option", "-s missing input string file name");
         goto Fail;
@@ -559,12 +556,10 @@ CVfrCompiler::Usage (
     "                 default is current directory",
     "  -b, --create-ifr-package",
     "                 create an IFR HII pack file",
     "  -n, --no-pre-processing",
     "                 do not preprocessing input file",
-    "  -c, --compatible-framework",
-    "                 compatible framework vfr file",
     "  -s, --string-db",
     "                 input uni string package file",
     "  -g, --guid",
     "                 override class guid input",
     "                 format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
@@ -683,11 +678,10 @@ CVfrCompiler::Compile (
   if ((pInFile = fopen (LongFilePath (InFileName), "r")) == NULL) {
     DebugError (NULL, 0, 0001, "Error opening the input file", "%s", InFileName);
     goto Fail;
   }
 
-  InputInfo.CompatibleMode = mOptions.CompatibleMode;
   if (mOptions.HasOverrideClassGuid) {
     InputInfo.OverrideClassGuid = &mOptions.OverrideClassGuid;
   } else {
     InputInfo.OverrideClassGuid = NULL;
   }
@@ -773,31 +767,10 @@ CVfrCompiler::AdjustBin (
     //ok
   } else {
     DebugError (NULL, 0, 0001, "Error parsing vfr file", " %s.Buffer not allocated.", mOptions.VfrFileName);
   }
 
-  //
-  // For UEFI mode, not do OpCode Adjust
-  //
-  if (mOptions.CompatibleMode) {
-    //
-    // Adjust Opcode to be compatible with framework vfr
-    //
-    Status = gCIfrRecordInfoDB.IfrRecordAdjust ();
-    if (Status != VFR_RETURN_SUCCESS) {
-      //
-      // Record List Adjust Failed
-      //
-      SET_RUN_STATUS (STATUS_FAILED);
-      return;
-    }
-    //
-    // Re get the IfrRecord Buffer.
-    //
-    gCIfrRecordInfoDB.IfrRecordOutput (gRBuffer);
-  }
-
   return;
 }
 
 VOID
 CVfrCompiler::GenBinary (
@@ -851,24 +824,20 @@ CVfrCompiler::GenCFile (
 
   if (!IS_RUN_STATUS(STATUS_GENBINARY)) {
     goto Fail;
   }
 
-  if (!mOptions.CreateIfrPkgFile || mOptions.CompatibleMode) {
+  if (!mOptions.CreateIfrPkgFile) {
     if ((pFile = fopen (LongFilePath (mOptions.COutputFileName), "w")) == NULL) {
       DebugError (NULL, 0, 0001, "Error opening output C file", "%s", mOptions.COutputFileName);
       goto Fail;
     }
 
     for (Index = 0; gSourceFileHeader[Index] != NULL; Index++) {
       fprintf (pFile, "%s\n", gSourceFileHeader[Index]);
     }
 
-    if (mOptions.CompatibleMode) {
-      gCVfrBufferConfig.OutputCFile (pFile, mOptions.VfrBaseFileName);
-    }
-
     if (gCFormPkg.GenCFile (mOptions.VfrBaseFileName, pFile, &gRBuffer) != VFR_RETURN_SUCCESS) {
       fclose (pFile);
       goto Fail;
     }
     fclose (pFile);
diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.h b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
index b8cccca4b0..b6e207d2ce 100644
--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.h
+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
@@ -1,10 +1,10 @@
 /** @file
 
   VfrCompiler internal definitions.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #ifndef _VFRCOMPILER_H_
@@ -45,11 +45,10 @@ typedef struct {
   CHAR8   *PreprocessorOutputFileName;
   CHAR8   *VfrBaseFileName;  // name of input VFR file with no path or extension
   CHAR8   *IncludePaths;
   bool    SkipCPreprocessor;
   CHAR8   *CPreprocessorOptions;
-  BOOLEAN CompatibleMode;
   BOOLEAN HasOverrideClassGuid;
   EFI_GUID OverrideClassGuid;
   BOOLEAN WarningAsError;
   BOOLEAN AutoDefault;
   BOOLEAN CheckDefault;
diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
index 5948dc0883..36d3baaf10 100644
--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
@@ -1,10 +1,10 @@
 /** @file
 
   The definition of CFormPkg's member function
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "stdio.h"
@@ -442,25 +442,14 @@ CFormPkg::GenCFile (
 
   if ((Ret = BuildPkgHdr(&PkgHdr)) != VFR_RETURN_SUCCESS) {
     return Ret;
   }
 
-  //
-  // For framework vfr file, the extension framework header will be added.
-  //
-  if (VfrCompatibleMode) {
-    fprintf (pFile, "  // FRAMEWORK PACKAGE HEADER Length\n");
-    PkgLength = PkgHdr->Length + sizeof (UINT32) + 2;
-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength, sizeof (UINT32));
-    fprintf (pFile, "\n\n  // FRAMEWORK PACKAGE HEADER Type\n");
-    PkgLength = 3;
-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength, sizeof (UINT16));
-  } else {
-    fprintf (pFile, "  // ARRAY LENGTH\n");
-    PkgLength = PkgHdr->Length + sizeof (UINT32);
-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength, sizeof (UINT32));
-  }
+
+  fprintf (pFile, "  // ARRAY LENGTH\n");
+  PkgLength = PkgHdr->Length + sizeof (UINT32);
+  _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength, sizeof (UINT32));
 
   fprintf (pFile, "\n\n  // PACKAGE HEADER\n");
   _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)PkgHdr, sizeof (EFI_HII_PACKAGE_HEADER));
   PkgLength = sizeof (EFI_HII_PACKAGE_HEADER);
 
@@ -966,11 +955,11 @@ CFormPkg::DeclarePendingQuestion (
 
       //
       // For undefined Efi VarStore type question
       // Append the extended guided opcode to contain VarName
       //
-      if (VarStoreType == EFI_VFR_VARSTORE_EFI || VfrCompatibleMode) {
+      if (VarStoreType == EFI_VFR_VARSTORE_EFI) {
         CIfrVarEqName CVNObj (QId, Info.mInfo.mVarName);
         CVNObj.SetLineNo (LineNo);
       }
 
       //
diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
index 68df87ba88..1cea4f0e25 100644
--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
@@ -1,10 +1,10 @@
 /** @file
 
   The definition of CFormPkg's member function
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #ifndef _EFIIFRCLASS_H_
@@ -93,11 +93,10 @@ struct SBufferNode {
   CHAR8              *mBufferFree;
   struct SBufferNode *mNext;
 };
 
 typedef struct {
-  BOOLEAN  CompatibleMode;
   EFI_GUID *OverrideClassGuid;
 } INPUT_INFO_TO_SYNTAX;
 
 class CFormPkg {
 private:
diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
index 04fe030b61..24b30e3825 100644
--- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g
+++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
@@ -1,9 +1,9 @@
 /*++ @file
 Vfr Syntax
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 --*/
 
 #header<<
@@ -47,11 +47,10 @@ VfrParserStart (
   IN FILE *File,
   IN INPUT_INFO_TO_SYNTAX *InputInfo
   )
 {
   ParserBlackBox<CVfrDLGLexer, EfiVfrParser, ANTLRToken> VfrParser(File);
-  VfrParser.parser()->SetCompatibleMode (InputInfo->CompatibleMode);
   VfrParser.parser()->SetOverrideClassGuid (InputInfo->OverrideClassGuid);
   return VfrParser.parser()->vfrProgram();
 }
 >>
 
@@ -673,17 +672,10 @@ vfrFormSetDefinition :
                                                     <<
                                                        _DeclareStandardDefaultStorage (GET_LINENO (L));
                                                     >>
   vfrFormSetList
   E:EndFormSet                                      <<
-                                                      if (mCompatibleMode) {
-                                                        //
-                                                        // declare all undefined varstore and efivarstore
-                                                        //
-                                                        _DeclareDefaultFrameworkVarStore (GET_LINENO(E));
-                                                      }
-                                                      
                                                       //
                                                       // Declare undefined Question so that they can be used in expression.
                                                       //
                                                       if (gCFormPkg.HavePendingUnassigned()) {
                                                         mParserStatus += gCFormPkg.DeclarePendingQuestion (
@@ -5047,23 +5039,18 @@ public:
 
   VOID                _STRCAT (IN OUT CHAR8 **, IN CONST CHAR8 *);
 
   VOID                _DeclareDefaultLinearVarStore (IN UINT32);
   VOID                _DeclareStandardDefaultStorage (IN UINT32);
-  VOID                _DeclareDefaultFrameworkVarStore (IN UINT32);
 
   VOID                AssignQuestionKey (IN CIfrQuestionHeader &, IN ANTLRTokenPtr);
 
   VOID                ConvertIdExpr         (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32);
   VOID                IdEqValDoSpecial      (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN UINT16, IN EFI_COMPARE_TYPE);
   VOID                IdEqIdDoSpecial       (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN EFI_COMPARE_TYPE);
   VOID                IdEqListDoSpecial     (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN UINT16, IN UINT16 *);
   VOID                SetOverrideClassGuid  (IN EFI_GUID *);
-//
-// For framework vfr compatibility
-//
-  VOID                SetCompatibleMode (IN BOOLEAN);
 >>
 }
 
 <<
 VOID
@@ -5540,88 +5527,10 @@ EfiVfrParser::_STOR (
   Ref.DevicePath  = _STOSID (DevicePath, LineNum);
 
   return Ref;
 }
 
-//
-// framework vfr to default declare varstore for each structure
-//
-VOID
-EfiVfrParser::_DeclareDefaultFrameworkVarStore (
-  IN UINT32 LineNo
-  )
-{
-  SVfrVarStorageNode    *pNode;
-  UINT32                TypeSize;
-  BOOLEAN               FirstNode;
-  CONST CHAR8           VarName[] = "Setup";
-
-  FirstNode = TRUE;
-  pNode = gCVfrDataStorage.GetBufferVarStoreList();
-  if (pNode == NULL && gCVfrVarDataTypeDB.mFirstNewDataTypeName != NULL) {
-    //
-    // Create the default Buffer Var Store when no VarStore is defined.
-    // its name should be "Setup"
-    //
-    gCVfrVarDataTypeDB.GetDataTypeSize (gCVfrVarDataTypeDB.mFirstNewDataTypeName, &TypeSize);
-    CIfrVarStore      VSObj;
-    VSObj.SetLineNo (LineNo);
-    VSObj.SetVarStoreId (0x1); //the first and only one Buffer Var Store
-    VSObj.SetSize ((UINT16) TypeSize);
-    //VSObj.SetName (gCVfrVarDataTypeDB.mFirstNewDataTypeName);
-    VSObj.SetName ((CHAR8 *) VarName);
-    VSObj.SetGuid (&mFormsetGuid);
-#ifdef VFREXP_DEBUG
-    printf ("Create the default VarStoreName is %s\n", gCVfrVarDataTypeDB.mFirstNewDataTypeName);
-#endif
-  } else {
-    for (; pNode != NULL; pNode = pNode->mNext) {
-      //
-      // create the default varstore opcode for not declared varstore
-      // the first varstore name should be "Setup"
-      //
-      if (!pNode->mAssignedFlag) {
-        CIfrVarStore      VSObj;
-        VSObj.SetLineNo (LineNo);
-        VSObj.SetVarStoreId (pNode->mVarStoreId);
-        VSObj.SetSize ((UINT16) pNode->mStorageInfo.mDataType->mTotalSize);
-        if (FirstNode) {
-          VSObj.SetName ((CHAR8 *) VarName);
-          FirstNode = FALSE;
-        } else {
-          VSObj.SetName (pNode->mVarStoreName);
-        }
-        VSObj.SetGuid (&pNode->mGuid);
-#ifdef VFREXP_DEBUG
-        printf ("undefined VarStoreName is %s and Id is 0x%x\n", pNode->mVarStoreName, pNode->mVarStoreId);
-#endif
-      }
-    }
-  }
-
-  pNode = gCVfrDataStorage.GetEfiVarStoreList();
-  for (; pNode != NULL; pNode = pNode->mNext) {
-    //
-    // create the default efi varstore opcode for not exist varstore
-    //
-    if (!pNode->mAssignedFlag) {
-      CIfrVarStoreEfi VSEObj;
-      VSEObj.SetLineNo (LineNo);
-      VSEObj.SetAttributes (0x00000002); //hardcode EFI_VARIABLE_BOOTSERVICE_ACCESS attribute
-      VSEObj.SetGuid (&pNode->mGuid);
-      VSEObj.SetVarStoreId (pNode->mVarStoreId);
-      // Generate old efi varstore storage structure for compatible with old "VarEqVal" opcode,
-      // which is 3 bytes less than new structure define in UEFI Spec 2.3.1.
-      VSEObj.SetBinaryLength (sizeof (EFI_IFR_VARSTORE_EFI) - 3);
-#ifdef VFREXP_DEBUG
-      printf ("undefined Efi VarStoreName is %s and Id is 0x%x\n", pNode->mVarStoreName, pNode->mVarStoreId);
-#endif
-    }
-  }
-
-}
-
 VOID
 EfiVfrParser::_DeclareDefaultLinearVarStore (
   IN UINT32 LineNo
   )
 {
@@ -5917,20 +5826,10 @@ VOID
 EfiVfrParser::SetOverrideClassGuid (IN EFI_GUID *OverrideClassGuid)
 {
   mOverrideClassGuid = OverrideClassGuid;
 }
 
-//
-// For framework vfr compatibility
-//
-VOID
-EfiVfrParser::SetCompatibleMode (IN BOOLEAN Mode)
-{
-  mCompatibleMode = Mode;
-  mCVfrQuestionDB.SetCompatibleMode (Mode);
-}
-
 VOID
 EfiVfrParser::CheckDuplicateDefaultValue (
   IN EFI_DEFAULT_ID      DefaultId,
   IN ANTLRTokenPtr       Tok
   )
diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
index 9c9c4d4054..2b9b5dbb1c 100644
--- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
@@ -1,10 +1,10 @@
 /** @file
 
   Vfr common library functions.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "stdio.h"
@@ -757,21 +757,10 @@ CVfrVarDataTypeDB::GetFieldOffset (
 {
   if (Field == NULL) {
     return VFR_RETURN_FATAL_ERROR;
   }
 
-  //
-  // Framework Vfr file Array Index is from 1.
-  // But Uefi Vfr file Array Index is from 0.
-  //
-  if (VfrCompatibleMode && ArrayIdx != INVALID_ARRAY_INDEX) {
-    if (ArrayIdx == 0) {
-      return VFR_RETURN_ERROR_ARRARY_NUM;
-    }
-    ArrayIdx = ArrayIdx - 1;
-  }
-
   if ((ArrayIdx != INVALID_ARRAY_INDEX) && ((Field->mArrayNum == 0) || (Field->mArrayNum <= ArrayIdx))) {
     return VFR_RETURN_ERROR_ARRARY_NUM;
   }
 
   //
@@ -1681,21 +1670,11 @@ CVfrDataStorage::GetFreeVarStoreId (
   EFI_VFR_VARSTORE_TYPE VarType
   )
 {
   UINT32  Index, Mask, Offset;
 
-  //
-  // Assign the different ID range for the different type VarStore to support Framework Vfr
-  //
   Index = 0;
-  if ((!VfrCompatibleMode) || (VarType == EFI_VFR_VARSTORE_BUFFER)) {
-    Index = 0;
-  } else if (VarType == EFI_VFR_VARSTORE_EFI) {
-    Index = 1;
-  } else if (VarType == EFI_VFR_VARSTORE_NAME) {
-    Index = 2;
-  }
 
   for (; Index < EFI_FREE_VARSTORE_ID_BITMAP_SIZE; Index++) {
     if (mFreeVarStoreIdBitMap[Index] != 0xFFFFFFFF) {
       break;
     }
@@ -1913,17 +1892,10 @@ CVfrDataStorage::GetVarStoreByDataType (
   )
 {
   SVfrVarStorageNode    *pNode;
   SVfrVarStorageNode    *MatchNode;
 
-  //
-  // Framework VFR uses Data type name as varstore name, so don't need check again.
-  //
-  if (VfrCompatibleMode) {
-    return VFR_RETURN_UNDEFINED;
-  }
-
   MatchNode = NULL;
   for (pNode = mBufferVarStoreList; pNode != NULL; pNode = pNode->mNext) {
     if (strcmp (pNode->mStorageInfo.mDataType->mTypeName, DataTypeName) != 0) {
       continue;
     }
@@ -2287,20 +2259,10 @@ CVfrDataStorage::GetNameVarStoreInfo (
 
   if (mCurrVarStorageNode == NULL) {
     return VFR_RETURN_GET_NVVARSTORE_ERROR;
   }
 
-  //
-  // Framework Vfr file Index is from 1, but Uefi Vfr file Index is from 0.
-  //
-  if (VfrCompatibleMode) {
-    if (Index == 0) {
-      return VFR_RETURN_ERROR_ARRARY_NUM;
-    }
-    Index --;
-  }
-
   Info->mInfo.mVarName = mCurrVarStorageNode->mStorageInfo.mNameSpace.mNameTable[Index];
 
   return VFR_RETURN_SUCCESS;
 }
 
@@ -2859,14 +2821,11 @@ CVfrQuestionDB::RegisterQuestion (
   }
 
   if (QuestionId == EFI_QUESTION_ID_INVALID) {
     QuestionId = GetFreeQuestionId ();
   } else {
-    //
-    // For Framework Vfr, don't check question ID conflict.
-    //
-    if (!VfrCompatibleMode && ChekQuestionIdFree (QuestionId) == FALSE) {
+    if (ChekQuestionIdFree (QuestionId) == FALSE) {
       delete pNode;
       return VFR_RETURN_QUESTIONID_REDEFINED;
     }
     MarkQuestionIdUsed (QuestionId);
   }
@@ -3366,14 +3325,11 @@ CVfrQuestionDB::UpdateQuestionId (
   if (QId == NewQId) {
     // don't update
     return VFR_RETURN_SUCCESS;
   }
 
-  //
-  // For Framework Vfr, don't check question ID conflict.
-  //
-  if (!VfrCompatibleMode && ChekQuestionIdFree (NewQId) == FALSE) {
+  if (ChekQuestionIdFree (NewQId) == FALSE) {
     return VFR_RETURN_REDEFINED;
   }
 
   for (pNode = mQuestionList; pNode != NULL; pNode = pNode->mNext) {
     if (pNode->mQuestionId == QId) {
@@ -3955,12 +3911,10 @@ CVfrStringDB::GetUnicodeStringTextSize (
   }
 
   return StringSize;
 }
 
-BOOLEAN  VfrCompatibleMode = FALSE;
-
 CVfrVarDataTypeDB gCVfrVarDataTypeDB;
 CVfrDefaultStore  gCVfrDefaultStore;
 CVfrDataStorage  gCVfrDataStorage;
 
 
diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
index e2b2917e99..57bb0c424d 100644
--- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
+++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
@@ -1,10 +1,10 @@
 /** @file
 
   Vfr common library functions.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #ifndef _VFRUTILITYLIB_H_
@@ -13,11 +13,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #include "string.h"
 #include "Common/UefiBaseTypes.h"
 #include "EfiVfr.h"
 #include "VfrError.h"
 
-extern BOOLEAN  VfrCompatibleMode;
 static EFI_GUID gEdkiiIfrBitVarGuid = EDKII_IFR_BIT_VARSTORE_GUID;
 
 #define MAX_BIT_WIDTH                      32
 #define MAX_NAME_LEN                       64
 #define MAX_STRING_LEN                     0x100
@@ -422,14 +421,10 @@ public:
   EFI_VFR_RETURN_CODE FindQuestion (IN EFI_QUESTION_ID);
   EFI_VFR_RETURN_CODE FindQuestion (IN CHAR8 *);
   VOID                PrintAllQuestion (IN VOID);
   VOID                ResetInit (IN VOID);
 
-  VOID SetCompatibleMode (IN BOOLEAN Mode) {
-    VfrCompatibleMode = Mode;
-  }
-
 private:
   CVfrQuestionDB (IN CONST CVfrQuestionDB&);             // Prevent copy-construction
   CVfrQuestionDB& operator= (IN CONST CVfrQuestionDB&);  // Prevent assignment
 };
 
diff --git a/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf b/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
index fa0beebb9c..2b056f8f26 100644
--- a/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
+++ b/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
@@ -145,14 +145,10 @@ The generated file will be placed into the output directory sp\hich\af43\dbch\af
 \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 -n, --no-pre-processing
 \par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 Do not preprocess}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 
 \fs18\cf1\insrsid2570438 \hich\af43\dbch\af31505\loch\f43  t}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1204842 \hich\af43\dbch\af31505\loch\f43 he}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 
  input vfr file. The input VFR file has been pro\hich\af43\dbch\af31505\loch\f43 cessed. If this option is not specified, the default behavior is same to set this option. 
 \par }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid83254 \hich\af43\dbch\af31505\loch\f43 Selecting this option disables preprocessing of VFR files. }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2570438 
-\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 -c, --compatible-framework
-\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 Recognize}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid83254 
-\hich\af43\dbch\af31505\loch\f43 s}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43  the input VFR file is the framework VFR syntax. If this option is n\hich\af43\dbch\af31505\loch\f43 
-ot specified, the UEFI syntax is default }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid83254 \hich\af43\dbch\af31505\loch\f43 the VFR }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 syntax.
 \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 -h, --help
 \par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 Print version and usage of this program and exit.
 \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12931970 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 -s, --string-db
 \par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12931970 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 Input uni string package file.
 \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12931970 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 -g, --guid
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 02/11] FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
  2019-04-29  2:15 ` [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support Dandan Bi
@ 2019-04-29  2:15 ` Dandan Bi
  2019-05-05  3:25   ` [edk2-devel] " Ni, Ray
  2019-04-29  2:15 ` [patch 03/11] IntelFrameworkModulePkg: " Dandan Bi
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:15 UTC (permalink / raw)
  To: devel; +Cc: Ray Ni

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 FatPkg/FatPei/FatLiteApi.c | 10 +---------
 FatPkg/FatPei/FatPei.inf   |  4 ----
 2 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/FatPkg/FatPei/FatLiteApi.c b/FatPkg/FatPei/FatLiteApi.c
index 0bf6ddae6a..b9f883b9e0 100644
--- a/FatPkg/FatPei/FatLiteApi.c
+++ b/FatPkg/FatPei/FatLiteApi.c
@@ -1,9 +1,9 @@
 /** @file
   FAT recovery PEIM entry point, Ppi Functions and FAT Api functions.
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
@@ -429,14 +429,10 @@ GetRecoveryCapsuleInfo (
 
   if (EFI_ERROR (Status)) {
     return Status;
   }
 
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    CapsuleInstance = CapsuleInstance + 1;
-  }
-
   if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules)) {
     return EFI_NOT_FOUND;
   }
 
   PrivateData = PEI_FAT_PRIVATE_DATA_FROM_THIS (This);
@@ -557,14 +553,10 @@ LoadRecoveryCapsule (
 
   if (EFI_ERROR (Status)) {
     return Status;
   }
 
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    CapsuleInstance = CapsuleInstance + 1;
-  }
-
   if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules)) {
     return EFI_NOT_FOUND;
   }
 
   PrivateData = PEI_FAT_PRIVATE_DATA_FROM_THIS (This);
diff --git a/FatPkg/FatPei/FatPei.inf b/FatPkg/FatPei/FatPei.inf
index b554aae040..d3466db9bf 100644
--- a/FatPkg/FatPei/FatPei.inf
+++ b/FatPkg/FatPei/FatPei.inf
@@ -63,14 +63,10 @@
 [Ppis]
   gEfiPeiVirtualBlockIoPpiGuid                  ## SOMETIMES_CONSUMES PPI_NOTIFY
   gEfiPeiVirtualBlockIo2PpiGuid                 ## SOMETIMES_CONSUMES PPI_NOTIFY
   gEfiPeiDeviceRecoveryModulePpiGuid            ## SOMETIMES_PRODUCES
 
-
-[FeaturePcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport         ## CONSUMES
-
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName         ## CONSUMES
 
 [Depex]
   gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 03/11] IntelFrameworkModulePkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
  2019-04-29  2:15 ` [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support Dandan Bi
  2019-04-29  2:15 ` [patch 02/11] FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage Dandan Bi
@ 2019-04-29  2:15 ` Dandan Bi
  2019-05-07  5:59   ` Liming Gao
  2019-04-29  2:16 ` [patch 04/11] MdeModulePkg/Core: " Dandan Bi
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:15 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c          | 10 +---------
 .../Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf     |  3 +--
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c
index b5f8131f98..366ada935d 100644
--- a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c
+++ b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c
@@ -1,10 +1,10 @@
 /** @file
   This is an implementation of the ACPI S3 Save protocol.  This is defined in
   S3 boot path specification 0.9.
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
@@ -138,14 +138,10 @@ S3Ready (
   if (AlreadyEntered) {
     return EFI_SUCCESS;
   }
   AlreadyEntered = TRUE;
 
-  if (FeaturePcdGet(PcdFrameworkCompatibilitySupport)) {
-    S3ReadyThunkPlatform ();
-  }
-
   return EFI_SUCCESS;
 }
 
 /**
   The Driver Entry Point.
@@ -180,14 +176,10 @@ InstallAcpiS3Save (
     mLegacyRegionSize = 0x250;
   } else {
     mLegacyRegionSize = 0x100;
   }
 
-  if (FeaturePcdGet(PcdFrameworkCompatibilitySupport)) {
-    InstallAcpiS3SaveThunk ();
-  }
-
   Status = gBS->InstallProtocolInterface (
                   &ImageHandle,
                   &gEfiAcpiS3SaveProtocolGuid,
                   EFI_NATIVE_INTERFACE,
                   &mS3Save
diff --git a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
index 2e4f0868d2..0cfcb8ce53 100644
--- a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
+++ b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
@@ -1,9 +1,9 @@
 ## @file
 # AcpiS3Save module installs ACPI S3 Save protocol to prepare S3 boot data.
 #
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -56,11 +56,10 @@
   ## SOMETIMES_CONSUMES
   gEdkiiVariableLockProtocolGuid
 
 [FeaturePcd]
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformCsmSupport          ## CONSUMES
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport          ## CONSUMES
 
 [Pcd]
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize    ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable                           ## CONSUMES
 
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (2 preceding siblings ...)
  2019-04-29  2:15 ` [patch 03/11] IntelFrameworkModulePkg: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-05-06  1:22   ` [edk2-devel] " Wu, Hao A
  2019-04-29  2:16 ` [patch 05/11] MdeModulePkg/CdExpress: " Dandan Bi
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 MdeModulePkg/Core/Dxe/DxeMain.inf   |   6 +-
 MdeModulePkg/Core/Dxe/Image/Image.c | 132 +---------------------------
 MdeModulePkg/Core/Dxe/Image/Image.h |  85 +-----------------
 MdeModulePkg/Core/Pei/FwVol/FwVol.c |  65 --------------
 MdeModulePkg/Core/Pei/PeiMain.inf   |   1 -
 5 files changed, 3 insertions(+), 286 deletions(-)

diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf b/MdeModulePkg/Core/Dxe/DxeMain.inf
index 8dee5bee0a..61161bee28 100644
--- a/MdeModulePkg/Core/Dxe/DxeMain.inf
+++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
@@ -1,11 +1,11 @@
 ## @file
 #  This is core module in DXE phase.
 #
 #  It provides an implementation of DXE Core that is compliant with DXE CIS.
 #
-#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
 [Defines]
@@ -130,11 +130,10 @@
 
 [Protocols]
   ## PRODUCES
   ## SOMETIMES_CONSUMES
   gEfiDecompressProtocolGuid
-  gEfiLoadPeImageProtocolGuid                   ## SOMETIMES_PRODUCES   # Produces when PcdFrameworkCompatibilitySupport is set
   gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
   gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
   gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
   gEfiBusSpecificDriverOverrideProtocolGuid     ## SOMETIMES_CONSUMES
   gEfiDriverFamilyOverrideProtocolGuid          ## SOMETIMES_CONSUMES
@@ -171,13 +170,10 @@
   gEfiVariableWriteArchProtocolGuid             ## CONSUMES
   gEfiVariableArchProtocolGuid                  ## CONSUMES
   gEfiCapsuleArchProtocolGuid                   ## CONSUMES
   gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES
 
-[FeaturePcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport     ## CONSUMES
-
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNumber    ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNumber     ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable            ## CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress         ## CONSUMES
diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c b/MdeModulePkg/Core/Dxe/Image/Image.c
index de5b8bed27..22a87ecf6d 100644
--- a/MdeModulePkg/Core/Dxe/Image/Image.c
+++ b/MdeModulePkg/Core/Dxe/Image/Image.c
@@ -1,9 +1,9 @@
 /** @file
   Core image handling services to load and unload PeImage.
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "DxeMain.h"
@@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 //
 // Module Globals
 //
 LOADED_IMAGE_PRIVATE_DATA  *mCurrentImage = NULL;
 
-LOAD_PE32_IMAGE_PRIVATE_DATA  mLoadPe32PrivateData = {
-  LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE,
-  NULL,
-  {
-    CoreLoadImageEx,
-    CoreUnloadImageEx
-  }
-};
-
 typedef struct {
   LIST_ENTRY                            Link;
   EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL  *Emulator;
   UINT16                                MachineType;
 } EMULATOR_ENTRY;
@@ -274,22 +265,10 @@ CoreInitializeImageServices (
              );
   ASSERT_EFI_ERROR(Status);
 
   InitializeListHead (&mAvailableEmulators);
 
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    //
-    // Export DXE Core PE Loader functionality for backward compatibility.
-    //
-    Status = CoreInstallProtocolInterface (
-               &mLoadPe32PrivateData.Handle,
-               &gEfiLoadPeImageProtocolGuid,
-               EFI_NATIVE_INTERFACE,
-               &mLoadPe32PrivateData.Pe32Image
-               );
-  }
-
   ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);
 
   return Status;
 }
 
@@ -1564,96 +1543,10 @@ CoreLoadImage (
   PERF_LOAD_IMAGE_END (Handle);
 
   return Status;
 }
 
-
-
-/**
-  Loads an EFI image into memory and returns a handle to the image with extended parameters.
-
-  @param  This                    Calling context
-  @param  ParentImageHandle       The caller's image handle.
-  @param  FilePath                The specific file path from which the image is
-                                  loaded.
-  @param  SourceBuffer            If not NULL, a pointer to the memory location
-                                  containing a copy of the image to be loaded.
-  @param  SourceSize              The size in bytes of SourceBuffer.
-  @param  DstBuffer               The buffer to store the image.
-  @param  NumberOfPages           For input, specifies the space size of the
-                                  image by caller if not NULL. For output,
-                                  specifies the actual space size needed.
-  @param  ImageHandle             Image handle for output.
-  @param  EntryPoint              Image entry point for output.
-  @param  Attribute               The bit mask of attributes to set for the load
-                                  PE image.
-
-  @retval EFI_SUCCESS             The image was loaded into memory.
-  @retval EFI_NOT_FOUND           The FilePath was not found.
-  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid value.
-  @retval EFI_UNSUPPORTED         The image type is not supported, or the device
-                                  path cannot be parsed to locate the proper
-                                  protocol for loading the file.
-  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to insufficient
-                                  resources.
-  @retval EFI_LOAD_ERROR          Image was not loaded because the image format was corrupt or not
-                                  understood.
-  @retval EFI_DEVICE_ERROR        Image was not loaded because the device returned a read error.
-  @retval EFI_ACCESS_DENIED       Image was not loaded because the platform policy prohibits the
-                                  image from being loaded. NULL is returned in *ImageHandle.
-  @retval EFI_SECURITY_VIOLATION  Image was loaded and an ImageHandle was created with a
-                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the current
-                                  platform policy specifies that the image should not be started.
-
-**/
-EFI_STATUS
-EFIAPI
-CoreLoadImageEx (
-  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
-  IN  EFI_HANDLE                       ParentImageHandle,
-  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
-  IN  VOID                             *SourceBuffer       OPTIONAL,
-  IN  UINTN                            SourceSize,
-  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
-  OUT UINTN                            *NumberOfPages      OPTIONAL,
-  OUT EFI_HANDLE                       *ImageHandle,
-  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
-  IN  UINT32                           Attribute
-  )
-{
-  EFI_STATUS    Status;
-  EFI_HANDLE    Handle;
-
-  PERF_LOAD_IMAGE_BEGIN (NULL);
-
-  Status = CoreLoadImageCommon (
-           TRUE,
-           ParentImageHandle,
-           FilePath,
-           SourceBuffer,
-           SourceSize,
-           DstBuffer,
-           NumberOfPages,
-           ImageHandle,
-           EntryPoint,
-           Attribute
-           );
-
-  Handle = NULL;
-  if (!EFI_ERROR (Status)) {
-    //
-    // ImageHandle will be valid only Status is success.
-    //
-    Handle = *ImageHandle;
-  }
-
-  PERF_LOAD_IMAGE_END (Handle);
-
-  return Status;
-}
-
-
 /**
   Transfer control to a loaded image's entry point.
 
   @param  ImageHandle             Handle of image to be started.
   @param  ExitDataSize            Pointer of the size to ExitData
@@ -2010,28 +1903,5 @@ CoreUnloadImage (
   }
 
 Done:
   return Status;
 }
-
-
-
-/**
-  Unload the specified image.
-
-  @param  This                    Indicates the calling context.
-  @param  ImageHandle             The specified image handle.
-
-  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
-  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported image.
-  @retval EFI_SUCCESS             Image successfully unloaded.
-
-**/
-EFI_STATUS
-EFIAPI
-CoreUnloadImageEx (
-  IN EFI_PE32_IMAGE_PROTOCOL  *This,
-  IN EFI_HANDLE                         ImageHandle
-  )
-{
-  return CoreUnloadImage (ImageHandle);
-}
diff --git a/MdeModulePkg/Core/Dxe/Image/Image.h b/MdeModulePkg/Core/Dxe/Image/Image.h
index 6020a27371..e9c44ab2a7 100644
--- a/MdeModulePkg/Core/Dxe/Image/Image.h
+++ b/MdeModulePkg/Core/Dxe/Image/Image.h
@@ -1,30 +1,17 @@
 /** @file
   Data structure and functions to load and unload PeImage.
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 
 #ifndef _IMAGE_H_
 #define _IMAGE_H_
 
-#define LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE  SIGNATURE_32('l','p','e','i')
-
-typedef struct {
-  UINTN                       Signature;
-  /// Image handle
-  EFI_HANDLE                  Handle;
-  EFI_PE32_IMAGE_PROTOCOL     Pe32Image;
-} LOAD_PE32_IMAGE_PRIVATE_DATA;
-
-#define LOAD_PE32_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
-          CR(a, LOAD_PE32_IMAGE_PRIVATE_DATA, Pe32Image, LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE)
-
-
 //
 // Private Data Types
 //
 #define IMAGE_FILE_HANDLE_SIGNATURE       SIGNATURE_32('i','m','g','f')
 typedef struct {
@@ -32,76 +19,6 @@ typedef struct {
   BOOLEAN             FreeBuffer;
   VOID                *Source;
   UINTN               SourceSize;
 } IMAGE_FILE_HANDLE;
 
-/**
-  Loads an EFI image into memory and returns a handle to the image with extended parameters.
-
-  @param  This                    Calling context
-  @param  ParentImageHandle       The caller's image handle.
-  @param  FilePath                The specific file path from which the image is
-                                  loaded.
-  @param  SourceBuffer            If not NULL, a pointer to the memory location
-                                  containing a copy of the image to be loaded.
-  @param  SourceSize              The size in bytes of SourceBuffer.
-  @param  DstBuffer               The buffer to store the image.
-  @param  NumberOfPages           For input, specifies the space size of the
-                                  image by caller if not NULL. For output,
-                                  specifies the actual space size needed.
-  @param  ImageHandle             Image handle for output.
-  @param  EntryPoint              Image entry point for output.
-  @param  Attribute               The bit mask of attributes to set for the load
-                                  PE image.
-
-  @retval EFI_SUCCESS             The image was loaded into memory.
-  @retval EFI_NOT_FOUND           The FilePath was not found.
-  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid value.
-  @retval EFI_UNSUPPORTED         The image type is not supported, or the device
-                                  path cannot be parsed to locate the proper
-                                  protocol for loading the file.
-  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to insufficient
-                                  resources.
-  @retval EFI_LOAD_ERROR          Image was not loaded because the image format was corrupt or not
-                                  understood.
-  @retval EFI_DEVICE_ERROR        Image was not loaded because the device returned a read error.
-  @retval EFI_ACCESS_DENIED       Image was not loaded because the platform policy prohibits the
-                                  image from being loaded. NULL is returned in *ImageHandle.
-  @retval EFI_SECURITY_VIOLATION  Image was loaded and an ImageHandle was created with a
-                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the current
-                                  platform policy specifies that the image should not be started.
-
-**/
-EFI_STATUS
-EFIAPI
-CoreLoadImageEx (
-  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
-  IN  EFI_HANDLE                       ParentImageHandle,
-  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
-  IN  VOID                             *SourceBuffer       OPTIONAL,
-  IN  UINTN                            SourceSize,
-  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
-  OUT UINTN                            *NumberOfPages      OPTIONAL,
-  OUT EFI_HANDLE                       *ImageHandle,
-  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
-  IN  UINT32                           Attribute
-  );
-
-
-/**
-  Unload the specified image.
-
-  @param  This                    Indicates the calling context.
-  @param  ImageHandle             The specified image handle.
-
-  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
-  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported image.
-  @retval EFI_SUCCESS             Image successfully unloaded.
-
-**/
-EFI_STATUS
-EFIAPI
-CoreUnloadImageEx (
-  IN EFI_PE32_IMAGE_PROTOCOL  *This,
-  IN EFI_HANDLE                         ImageHandle
-  );
 #endif
diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
index f817ba04e2..709db00694 100644
--- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
+++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
@@ -1092,19 +1092,10 @@ PeiFfsFindNextFile (
 {
   PEI_CORE_FV_HANDLE      *CoreFvHandle;
 
   CoreFvHandle = FvHandleToCoreHandle (FvHandle);
 
-  //
-  // To make backward compatiblity, if can not find corresponding the handle of FV
-  // then treat FV as build-in FFS2/FFS3 format and memory mapped FV that FV handle is pointed
-  // to the address of first byte of FV.
-  //
-  if ((CoreFvHandle == NULL) && FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);
-  }
-
   if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {
     return EFI_NOT_FOUND;
   }
 
   return CoreFvHandle->FvPpi->FindFileByType (CoreFvHandle->FvPpi, SearchType, FvHandle, FileHandle);
@@ -2109,66 +2100,10 @@ PEI_CORE_FV_HANDLE *
 FindNextCoreFvHandle (
   IN PEI_CORE_INSTANCE  *Private,
   IN UINTN              Instance
   )
 {
-  UINTN                    Index;
-  BOOLEAN                  Match;
-  EFI_HOB_FIRMWARE_VOLUME  *FvHob;
-
-  //
-  // Handle Framework FvHob and Install FvInfo Ppi for it.
-  //
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    //
-    // Loop to search the wanted FirmwareVolume which supports FFS
-    //
-    FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob (EFI_HOB_TYPE_FV);
-    while (FvHob != NULL) {
-      //
-      // Search whether FvHob has been installed into PeiCore's FV database.
-      // If found, no need install new FvInfoPpi for it.
-      //
-      for (Index = 0, Match = FALSE; Index < Private->FvCount; Index++) {
-        if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress == Private->Fv[Index].FvHeader) {
-          Match = TRUE;
-          break;
-        }
-      }
-
-      //
-      // Search whether FvHob has been cached into PeiCore's Unknown FV database.
-      // If found, no need install new FvInfoPpi for it.
-      //
-      if (!Match) {
-        for (Index = 0; Index < Private->UnknownFvInfoCount; Index ++) {
-          if ((UINTN)FvHob->BaseAddress == (UINTN)Private->UnknownFvInfo[Index].FvInfo) {
-            Match = TRUE;
-            break;
-          }
-        }
-      }
-
-      //
-      // If the Fv in FvHob has not been installed into PeiCore's FV database and has
-      // not been cached into PeiCore's Unknown FV database, install a new FvInfoPpi
-      // for it then PeiCore will dispatch it in callback of FvInfoPpi.
-      //
-      if (!Match) {
-        PeiServicesInstallFvInfoPpi (
-          &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHob->BaseAddress)->FileSystemGuid),
-          (VOID *)(UINTN)FvHob->BaseAddress,
-          (UINT32)FvHob->Length,
-          NULL,
-          NULL
-          );
-      }
-
-      FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob->Header.HobLength));
-    }
-  }
-
   if (Instance >= Private->FvCount) {
     return NULL;
   }
 
   return &Private->Fv[Instance];
diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf b/MdeModulePkg/Core/Pei/PeiMain.inf
index c8a6d5b80b..7c482dacfc 100644
--- a/MdeModulePkg/Core/Pei/PeiMain.inf
+++ b/MdeModulePkg/Core/Pei/PeiMain.inf
@@ -100,11 +100,10 @@
   gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
 
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize                  ## CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst  ## CONSUMES
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport           ## CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumber         ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNumber    ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNumber     ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable            ## CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot                      ## CONSUMES
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 05/11] MdeModulePkg/CdExpress: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (3 preceding siblings ...)
  2019-04-29  2:16 ` [patch 04/11] MdeModulePkg/Core: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-05-06  1:05   ` Wu, Hao A
  2019-04-29  2:16 ` [patch 06/11] MdeModulePkg/Setup: " Dandan Bi
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Hao Wu, Liming Gao

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../Universal/Disk/CdExpressPei/CdExpressPei.inf       |  5 +----
 .../Universal/Disk/CdExpressPei/PeiCdExpress.c         | 10 +---------
 2 files changed, 2 insertions(+), 13 deletions(-)

diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
index 11ab49b33b..184036bfb9 100644
--- a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
@@ -3,11 +3,11 @@
 #
 # This module reads data from CDROM device by all installed block IO ppi and
 # finds whether there is Recovery data in the device. If it finds recovery
 # data, it will install Device Recovery Module PPI.
 #
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -56,13 +56,10 @@
   ## NOTIFY
   ## CONSUMES
   gEfiPeiVirtualBlockIo2PpiGuid
   gEfiPeiDeviceRecoveryModulePpiGuid            ## PRODUCES
 
-[FeaturePcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport   ## CONSUMES
-
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName         ## CONSUMES
 
 [Depex]
   gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid
diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
index b029c54729..fd34f07eec 100644
--- a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
@@ -1,9 +1,9 @@
 /** @file
   Source file for CD recovery PEIM
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
@@ -585,14 +585,10 @@ GetRecoveryCapsuleInfo (
 
   if (EFI_ERROR (Status)) {
     return Status;
   }
 
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    CapsuleInstance = CapsuleInstance + 1;
-  }
-
   if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules)) {
     return EFI_NOT_FOUND;
   }
 
   PrivateData = PEI_CD_EXPRESS_PRIVATE_DATA_FROM_THIS (This);
@@ -645,14 +641,10 @@ LoadRecoveryCapsule (
 
   if (EFI_ERROR (Status)) {
     return Status;
   }
 
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    CapsuleInstance = CapsuleInstance + 1;
-  }
-
   if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules)) {
     return EFI_NOT_FOUND;
   }
 
   PrivateData = PEI_CD_EXPRESS_PRIVATE_DATA_FROM_THIS (This);
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 06/11] MdeModulePkg/Setup: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (4 preceding siblings ...)
  2019-04-29  2:16 ` [patch 05/11] MdeModulePkg/CdExpress: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-05-07  6:13   ` Dong, Eric
  2019-04-29  2:16 ` [patch 07/11] QuarkPlatformPkg: " Dandan Bi
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao, Eric Dong

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility support is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../Universal/SetupBrowserDxe/IfrParse.c      | 86 +------------------
 .../SetupBrowserDxe/SetupBrowserDxe.inf       |  6 +-
 2 files changed, 2 insertions(+), 90 deletions(-)

diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
index 034edb51a7..891b95cf9f 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
@@ -1,9 +1,9 @@
 /** @file
 Parser for IFR binary encoding.
 
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "Setup.h"
@@ -82,80 +82,10 @@ CreateStatement (
     InsertTailList (&Form->StatementListHead, &Statement->Link);
   }
   return Statement;
 }
 
-/**
-  Convert a numeric value to a Unicode String and insert it to String Package.
-  This string is used as the Unicode Name for the EFI Variable. This is to support
-  the deprecated vareqval opcode.
-
-  @param FormSet        The FormSet.
-  @param Statement      The numeric question whose VarStoreInfo.VarName is the
-                        numeric value which is used to produce the Unicode Name
-                        for the EFI Variable.
-
-  If the Statement is NULL, the ASSERT.
-  If the opcode is not Numeric, then ASSERT.
-
-  @retval EFI_SUCCESS The funtion always succeeds.
-**/
-EFI_STATUS
-UpdateCheckBoxStringToken (
-  IN CONST FORM_BROWSER_FORMSET *FormSet,
-  IN       FORM_BROWSER_STATEMENT *Statement
-  )
-{
-  CHAR16                  Str[MAXIMUM_VALUE_CHARACTERS];
-  EFI_STRING_ID           Id;
-
-  ASSERT (Statement != NULL);
-  ASSERT (Statement->Operand == EFI_IFR_NUMERIC_OP);
-
-  UnicodeValueToStringS (Str, sizeof (Str), 0, Statement->VarStoreInfo.VarName, MAXIMUM_VALUE_CHARACTERS - 1);
-
-  Id = HiiSetString (FormSet->HiiHandle, 0, Str, NULL);
-  if (Id == 0) {
-    return EFI_OUT_OF_RESOURCES;
-  }
-
-  Statement->VarStoreInfo.VarName = Id;
-
-  return EFI_SUCCESS;
-}
-
-/**
-  Check if the next opcode is the EFI_IFR_EXTEND_OP_VAREQNAME.
-
-  @param OpCodeData     The current opcode.
-
-  @retval TRUE Yes.
-  @retval FALSE No.
-**/
-BOOLEAN
-IsNextOpCodeGuidedVarEqName (
-  IN UINT8 *OpCodeData
-  )
-{
-  //
-  // Get next opcode
-  //
-  OpCodeData += ((EFI_IFR_OP_HEADER *) OpCodeData)->Length;
-  if (*OpCodeData == EFI_IFR_GUID_OP) {
-    if (CompareGuid (&gEfiIfrFrameworkGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {
-      //
-      // Specific GUIDed opcodes to support IFR generated from Framework HII VFR
-      //
-      if ((((EFI_IFR_GUID_VAREQNAME *) OpCodeData)->ExtendOpCode) == EFI_IFR_EXTEND_OP_VAREQNAME) {
-        return TRUE;
-      }
-    }
-  }
-
-  return FALSE;
-}
-
 /**
   Initialize Question's members.
 
   @param  OpCodeData             Pointer of the raw OpCode data.
   @param  FormSet                Pointer of the current FormSet.
@@ -174,11 +104,10 @@ CreateQuestion (
   FORM_BROWSER_STATEMENT   *Statement;
   EFI_IFR_QUESTION_HEADER  *QuestionHdr;
   LIST_ENTRY               *Link;
   FORMSET_STORAGE          *Storage;
   NAME_VALUE_NODE          *NameValueNode;
-  EFI_STATUS               Status;
   BOOLEAN                  Find;
 
   Statement = CreateStatement (OpCodeData, FormSet, Form);
   if (Statement == NULL) {
     return NULL;
@@ -196,23 +125,10 @@ CreateQuestion (
     // VarStoreId of zero indicates no variable storage
     //
     return Statement;
   }
 
-  //
-  // Take a look at next OpCode to see whether it is a GUIDed opcode to support
-  // Framework Compatibility
-  //
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    if ((*OpCodeData == EFI_IFR_NUMERIC_OP) && IsNextOpCodeGuidedVarEqName (OpCodeData)) {
-      Status = UpdateCheckBoxStringToken (FormSet, Statement);
-      if (EFI_ERROR (Status)) {
-        return NULL;
-      }
-    }
-  }
-
   //
   // Find Storage for this Question
   //
   Link = GetFirstNode (&FormSet->StorageListHead);
   while (!IsNull (&FormSet->StorageListHead, Link)) {
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf b/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
index a6b9402daa..82db7c1ef1 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
@@ -1,11 +1,11 @@
 ## @file
 # The DXE driver produces FORM BROWSER2 protocol defined in UEFI specification.
 #
 # It also produces FormBrowserEx(2) protocol to let user register the different Hot key service.
 #
-# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 #
 ##
@@ -50,11 +50,10 @@
   DevicePathLib
   PcdLib
   UefiLib
 
 [Guids]
-  gEfiIfrFrameworkGuid                          ## SOMETIMES_CONSUMES  ## GUID
   gEfiHiiPlatformSetupFormsetGuid               ## SOMETIMES_CONSUMES  ## GUID
   gEfiHiiStandardFormGuid                       ## SOMETIMES_CONSUMES  ## GUID
   gZeroGuid                                     ## SOMETIMES_CONSUMES  ## GUID
   gEdkiiIfrBitVarstoreGuid                      ## SOMETIMES_CONSUMES  ## GUID
 
@@ -71,13 +70,10 @@
   ## NOTIFY
   gEdkiiFormDisplayEngineProtocolGuid
   gEdkiiFormBrowserExProtocolGuid               ## PRODUCES
   gEfiRegularExpressionProtocolGuid             ## SOMETIMES_CONSUMES
 
-[FeaturePcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport          ## CONSUMES
-
 [Depex]
   gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid
 
 [UserExtensions.TianoCore."ExtraFiles"]
   SetupBrowserExtra.uni
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 07/11] QuarkPlatformPkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (5 preceding siblings ...)
  2019-04-29  2:16 ` [patch 06/11] MdeModulePkg/Setup: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-05-07  5:58   ` [edk2-devel] " Liming Gao
  2019-04-29  2:16 ` [patch 08/11] SignedCapsulePkg: " Dandan Bi
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Michael D Kinney, Kelly Steele, Liming Gao

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility support is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../Pei/PlatformInit/Generic/Recovery.c       | 50 ++++++-------------
 .../Pei/PlatformInit/PlatformEarlyInit.inf    |  3 +-
 2 files changed, 15 insertions(+), 38 deletions(-)

diff --git a/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c b/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c
index f6a076f757..67299a68b7 100644
--- a/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c
+++ b/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c
@@ -1,10 +1,10 @@
 /** @file
 Install Platform EFI_PEI_RECOVERY_MODULE_PPI and Implementation of
 EFI_PEI_LOAD_RECOVERY_CAPSULE service.
 
-Copyright (c) 2013-2016 Intel Corporation.
+Copyright (c) 2013-2019 Intel Corporation.
 
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
@@ -195,29 +195,17 @@ Returns:
   //
   // If there is an image provider, get the capsule ID
   //
   if (ProviderAvailable) {
     RecoveryCapsuleSize = 0;
-    if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-      Status = DeviceRecoveryModule->GetRecoveryCapsuleInfo (
-                                      PeiServices,
-                                      DeviceRecoveryModule,
-                                      0,
-                                      &RecoveryCapsuleSize,
-                                      &DeviceId
-                                      );
-    } else {
-      Status = DeviceRecoveryModule->GetRecoveryCapsuleInfo (
-                  PeiServices,
-                  DeviceRecoveryModule,
-                  1,
-                  &RecoveryCapsuleSize,
-                  &DeviceId
-                  );
-
-
-  }
+    Status = DeviceRecoveryModule->GetRecoveryCapsuleInfo (
+                PeiServices,
+                DeviceRecoveryModule,
+                1,
+                &RecoveryCapsuleSize,
+                &DeviceId
+                );
 
     if (EFI_ERROR (Status)) {
       return Status;
     }
 
@@ -237,26 +225,16 @@ Returns:
     Buffer  = NULL;
     Address = (UINTN) AllocatePages ((RecoveryCapsuleSize - 1) / 0x1000 + 1);
     ASSERT (Address);
 
     Buffer = (UINT8 *) (UINTN) Address;
-    if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-      Status = DeviceRecoveryModule->LoadRecoveryCapsule (
-                                      PeiServices,
-                                      DeviceRecoveryModule,
-                                      0,
-                                      Buffer
-                                      );
-     } else {
-       Status = DeviceRecoveryModule->LoadRecoveryCapsule (
-                                        PeiServices,
-                                        DeviceRecoveryModule,
-                                        1,
-                                        Buffer
-                                        );
-
-     }
+    Status = DeviceRecoveryModule->LoadRecoveryCapsule (
+                                     PeiServices,
+                                     DeviceRecoveryModule,
+                                     1,
+                                     Buffer
+                                     );
 
     DEBUG ((EFI_D_INFO | EFI_D_LOAD, "LoadRecoveryCapsule Returns: %r\n", Status));
 
     if (Status == EFI_DEVICE_ERROR) {
       AssertMediaDeviceError (PeiServices);
diff --git a/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf b/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
index 617d681d77..df8b0dd3bd 100644
--- a/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
+++ b/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
@@ -34,11 +34,11 @@
 #  Recovery.c - provides the platform recoveyr functionality.
 #  MrcWrapper.c - Contains the logic to call MRC PPI and do Framework
 #     memory specific stuff like build memory map, build
 #     resource description hob for DXE phase,etc.
 #  Bootmode.c - Detect boot mode.
-# Copyright (c) 2013 - 2016 Intel Corporation.
+# Copyright (c) 2013 - 2019 Intel Corporation.
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
 
@@ -138,11 +138,10 @@
 [FeaturePcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk
   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD
   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk
   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
   gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError
 
 [Pcd]
   gQuarkPlatformTokenSpaceGuid.PcdEsramStage1Base
   gQuarkPlatformTokenSpaceGuid.PcdFlashAreaSize
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 08/11] SignedCapsulePkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (6 preceding siblings ...)
  2019-04-29  2:16 ` [patch 07/11] QuarkPlatformPkg: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-04-29  2:16 ` [patch 09/11] UefiCpuPkg: " Dandan Bi
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Jiewen Yao, Chao

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility support is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.c | 6 +++---
 .../RecoveryModuleLoadPei/RecoveryModuleLoadPei.inf         | 5 +----
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.c b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.c
index 29a2cc520c..eda3cc5420 100644
--- a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.c
+++ b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.c
@@ -7,11 +7,11 @@
   buffer overflow, integer overflow.
 
   ProcessRecoveryCapsule(), ProcessFmpCapsuleImage(), ProcessRecoveryImage(),
   ValidateFmpCapsule() will receive untrusted input and do basic validation.
 
-Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 //
@@ -764,11 +764,11 @@ LoadRecoveryCapsule (
     for (CapsuleInstance = 1; CapsuleInstance <= NumberRecoveryCapsules; CapsuleInstance++) {
       CapsuleSize = 0;
       Status = DeviceRecoveryPpi->GetRecoveryCapsuleInfo (
                                     (EFI_PEI_SERVICES **)PeiServices,
                                     DeviceRecoveryPpi,
-                                    FeaturePcdGet(PcdFrameworkCompatibilitySupport) ? CapsuleInstance - 1 : CapsuleInstance,
+                                    CapsuleInstance,
                                     &CapsuleSize,
                                     &CapsuleType
                                     );
       DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule - GetRecoveryCapsuleInfo (%d - %x) - %r\n", CapsuleInstance, CapsuleSize, Status));
       if (EFI_ERROR (Status)) {
@@ -781,11 +781,11 @@ LoadRecoveryCapsule (
         continue;
       }
       Status = DeviceRecoveryPpi->LoadRecoveryCapsule (
                                     (EFI_PEI_SERVICES **)PeiServices,
                                     DeviceRecoveryPpi,
-                                    FeaturePcdGet(PcdFrameworkCompatibilitySupport) ? CapsuleInstance - 1 : CapsuleInstance,
+                                    CapsuleInstance,
                                     CapsuleBuffer
                                     );
       DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule - LoadRecoveryCapsule (%d) - %r\n", CapsuleInstance, Status));
       if (EFI_ERROR (Status)) {
         FreePages (CapsuleBuffer, EFI_SIZE_TO_PAGES(CapsuleSize));
diff --git a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.inf b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.inf
index f0f5d21a7a..431b0e1802 100644
--- a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.inf
+++ b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.inf
@@ -1,11 +1,11 @@
 ## @file
 # Recovery module.
 #
 # Load Recovery capsule and install FV.
 #
-# Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 #
 ##
@@ -54,13 +54,10 @@
 
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid  ## CONSUMES
   gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareFileGuid  ## CONSUMES
 
-[FeaturePcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport         ## CONSUMES
-
 [depex]
   gEfiPeiBootInRecoveryModePpiGuid
 
 [UserExtensions.TianoCore."ExtraFiles"]
   RecoveryModuleLoadPeiExtra.uni
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 09/11] UefiCpuPkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (7 preceding siblings ...)
  2019-04-29  2:16 ` [patch 08/11] SignedCapsulePkg: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-04-29 15:15   ` Laszlo Ersek
  2019-04-29  2:16 ` [patch 10/11] Vlv2TbltDevicePkg: " Dandan Bi
                   ` (2 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Eric Dong, Ray Ni, Laszlo Ersek

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility support is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 .../Universal/Acpi/S3Resume2Pei/S3Resume.c    | 30 -------------------
 .../Acpi/S3Resume2Pei/S3Resume2Pei.inf        |  3 +-
 2 files changed, 1 insertion(+), 32 deletions(-)

diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c
index 77c3fb6bdc..83ce1c4037 100644
--- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c
+++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c
@@ -741,12 +741,10 @@ S3ResumeExecuteBootScript (
 {
   EFI_STATUS                 Status;
   PEI_SMM_ACCESS_PPI         *SmmAccess;
   UINTN                      Index;
   VOID                       *GuidHob;
-  IA32_DESCRIPTOR            *IdtDescriptor;
-  VOID                       *IdtBuffer;
   PEI_S3_RESUME_STATE        *PeiS3ResumeState;
   BOOLEAN                    InterruptStatus;
 
   DEBUG ((DEBUG_INFO, "S3ResumeExecuteBootScript()\n"));
 
@@ -802,38 +800,10 @@ S3ResumeExecuteBootScript (
 
   if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) {
     AsmWriteCr3 ((UINTN)AcpiS3Context->S3NvsPageTableAddress);
   }
 
-  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
-    //
-    // On some platform, such as ECP, a dispatch node in boot script table may execute a 32-bit PEIM which may need PeiServices
-    // pointer. So PeiServices need preserve in (IDTBase- sizeof (UINTN)).
-    //
-    IdtDescriptor = (IA32_DESCRIPTOR *) (UINTN) (AcpiS3Context->IdtrProfile);
-    //
-    // Make sure the newly allocated IDT align with 16-bytes
-    //
-    IdtBuffer = AllocatePages (EFI_SIZE_TO_PAGES((IdtDescriptor->Limit + 1) + 16));
-    if (IdtBuffer == NULL) {
-      REPORT_STATUS_CODE (
-        EFI_ERROR_CODE | EFI_ERROR_MAJOR,
-        (EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_EC_S3_RESUME_FAILED)
-        );
-      ASSERT (FALSE);
-    }
-    //
-    // Additional 16 bytes allocated to save IA32 IDT descriptor and Pei Service Table Pointer
-    // IA32 IDT descriptor will be used to setup IA32 IDT table for 32-bit Framework Boot Script code
-    //
-    ZeroMem (IdtBuffer, 16);
-    AsmReadIdtr ((IA32_DESCRIPTOR *)IdtBuffer);
-    CopyMem ((VOID*)((UINT8*)IdtBuffer + 16),(VOID*)(IdtDescriptor->Base), (IdtDescriptor->Limit + 1));
-    IdtDescriptor->Base = (UINTN)((UINT8*)IdtBuffer + 16);
-    *(UINTN*)(IdtDescriptor->Base - sizeof(UINTN)) = (UINTN)GetPeiServicesTablePointer ();
-  }
-
   InterruptStatus = SaveAndDisableInterrupts ();
   //
   // Need to make sure the GDT is loaded with values that support long mode and real mode.
   //
   AsmWriteGdtr (&mGdt);
diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
index d694a98691..aae984d138 100644
--- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
+++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
@@ -3,11 +3,11 @@
 #
 # This module works with StandAloneBootScriptExecutor to S3 resume to OS.
 # This module will excute the boot script saved during last boot and after that,
 # control is passed to OS waking up handler.
 #
-# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>
 # Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 ##
@@ -87,11 +87,10 @@
   gEfiEndOfPeiSignalPpiGuid                     ## SOMETIMES_PRODUCES
   gEfiPeiSmmCommunicationPpiGuid                ## SOMETIMES_CONSUMES
 
 [FeaturePcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode         ## CONSUMES
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport  ## CONSUMES
 
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable  ## SOMETIMES_CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask    ## CONSUMES
 
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 10/11] Vlv2TbltDevicePkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (8 preceding siblings ...)
  2019-04-29  2:16 ` [patch 09/11] UefiCpuPkg: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-05-07  8:35   ` Sun, Zailiang
  2019-04-29  2:16 ` [patch 11/11] MdeModulePkg: Remove PcdFrameworkCompatibilitySupport Dandan Bi
       [not found] ` <1599D055711F0B7C.4588@groups.io>
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Zailiang Sun, Yi Qian

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility support is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Zailiang Sun <zailiang.sun@intel.com>
Cc: Yi Qian <yi.qian@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc | 3 +--
 Vlv2TbltDevicePkg/PlatformPkgIA32.dsc   | 3 +--
 Vlv2TbltDevicePkg/PlatformPkgX64.dsc    | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc b/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
index b3642c5c7a..96e77d54e8 100644
--- a/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
+++ b/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
@@ -1,9 +1,9 @@
 #/** @file
 # Platform description.
 #
-# Copyright (c) 2012  - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2012  - 2019, Intel Corporation. All rights reserved.<BR>
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 #
 #**/
@@ -489,11 +489,10 @@
 !if $(CAPSULE_RESET_ENABLE) == TRUE
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|TRUE
 !else
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALSE
 !endif
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|TRUE
   gEfiCpuTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE
 !if $(DATAHUB_STATUS_CODE_ENABLE) == TRUE
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub|TRUE
 !else
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub|FALSE
diff --git a/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc b/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
index 28e6f5a181..114353082b 100644
--- a/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
+++ b/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
@@ -1,9 +1,9 @@
 #/** @file
 # Platform description.
 #
-# Copyright (c) 2012  - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2012  - 2019, Intel Corporation. All rights reserved.<BR>
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 #
 #**/
@@ -491,11 +491,10 @@
 !if $(CAPSULE_RESET_ENABLE) == TRUE
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|TRUE
 !else
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALSE
 !endif
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|TRUE
   gEfiCpuTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE
 !if $(DATAHUB_STATUS_CODE_ENABLE) == TRUE
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub|TRUE
 !else
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub|FALSE
diff --git a/Vlv2TbltDevicePkg/PlatformPkgX64.dsc b/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
index f9ba56ef4b..20fdc691cb 100644
--- a/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
+++ b/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
@@ -1,9 +1,9 @@
 #/** @file
 # Platform description.
 #
-# Copyright (c) 2012  - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2012  - 2019, Intel Corporation. All rights reserved.<BR>
 #
 # SPDX-License-Identifier: BSD-2-Clause-Patent
 #
 #
 #**/
@@ -491,11 +491,10 @@
 !if $(CAPSULE_RESET_ENABLE) == TRUE
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|TRUE
 !else
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALSE
 !endif
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|TRUE
   gEfiCpuTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE
 !if $(DATAHUB_STATUS_CODE_ENABLE) == TRUE
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub|TRUE
 !else
   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub|FALSE
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [patch 11/11] MdeModulePkg: Remove PcdFrameworkCompatibilitySupport
  2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
                   ` (9 preceding siblings ...)
  2019-04-29  2:16 ` [patch 10/11] Vlv2TbltDevicePkg: " Dandan Bi
@ 2019-04-29  2:16 ` Dandan Bi
  2019-05-06  1:25   ` Wu, Hao A
       [not found] ` <1599D055711F0B7C.4588@groups.io>
  11 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-04-29  2:16 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao, Hao Wu, Jian J Wang

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently Framework compatibility support is not needed and
PcdFrameworkCompatibilitySupport will be removed from edk2.
So remove the usage of this PCD firstly.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 MdeModulePkg/MdeModulePkg.dec | 8 --------
 MdeModulePkg/MdeModulePkg.uni | 6 ------
 2 files changed, 14 deletions(-)

diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index be84916cc0..095863dc07 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -735,18 +735,10 @@
   #   TRUE  - USB KeyBoard Driver will disable the default keyboard layout.<BR>
   #   FALSE - USB KeyBoard Driver will not disable the default keyboard layout.<BR>
   # @Prompt Disable default keyboard layout in USB KeyBoard Driver.
   gEfiMdeModulePkgTokenSpaceGuid.PcdDisableDefaultKeyboardLayoutInUsbKbDriver|FALSE|BOOLEAN|0x00010200
 
-  ## Indicates if backward compatibility to Framework HII and Framework FvHob is supported.<BR><BR>
-  #   TRUE  - Setup Browser supports GUID opcodes generated from Framework HII VFR file by VFR compiler.
-  #           the PeiCore will handle the framework FvHob and install FvInfo PPI for it.<BR>
-  #   FALSE - Setup Browser doesn't support GUID opcodes generated from Framework HII VFR file by VFR compiler.
-  #           the PeiCore will not handle the framework FvHob and install FvInfo PPI for it.<BR>
-  # @Prompt Enable framework backward compatibility support.
-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|FALSE|BOOLEAN|0x00012009
-
   ## Indicates if HelloWorld Application will print the verbose information.
   #  This PCD is a sample to explain FeatureFlag PCD usage.<BR><BR>
   #   TRUE  - HelloWorld Application will print the verbose information.<BR>
   #   FALSE - HelloWorld Application will not print the verbose information.<BR>
   # @Prompt Enable HelloWorld print.
diff --git a/MdeModulePkg/MdeModulePkg.uni b/MdeModulePkg/MdeModulePkg.uni
index cf2aefa7ad..b71e68617c 100644
--- a/MdeModulePkg/MdeModulePkg.uni
+++ b/MdeModulePkg/MdeModulePkg.uni
@@ -709,16 +709,10 @@
 
 #string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdDisableDefaultKeyboardLayoutInUsbKbDriver_HELP  #language en-US "Disable default USB keyboard layout? The default keyboard layout serves as the backup when no keyboard layout can be retrieved from HII database.<BR><BR>\n"
                                                                                                               "TRUE  - disable<BR>\n"
                                                                                                               "FALSE - enable<BR>"
 
-#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdFrameworkCompatibilitySupport_PROMPT  #language en-US "Enable framework backward compatibility support"
-
-#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdFrameworkCompatibilitySupport_HELP  #language en-US "Indicates if backward compatibility to Framework HII and Framework FvHob is supported.<BR><BR>\n"
-                                                                                                  "TRUE  - Setup Browser supports GUID opcodes generated from Framework HII VFR file by VFR compiler. the PeiCore will handle the framework FvHob and install FvInfo PPI for it.<BR>\n"
-                                                                                                  "FALSE - Setup Browser doesn't support GUID opcodes generated from Framework HII VFR file by VFR compiler. the PeiCore will not handle the framework FvHob and install FvInfo PPI for it.<BR>"
-
 #string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdHelloWorldPrintEnable_PROMPT  #language en-US "Enable HelloWorld print"
 
 #string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdHelloWorldPrintEnable_HELP  #language en-US "Indicates if HelloWorld Application will print the verbose information. This PCD is a sample to explain FeatureFlag PCD usage.<BR><BR>\n"
                                                                                           "TRUE  - HelloWorld Application will print the verbose information.<BR>\n"
                                                                                           "FALSE - HelloWorld Application will not print the verbose information.<BR>"
-- 
2.18.0.windows.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [patch 09/11] UefiCpuPkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:16 ` [patch 09/11] UefiCpuPkg: " Dandan Bi
@ 2019-04-29 15:15   ` Laszlo Ersek
  0 siblings, 0 replies; 28+ messages in thread
From: Laszlo Ersek @ 2019-04-29 15:15 UTC (permalink / raw)
  To: Dandan Bi, devel; +Cc: Eric Dong, Ray Ni

On 04/29/19 04:16, Dandan Bi wrote:
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> 
> Currently Framework compatibility support is not needed and
> PcdFrameworkCompatibilitySupport will be removed from edk2.
> So remove the usage of this PCD firstly.
> 
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> ---
>  .../Universal/Acpi/S3Resume2Pei/S3Resume.c    | 30 -------------------
>  .../Acpi/S3Resume2Pei/S3Resume2Pei.inf        |  3 +-
>  2 files changed, 1 insertion(+), 32 deletions(-)
> 
> diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c
> index 77c3fb6bdc..83ce1c4037 100644
> --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c
> +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c
> @@ -741,12 +741,10 @@ S3ResumeExecuteBootScript (
>  {
>    EFI_STATUS                 Status;
>    PEI_SMM_ACCESS_PPI         *SmmAccess;
>    UINTN                      Index;
>    VOID                       *GuidHob;
> -  IA32_DESCRIPTOR            *IdtDescriptor;
> -  VOID                       *IdtBuffer;
>    PEI_S3_RESUME_STATE        *PeiS3ResumeState;
>    BOOLEAN                    InterruptStatus;
>  
>    DEBUG ((DEBUG_INFO, "S3ResumeExecuteBootScript()\n"));
>  
> @@ -802,38 +800,10 @@ S3ResumeExecuteBootScript (
>  
>    if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) {
>      AsmWriteCr3 ((UINTN)AcpiS3Context->S3NvsPageTableAddress);
>    }
>  
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    //
> -    // On some platform, such as ECP, a dispatch node in boot script table may execute a 32-bit PEIM which may need PeiServices
> -    // pointer. So PeiServices need preserve in (IDTBase- sizeof (UINTN)).
> -    //
> -    IdtDescriptor = (IA32_DESCRIPTOR *) (UINTN) (AcpiS3Context->IdtrProfile);
> -    //
> -    // Make sure the newly allocated IDT align with 16-bytes
> -    //
> -    IdtBuffer = AllocatePages (EFI_SIZE_TO_PAGES((IdtDescriptor->Limit + 1) + 16));
> -    if (IdtBuffer == NULL) {
> -      REPORT_STATUS_CODE (
> -        EFI_ERROR_CODE | EFI_ERROR_MAJOR,
> -        (EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_EC_S3_RESUME_FAILED)
> -        );
> -      ASSERT (FALSE);
> -    }
> -    //
> -    // Additional 16 bytes allocated to save IA32 IDT descriptor and Pei Service Table Pointer
> -    // IA32 IDT descriptor will be used to setup IA32 IDT table for 32-bit Framework Boot Script code
> -    //
> -    ZeroMem (IdtBuffer, 16);
> -    AsmReadIdtr ((IA32_DESCRIPTOR *)IdtBuffer);
> -    CopyMem ((VOID*)((UINT8*)IdtBuffer + 16),(VOID*)(IdtDescriptor->Base), (IdtDescriptor->Limit + 1));
> -    IdtDescriptor->Base = (UINTN)((UINT8*)IdtBuffer + 16);
> -    *(UINTN*)(IdtDescriptor->Base - sizeof(UINTN)) = (UINTN)GetPeiServicesTablePointer ();
> -  }
> -
>    InterruptStatus = SaveAndDisableInterrupts ();
>    //
>    // Need to make sure the GDT is loaded with values that support long mode and real mode.
>    //
>    AsmWriteGdtr (&mGdt);
> diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
> index d694a98691..aae984d138 100644
> --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
> +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
> @@ -3,11 +3,11 @@
>  #
>  # This module works with StandAloneBootScriptExecutor to S3 resume to OS.
>  # This module will excute the boot script saved during last boot and after that,
>  # control is passed to OS waking up handler.
>  #
> -# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>
>  # Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
>  #
>  # SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> @@ -87,11 +87,10 @@
>    gEfiEndOfPeiSignalPpiGuid                     ## SOMETIMES_PRODUCES
>    gEfiPeiSmmCommunicationPpiGuid                ## SOMETIMES_CONSUMES
>  
>  [FeaturePcd]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode         ## CONSUMES
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport  ## CONSUMES
>  
>  [Pcd]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable  ## SOMETIMES_CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask    ## CONSUMES
>  
> 

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 02/11] FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 ` [patch 02/11] FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage Dandan Bi
@ 2019-05-05  3:25   ` Ni, Ray
  0 siblings, 0 replies; 28+ messages in thread
From: Ni, Ray @ 2019-05-05  3:25 UTC (permalink / raw)
  To: devel@edk2.groups.io, Bi, Dandan

Reviewed-by: Ray Ni <ray.ni@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dandan
> Bi
> Sent: Monday, April 29, 2019 10:16 AM
> To: devel@edk2.groups.io
> Cc: Ni, Ray <ray.ni@intel.com>
> Subject: [edk2-devel] [patch 02/11] FatPkg/FatPei: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> 
> Currently Framework compatibility is not needed and
> PcdFrameworkCompatibilitySupport will be removed from edk2.
> So remove the usage of this PCD firstly.
> 
> Cc: Ray Ni <ray.ni@intel.com>
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> ---
>  FatPkg/FatPei/FatLiteApi.c | 10 +---------
>  FatPkg/FatPei/FatPei.inf   |  4 ----
>  2 files changed, 1 insertion(+), 13 deletions(-)
> 
> diff --git a/FatPkg/FatPei/FatLiteApi.c b/FatPkg/FatPei/FatLiteApi.c index
> 0bf6ddae6a..b9f883b9e0 100644
> --- a/FatPkg/FatPei/FatLiteApi.c
> +++ b/FatPkg/FatPei/FatLiteApi.c
> @@ -1,9 +1,9 @@
>  /** @file
>    FAT recovery PEIM entry point, Ppi Functions and FAT Api functions.
> 
> -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
> 
>  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
> @@ -429,14 +429,10 @@ GetRecoveryCapsuleInfo (
> 
>    if (EFI_ERROR (Status)) {
>      return Status;
>    }
> 
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    CapsuleInstance = CapsuleInstance + 1;
> -  }
> -
>    if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules))
> {
>      return EFI_NOT_FOUND;
>    }
> 
>    PrivateData = PEI_FAT_PRIVATE_DATA_FROM_THIS (This); @@ -557,14
> +553,10 @@ LoadRecoveryCapsule (
> 
>    if (EFI_ERROR (Status)) {
>      return Status;
>    }
> 
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    CapsuleInstance = CapsuleInstance + 1;
> -  }
> -
>    if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules))
> {
>      return EFI_NOT_FOUND;
>    }
> 
>    PrivateData = PEI_FAT_PRIVATE_DATA_FROM_THIS (This); diff --git
> a/FatPkg/FatPei/FatPei.inf b/FatPkg/FatPei/FatPei.inf index
> b554aae040..d3466db9bf 100644
> --- a/FatPkg/FatPei/FatPei.inf
> +++ b/FatPkg/FatPei/FatPei.inf
> @@ -63,14 +63,10 @@
>  [Ppis]
>    gEfiPeiVirtualBlockIoPpiGuid                  ## SOMETIMES_CONSUMES
> PPI_NOTIFY
>    gEfiPeiVirtualBlockIo2PpiGuid                 ## SOMETIMES_CONSUMES
> PPI_NOTIFY
>    gEfiPeiDeviceRecoveryModulePpiGuid            ## SOMETIMES_PRODUCES
> 
> -
> -[FeaturePcd]
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> ## CONSUMES
> -
>  [Pcd]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName         ##
> CONSUMES
> 
>  [Depex]
>    gEfiPeiMemoryDiscoveredPpiGuid AND
> gEfiPeiBootInRecoveryModePpiGuid
> --
> 2.18.0.windows.1
> 
> 
> 


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch 05/11] MdeModulePkg/CdExpress: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:16 ` [patch 05/11] MdeModulePkg/CdExpress: " Dandan Bi
@ 2019-05-06  1:05   ` Wu, Hao A
  0 siblings, 0 replies; 28+ messages in thread
From: Wu, Hao A @ 2019-05-06  1:05 UTC (permalink / raw)
  To: Bi, Dandan, devel@edk2.groups.io; +Cc: Gao, Liming

Reviewed-by: Hao Wu <hao.a.wu@intel.com>

Best Regards,
Hao Wu

> -----Original Message-----
> From: Bi, Dandan
> Sent: Monday, April 29, 2019 10:16 AM
> To: devel@edk2.groups.io
> Cc: Wu, Hao A; Gao, Liming
> Subject: [patch 05/11] MdeModulePkg/CdExpress: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> 
> Currently Framework compatibility is not needed and
> PcdFrameworkCompatibilitySupport will be removed from edk2.
> So remove the usage of this PCD firstly.
> 
> Cc: Hao Wu <hao.a.wu@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> ---
>  .../Universal/Disk/CdExpressPei/CdExpressPei.inf       |  5 +----
>  .../Universal/Disk/CdExpressPei/PeiCdExpress.c         | 10 +---------
>  2 files changed, 2 insertions(+), 13 deletions(-)
> 
> diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
> b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
> index 11ab49b33b..184036bfb9 100644
> --- a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
> +++ b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
> @@ -3,11 +3,11 @@
>  #
>  # This module reads data from CDROM device by all installed block IO ppi and
>  # finds whether there is Recovery data in the device. If it finds recovery
>  # data, it will install Device Recovery Module PPI.
>  #
> -# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>  #
>  # SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
> @@ -56,13 +56,10 @@
>    ## NOTIFY
>    ## CONSUMES
>    gEfiPeiVirtualBlockIo2PpiGuid
>    gEfiPeiDeviceRecoveryModulePpiGuid            ## PRODUCES
> 
> -[FeaturePcd]
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport   ##
> CONSUMES
> -
>  [Pcd]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName         ##
> CONSUMES
> 
>  [Depex]
>    gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid
> diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
> b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
> index b029c54729..fd34f07eec 100644
> --- a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
> +++ b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
> @@ -1,9 +1,9 @@
>  /** @file
>    Source file for CD recovery PEIM
> 
> -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
> 
>  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
> @@ -585,14 +585,10 @@ GetRecoveryCapsuleInfo (
> 
>    if (EFI_ERROR (Status)) {
>      return Status;
>    }
> 
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    CapsuleInstance = CapsuleInstance + 1;
> -  }
> -
>    if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules)) {
>      return EFI_NOT_FOUND;
>    }
> 
>    PrivateData = PEI_CD_EXPRESS_PRIVATE_DATA_FROM_THIS (This);
> @@ -645,14 +641,10 @@ LoadRecoveryCapsule (
> 
>    if (EFI_ERROR (Status)) {
>      return Status;
>    }
> 
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    CapsuleInstance = CapsuleInstance + 1;
> -  }
> -
>    if ((CapsuleInstance == 0) || (CapsuleInstance > NumberRecoveryCapsules)) {
>      return EFI_NOT_FOUND;
>    }
> 
>    PrivateData = PEI_CD_EXPRESS_PRIVATE_DATA_FROM_THIS (This);
> --
> 2.18.0.windows.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:16 ` [patch 04/11] MdeModulePkg/Core: " Dandan Bi
@ 2019-05-06  1:22   ` Wu, Hao A
  2019-05-06  2:48     ` Dandan Bi
  0 siblings, 1 reply; 28+ messages in thread
From: Wu, Hao A @ 2019-05-06  1:22 UTC (permalink / raw)
  To: devel@edk2.groups.io, Bi, Dandan; +Cc: Gao, Liming

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Dandan Bi
> Sent: Monday, April 29, 2019 10:16 AM
> To: devel@edk2.groups.io
> Cc: Gao, Liming
> Subject: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> 
> Currently Framework compatibility is not needed and
> PcdFrameworkCompatibilitySupport will be removed from edk2.
> So remove the usage of this PCD firstly.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> ---
>  MdeModulePkg/Core/Dxe/DxeMain.inf   |   6 +-
>  MdeModulePkg/Core/Dxe/Image/Image.c | 132 +---------------------------
>  MdeModulePkg/Core/Dxe/Image/Image.h |  85 +-----------------
>  MdeModulePkg/Core/Pei/FwVol/FwVol.c |  65 --------------
>  MdeModulePkg/Core/Pei/PeiMain.inf   |   1 -
>  5 files changed, 3 insertions(+), 286 deletions(-)
> 
> diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf
> b/MdeModulePkg/Core/Dxe/DxeMain.inf
> index 8dee5bee0a..61161bee28 100644
> --- a/MdeModulePkg/Core/Dxe/DxeMain.inf
> +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
> @@ -1,11 +1,11 @@
>  ## @file
>  #  This is core module in DXE phase.
>  #
>  #  It provides an implementation of DXE Core that is compliant with DXE CIS.
>  #
> -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
>  ##
> 
>  [Defines]
> @@ -130,11 +130,10 @@
> 
>  [Protocols]
>    ## PRODUCES
>    ## SOMETIMES_CONSUMES
>    gEfiDecompressProtocolGuid
> -  gEfiLoadPeImageProtocolGuid                   ## SOMETIMES_PRODUCES   #
> Produces when PcdFrameworkCompatibilitySupport is set

A couple of questions.

Is '#include <Protocol/LoadPe32Image.h>' in MdeModulePkg\Core\Dxe\DxeMain.h
still needed?

Can we remove EFI_PE32_IMAGE_PROTOCOL altogether? Seems to me there is no
other consumer within edk2.

Best Regards,
Hao Wu

>    gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
>    gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
>    gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
>    gEfiBusSpecificDriverOverrideProtocolGuid     ## SOMETIMES_CONSUMES
>    gEfiDriverFamilyOverrideProtocolGuid          ## SOMETIMES_CONSUMES
> @@ -171,13 +170,10 @@
>    gEfiVariableWriteArchProtocolGuid             ## CONSUMES
>    gEfiVariableArchProtocolGuid                  ## CONSUMES
>    gEfiCapsuleArchProtocolGuid                   ## CONSUMES
>    gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES
> 
> -[FeaturePcd]
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> ## CONSUMES
> -
>  [Pcd]
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNu
> mber    ## SOMETIMES_CONSUMES
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNum
> ber     ## SOMETIMES_CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> ## CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress
> ## CONSUMES
> diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c
> b/MdeModulePkg/Core/Dxe/Image/Image.c
> index de5b8bed27..22a87ecf6d 100644
> --- a/MdeModulePkg/Core/Dxe/Image/Image.c
> +++ b/MdeModulePkg/Core/Dxe/Image/Image.c
> @@ -1,9 +1,9 @@
>  /** @file
>    Core image handling services to load and unload PeImage.
> 
> -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
>  #include "DxeMain.h"
> @@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>  //
>  // Module Globals
>  //
>  LOADED_IMAGE_PRIVATE_DATA  *mCurrentImage = NULL;
> 
> -LOAD_PE32_IMAGE_PRIVATE_DATA  mLoadPe32PrivateData = {
> -  LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE,
> -  NULL,
> -  {
> -    CoreLoadImageEx,
> -    CoreUnloadImageEx
> -  }
> -};
> -
>  typedef struct {
>    LIST_ENTRY                            Link;
>    EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL  *Emulator;
>    UINT16                                MachineType;
>  } EMULATOR_ENTRY;
> @@ -274,22 +265,10 @@ CoreInitializeImageServices (
>               );
>    ASSERT_EFI_ERROR(Status);
> 
>    InitializeListHead (&mAvailableEmulators);
> 
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    //
> -    // Export DXE Core PE Loader functionality for backward compatibility.
> -    //
> -    Status = CoreInstallProtocolInterface (
> -               &mLoadPe32PrivateData.Handle,
> -               &gEfiLoadPeImageProtocolGuid,
> -               EFI_NATIVE_INTERFACE,
> -               &mLoadPe32PrivateData.Pe32Image
> -               );
> -  }
> -
>    ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);
> 
>    return Status;
>  }
> 
> @@ -1564,96 +1543,10 @@ CoreLoadImage (
>    PERF_LOAD_IMAGE_END (Handle);
> 
>    return Status;
>  }
> 
> -
> -
> -/**
> -  Loads an EFI image into memory and returns a handle to the image with
> extended parameters.
> -
> -  @param  This                    Calling context
> -  @param  ParentImageHandle       The caller's image handle.
> -  @param  FilePath                The specific file path from which the image is
> -                                  loaded.
> -  @param  SourceBuffer            If not NULL, a pointer to the memory location
> -                                  containing a copy of the image to be loaded.
> -  @param  SourceSize              The size in bytes of SourceBuffer.
> -  @param  DstBuffer               The buffer to store the image.
> -  @param  NumberOfPages           For input, specifies the space size of the
> -                                  image by caller if not NULL. For output,
> -                                  specifies the actual space size needed.
> -  @param  ImageHandle             Image handle for output.
> -  @param  EntryPoint              Image entry point for output.
> -  @param  Attribute               The bit mask of attributes to set for the load
> -                                  PE image.
> -
> -  @retval EFI_SUCCESS             The image was loaded into memory.
> -  @retval EFI_NOT_FOUND           The FilePath was not found.
> -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> value.
> -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> device
> -                                  path cannot be parsed to locate the proper
> -                                  protocol for loading the file.
> -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to insufficient
> -                                  resources.
> -  @retval EFI_LOAD_ERROR          Image was not loaded because the image
> format was corrupt or not
> -                                  understood.
> -  @retval EFI_DEVICE_ERROR        Image was not loaded because the device
> returned a read error.
> -  @retval EFI_ACCESS_DENIED       Image was not loaded because the platform
> policy prohibits the
> -                                  image from being loaded. NULL is returned in
> *ImageHandle.
> -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an ImageHandle
> was created with a
> -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> current
> -                                  platform policy specifies that the image should not be
> started.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -CoreLoadImageEx (
> -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> -  IN  EFI_HANDLE                       ParentImageHandle,
> -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> -  IN  VOID                             *SourceBuffer       OPTIONAL,
> -  IN  UINTN                            SourceSize,
> -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> -  OUT EFI_HANDLE                       *ImageHandle,
> -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> -  IN  UINT32                           Attribute
> -  )
> -{
> -  EFI_STATUS    Status;
> -  EFI_HANDLE    Handle;
> -
> -  PERF_LOAD_IMAGE_BEGIN (NULL);
> -
> -  Status = CoreLoadImageCommon (
> -           TRUE,
> -           ParentImageHandle,
> -           FilePath,
> -           SourceBuffer,
> -           SourceSize,
> -           DstBuffer,
> -           NumberOfPages,
> -           ImageHandle,
> -           EntryPoint,
> -           Attribute
> -           );
> -
> -  Handle = NULL;
> -  if (!EFI_ERROR (Status)) {
> -    //
> -    // ImageHandle will be valid only Status is success.
> -    //
> -    Handle = *ImageHandle;
> -  }
> -
> -  PERF_LOAD_IMAGE_END (Handle);
> -
> -  return Status;
> -}
> -
> -
>  /**
>    Transfer control to a loaded image's entry point.
> 
>    @param  ImageHandle             Handle of image to be started.
>    @param  ExitDataSize            Pointer of the size to ExitData
> @@ -2010,28 +1903,5 @@ CoreUnloadImage (
>    }
> 
>  Done:
>    return Status;
>  }
> -
> -
> -
> -/**
> -  Unload the specified image.
> -
> -  @param  This                    Indicates the calling context.
> -  @param  ImageHandle             The specified image handle.
> -
> -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported image.
> -  @retval EFI_SUCCESS             Image successfully unloaded.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -CoreUnloadImageEx (
> -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> -  IN EFI_HANDLE                         ImageHandle
> -  )
> -{
> -  return CoreUnloadImage (ImageHandle);
> -}
> diff --git a/MdeModulePkg/Core/Dxe/Image/Image.h
> b/MdeModulePkg/Core/Dxe/Image/Image.h
> index 6020a27371..e9c44ab2a7 100644
> --- a/MdeModulePkg/Core/Dxe/Image/Image.h
> +++ b/MdeModulePkg/Core/Dxe/Image/Image.h
> @@ -1,30 +1,17 @@
>  /** @file
>    Data structure and functions to load and unload PeImage.
> 
> -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
> 
>  #ifndef _IMAGE_H_
>  #define _IMAGE_H_
> 
> -#define LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE
> SIGNATURE_32('l','p','e','i')
> -
> -typedef struct {
> -  UINTN                       Signature;
> -  /// Image handle
> -  EFI_HANDLE                  Handle;
> -  EFI_PE32_IMAGE_PROTOCOL     Pe32Image;
> -} LOAD_PE32_IMAGE_PRIVATE_DATA;
> -
> -#define LOAD_PE32_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
> -          CR(a, LOAD_PE32_IMAGE_PRIVATE_DATA, Pe32Image,
> LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE)
> -
> -
>  //
>  // Private Data Types
>  //
>  #define IMAGE_FILE_HANDLE_SIGNATURE       SIGNATURE_32('i','m','g','f')
>  typedef struct {
> @@ -32,76 +19,6 @@ typedef struct {
>    BOOLEAN             FreeBuffer;
>    VOID                *Source;
>    UINTN               SourceSize;
>  } IMAGE_FILE_HANDLE;
> 
> -/**
> -  Loads an EFI image into memory and returns a handle to the image with
> extended parameters.
> -
> -  @param  This                    Calling context
> -  @param  ParentImageHandle       The caller's image handle.
> -  @param  FilePath                The specific file path from which the image is
> -                                  loaded.
> -  @param  SourceBuffer            If not NULL, a pointer to the memory location
> -                                  containing a copy of the image to be loaded.
> -  @param  SourceSize              The size in bytes of SourceBuffer.
> -  @param  DstBuffer               The buffer to store the image.
> -  @param  NumberOfPages           For input, specifies the space size of the
> -                                  image by caller if not NULL. For output,
> -                                  specifies the actual space size needed.
> -  @param  ImageHandle             Image handle for output.
> -  @param  EntryPoint              Image entry point for output.
> -  @param  Attribute               The bit mask of attributes to set for the load
> -                                  PE image.
> -
> -  @retval EFI_SUCCESS             The image was loaded into memory.
> -  @retval EFI_NOT_FOUND           The FilePath was not found.
> -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> value.
> -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> device
> -                                  path cannot be parsed to locate the proper
> -                                  protocol for loading the file.
> -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to insufficient
> -                                  resources.
> -  @retval EFI_LOAD_ERROR          Image was not loaded because the image
> format was corrupt or not
> -                                  understood.
> -  @retval EFI_DEVICE_ERROR        Image was not loaded because the device
> returned a read error.
> -  @retval EFI_ACCESS_DENIED       Image was not loaded because the platform
> policy prohibits the
> -                                  image from being loaded. NULL is returned in
> *ImageHandle.
> -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an ImageHandle
> was created with a
> -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> current
> -                                  platform policy specifies that the image should not be
> started.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -CoreLoadImageEx (
> -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> -  IN  EFI_HANDLE                       ParentImageHandle,
> -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> -  IN  VOID                             *SourceBuffer       OPTIONAL,
> -  IN  UINTN                            SourceSize,
> -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> -  OUT EFI_HANDLE                       *ImageHandle,
> -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> -  IN  UINT32                           Attribute
> -  );
> -
> -
> -/**
> -  Unload the specified image.
> -
> -  @param  This                    Indicates the calling context.
> -  @param  ImageHandle             The specified image handle.
> -
> -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported image.
> -  @retval EFI_SUCCESS             Image successfully unloaded.
> -
> -**/
> -EFI_STATUS
> -EFIAPI
> -CoreUnloadImageEx (
> -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> -  IN EFI_HANDLE                         ImageHandle
> -  );
>  #endif
> diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> index f817ba04e2..709db00694 100644
> --- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> +++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> @@ -1092,19 +1092,10 @@ PeiFfsFindNextFile (
>  {
>    PEI_CORE_FV_HANDLE      *CoreFvHandle;
> 
>    CoreFvHandle = FvHandleToCoreHandle (FvHandle);
> 
> -  //
> -  // To make backward compatiblity, if can not find corresponding the handle
> of FV
> -  // then treat FV as build-in FFS2/FFS3 format and memory mapped FV that FV
> handle is pointed
> -  // to the address of first byte of FV.
> -  //
> -  if ((CoreFvHandle == NULL) && FeaturePcdGet
> (PcdFrameworkCompatibilitySupport)) {
> -    return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);
> -  }
> -
>    if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {
>      return EFI_NOT_FOUND;
>    }
> 
>    return CoreFvHandle->FvPpi->FindFileByType (CoreFvHandle->FvPpi,
> SearchType, FvHandle, FileHandle);
> @@ -2109,66 +2100,10 @@ PEI_CORE_FV_HANDLE *
>  FindNextCoreFvHandle (
>    IN PEI_CORE_INSTANCE  *Private,
>    IN UINTN              Instance
>    )
>  {
> -  UINTN                    Index;
> -  BOOLEAN                  Match;
> -  EFI_HOB_FIRMWARE_VOLUME  *FvHob;
> -
> -  //
> -  // Handle Framework FvHob and Install FvInfo Ppi for it.
> -  //
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    //
> -    // Loop to search the wanted FirmwareVolume which supports FFS
> -    //
> -    FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob (EFI_HOB_TYPE_FV);
> -    while (FvHob != NULL) {
> -      //
> -      // Search whether FvHob has been installed into PeiCore's FV database.
> -      // If found, no need install new FvInfoPpi for it.
> -      //
> -      for (Index = 0, Match = FALSE; Index < Private->FvCount; Index++) {
> -        if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress == Private-
> >Fv[Index].FvHeader) {
> -          Match = TRUE;
> -          break;
> -        }
> -      }
> -
> -      //
> -      // Search whether FvHob has been cached into PeiCore's Unknown FV
> database.
> -      // If found, no need install new FvInfoPpi for it.
> -      //
> -      if (!Match) {
> -        for (Index = 0; Index < Private->UnknownFvInfoCount; Index ++) {
> -          if ((UINTN)FvHob->BaseAddress == (UINTN)Private-
> >UnknownFvInfo[Index].FvInfo) {
> -            Match = TRUE;
> -            break;
> -          }
> -        }
> -      }
> -
> -      //
> -      // If the Fv in FvHob has not been installed into PeiCore's FV database and
> has
> -      // not been cached into PeiCore's Unknown FV database, install a new
> FvInfoPpi
> -      // for it then PeiCore will dispatch it in callback of FvInfoPpi.
> -      //
> -      if (!Match) {
> -        PeiServicesInstallFvInfoPpi (
> -          &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHob->BaseAddress)-
> >FileSystemGuid),
> -          (VOID *)(UINTN)FvHob->BaseAddress,
> -          (UINT32)FvHob->Length,
> -          NULL,
> -          NULL
> -          );
> -      }
> -
> -      FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob
> (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob->Header.HobLength));
> -    }
> -  }
> -
>    if (Instance >= Private->FvCount) {
>      return NULL;
>    }
> 
>    return &Private->Fv[Instance];
> diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf
> b/MdeModulePkg/Core/Pei/PeiMain.inf
> index c8a6d5b80b..7c482dacfc 100644
> --- a/MdeModulePkg/Core/Pei/PeiMain.inf
> +++ b/MdeModulePkg/Core/Pei/PeiMain.inf
> @@ -100,11 +100,10 @@
>    gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
> 
>  [Pcd]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize
> ## CONSUMES
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFi
> rst  ## CONSUMES
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> ## CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumber
> ## SOMETIMES_CONSUMES
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNu
> mber    ## SOMETIMES_CONSUMES
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNum
> ber     ## SOMETIMES_CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> ## CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot
> ## CONSUMES
> --
> 2.18.0.windows.1
> 
> 
> 


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch 11/11] MdeModulePkg: Remove PcdFrameworkCompatibilitySupport
  2019-04-29  2:16 ` [patch 11/11] MdeModulePkg: Remove PcdFrameworkCompatibilitySupport Dandan Bi
@ 2019-05-06  1:25   ` Wu, Hao A
  0 siblings, 0 replies; 28+ messages in thread
From: Wu, Hao A @ 2019-05-06  1:25 UTC (permalink / raw)
  To: Bi, Dandan, devel@edk2.groups.io; +Cc: Gao, Liming, Wang, Jian J

> -----Original Message-----
> From: Bi, Dandan
> Sent: Monday, April 29, 2019 10:16 AM
> To: devel@edk2.groups.io
> Cc: Gao, Liming; Wu, Hao A; Wang, Jian J
> Subject: [patch 11/11] MdeModulePkg: Remove
> PcdFrameworkCompatibilitySupport
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> 
> Currently Framework compatibility support is not needed and
> PcdFrameworkCompatibilitySupport will be removed from edk2.
> So remove the usage of this PCD firstly.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Hao Wu <hao.a.wu@intel.com>
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> ---
>  MdeModulePkg/MdeModulePkg.dec | 8 --------
>  MdeModulePkg/MdeModulePkg.uni | 6 ------
>  2 files changed, 14 deletions(-)
> 
> diff --git a/MdeModulePkg/MdeModulePkg.dec
> b/MdeModulePkg/MdeModulePkg.dec
> index be84916cc0..095863dc07 100644
> --- a/MdeModulePkg/MdeModulePkg.dec
> +++ b/MdeModulePkg/MdeModulePkg.dec
> @@ -735,18 +735,10 @@
>    #   TRUE  - USB KeyBoard Driver will disable the default keyboard layout.<BR>
>    #   FALSE - USB KeyBoard Driver will not disable the default keyboard
> layout.<BR>
>    # @Prompt Disable default keyboard layout in USB KeyBoard Driver.
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdDisableDefaultKeyboardLayoutInUsbKb
> Driver|FALSE|BOOLEAN|0x00010200
> 
> -  ## Indicates if backward compatibility to Framework HII and Framework
> FvHob is supported.<BR><BR>
> -  #   TRUE  - Setup Browser supports GUID opcodes generated from Framework
> HII VFR file by VFR compiler.
> -  #           the PeiCore will handle the framework FvHob and install FvInfo PPI
> for it.<BR>
> -  #   FALSE - Setup Browser doesn't support GUID opcodes generated from
> Framework HII VFR file by VFR compiler.
> -  #           the PeiCore will not handle the framework FvHob and install FvInfo
> PPI for it.<BR>
> -  # @Prompt Enable framework backward compatibility support.
> -
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|FALSE
> |BOOLEAN|0x00012009
> -
>    ## Indicates if HelloWorld Application will print the verbose information.
>    #  This PCD is a sample to explain FeatureFlag PCD usage.<BR><BR>
>    #   TRUE  - HelloWorld Application will print the verbose information.<BR>
>    #   FALSE - HelloWorld Application will not print the verbose information.<BR>
>    # @Prompt Enable HelloWorld print.
> diff --git a/MdeModulePkg/MdeModulePkg.uni
> b/MdeModulePkg/MdeModulePkg.uni
> index cf2aefa7ad..b71e68617c 100644
> --- a/MdeModulePkg/MdeModulePkg.uni
> +++ b/MdeModulePkg/MdeModulePkg.uni
> @@ -709,16 +709,10 @@
> 
>  #string
> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdDisableDefaultKeyboardLayoutIn
> UsbKbDriver_HELP  #language en-US "Disable default USB keyboard layout?
> The default keyboard layout serves as the backup when no keyboard layout can
> be retrieved from HII database.<BR><BR>\n"
>                                                                                                                "TRUE  -
> disable<BR>\n"
>                                                                                                                "FALSE -
> enable<BR>"
> 
> -#string
> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdFrameworkCompatibilitySupport_
> PROMPT  #language en-US "Enable framework backward compatibility
> support"
> -
> -#string
> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdFrameworkCompatibilitySupport_
> HELP  #language en-US "Indicates if backward compatibility to Framework HII
> and Framework FvHob is supported.<BR><BR>\n"
> -                                                                                                  "TRUE  - Setup
> Browser supports GUID opcodes generated from Framework HII VFR file by VFR
> compiler. the PeiCore will handle the framework FvHob and install FvInfo PPI
> for it.<BR>\n"
> -                                                                                                  "FALSE - Setup
> Browser doesn't support GUID opcodes generated from Framework HII VFR file
> by VFR compiler. the PeiCore will not handle the framework FvHob and install
> FvInfo PPI for it.<BR>"
> -

Reviewed-by: Hao Wu <hao.a.wu@intel.com>

Best Regards,
Hao Wu

>  #string
> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdHelloWorldPrintEnable_PROMPT
> #language en-US "Enable HelloWorld print"
> 
>  #string
> STR_gEfiMdeModulePkgTokenSpaceGuid_PcdHelloWorldPrintEnable_HELP
> #language en-US "Indicates if HelloWorld Application will print the verbose
> information. This PCD is a sample to explain FeatureFlag PCD
> usage.<BR><BR>\n"
>                                                                                            "TRUE  - HelloWorld
> Application will print the verbose information.<BR>\n"
>                                                                                            "FALSE - HelloWorld
> Application will not print the verbose information.<BR>"
> --
> 2.18.0.windows.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  2019-05-06  1:22   ` [edk2-devel] " Wu, Hao A
@ 2019-05-06  2:48     ` Dandan Bi
  2019-05-06  2:54       ` Wu, Hao A
  0 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-05-06  2:48 UTC (permalink / raw)
  To: Wu, Hao A, devel@edk2.groups.io; +Cc: Gao, Liming, Bi, Dandan

> -----Original Message-----
> From: Wu, Hao A
> Sent: Monday, May 6, 2019 9:23 AM
> To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > Dandan Bi
> > Sent: Monday, April 29, 2019 10:16 AM
> > To: devel@edk2.groups.io
> > Cc: Gao, Liming
> > Subject: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > PcdFrameworkCompatibilitySupport usage
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> >
> > Currently Framework compatibility is not needed and
> > PcdFrameworkCompatibilitySupport will be removed from edk2.
> > So remove the usage of this PCD firstly.
> >
> > Cc: Liming Gao <liming.gao@intel.com>
> > Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> > ---
> >  MdeModulePkg/Core/Dxe/DxeMain.inf   |   6 +-
> >  MdeModulePkg/Core/Dxe/Image/Image.c | 132
> > +---------------------------  MdeModulePkg/Core/Dxe/Image/Image.h |
> > 85 +-----------------  MdeModulePkg/Core/Pei/FwVol/FwVol.c |  65 ----------
> ----
> >  MdeModulePkg/Core/Pei/PeiMain.inf   |   1 -
> >  5 files changed, 3 insertions(+), 286 deletions(-)
> >
> > diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > index 8dee5bee0a..61161bee28 100644
> > --- a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > @@ -1,11 +1,11 @@
> >  ## @file
> >  #  This is core module in DXE phase.
> >  #
> >  #  It provides an implementation of DXE Core that is compliant with DXE CIS.
> >  #
> > -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +#  Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > +reserved.<BR>
> >  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  ##
> >
> >  [Defines]
> > @@ -130,11 +130,10 @@
> >
> >  [Protocols]
> >    ## PRODUCES
> >    ## SOMETIMES_CONSUMES
> >    gEfiDecompressProtocolGuid
> > -  gEfiLoadPeImageProtocolGuid                   ## SOMETIMES_PRODUCES   #
> > Produces when PcdFrameworkCompatibilitySupport is set
> 
> A couple of questions.
> 
> Is '#include <Protocol/LoadPe32Image.h>' in
> MdeModulePkg\Core\Dxe\DxeMain.h still needed?
> 
> Can we remove EFI_PE32_IMAGE_PROTOCOL altogether? Seems to me
> there is no other consumer within edk2.
> 
> Best Regards,
> Hao Wu

Hi Hao,

1. Yes,  since following definitions in <Protocol/LoadPe32Image.h> are still used in MdeModulePkg\Core\Dxe\Image\Image.c
#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION                 0x01
#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION  0x02

2. I also think we can remove this protocol, but I prefer a separate patch (not covered by this patch series) to remove it and solve the dependency issue in 1 together. Is it OK to you?

Thanks,
Dandan 
> 
> >    gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
> >    gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
> >    gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
> >    gEfiBusSpecificDriverOverrideProtocolGuid     ## SOMETIMES_CONSUMES
> >    gEfiDriverFamilyOverrideProtocolGuid          ## SOMETIMES_CONSUMES
> > @@ -171,13 +170,10 @@
> >    gEfiVariableWriteArchProtocolGuid             ## CONSUMES
> >    gEfiVariableArchProtocolGuid                  ## CONSUMES
> >    gEfiCapsuleArchProtocolGuid                   ## CONSUMES
> >    gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES
> >
> > -[FeaturePcd]
> > -
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > ## CONSUMES
> > -
> >  [Pcd]
> >
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> Nu
> > mber    ## SOMETIMES_CONSUMES
> >
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> um
> > ber     ## SOMETIMES_CONSUMES
> >    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > ## CONSUMES
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress
> > ## CONSUMES
> > diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c
> > b/MdeModulePkg/Core/Dxe/Image/Image.c
> > index de5b8bed27..22a87ecf6d 100644
> > --- a/MdeModulePkg/Core/Dxe/Image/Image.c
> > +++ b/MdeModulePkg/Core/Dxe/Image/Image.c
> > @@ -1,9 +1,9 @@
> >  /** @file
> >    Core image handling services to load and unload PeImage.
> >
> > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > +reserved.<BR>
> >  SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> >  **/
> >
> >  #include "DxeMain.h"
> > @@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
> > // Module Globals  //  LOADED_IMAGE_PRIVATE_DATA  *mCurrentImage
> =
> > NULL;
> >
> > -LOAD_PE32_IMAGE_PRIVATE_DATA  mLoadPe32PrivateData = {
> > -  LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE,
> > -  NULL,
> > -  {
> > -    CoreLoadImageEx,
> > -    CoreUnloadImageEx
> > -  }
> > -};
> > -
> >  typedef struct {
> >    LIST_ENTRY                            Link;
> >    EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL  *Emulator;
> >    UINT16                                MachineType;
> >  } EMULATOR_ENTRY;
> > @@ -274,22 +265,10 @@ CoreInitializeImageServices (
> >               );
> >    ASSERT_EFI_ERROR(Status);
> >
> >    InitializeListHead (&mAvailableEmulators);
> >
> > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > -    //
> > -    // Export DXE Core PE Loader functionality for backward compatibility.
> > -    //
> > -    Status = CoreInstallProtocolInterface (
> > -               &mLoadPe32PrivateData.Handle,
> > -               &gEfiLoadPeImageProtocolGuid,
> > -               EFI_NATIVE_INTERFACE,
> > -               &mLoadPe32PrivateData.Pe32Image
> > -               );
> > -  }
> > -
> >    ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);
> >
> >    return Status;
> >  }
> >
> > @@ -1564,96 +1543,10 @@ CoreLoadImage (
> >    PERF_LOAD_IMAGE_END (Handle);
> >
> >    return Status;
> >  }
> >
> > -
> > -
> > -/**
> > -  Loads an EFI image into memory and returns a handle to the image
> > with extended parameters.
> > -
> > -  @param  This                    Calling context
> > -  @param  ParentImageHandle       The caller's image handle.
> > -  @param  FilePath                The specific file path from which the image is
> > -                                  loaded.
> > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> location
> > -                                  containing a copy of the image to be loaded.
> > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > -  @param  DstBuffer               The buffer to store the image.
> > -  @param  NumberOfPages           For input, specifies the space size of the
> > -                                  image by caller if not NULL. For output,
> > -                                  specifies the actual space size needed.
> > -  @param  ImageHandle             Image handle for output.
> > -  @param  EntryPoint              Image entry point for output.
> > -  @param  Attribute               The bit mask of attributes to set for the load
> > -                                  PE image.
> > -
> > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> > value.
> > -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> > device
> > -                                  path cannot be parsed to locate the proper
> > -                                  protocol for loading the file.
> > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> insufficient
> > -                                  resources.
> > -  @retval EFI_LOAD_ERROR          Image was not loaded because the image
> > format was corrupt or not
> > -                                  understood.
> > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> device
> > returned a read error.
> > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> platform
> > policy prohibits the
> > -                                  image from being loaded. NULL is returned in
> > *ImageHandle.
> > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> ImageHandle
> > was created with a
> > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > current
> > -                                  platform policy specifies that the image should not be
> > started.
> > -
> > -**/
> > -EFI_STATUS
> > -EFIAPI
> > -CoreLoadImageEx (
> > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > -  IN  EFI_HANDLE                       ParentImageHandle,
> > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > -  IN  UINTN                            SourceSize,
> > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > -  OUT EFI_HANDLE                       *ImageHandle,
> > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > -  IN  UINT32                           Attribute
> > -  )
> > -{
> > -  EFI_STATUS    Status;
> > -  EFI_HANDLE    Handle;
> > -
> > -  PERF_LOAD_IMAGE_BEGIN (NULL);
> > -
> > -  Status = CoreLoadImageCommon (
> > -           TRUE,
> > -           ParentImageHandle,
> > -           FilePath,
> > -           SourceBuffer,
> > -           SourceSize,
> > -           DstBuffer,
> > -           NumberOfPages,
> > -           ImageHandle,
> > -           EntryPoint,
> > -           Attribute
> > -           );
> > -
> > -  Handle = NULL;
> > -  if (!EFI_ERROR (Status)) {
> > -    //
> > -    // ImageHandle will be valid only Status is success.
> > -    //
> > -    Handle = *ImageHandle;
> > -  }
> > -
> > -  PERF_LOAD_IMAGE_END (Handle);
> > -
> > -  return Status;
> > -}
> > -
> > -
> >  /**
> >    Transfer control to a loaded image's entry point.
> >
> >    @param  ImageHandle             Handle of image to be started.
> >    @param  ExitDataSize            Pointer of the size to ExitData
> > @@ -2010,28 +1903,5 @@ CoreUnloadImage (
> >    }
> >
> >  Done:
> >    return Status;
> >  }
> > -
> > -
> > -
> > -/**
> > -  Unload the specified image.
> > -
> > -  @param  This                    Indicates the calling context.
> > -  @param  ImageHandle             The specified image handle.
> > -
> > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> image.
> > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > -
> > -**/
> > -EFI_STATUS
> > -EFIAPI
> > -CoreUnloadImageEx (
> > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > -  IN EFI_HANDLE                         ImageHandle
> > -  )
> > -{
> > -  return CoreUnloadImage (ImageHandle); -} diff --git
> > a/MdeModulePkg/Core/Dxe/Image/Image.h
> > b/MdeModulePkg/Core/Dxe/Image/Image.h
> > index 6020a27371..e9c44ab2a7 100644
> > --- a/MdeModulePkg/Core/Dxe/Image/Image.h
> > +++ b/MdeModulePkg/Core/Dxe/Image/Image.h
> > @@ -1,30 +1,17 @@
> >  /** @file
> >    Data structure and functions to load and unload PeImage.
> >
> > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > +reserved.<BR>
> >  SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> >  **/
> >
> >
> >  #ifndef _IMAGE_H_
> >  #define _IMAGE_H_
> >
> > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE
> > SIGNATURE_32('l','p','e','i')
> > -
> > -typedef struct {
> > -  UINTN                       Signature;
> > -  /// Image handle
> > -  EFI_HANDLE                  Handle;
> > -  EFI_PE32_IMAGE_PROTOCOL     Pe32Image;
> > -} LOAD_PE32_IMAGE_PRIVATE_DATA;
> > -
> > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
> > -          CR(a, LOAD_PE32_IMAGE_PRIVATE_DATA, Pe32Image,
> > LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE)
> > -
> > -
> >  //
> >  // Private Data Types
> >  //
> >  #define IMAGE_FILE_HANDLE_SIGNATURE       SIGNATURE_32('i','m','g','f')
> >  typedef struct {
> > @@ -32,76 +19,6 @@ typedef struct {
> >    BOOLEAN             FreeBuffer;
> >    VOID                *Source;
> >    UINTN               SourceSize;
> >  } IMAGE_FILE_HANDLE;
> >
> > -/**
> > -  Loads an EFI image into memory and returns a handle to the image
> > with extended parameters.
> > -
> > -  @param  This                    Calling context
> > -  @param  ParentImageHandle       The caller's image handle.
> > -  @param  FilePath                The specific file path from which the image is
> > -                                  loaded.
> > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> location
> > -                                  containing a copy of the image to be loaded.
> > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > -  @param  DstBuffer               The buffer to store the image.
> > -  @param  NumberOfPages           For input, specifies the space size of the
> > -                                  image by caller if not NULL. For output,
> > -                                  specifies the actual space size needed.
> > -  @param  ImageHandle             Image handle for output.
> > -  @param  EntryPoint              Image entry point for output.
> > -  @param  Attribute               The bit mask of attributes to set for the load
> > -                                  PE image.
> > -
> > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> > value.
> > -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> > device
> > -                                  path cannot be parsed to locate the proper
> > -                                  protocol for loading the file.
> > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> insufficient
> > -                                  resources.
> > -  @retval EFI_LOAD_ERROR          Image was not loaded because the image
> > format was corrupt or not
> > -                                  understood.
> > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> device
> > returned a read error.
> > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> platform
> > policy prohibits the
> > -                                  image from being loaded. NULL is returned in
> > *ImageHandle.
> > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> ImageHandle
> > was created with a
> > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > current
> > -                                  platform policy specifies that the image should not be
> > started.
> > -
> > -**/
> > -EFI_STATUS
> > -EFIAPI
> > -CoreLoadImageEx (
> > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > -  IN  EFI_HANDLE                       ParentImageHandle,
> > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > -  IN  UINTN                            SourceSize,
> > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > -  OUT EFI_HANDLE                       *ImageHandle,
> > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > -  IN  UINT32                           Attribute
> > -  );
> > -
> > -
> > -/**
> > -  Unload the specified image.
> > -
> > -  @param  This                    Indicates the calling context.
> > -  @param  ImageHandle             The specified image handle.
> > -
> > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> image.
> > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > -
> > -**/
> > -EFI_STATUS
> > -EFIAPI
> > -CoreUnloadImageEx (
> > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > -  IN EFI_HANDLE                         ImageHandle
> > -  );
> >  #endif
> > diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > index f817ba04e2..709db00694 100644
> > --- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > +++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > @@ -1092,19 +1092,10 @@ PeiFfsFindNextFile (  {
> >    PEI_CORE_FV_HANDLE      *CoreFvHandle;
> >
> >    CoreFvHandle = FvHandleToCoreHandle (FvHandle);
> >
> > -  //
> > -  // To make backward compatiblity, if can not find corresponding the
> > handle of FV
> > -  // then treat FV as build-in FFS2/FFS3 format and memory mapped FV
> > that FV handle is pointed
> > -  // to the address of first byte of FV.
> > -  //
> > -  if ((CoreFvHandle == NULL) && FeaturePcdGet
> > (PcdFrameworkCompatibilitySupport)) {
> > -    return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);
> > -  }
> > -
> >    if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {
> >      return EFI_NOT_FOUND;
> >    }
> >
> >    return CoreFvHandle->FvPpi->FindFileByType (CoreFvHandle->FvPpi,
> > SearchType, FvHandle, FileHandle); @@ -2109,66 +2100,10 @@
> > PEI_CORE_FV_HANDLE *  FindNextCoreFvHandle (
> >    IN PEI_CORE_INSTANCE  *Private,
> >    IN UINTN              Instance
> >    )
> >  {
> > -  UINTN                    Index;
> > -  BOOLEAN                  Match;
> > -  EFI_HOB_FIRMWARE_VOLUME  *FvHob;
> > -
> > -  //
> > -  // Handle Framework FvHob and Install FvInfo Ppi for it.
> > -  //
> > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > -    //
> > -    // Loop to search the wanted FirmwareVolume which supports FFS
> > -    //
> > -    FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob
> (EFI_HOB_TYPE_FV);
> > -    while (FvHob != NULL) {
> > -      //
> > -      // Search whether FvHob has been installed into PeiCore's FV database.
> > -      // If found, no need install new FvInfoPpi for it.
> > -      //
> > -      for (Index = 0, Match = FALSE; Index < Private->FvCount; Index++) {
> > -        if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress == Private-
> > >Fv[Index].FvHeader) {
> > -          Match = TRUE;
> > -          break;
> > -        }
> > -      }
> > -
> > -      //
> > -      // Search whether FvHob has been cached into PeiCore's Unknown FV
> > database.
> > -      // If found, no need install new FvInfoPpi for it.
> > -      //
> > -      if (!Match) {
> > -        for (Index = 0; Index < Private->UnknownFvInfoCount; Index ++) {
> > -          if ((UINTN)FvHob->BaseAddress == (UINTN)Private-
> > >UnknownFvInfo[Index].FvInfo) {
> > -            Match = TRUE;
> > -            break;
> > -          }
> > -        }
> > -      }
> > -
> > -      //
> > -      // If the Fv in FvHob has not been installed into PeiCore's FV database
> and
> > has
> > -      // not been cached into PeiCore's Unknown FV database, install a new
> > FvInfoPpi
> > -      // for it then PeiCore will dispatch it in callback of FvInfoPpi.
> > -      //
> > -      if (!Match) {
> > -        PeiServicesInstallFvInfoPpi (
> > -          &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHob-
> >BaseAddress)-
> > >FileSystemGuid),
> > -          (VOID *)(UINTN)FvHob->BaseAddress,
> > -          (UINT32)FvHob->Length,
> > -          NULL,
> > -          NULL
> > -          );
> > -      }
> > -
> > -      FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob
> > (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob-
> >Header.HobLength));
> > -    }
> > -  }
> > -
> >    if (Instance >= Private->FvCount) {
> >      return NULL;
> >    }
> >
> >    return &Private->Fv[Instance];
> > diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf
> > b/MdeModulePkg/Core/Pei/PeiMain.inf
> > index c8a6d5b80b..7c482dacfc 100644
> > --- a/MdeModulePkg/Core/Pei/PeiMain.inf
> > +++ b/MdeModulePkg/Core/Pei/PeiMain.inf
> > @@ -100,11 +100,10 @@
> >    gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
> >
> >  [Pcd]
> >    gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize
> > ## CONSUMES
> >
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSecti
> onFi
> > rst  ## CONSUMES
> > -
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > ## CONSUMES
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumb
> er
> > ## SOMETIMES_CONSUMES
> >
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> Nu
> > mber    ## SOMETIMES_CONSUMES
> >
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> um
> > ber     ## SOMETIMES_CONSUMES
> >    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > ## CONSUMES
> >    gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot
> > ## CONSUMES
> > --
> > 2.18.0.windows.1
> >
> >
> > 


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  2019-05-06  2:48     ` Dandan Bi
@ 2019-05-06  2:54       ` Wu, Hao A
  2019-05-07  7:08         ` Dandan Bi
  0 siblings, 1 reply; 28+ messages in thread
From: Wu, Hao A @ 2019-05-06  2:54 UTC (permalink / raw)
  To: Bi, Dandan, devel@edk2.groups.io; +Cc: Gao, Liming

> -----Original Message-----
> From: Bi, Dandan
> Sent: Monday, May 06, 2019 10:48 AM
> To: Wu, Hao A; devel@edk2.groups.io
> Cc: Gao, Liming; Bi, Dandan
> Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> > -----Original Message-----
> > From: Wu, Hao A
> > Sent: Monday, May 6, 2019 9:23 AM
> > To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>
> > Cc: Gao, Liming <liming.gao@intel.com>
> > Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > PcdFrameworkCompatibilitySupport usage
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > > Dandan Bi
> > > Sent: Monday, April 29, 2019 10:16 AM
> > > To: devel@edk2.groups.io
> > > Cc: Gao, Liming
> > > Subject: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > > PcdFrameworkCompatibilitySupport usage
> > >
> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> > >
> > > Currently Framework compatibility is not needed and
> > > PcdFrameworkCompatibilitySupport will be removed from edk2.
> > > So remove the usage of this PCD firstly.
> > >
> > > Cc: Liming Gao <liming.gao@intel.com>
> > > Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> > > ---
> > >  MdeModulePkg/Core/Dxe/DxeMain.inf   |   6 +-
> > >  MdeModulePkg/Core/Dxe/Image/Image.c | 132
> > > +---------------------------  MdeModulePkg/Core/Dxe/Image/Image.h |
> > > 85 +-----------------  MdeModulePkg/Core/Pei/FwVol/FwVol.c |  65 ----------
> > ----
> > >  MdeModulePkg/Core/Pei/PeiMain.inf   |   1 -
> > >  5 files changed, 3 insertions(+), 286 deletions(-)
> > >
> > > diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > index 8dee5bee0a..61161bee28 100644
> > > --- a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > @@ -1,11 +1,11 @@
> > >  ## @file
> > >  #  This is core module in DXE phase.
> > >  #
> > >  #  It provides an implementation of DXE Core that is compliant with DXE
> CIS.
> > >  #
> > > -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > reserved.<BR>
> > > +#  Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > +reserved.<BR>
> > >  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  ##
> > >
> > >  [Defines]
> > > @@ -130,11 +130,10 @@
> > >
> > >  [Protocols]
> > >    ## PRODUCES
> > >    ## SOMETIMES_CONSUMES
> > >    gEfiDecompressProtocolGuid
> > > -  gEfiLoadPeImageProtocolGuid                   ## SOMETIMES_PRODUCES   #
> > > Produces when PcdFrameworkCompatibilitySupport is set
> >
> > A couple of questions.
> >
> > Is '#include <Protocol/LoadPe32Image.h>' in
> > MdeModulePkg\Core\Dxe\DxeMain.h still needed?
> >
> > Can we remove EFI_PE32_IMAGE_PROTOCOL altogether? Seems to me
> > there is no other consumer within edk2.
> >
> > Best Regards,
> > Hao Wu
> 
> Hi Hao,
> 
> 1. Yes,  since following definitions in <Protocol/LoadPe32Image.h> are still used
> in MdeModulePkg\Core\Dxe\Image\Image.c
> #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION
> 0x01
> #define
> EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATIO
> N  0x02

OK. I overlooked that these definitions are still being used.

> 
> 2. I also think we can remove this protocol, but I prefer a separate patch (not
> covered by this patch series) to remove it and solve the dependency issue in 1
> together. Is it OK to you?

As point 1 mentioned above, I think the protocol should be kept to preserve
the definitions.

Maybe Liming will have some comments on this.

Best Regards,
Hao Wu

> 
> Thanks,
> Dandan
> >
> > >    gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
> > >    gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
> > >    gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
> > >    gEfiBusSpecificDriverOverrideProtocolGuid     ##
> SOMETIMES_CONSUMES
> > >    gEfiDriverFamilyOverrideProtocolGuid          ## SOMETIMES_CONSUMES
> > > @@ -171,13 +170,10 @@
> > >    gEfiVariableWriteArchProtocolGuid             ## CONSUMES
> > >    gEfiVariableArchProtocolGuid                  ## CONSUMES
> > >    gEfiCapsuleArchProtocolGuid                   ## CONSUMES
> > >    gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES
> > >
> > > -[FeaturePcd]
> > > -
> > gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > > ## CONSUMES
> > > -
> > >  [Pcd]
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> > Nu
> > > mber    ## SOMETIMES_CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> > um
> > > ber     ## SOMETIMES_CONSUMES
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > > ## CONSUMES
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress
> > > ## CONSUMES
> > > diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c
> > > b/MdeModulePkg/Core/Dxe/Image/Image.c
> > > index de5b8bed27..22a87ecf6d 100644
> > > --- a/MdeModulePkg/Core/Dxe/Image/Image.c
> > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.c
> > > @@ -1,9 +1,9 @@
> > >  /** @file
> > >    Core image handling services to load and unload PeImage.
> > >
> > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > reserved.<BR>
> > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > +reserved.<BR>
> > >  SPDX-License-Identifier: BSD-2-Clause-Patent
> > >
> > >  **/
> > >
> > >  #include "DxeMain.h"
> > > @@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
> > > // Module Globals  //  LOADED_IMAGE_PRIVATE_DATA  *mCurrentImage
> > =
> > > NULL;
> > >
> > > -LOAD_PE32_IMAGE_PRIVATE_DATA  mLoadPe32PrivateData = {
> > > -  LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE,
> > > -  NULL,
> > > -  {
> > > -    CoreLoadImageEx,
> > > -    CoreUnloadImageEx
> > > -  }
> > > -};
> > > -
> > >  typedef struct {
> > >    LIST_ENTRY                            Link;
> > >    EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL  *Emulator;
> > >    UINT16                                MachineType;
> > >  } EMULATOR_ENTRY;
> > > @@ -274,22 +265,10 @@ CoreInitializeImageServices (
> > >               );
> > >    ASSERT_EFI_ERROR(Status);
> > >
> > >    InitializeListHead (&mAvailableEmulators);
> > >
> > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > > -    //
> > > -    // Export DXE Core PE Loader functionality for backward compatibility.
> > > -    //
> > > -    Status = CoreInstallProtocolInterface (
> > > -               &mLoadPe32PrivateData.Handle,
> > > -               &gEfiLoadPeImageProtocolGuid,
> > > -               EFI_NATIVE_INTERFACE,
> > > -               &mLoadPe32PrivateData.Pe32Image
> > > -               );
> > > -  }
> > > -
> > >    ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);
> > >
> > >    return Status;
> > >  }
> > >
> > > @@ -1564,96 +1543,10 @@ CoreLoadImage (
> > >    PERF_LOAD_IMAGE_END (Handle);
> > >
> > >    return Status;
> > >  }
> > >
> > > -
> > > -
> > > -/**
> > > -  Loads an EFI image into memory and returns a handle to the image
> > > with extended parameters.
> > > -
> > > -  @param  This                    Calling context
> > > -  @param  ParentImageHandle       The caller's image handle.
> > > -  @param  FilePath                The specific file path from which the image is
> > > -                                  loaded.
> > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> > location
> > > -                                  containing a copy of the image to be loaded.
> > > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > > -  @param  DstBuffer               The buffer to store the image.
> > > -  @param  NumberOfPages           For input, specifies the space size of the
> > > -                                  image by caller if not NULL. For output,
> > > -                                  specifies the actual space size needed.
> > > -  @param  ImageHandle             Image handle for output.
> > > -  @param  EntryPoint              Image entry point for output.
> > > -  @param  Attribute               The bit mask of attributes to set for the load
> > > -                                  PE image.
> > > -
> > > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> > > value.
> > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> > > device
> > > -                                  path cannot be parsed to locate the proper
> > > -                                  protocol for loading the file.
> > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> > insufficient
> > > -                                  resources.
> > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
> image
> > > format was corrupt or not
> > > -                                  understood.
> > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> > device
> > > returned a read error.
> > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> > platform
> > > policy prohibits the
> > > -                                  image from being loaded. NULL is returned in
> > > *ImageHandle.
> > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> > ImageHandle
> > > was created with a
> > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > > current
> > > -                                  platform policy specifies that the image should not be
> > > started.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreLoadImageEx (
> > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > > -  IN  EFI_HANDLE                       ParentImageHandle,
> > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > > -  IN  UINTN                            SourceSize,
> > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > > -  OUT EFI_HANDLE                       *ImageHandle,
> > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > > -  IN  UINT32                           Attribute
> > > -  )
> > > -{
> > > -  EFI_STATUS    Status;
> > > -  EFI_HANDLE    Handle;
> > > -
> > > -  PERF_LOAD_IMAGE_BEGIN (NULL);
> > > -
> > > -  Status = CoreLoadImageCommon (
> > > -           TRUE,
> > > -           ParentImageHandle,
> > > -           FilePath,
> > > -           SourceBuffer,
> > > -           SourceSize,
> > > -           DstBuffer,
> > > -           NumberOfPages,
> > > -           ImageHandle,
> > > -           EntryPoint,
> > > -           Attribute
> > > -           );
> > > -
> > > -  Handle = NULL;
> > > -  if (!EFI_ERROR (Status)) {
> > > -    //
> > > -    // ImageHandle will be valid only Status is success.
> > > -    //
> > > -    Handle = *ImageHandle;
> > > -  }
> > > -
> > > -  PERF_LOAD_IMAGE_END (Handle);
> > > -
> > > -  return Status;
> > > -}
> > > -
> > > -
> > >  /**
> > >    Transfer control to a loaded image's entry point.
> > >
> > >    @param  ImageHandle             Handle of image to be started.
> > >    @param  ExitDataSize            Pointer of the size to ExitData
> > > @@ -2010,28 +1903,5 @@ CoreUnloadImage (
> > >    }
> > >
> > >  Done:
> > >    return Status;
> > >  }
> > > -
> > > -
> > > -
> > > -/**
> > > -  Unload the specified image.
> > > -
> > > -  @param  This                    Indicates the calling context.
> > > -  @param  ImageHandle             The specified image handle.
> > > -
> > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> > image.
> > > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreUnloadImageEx (
> > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > > -  IN EFI_HANDLE                         ImageHandle
> > > -  )
> > > -{
> > > -  return CoreUnloadImage (ImageHandle); -} diff --git
> > > a/MdeModulePkg/Core/Dxe/Image/Image.h
> > > b/MdeModulePkg/Core/Dxe/Image/Image.h
> > > index 6020a27371..e9c44ab2a7 100644
> > > --- a/MdeModulePkg/Core/Dxe/Image/Image.h
> > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.h
> > > @@ -1,30 +1,17 @@
> > >  /** @file
> > >    Data structure and functions to load and unload PeImage.
> > >
> > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > reserved.<BR>
> > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > +reserved.<BR>
> > >  SPDX-License-Identifier: BSD-2-Clause-Patent
> > >
> > >  **/
> > >
> > >
> > >  #ifndef _IMAGE_H_
> > >  #define _IMAGE_H_
> > >
> > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE
> > > SIGNATURE_32('l','p','e','i')
> > > -
> > > -typedef struct {
> > > -  UINTN                       Signature;
> > > -  /// Image handle
> > > -  EFI_HANDLE                  Handle;
> > > -  EFI_PE32_IMAGE_PROTOCOL     Pe32Image;
> > > -} LOAD_PE32_IMAGE_PRIVATE_DATA;
> > > -
> > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
> > > -          CR(a, LOAD_PE32_IMAGE_PRIVATE_DATA, Pe32Image,
> > > LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE)
> > > -
> > > -
> > >  //
> > >  // Private Data Types
> > >  //
> > >  #define IMAGE_FILE_HANDLE_SIGNATURE       SIGNATURE_32('i','m','g','f')
> > >  typedef struct {
> > > @@ -32,76 +19,6 @@ typedef struct {
> > >    BOOLEAN             FreeBuffer;
> > >    VOID                *Source;
> > >    UINTN               SourceSize;
> > >  } IMAGE_FILE_HANDLE;
> > >
> > > -/**
> > > -  Loads an EFI image into memory and returns a handle to the image
> > > with extended parameters.
> > > -
> > > -  @param  This                    Calling context
> > > -  @param  ParentImageHandle       The caller's image handle.
> > > -  @param  FilePath                The specific file path from which the image is
> > > -                                  loaded.
> > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> > location
> > > -                                  containing a copy of the image to be loaded.
> > > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > > -  @param  DstBuffer               The buffer to store the image.
> > > -  @param  NumberOfPages           For input, specifies the space size of the
> > > -                                  image by caller if not NULL. For output,
> > > -                                  specifies the actual space size needed.
> > > -  @param  ImageHandle             Image handle for output.
> > > -  @param  EntryPoint              Image entry point for output.
> > > -  @param  Attribute               The bit mask of attributes to set for the load
> > > -                                  PE image.
> > > -
> > > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> > > value.
> > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> > > device
> > > -                                  path cannot be parsed to locate the proper
> > > -                                  protocol for loading the file.
> > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> > insufficient
> > > -                                  resources.
> > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
> image
> > > format was corrupt or not
> > > -                                  understood.
> > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> > device
> > > returned a read error.
> > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> > platform
> > > policy prohibits the
> > > -                                  image from being loaded. NULL is returned in
> > > *ImageHandle.
> > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> > ImageHandle
> > > was created with a
> > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > > current
> > > -                                  platform policy specifies that the image should not be
> > > started.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreLoadImageEx (
> > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > > -  IN  EFI_HANDLE                       ParentImageHandle,
> > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > > -  IN  UINTN                            SourceSize,
> > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > > -  OUT EFI_HANDLE                       *ImageHandle,
> > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > > -  IN  UINT32                           Attribute
> > > -  );
> > > -
> > > -
> > > -/**
> > > -  Unload the specified image.
> > > -
> > > -  @param  This                    Indicates the calling context.
> > > -  @param  ImageHandle             The specified image handle.
> > > -
> > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> > image.
> > > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreUnloadImageEx (
> > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > > -  IN EFI_HANDLE                         ImageHandle
> > > -  );
> > >  #endif
> > > diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > index f817ba04e2..709db00694 100644
> > > --- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > +++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > @@ -1092,19 +1092,10 @@ PeiFfsFindNextFile (  {
> > >    PEI_CORE_FV_HANDLE      *CoreFvHandle;
> > >
> > >    CoreFvHandle = FvHandleToCoreHandle (FvHandle);
> > >
> > > -  //
> > > -  // To make backward compatiblity, if can not find corresponding the
> > > handle of FV
> > > -  // then treat FV as build-in FFS2/FFS3 format and memory mapped FV
> > > that FV handle is pointed
> > > -  // to the address of first byte of FV.
> > > -  //
> > > -  if ((CoreFvHandle == NULL) && FeaturePcdGet
> > > (PcdFrameworkCompatibilitySupport)) {
> > > -    return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);
> > > -  }
> > > -
> > >    if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {
> > >      return EFI_NOT_FOUND;
> > >    }
> > >
> > >    return CoreFvHandle->FvPpi->FindFileByType (CoreFvHandle->FvPpi,
> > > SearchType, FvHandle, FileHandle); @@ -2109,66 +2100,10 @@
> > > PEI_CORE_FV_HANDLE *  FindNextCoreFvHandle (
> > >    IN PEI_CORE_INSTANCE  *Private,
> > >    IN UINTN              Instance
> > >    )
> > >  {
> > > -  UINTN                    Index;
> > > -  BOOLEAN                  Match;
> > > -  EFI_HOB_FIRMWARE_VOLUME  *FvHob;
> > > -
> > > -  //
> > > -  // Handle Framework FvHob and Install FvInfo Ppi for it.
> > > -  //
> > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > > -    //
> > > -    // Loop to search the wanted FirmwareVolume which supports FFS
> > > -    //
> > > -    FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob
> > (EFI_HOB_TYPE_FV);
> > > -    while (FvHob != NULL) {
> > > -      //
> > > -      // Search whether FvHob has been installed into PeiCore's FV database.
> > > -      // If found, no need install new FvInfoPpi for it.
> > > -      //
> > > -      for (Index = 0, Match = FALSE; Index < Private->FvCount; Index++) {
> > > -        if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress == Private-
> > > >Fv[Index].FvHeader) {
> > > -          Match = TRUE;
> > > -          break;
> > > -        }
> > > -      }
> > > -
> > > -      //
> > > -      // Search whether FvHob has been cached into PeiCore's Unknown FV
> > > database.
> > > -      // If found, no need install new FvInfoPpi for it.
> > > -      //
> > > -      if (!Match) {
> > > -        for (Index = 0; Index < Private->UnknownFvInfoCount; Index ++) {
> > > -          if ((UINTN)FvHob->BaseAddress == (UINTN)Private-
> > > >UnknownFvInfo[Index].FvInfo) {
> > > -            Match = TRUE;
> > > -            break;
> > > -          }
> > > -        }
> > > -      }
> > > -
> > > -      //
> > > -      // If the Fv in FvHob has not been installed into PeiCore's FV database
> > and
> > > has
> > > -      // not been cached into PeiCore's Unknown FV database, install a new
> > > FvInfoPpi
> > > -      // for it then PeiCore will dispatch it in callback of FvInfoPpi.
> > > -      //
> > > -      if (!Match) {
> > > -        PeiServicesInstallFvInfoPpi (
> > > -          &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHob-
> > >BaseAddress)-
> > > >FileSystemGuid),
> > > -          (VOID *)(UINTN)FvHob->BaseAddress,
> > > -          (UINT32)FvHob->Length,
> > > -          NULL,
> > > -          NULL
> > > -          );
> > > -      }
> > > -
> > > -      FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob
> > > (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob-
> > >Header.HobLength));
> > > -    }
> > > -  }
> > > -
> > >    if (Instance >= Private->FvCount) {
> > >      return NULL;
> > >    }
> > >
> > >    return &Private->Fv[Instance];
> > > diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf
> > > b/MdeModulePkg/Core/Pei/PeiMain.inf
> > > index c8a6d5b80b..7c482dacfc 100644
> > > --- a/MdeModulePkg/Core/Pei/PeiMain.inf
> > > +++ b/MdeModulePkg/Core/Pei/PeiMain.inf
> > > @@ -100,11 +100,10 @@
> > >    gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
> > >
> > >  [Pcd]
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize
> > > ## CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSecti
> > onFi
> > > rst  ## CONSUMES
> > > -
> > gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > > ## CONSUMES
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumb
> > er
> > > ## SOMETIMES_CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> > Nu
> > > mber    ## SOMETIMES_CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> > um
> > > ber     ## SOMETIMES_CONSUMES
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > > ## CONSUMES
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot
> > > ## CONSUMES
> > > --
> > > 2.18.0.windows.1
> > >
> > >
> > > 


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support
  2019-04-29  2:15 ` [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support Dandan Bi
@ 2019-05-07  5:52   ` Bob Feng
  2019-05-07  6:00   ` Liming Gao
  1 sibling, 0 replies; 28+ messages in thread
From: Bob Feng @ 2019-05-07  5:52 UTC (permalink / raw)
  To: devel@edk2.groups.io, Bi, Dandan; +Cc: Gao, Liming

Reviewed-by: Bob Feng <bob.c.feng@intel.com>

-----Original Message-----
From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Dandan Bi
Sent: Monday, April 29, 2019 10:16 AM
To: devel@edk2.groups.io
Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>
Subject: [edk2-devel] [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464

Currently there is no usage of framework VFR, remove the support from VfrCompile.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
---
 BaseTools/Source/C/VfrCompile/VfrCompiler.cpp |  35 +-----
 BaseTools/Source/C/VfrCompile/VfrCompiler.h   |   3 +-
 BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp  |  23 +---
 BaseTools/Source/C/VfrCompile/VfrFormPkg.h    |   3 +-
 BaseTools/Source/C/VfrCompile/VfrSyntax.g     | 103 +-----------------
 .../Source/C/VfrCompile/VfrUtilityLib.cpp     |  52 +--------
 BaseTools/Source/C/VfrCompile/VfrUtilityLib.h |   7 +-
 .../VfrCompiler_Utility_Man_Page.rtf          |   4 -
 8 files changed, 15 insertions(+), 215 deletions(-)

diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
index c4d4d261ad..5f4d262d85 100644
--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
@@ -1,10 +1,10 @@
 /** @file
 
   VfrCompiler main class and main function.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "stdio.h"
@@ -72,11 +72,10 @@ CVfrCompiler::OptionInitialization (
   mOptions.PreprocessorOutputFileName    = NULL;
   mOptions.VfrBaseFileName               = NULL;
   mOptions.IncludePaths                  = NULL;
   mOptions.SkipCPreprocessor             = TRUE;
   mOptions.CPreprocessorOptions          = NULL;
-  mOptions.CompatibleMode                = FALSE;
   mOptions.HasOverrideClassGuid          = FALSE;
   mOptions.WarningAsError                = FALSE;
   mOptions.AutoDefault                   = FALSE;
   mOptions.CheckDefault                  = FALSE;
   memset (&mOptions.OverrideClassGuid, 0, sizeof (EFI_GUID)); @@ -140,12 +139,10 @@ CVfrCompiler::OptionInitialization (
         DebugError (NULL, 0, 1001, "Missing option", "-od - missing C-preprocessor argument");
         goto Fail;
       }
 
       AppendCPreprocessorOptions (Argv[Index]);
-    } else if (stricmp(Argv[Index], "-c") == 0 || stricmp(Argv[Index], "--compatible-framework") == 0) {
-      mOptions.CompatibleMode = TRUE;
     } else if (stricmp(Argv[Index], "-s") == 0|| stricmp(Argv[Index], "--string-db") == 0) {
       Index++;
       if ((Index >= Argc) || (Argv[Index][0] == '-')) {
         DebugError (NULL, 0, 1001, "Missing option", "-s missing input string file name");
         goto Fail;
@@ -559,12 +556,10 @@ CVfrCompiler::Usage (
     "                 default is current directory",
     "  -b, --create-ifr-package",
     "                 create an IFR HII pack file",
     "  -n, --no-pre-processing",
     "                 do not preprocessing input file",
-    "  -c, --compatible-framework",
-    "                 compatible framework vfr file",
     "  -s, --string-db",
     "                 input uni string package file",
     "  -g, --guid",
     "                 override class guid input",
     "                 format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
@@ -683,11 +678,10 @@ CVfrCompiler::Compile (
   if ((pInFile = fopen (LongFilePath (InFileName), "r")) == NULL) {
     DebugError (NULL, 0, 0001, "Error opening the input file", "%s", InFileName);
     goto Fail;
   }
 
-  InputInfo.CompatibleMode = mOptions.CompatibleMode;
   if (mOptions.HasOverrideClassGuid) {
     InputInfo.OverrideClassGuid = &mOptions.OverrideClassGuid;
   } else {
     InputInfo.OverrideClassGuid = NULL;
   }
@@ -773,31 +767,10 @@ CVfrCompiler::AdjustBin (
     //ok
   } else {
     DebugError (NULL, 0, 0001, "Error parsing vfr file", " %s.Buffer not allocated.", mOptions.VfrFileName);
   }
 
-  //
-  // For UEFI mode, not do OpCode Adjust
-  //
-  if (mOptions.CompatibleMode) {
-    //
-    // Adjust Opcode to be compatible with framework vfr
-    //
-    Status = gCIfrRecordInfoDB.IfrRecordAdjust ();
-    if (Status != VFR_RETURN_SUCCESS) {
-      //
-      // Record List Adjust Failed
-      //
-      SET_RUN_STATUS (STATUS_FAILED);
-      return;
-    }
-    //
-    // Re get the IfrRecord Buffer.
-    //
-    gCIfrRecordInfoDB.IfrRecordOutput (gRBuffer);
-  }
-
   return;
 }
 
 VOID
 CVfrCompiler::GenBinary (
@@ -851,24 +824,20 @@ CVfrCompiler::GenCFile (
 
   if (!IS_RUN_STATUS(STATUS_GENBINARY)) {
     goto Fail;
   }
 
-  if (!mOptions.CreateIfrPkgFile || mOptions.CompatibleMode) {
+  if (!mOptions.CreateIfrPkgFile) {
     if ((pFile = fopen (LongFilePath (mOptions.COutputFileName), "w")) == NULL) {
       DebugError (NULL, 0, 0001, "Error opening output C file", "%s", mOptions.COutputFileName);
       goto Fail;
     }
 
     for (Index = 0; gSourceFileHeader[Index] != NULL; Index++) {
       fprintf (pFile, "%s\n", gSourceFileHeader[Index]);
     }
 
-    if (mOptions.CompatibleMode) {
-      gCVfrBufferConfig.OutputCFile (pFile, mOptions.VfrBaseFileName);
-    }
-
     if (gCFormPkg.GenCFile (mOptions.VfrBaseFileName, pFile, &gRBuffer) != VFR_RETURN_SUCCESS) {
       fclose (pFile);
       goto Fail;
     }
     fclose (pFile);
diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.h b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
index b8cccca4b0..b6e207d2ce 100644
--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.h
+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
@@ -1,10 +1,10 @@
 /** @file
 
   VfrCompiler internal definitions.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #ifndef _VFRCOMPILER_H_
@@ -45,11 +45,10 @@ typedef struct {
   CHAR8   *PreprocessorOutputFileName;
   CHAR8   *VfrBaseFileName;  // name of input VFR file with no path or extension
   CHAR8   *IncludePaths;
   bool    SkipCPreprocessor;
   CHAR8   *CPreprocessorOptions;
-  BOOLEAN CompatibleMode;
   BOOLEAN HasOverrideClassGuid;
   EFI_GUID OverrideClassGuid;
   BOOLEAN WarningAsError;
   BOOLEAN AutoDefault;
   BOOLEAN CheckDefault;
diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
index 5948dc0883..36d3baaf10 100644
--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
@@ -1,10 +1,10 @@
 /** @file
 
   The definition of CFormPkg's member function
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "stdio.h"
@@ -442,25 +442,14 @@ CFormPkg::GenCFile (
 
   if ((Ret = BuildPkgHdr(&PkgHdr)) != VFR_RETURN_SUCCESS) {
     return Ret;
   }
 
-  //
-  // For framework vfr file, the extension framework header will be added.
-  //
-  if (VfrCompatibleMode) {
-    fprintf (pFile, "  // FRAMEWORK PACKAGE HEADER Length\n");
-    PkgLength = PkgHdr->Length + sizeof (UINT32) + 2;
-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength, sizeof (UINT32));
-    fprintf (pFile, "\n\n  // FRAMEWORK PACKAGE HEADER Type\n");
-    PkgLength = 3;
-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength, sizeof (UINT16));
-  } else {
-    fprintf (pFile, "  // ARRAY LENGTH\n");
-    PkgLength = PkgHdr->Length + sizeof (UINT32);
-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength, sizeof (UINT32));
-  }
+
+  fprintf (pFile, "  // ARRAY LENGTH\n");  PkgLength = PkgHdr->Length + 
+ sizeof (UINT32);  _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 
+ *)&PkgLength, sizeof (UINT32));
 
   fprintf (pFile, "\n\n  // PACKAGE HEADER\n");
   _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)PkgHdr, sizeof (EFI_HII_PACKAGE_HEADER));
   PkgLength = sizeof (EFI_HII_PACKAGE_HEADER);
 
@@ -966,11 +955,11 @@ CFormPkg::DeclarePendingQuestion (
 
       //
       // For undefined Efi VarStore type question
       // Append the extended guided opcode to contain VarName
       //
-      if (VarStoreType == EFI_VFR_VARSTORE_EFI || VfrCompatibleMode) {
+      if (VarStoreType == EFI_VFR_VARSTORE_EFI) {
         CIfrVarEqName CVNObj (QId, Info.mInfo.mVarName);
         CVNObj.SetLineNo (LineNo);
       }
 
       //
diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
index 68df87ba88..1cea4f0e25 100644
--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
@@ -1,10 +1,10 @@
 /** @file
 
   The definition of CFormPkg's member function
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #ifndef _EFIIFRCLASS_H_
@@ -93,11 +93,10 @@ struct SBufferNode {
   CHAR8              *mBufferFree;
   struct SBufferNode *mNext;
 };
 
 typedef struct {
-  BOOLEAN  CompatibleMode;
   EFI_GUID *OverrideClassGuid;
 } INPUT_INFO_TO_SYNTAX;
 
 class CFormPkg {
 private:
diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
index 04fe030b61..24b30e3825 100644
--- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g
+++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
@@ -1,9 +1,9 @@
 /*++ @file
 Vfr Syntax
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 --*/
 
 #header<<
@@ -47,11 +47,10 @@ VfrParserStart (
   IN FILE *File,
   IN INPUT_INFO_TO_SYNTAX *InputInfo
   )
 {
   ParserBlackBox<CVfrDLGLexer, EfiVfrParser, ANTLRToken> VfrParser(File);
-  VfrParser.parser()->SetCompatibleMode (InputInfo->CompatibleMode);
   VfrParser.parser()->SetOverrideClassGuid (InputInfo->OverrideClassGuid);
   return VfrParser.parser()->vfrProgram();  }  >>
 
@@ -673,17 +672,10 @@ vfrFormSetDefinition :
                                                     <<
                                                        _DeclareStandardDefaultStorage (GET_LINENO (L));
                                                     >>
   vfrFormSetList
   E:EndFormSet                                      <<
-                                                      if (mCompatibleMode) {
-                                                        //
-                                                        // declare all undefined varstore and efivarstore
-                                                        //
-                                                        _DeclareDefaultFrameworkVarStore (GET_LINENO(E));
-                                                      }
-
                                                       //
                                                       // Declare undefined Question so that they can be used in expression.
                                                       //
                                                       if (gCFormPkg.HavePendingUnassigned()) {
                                                         mParserStatus += gCFormPkg.DeclarePendingQuestion ( @@ -5047,23 +5039,18 @@ public:
 
   VOID                _STRCAT (IN OUT CHAR8 **, IN CONST CHAR8 *);
 
   VOID                _DeclareDefaultLinearVarStore (IN UINT32);
   VOID                _DeclareStandardDefaultStorage (IN UINT32);
-  VOID                _DeclareDefaultFrameworkVarStore (IN UINT32);
 
   VOID                AssignQuestionKey (IN CIfrQuestionHeader &, IN ANTLRTokenPtr);
 
   VOID                ConvertIdExpr         (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32);
   VOID                IdEqValDoSpecial      (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN UINT16, IN EFI_COMPARE_TYPE);
   VOID                IdEqIdDoSpecial       (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN EFI_COMPARE_TYPE);
   VOID                IdEqListDoSpecial     (IN UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN UINT16, IN UINT16 *);
   VOID                SetOverrideClassGuid  (IN EFI_GUID *);
-//
-// For framework vfr compatibility
-//
-  VOID                SetCompatibleMode (IN BOOLEAN);
 >>
 }
 
 <<
 VOID
@@ -5540,88 +5527,10 @@ EfiVfrParser::_STOR (
   Ref.DevicePath  = _STOSID (DevicePath, LineNum);
 
   return Ref;
 }
 
-//
-// framework vfr to default declare varstore for each structure -// -VOID -EfiVfrParser::_DeclareDefaultFrameworkVarStore (
-  IN UINT32 LineNo
-  )
-{
-  SVfrVarStorageNode    *pNode;
-  UINT32                TypeSize;
-  BOOLEAN               FirstNode;
-  CONST CHAR8           VarName[] = "Setup";
-
-  FirstNode = TRUE;
-  pNode = gCVfrDataStorage.GetBufferVarStoreList();
-  if (pNode == NULL && gCVfrVarDataTypeDB.mFirstNewDataTypeName != NULL) {
-    //
-    // Create the default Buffer Var Store when no VarStore is defined.
-    // its name should be "Setup"
-    //
-    gCVfrVarDataTypeDB.GetDataTypeSize (gCVfrVarDataTypeDB.mFirstNewDataTypeName, &TypeSize);
-    CIfrVarStore      VSObj;
-    VSObj.SetLineNo (LineNo);
-    VSObj.SetVarStoreId (0x1); //the first and only one Buffer Var Store
-    VSObj.SetSize ((UINT16) TypeSize);
-    //VSObj.SetName (gCVfrVarDataTypeDB.mFirstNewDataTypeName);
-    VSObj.SetName ((CHAR8 *) VarName);
-    VSObj.SetGuid (&mFormsetGuid);
-#ifdef VFREXP_DEBUG
-    printf ("Create the default VarStoreName is %s\n", gCVfrVarDataTypeDB.mFirstNewDataTypeName);
-#endif
-  } else {
-    for (; pNode != NULL; pNode = pNode->mNext) {
-      //
-      // create the default varstore opcode for not declared varstore
-      // the first varstore name should be "Setup"
-      //
-      if (!pNode->mAssignedFlag) {
-        CIfrVarStore      VSObj;
-        VSObj.SetLineNo (LineNo);
-        VSObj.SetVarStoreId (pNode->mVarStoreId);
-        VSObj.SetSize ((UINT16) pNode->mStorageInfo.mDataType->mTotalSize);
-        if (FirstNode) {
-          VSObj.SetName ((CHAR8 *) VarName);
-          FirstNode = FALSE;
-        } else {
-          VSObj.SetName (pNode->mVarStoreName);
-        }
-        VSObj.SetGuid (&pNode->mGuid);
-#ifdef VFREXP_DEBUG
-        printf ("undefined VarStoreName is %s and Id is 0x%x\n", pNode->mVarStoreName, pNode->mVarStoreId);
-#endif
-      }
-    }
-  }
-
-  pNode = gCVfrDataStorage.GetEfiVarStoreList();
-  for (; pNode != NULL; pNode = pNode->mNext) {
-    //
-    // create the default efi varstore opcode for not exist varstore
-    //
-    if (!pNode->mAssignedFlag) {
-      CIfrVarStoreEfi VSEObj;
-      VSEObj.SetLineNo (LineNo);
-      VSEObj.SetAttributes (0x00000002); //hardcode EFI_VARIABLE_BOOTSERVICE_ACCESS attribute
-      VSEObj.SetGuid (&pNode->mGuid);
-      VSEObj.SetVarStoreId (pNode->mVarStoreId);
-      // Generate old efi varstore storage structure for compatible with old "VarEqVal" opcode,
-      // which is 3 bytes less than new structure define in UEFI Spec 2.3.1.
-      VSEObj.SetBinaryLength (sizeof (EFI_IFR_VARSTORE_EFI) - 3);
-#ifdef VFREXP_DEBUG
-      printf ("undefined Efi VarStoreName is %s and Id is 0x%x\n", pNode->mVarStoreName, pNode->mVarStoreId);
-#endif
-    }
-  }
-
-}
-
 VOID
 EfiVfrParser::_DeclareDefaultLinearVarStore (
   IN UINT32 LineNo
   )
 {
@@ -5917,20 +5826,10 @@ VOID
 EfiVfrParser::SetOverrideClassGuid (IN EFI_GUID *OverrideClassGuid)  {
   mOverrideClassGuid = OverrideClassGuid;  }
 
-//
-// For framework vfr compatibility
-//
-VOID
-EfiVfrParser::SetCompatibleMode (IN BOOLEAN Mode) -{
-  mCompatibleMode = Mode;
-  mCVfrQuestionDB.SetCompatibleMode (Mode); -}
-
 VOID
 EfiVfrParser::CheckDuplicateDefaultValue (
   IN EFI_DEFAULT_ID      DefaultId,
   IN ANTLRTokenPtr       Tok
   )
diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
index 9c9c4d4054..2b9b5dbb1c 100644
--- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
@@ -1,10 +1,10 @@
 /** @file
 
   Vfr common library functions.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #include "stdio.h"
@@ -757,21 +757,10 @@ CVfrVarDataTypeDB::GetFieldOffset (  {
   if (Field == NULL) {
     return VFR_RETURN_FATAL_ERROR;
   }
 
-  //
-  // Framework Vfr file Array Index is from 1.
-  // But Uefi Vfr file Array Index is from 0.
-  //
-  if (VfrCompatibleMode && ArrayIdx != INVALID_ARRAY_INDEX) {
-    if (ArrayIdx == 0) {
-      return VFR_RETURN_ERROR_ARRARY_NUM;
-    }
-    ArrayIdx = ArrayIdx - 1;
-  }
-
   if ((ArrayIdx != INVALID_ARRAY_INDEX) && ((Field->mArrayNum == 0) || (Field->mArrayNum <= ArrayIdx))) {
     return VFR_RETURN_ERROR_ARRARY_NUM;
   }
 
   //
@@ -1681,21 +1670,11 @@ CVfrDataStorage::GetFreeVarStoreId (
   EFI_VFR_VARSTORE_TYPE VarType
   )
 {
   UINT32  Index, Mask, Offset;
 
-  //
-  // Assign the different ID range for the different type VarStore to support Framework Vfr
-  //
   Index = 0;
-  if ((!VfrCompatibleMode) || (VarType == EFI_VFR_VARSTORE_BUFFER)) {
-    Index = 0;
-  } else if (VarType == EFI_VFR_VARSTORE_EFI) {
-    Index = 1;
-  } else if (VarType == EFI_VFR_VARSTORE_NAME) {
-    Index = 2;
-  }
 
   for (; Index < EFI_FREE_VARSTORE_ID_BITMAP_SIZE; Index++) {
     if (mFreeVarStoreIdBitMap[Index] != 0xFFFFFFFF) {
       break;
     }
@@ -1913,17 +1892,10 @@ CVfrDataStorage::GetVarStoreByDataType (
   )
 {
   SVfrVarStorageNode    *pNode;
   SVfrVarStorageNode    *MatchNode;
 
-  //
-  // Framework VFR uses Data type name as varstore name, so don't need check again.
-  //
-  if (VfrCompatibleMode) {
-    return VFR_RETURN_UNDEFINED;
-  }
-
   MatchNode = NULL;
   for (pNode = mBufferVarStoreList; pNode != NULL; pNode = pNode->mNext) {
     if (strcmp (pNode->mStorageInfo.mDataType->mTypeName, DataTypeName) != 0) {
       continue;
     }
@@ -2287,20 +2259,10 @@ CVfrDataStorage::GetNameVarStoreInfo (
 
   if (mCurrVarStorageNode == NULL) {
     return VFR_RETURN_GET_NVVARSTORE_ERROR;
   }
 
-  //
-  // Framework Vfr file Index is from 1, but Uefi Vfr file Index is from 0.
-  //
-  if (VfrCompatibleMode) {
-    if (Index == 0) {
-      return VFR_RETURN_ERROR_ARRARY_NUM;
-    }
-    Index --;
-  }
-
   Info->mInfo.mVarName = mCurrVarStorageNode->mStorageInfo.mNameSpace.mNameTable[Index];
 
   return VFR_RETURN_SUCCESS;
 }
 
@@ -2859,14 +2821,11 @@ CVfrQuestionDB::RegisterQuestion (
   }
 
   if (QuestionId == EFI_QUESTION_ID_INVALID) {
     QuestionId = GetFreeQuestionId ();
   } else {
-    //
-    // For Framework Vfr, don't check question ID conflict.
-    //
-    if (!VfrCompatibleMode && ChekQuestionIdFree (QuestionId) == FALSE) {
+    if (ChekQuestionIdFree (QuestionId) == FALSE) {
       delete pNode;
       return VFR_RETURN_QUESTIONID_REDEFINED;
     }
     MarkQuestionIdUsed (QuestionId);
   }
@@ -3366,14 +3325,11 @@ CVfrQuestionDB::UpdateQuestionId (
   if (QId == NewQId) {
     // don't update
     return VFR_RETURN_SUCCESS;
   }
 
-  //
-  // For Framework Vfr, don't check question ID conflict.
-  //
-  if (!VfrCompatibleMode && ChekQuestionIdFree (NewQId) == FALSE) {
+  if (ChekQuestionIdFree (NewQId) == FALSE) {
     return VFR_RETURN_REDEFINED;
   }
 
   for (pNode = mQuestionList; pNode != NULL; pNode = pNode->mNext) {
     if (pNode->mQuestionId == QId) {
@@ -3955,12 +3911,10 @@ CVfrStringDB::GetUnicodeStringTextSize (
   }
 
   return StringSize;
 }
 
-BOOLEAN  VfrCompatibleMode = FALSE;
-
 CVfrVarDataTypeDB gCVfrVarDataTypeDB;
 CVfrDefaultStore  gCVfrDefaultStore;
 CVfrDataStorage  gCVfrDataStorage;
 
 
diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
index e2b2917e99..57bb0c424d 100644
--- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
+++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
@@ -1,10 +1,10 @@
 /** @file
 
   Vfr common library functions.
 
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
 
 #ifndef _VFRUTILITYLIB_H_
@@ -13,11 +13,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #include "string.h"
 #include "Common/UefiBaseTypes.h"
 #include "EfiVfr.h"
 #include "VfrError.h"
 
-extern BOOLEAN  VfrCompatibleMode;
 static EFI_GUID gEdkiiIfrBitVarGuid = EDKII_IFR_BIT_VARSTORE_GUID;
 
 #define MAX_BIT_WIDTH                      32
 #define MAX_NAME_LEN                       64
 #define MAX_STRING_LEN                     0x100
@@ -422,14 +421,10 @@ public:
   EFI_VFR_RETURN_CODE FindQuestion (IN EFI_QUESTION_ID);
   EFI_VFR_RETURN_CODE FindQuestion (IN CHAR8 *);
   VOID                PrintAllQuestion (IN VOID);
   VOID                ResetInit (IN VOID);
 
-  VOID SetCompatibleMode (IN BOOLEAN Mode) {
-    VfrCompatibleMode = Mode;
-  }
-
 private:
   CVfrQuestionDB (IN CONST CVfrQuestionDB&);             // Prevent copy-construction
   CVfrQuestionDB& operator= (IN CONST CVfrQuestionDB&);  // Prevent assignment  };
 
diff --git a/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf b/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
index fa0beebb9c..2b056f8f26 100644
--- a/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
+++ b/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
@@ -145,14 +145,10 @@ The generated file will be placed into the output directory sp\hich\af43\dbch\af  \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 -n, --no-pre-processing  \par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 Do not preprocess}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0
 \fs18\cf1\insrsid2570438 \hich\af43\dbch\af31505\loch\f43  t}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1204842 \hich\af43\dbch\af31505\loch\f43 he}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43
  input vfr file. The input VFR file has been pro\hich\af43\dbch\af31505\loch\f43 cessed. If this option is not specified, the default behavior is same to set this option. 
 \par }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid83254 \hich\af43\dbch\af31505\loch\f43 Selecting this option disables preprocessing of VFR files. }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2570438 -\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 -c, --compatible-framework -\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 Recognize}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid83254
-\hich\af43\dbch\af31505\loch\f43 s}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43  the input VFR file is the framework VFR syntax. If this option is n\hich\af43\dbch\af31505\loch\f43 -ot specified, the UEFI syntax is default }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid83254 \hich\af43\dbch\af31505\loch\f43 the VFR }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 syntax.
 \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 -h, --help  \par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43 Print version and usage of this program and exit.
 \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12931970 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 -s, --string-db  \par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12931970 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 Input uni string package file.
 \par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12931970 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0 \b\fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 -g, --guid
--
2.18.0.windows.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 07/11] QuarkPlatformPkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:16 ` [patch 07/11] QuarkPlatformPkg: " Dandan Bi
@ 2019-05-07  5:58   ` Liming Gao
  0 siblings, 0 replies; 28+ messages in thread
From: Liming Gao @ 2019-05-07  5:58 UTC (permalink / raw)
  To: devel@edk2.groups.io, Bi, Dandan; +Cc: Kinney, Michael D, Steele, Kelly

Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
>Dandan Bi
>Sent: Monday, April 29, 2019 10:16 AM
>To: devel@edk2.groups.io
>Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Steele, Kelly
><kelly.steele@intel.com>; Gao, Liming <liming.gao@intel.com>
>Subject: [edk2-devel] [patch 07/11] QuarkPlatformPkg: Remove
>PcdFrameworkCompatibilitySupport usage
>
>REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
>
>Currently Framework compatibility support is not needed and
>PcdFrameworkCompatibilitySupport will be removed from edk2.
>So remove the usage of this PCD firstly.
>
>Cc: Michael D Kinney <michael.d.kinney@intel.com>
>Cc: Kelly Steele <kelly.steele@intel.com>
>Cc: Liming Gao <liming.gao@intel.com>
>Signed-off-by: Dandan Bi <dandan.bi@intel.com>
>---
> .../Pei/PlatformInit/Generic/Recovery.c       | 50 ++++++-------------
> .../Pei/PlatformInit/PlatformEarlyInit.inf    |  3 +-
> 2 files changed, 15 insertions(+), 38 deletions(-)
>
>diff --git a/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c
>b/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c
>index f6a076f757..67299a68b7 100644
>--- a/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c
>+++ b/QuarkPlatformPkg/Platform/Pei/PlatformInit/Generic/Recovery.c
>@@ -1,10 +1,10 @@
> /** @file
> Install Platform EFI_PEI_RECOVERY_MODULE_PPI and Implementation of
> EFI_PEI_LOAD_RECOVERY_CAPSULE service.
>
>-Copyright (c) 2013-2016 Intel Corporation.
>+Copyright (c) 2013-2019 Intel Corporation.
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
>@@ -195,29 +195,17 @@ Returns:
>   //
>   // If there is an image provider, get the capsule ID
>   //
>   if (ProviderAvailable) {
>     RecoveryCapsuleSize = 0;
>-    if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
>-      Status = DeviceRecoveryModule->GetRecoveryCapsuleInfo (
>-                                      PeiServices,
>-                                      DeviceRecoveryModule,
>-                                      0,
>-                                      &RecoveryCapsuleSize,
>-                                      &DeviceId
>-                                      );
>-    } else {
>-      Status = DeviceRecoveryModule->GetRecoveryCapsuleInfo (
>-                  PeiServices,
>-                  DeviceRecoveryModule,
>-                  1,
>-                  &RecoveryCapsuleSize,
>-                  &DeviceId
>-                  );
>-
>-
>-  }
>+    Status = DeviceRecoveryModule->GetRecoveryCapsuleInfo (
>+                PeiServices,
>+                DeviceRecoveryModule,
>+                1,
>+                &RecoveryCapsuleSize,
>+                &DeviceId
>+                );
>
>     if (EFI_ERROR (Status)) {
>       return Status;
>     }
>
>@@ -237,26 +225,16 @@ Returns:
>     Buffer  = NULL;
>     Address = (UINTN) AllocatePages ((RecoveryCapsuleSize - 1) / 0x1000 + 1);
>     ASSERT (Address);
>
>     Buffer = (UINT8 *) (UINTN) Address;
>-    if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
>-      Status = DeviceRecoveryModule->LoadRecoveryCapsule (
>-                                      PeiServices,
>-                                      DeviceRecoveryModule,
>-                                      0,
>-                                      Buffer
>-                                      );
>-     } else {
>-       Status = DeviceRecoveryModule->LoadRecoveryCapsule (
>-                                        PeiServices,
>-                                        DeviceRecoveryModule,
>-                                        1,
>-                                        Buffer
>-                                        );
>-
>-     }
>+    Status = DeviceRecoveryModule->LoadRecoveryCapsule (
>+                                     PeiServices,
>+                                     DeviceRecoveryModule,
>+                                     1,
>+                                     Buffer
>+                                     );
>
>     DEBUG ((EFI_D_INFO | EFI_D_LOAD, "LoadRecoveryCapsule
>Returns: %r\n", Status));
>
>     if (Status == EFI_DEVICE_ERROR) {
>       AssertMediaDeviceError (PeiServices);
>diff --git a/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
>b/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
>index 617d681d77..df8b0dd3bd 100644
>--- a/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
>+++ b/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
>@@ -34,11 +34,11 @@
> #  Recovery.c - provides the platform recoveyr functionality.
> #  MrcWrapper.c - Contains the logic to call MRC PPI and do Framework
> #     memory specific stuff like build memory map, build
> #     resource description hob for DXE phase,etc.
> #  Bootmode.c - Detect boot mode.
>-# Copyright (c) 2013 - 2016 Intel Corporation.
>+# Copyright (c) 2013 - 2019 Intel Corporation.
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> ##
>
>@@ -138,11 +138,10 @@
> [FeaturePcd]
>   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk
>   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD
>   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk
>   gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk
>-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
>   gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError
>
> [Pcd]
>   gQuarkPlatformTokenSpaceGuid.PcdEsramStage1Base
>   gQuarkPlatformTokenSpaceGuid.PcdFlashAreaSize
>--
>2.18.0.windows.1
>
>
>


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch 03/11] IntelFrameworkModulePkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:15 ` [patch 03/11] IntelFrameworkModulePkg: " Dandan Bi
@ 2019-05-07  5:59   ` Liming Gao
  0 siblings, 0 replies; 28+ messages in thread
From: Liming Gao @ 2019-05-07  5:59 UTC (permalink / raw)
  To: Bi, Dandan, devel@edk2.groups.io

Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: Bi, Dandan
>Sent: Monday, April 29, 2019 10:16 AM
>To: devel@edk2.groups.io
>Cc: Gao, Liming <liming.gao@intel.com>
>Subject: [patch 03/11] IntelFrameworkModulePkg: Remove
>PcdFrameworkCompatibilitySupport usage
>
>REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
>
>Currently Framework compatibility is not needed and
>PcdFrameworkCompatibilitySupport will be removed from edk2.
>So remove the usage of this PCD firstly.
>
>Cc: Liming Gao <liming.gao@intel.com>
>Signed-off-by: Dandan Bi <dandan.bi@intel.com>
>---
> .../Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c          | 10 +---------
> .../Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf     |  3 +--
> 2 files changed, 2 insertions(+), 11 deletions(-)
>
>diff --git
>a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c
>b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c
>index b5f8131f98..366ada935d 100644
>---
>a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c
>+++
>b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3Save.c
>@@ -1,10 +1,10 @@
> /** @file
>   This is an implementation of the ACPI S3 Save protocol.  This is defined in
>   S3 boot path specification 0.9.
>
>-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
>@@ -138,14 +138,10 @@ S3Ready (
>   if (AlreadyEntered) {
>     return EFI_SUCCESS;
>   }
>   AlreadyEntered = TRUE;
>
>-  if (FeaturePcdGet(PcdFrameworkCompatibilitySupport)) {
>-    S3ReadyThunkPlatform ();
>-  }
>-
>   return EFI_SUCCESS;
> }
>
> /**
>   The Driver Entry Point.
>@@ -180,14 +176,10 @@ InstallAcpiS3Save (
>     mLegacyRegionSize = 0x250;
>   } else {
>     mLegacyRegionSize = 0x100;
>   }
>
>-  if (FeaturePcdGet(PcdFrameworkCompatibilitySupport)) {
>-    InstallAcpiS3SaveThunk ();
>-  }
>-
>   Status = gBS->InstallProtocolInterface (
>                   &ImageHandle,
>                   &gEfiAcpiS3SaveProtocolGuid,
>                   EFI_NATIVE_INTERFACE,
>                   &mS3Save
>diff --git
>a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe
>.inf
>b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe
>.inf
>index 2e4f0868d2..0cfcb8ce53 100644
>---
>a/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe
>.inf
>+++
>b/IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe
>.inf
>@@ -1,9 +1,9 @@
> ## @file
> # AcpiS3Save module installs ACPI S3 Save protocol to prepare S3 boot data.
> #
>-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
>+# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> ##
>
>@@ -56,11 +56,10 @@
>   ## SOMETIMES_CONSUMES
>   gEdkiiVariableLockProtocolGuid
>
> [FeaturePcd]
>   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformCsmSupport
>## CONSUMES
>-  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
>## CONSUMES
>
> [Pcd]
>
>gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemory
>Size    ## SOMETIMES_CONSUMES
>   gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable                           ##
>CONSUMES
>
>--
>2.18.0.windows.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support
  2019-04-29  2:15 ` [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support Dandan Bi
  2019-05-07  5:52   ` [edk2-devel] " Bob Feng
@ 2019-05-07  6:00   ` Liming Gao
  1 sibling, 0 replies; 28+ messages in thread
From: Liming Gao @ 2019-05-07  6:00 UTC (permalink / raw)
  To: devel@edk2.groups.io, Bi, Dandan; +Cc: Feng, Bob C

Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
>Dandan Bi
>Sent: Monday, April 29, 2019 10:16 AM
>To: devel@edk2.groups.io
>Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>
>Subject: [edk2-devel] [patch 01/11] BaseTools/VfrCompile: Remove
>framework VFR support
>
>REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
>
>Currently there is no usage of framework VFR,
>remove the support from VfrCompile.
>
>Cc: Bob Feng <bob.c.feng@intel.com>
>Cc: Liming Gao <liming.gao@intel.com>
>Signed-off-by: Dandan Bi <dandan.bi@intel.com>
>---
> BaseTools/Source/C/VfrCompile/VfrCompiler.cpp |  35 +-----
> BaseTools/Source/C/VfrCompile/VfrCompiler.h   |   3 +-
> BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp  |  23 +---
> BaseTools/Source/C/VfrCompile/VfrFormPkg.h    |   3 +-
> BaseTools/Source/C/VfrCompile/VfrSyntax.g     | 103 +-----------------
> .../Source/C/VfrCompile/VfrUtilityLib.cpp     |  52 +--------
> BaseTools/Source/C/VfrCompile/VfrUtilityLib.h |   7 +-
> .../VfrCompiler_Utility_Man_Page.rtf          |   4 -
> 8 files changed, 15 insertions(+), 215 deletions(-)
>
>diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
>b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
>index c4d4d261ad..5f4d262d85 100644
>--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
>+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
>@@ -1,10 +1,10 @@
> /** @file
>
>   VfrCompiler main class and main function.
>
>-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> #include "stdio.h"
>@@ -72,11 +72,10 @@ CVfrCompiler::OptionInitialization (
>   mOptions.PreprocessorOutputFileName    = NULL;
>   mOptions.VfrBaseFileName               = NULL;
>   mOptions.IncludePaths                  = NULL;
>   mOptions.SkipCPreprocessor             = TRUE;
>   mOptions.CPreprocessorOptions          = NULL;
>-  mOptions.CompatibleMode                = FALSE;
>   mOptions.HasOverrideClassGuid          = FALSE;
>   mOptions.WarningAsError                = FALSE;
>   mOptions.AutoDefault                   = FALSE;
>   mOptions.CheckDefault                  = FALSE;
>   memset (&mOptions.OverrideClassGuid, 0, sizeof (EFI_GUID));
>@@ -140,12 +139,10 @@ CVfrCompiler::OptionInitialization (
>         DebugError (NULL, 0, 1001, "Missing option", "-od - missing C-
>preprocessor argument");
>         goto Fail;
>       }
>
>       AppendCPreprocessorOptions (Argv[Index]);
>-    } else if (stricmp(Argv[Index], "-c") == 0 || stricmp(Argv[Index], "--
>compatible-framework") == 0) {
>-      mOptions.CompatibleMode = TRUE;
>     } else if (stricmp(Argv[Index], "-s") == 0|| stricmp(Argv[Index], "--string-
>db") == 0) {
>       Index++;
>       if ((Index >= Argc) || (Argv[Index][0] == '-')) {
>         DebugError (NULL, 0, 1001, "Missing option", "-s missing input string file
>name");
>         goto Fail;
>@@ -559,12 +556,10 @@ CVfrCompiler::Usage (
>     "                 default is current directory",
>     "  -b, --create-ifr-package",
>     "                 create an IFR HII pack file",
>     "  -n, --no-pre-processing",
>     "                 do not preprocessing input file",
>-    "  -c, --compatible-framework",
>-    "                 compatible framework vfr file",
>     "  -s, --string-db",
>     "                 input uni string package file",
>     "  -g, --guid",
>     "                 override class guid input",
>     "                 format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
>@@ -683,11 +678,10 @@ CVfrCompiler::Compile (
>   if ((pInFile = fopen (LongFilePath (InFileName), "r")) == NULL) {
>     DebugError (NULL, 0, 0001, "Error opening the input file", "%s", InFileName);
>     goto Fail;
>   }
>
>-  InputInfo.CompatibleMode = mOptions.CompatibleMode;
>   if (mOptions.HasOverrideClassGuid) {
>     InputInfo.OverrideClassGuid = &mOptions.OverrideClassGuid;
>   } else {
>     InputInfo.OverrideClassGuid = NULL;
>   }
>@@ -773,31 +767,10 @@ CVfrCompiler::AdjustBin (
>     //ok
>   } else {
>     DebugError (NULL, 0, 0001, "Error parsing vfr file", " %s.Buffer not
>allocated.", mOptions.VfrFileName);
>   }
>
>-  //
>-  // For UEFI mode, not do OpCode Adjust
>-  //
>-  if (mOptions.CompatibleMode) {
>-    //
>-    // Adjust Opcode to be compatible with framework vfr
>-    //
>-    Status = gCIfrRecordInfoDB.IfrRecordAdjust ();
>-    if (Status != VFR_RETURN_SUCCESS) {
>-      //
>-      // Record List Adjust Failed
>-      //
>-      SET_RUN_STATUS (STATUS_FAILED);
>-      return;
>-    }
>-    //
>-    // Re get the IfrRecord Buffer.
>-    //
>-    gCIfrRecordInfoDB.IfrRecordOutput (gRBuffer);
>-  }
>-
>   return;
> }
>
> VOID
> CVfrCompiler::GenBinary (
>@@ -851,24 +824,20 @@ CVfrCompiler::GenCFile (
>
>   if (!IS_RUN_STATUS(STATUS_GENBINARY)) {
>     goto Fail;
>   }
>
>-  if (!mOptions.CreateIfrPkgFile || mOptions.CompatibleMode) {
>+  if (!mOptions.CreateIfrPkgFile) {
>     if ((pFile = fopen (LongFilePath (mOptions.COutputFileName), "w")) ==
>NULL) {
>       DebugError (NULL, 0, 0001, "Error opening output C file", "%s",
>mOptions.COutputFileName);
>       goto Fail;
>     }
>
>     for (Index = 0; gSourceFileHeader[Index] != NULL; Index++) {
>       fprintf (pFile, "%s\n", gSourceFileHeader[Index]);
>     }
>
>-    if (mOptions.CompatibleMode) {
>-      gCVfrBufferConfig.OutputCFile (pFile, mOptions.VfrBaseFileName);
>-    }
>-
>     if (gCFormPkg.GenCFile (mOptions.VfrBaseFileName, pFile, &gRBuffer) !=
>VFR_RETURN_SUCCESS) {
>       fclose (pFile);
>       goto Fail;
>     }
>     fclose (pFile);
>diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.h
>b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
>index b8cccca4b0..b6e207d2ce 100644
>--- a/BaseTools/Source/C/VfrCompile/VfrCompiler.h
>+++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.h
>@@ -1,10 +1,10 @@
> /** @file
>
>   VfrCompiler internal definitions.
>
>-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> #ifndef _VFRCOMPILER_H_
>@@ -45,11 +45,10 @@ typedef struct {
>   CHAR8   *PreprocessorOutputFileName;
>   CHAR8   *VfrBaseFileName;  // name of input VFR file with no path or
>extension
>   CHAR8   *IncludePaths;
>   bool    SkipCPreprocessor;
>   CHAR8   *CPreprocessorOptions;
>-  BOOLEAN CompatibleMode;
>   BOOLEAN HasOverrideClassGuid;
>   EFI_GUID OverrideClassGuid;
>   BOOLEAN WarningAsError;
>   BOOLEAN AutoDefault;
>   BOOLEAN CheckDefault;
>diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
>b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
>index 5948dc0883..36d3baaf10 100644
>--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
>+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
>@@ -1,10 +1,10 @@
> /** @file
>
>   The definition of CFormPkg's member function
>
>-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> #include "stdio.h"
>@@ -442,25 +442,14 @@ CFormPkg::GenCFile (
>
>   if ((Ret = BuildPkgHdr(&PkgHdr)) != VFR_RETURN_SUCCESS) {
>     return Ret;
>   }
>
>-  //
>-  // For framework vfr file, the extension framework header will be added.
>-  //
>-  if (VfrCompatibleMode) {
>-    fprintf (pFile, "  // FRAMEWORK PACKAGE HEADER Length\n");
>-    PkgLength = PkgHdr->Length + sizeof (UINT32) + 2;
>-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength,
>sizeof (UINT32));
>-    fprintf (pFile, "\n\n  // FRAMEWORK PACKAGE HEADER Type\n");
>-    PkgLength = 3;
>-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength,
>sizeof (UINT16));
>-  } else {
>-    fprintf (pFile, "  // ARRAY LENGTH\n");
>-    PkgLength = PkgHdr->Length + sizeof (UINT32);
>-    _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength,
>sizeof (UINT32));
>-  }
>+
>+  fprintf (pFile, "  // ARRAY LENGTH\n");
>+  PkgLength = PkgHdr->Length + sizeof (UINT32);
>+  _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)&PkgLength,
>sizeof (UINT32));
>
>   fprintf (pFile, "\n\n  // PACKAGE HEADER\n");
>   _WRITE_PKG_LINE(pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)PkgHdr, sizeof
>(EFI_HII_PACKAGE_HEADER));
>   PkgLength = sizeof (EFI_HII_PACKAGE_HEADER);
>
>@@ -966,11 +955,11 @@ CFormPkg::DeclarePendingQuestion (
>
>       //
>       // For undefined Efi VarStore type question
>       // Append the extended guided opcode to contain VarName
>       //
>-      if (VarStoreType == EFI_VFR_VARSTORE_EFI || VfrCompatibleMode) {
>+      if (VarStoreType == EFI_VFR_VARSTORE_EFI) {
>         CIfrVarEqName CVNObj (QId, Info.mInfo.mVarName);
>         CVNObj.SetLineNo (LineNo);
>       }
>
>       //
>diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
>b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
>index 68df87ba88..1cea4f0e25 100644
>--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
>+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
>@@ -1,10 +1,10 @@
> /** @file
>
>   The definition of CFormPkg's member function
>
>-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> #ifndef _EFIIFRCLASS_H_
>@@ -93,11 +93,10 @@ struct SBufferNode {
>   CHAR8              *mBufferFree;
>   struct SBufferNode *mNext;
> };
>
> typedef struct {
>-  BOOLEAN  CompatibleMode;
>   EFI_GUID *OverrideClassGuid;
> } INPUT_INFO_TO_SYNTAX;
>
> class CFormPkg {
> private:
>diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g
>b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
>index 04fe030b61..24b30e3825 100644
>--- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g
>+++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
>@@ -1,9 +1,9 @@
> /*++ @file
> Vfr Syntax
>
>-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> --*/
>
> #header<<
>@@ -47,11 +47,10 @@ VfrParserStart (
>   IN FILE *File,
>   IN INPUT_INFO_TO_SYNTAX *InputInfo
>   )
> {
>   ParserBlackBox<CVfrDLGLexer, EfiVfrParser, ANTLRToken> VfrParser(File);
>-  VfrParser.parser()->SetCompatibleMode (InputInfo->CompatibleMode);
>   VfrParser.parser()->SetOverrideClassGuid (InputInfo->OverrideClassGuid);
>   return VfrParser.parser()->vfrProgram();
> }
> >>
>
>@@ -673,17 +672,10 @@ vfrFormSetDefinition :
>                                                     <<
>                                                        _DeclareStandardDefaultStorage (GET_LINENO
>(L));
>                                                     >>
>   vfrFormSetList
>   E:EndFormSet                                      <<
>-                                                      if (mCompatibleMode) {
>-                                                        //
>-                                                        // declare all undefined varstore and efivarstore
>-                                                        //
>-                                                        _DeclareDefaultFrameworkVarStore
>(GET_LINENO(E));
>-                                                      }
>-
>                                                       //
>                                                       // Declare undefined Question so that they can be
>used in expression.
>                                                       //
>                                                       if (gCFormPkg.HavePendingUnassigned()) {
>                                                         mParserStatus +=
>gCFormPkg.DeclarePendingQuestion (
>@@ -5047,23 +5039,18 @@ public:
>
>   VOID                _STRCAT (IN OUT CHAR8 **, IN CONST CHAR8 *);
>
>   VOID                _DeclareDefaultLinearVarStore (IN UINT32);
>   VOID                _DeclareStandardDefaultStorage (IN UINT32);
>-  VOID                _DeclareDefaultFrameworkVarStore (IN UINT32);
>
>   VOID                AssignQuestionKey (IN CIfrQuestionHeader &, IN
>ANTLRTokenPtr);
>
>   VOID                ConvertIdExpr         (IN UINT32 &, IN UINT32, IN
>EFI_QUESTION_ID, IN CHAR8 *, IN UINT32);
>   VOID                IdEqValDoSpecial      (IN UINT32 &, IN UINT32, IN
>EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN UINT16, IN
>EFI_COMPARE_TYPE);
>   VOID                IdEqIdDoSpecial       (IN UINT32 &, IN UINT32, IN
>EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *,
>IN UINT32, IN EFI_COMPARE_TYPE);
>   VOID                IdEqListDoSpecial     (IN UINT32 &, IN UINT32, IN
>EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN UINT16, IN UINT16 *);
>   VOID                SetOverrideClassGuid  (IN EFI_GUID *);
>-//
>-// For framework vfr compatibility
>-//
>-  VOID                SetCompatibleMode (IN BOOLEAN);
> >>
> }
>
> <<
> VOID
>@@ -5540,88 +5527,10 @@ EfiVfrParser::_STOR (
>   Ref.DevicePath  = _STOSID (DevicePath, LineNum);
>
>   return Ref;
> }
>
>-//
>-// framework vfr to default declare varstore for each structure
>-//
>-VOID
>-EfiVfrParser::_DeclareDefaultFrameworkVarStore (
>-  IN UINT32 LineNo
>-  )
>-{
>-  SVfrVarStorageNode    *pNode;
>-  UINT32                TypeSize;
>-  BOOLEAN               FirstNode;
>-  CONST CHAR8           VarName[] = "Setup";
>-
>-  FirstNode = TRUE;
>-  pNode = gCVfrDataStorage.GetBufferVarStoreList();
>-  if (pNode == NULL && gCVfrVarDataTypeDB.mFirstNewDataTypeName !=
>NULL) {
>-    //
>-    // Create the default Buffer Var Store when no VarStore is defined.
>-    // its name should be "Setup"
>-    //
>-    gCVfrVarDataTypeDB.GetDataTypeSize
>(gCVfrVarDataTypeDB.mFirstNewDataTypeName, &TypeSize);
>-    CIfrVarStore      VSObj;
>-    VSObj.SetLineNo (LineNo);
>-    VSObj.SetVarStoreId (0x1); //the first and only one Buffer Var Store
>-    VSObj.SetSize ((UINT16) TypeSize);
>-    //VSObj.SetName (gCVfrVarDataTypeDB.mFirstNewDataTypeName);
>-    VSObj.SetName ((CHAR8 *) VarName);
>-    VSObj.SetGuid (&mFormsetGuid);
>-#ifdef VFREXP_DEBUG
>-    printf ("Create the default VarStoreName is %s\n",
>gCVfrVarDataTypeDB.mFirstNewDataTypeName);
>-#endif
>-  } else {
>-    for (; pNode != NULL; pNode = pNode->mNext) {
>-      //
>-      // create the default varstore opcode for not declared varstore
>-      // the first varstore name should be "Setup"
>-      //
>-      if (!pNode->mAssignedFlag) {
>-        CIfrVarStore      VSObj;
>-        VSObj.SetLineNo (LineNo);
>-        VSObj.SetVarStoreId (pNode->mVarStoreId);
>-        VSObj.SetSize ((UINT16) pNode->mStorageInfo.mDataType-
>>mTotalSize);
>-        if (FirstNode) {
>-          VSObj.SetName ((CHAR8 *) VarName);
>-          FirstNode = FALSE;
>-        } else {
>-          VSObj.SetName (pNode->mVarStoreName);
>-        }
>-        VSObj.SetGuid (&pNode->mGuid);
>-#ifdef VFREXP_DEBUG
>-        printf ("undefined VarStoreName is %s and Id is 0x%x\n", pNode-
>>mVarStoreName, pNode->mVarStoreId);
>-#endif
>-      }
>-    }
>-  }
>-
>-  pNode = gCVfrDataStorage.GetEfiVarStoreList();
>-  for (; pNode != NULL; pNode = pNode->mNext) {
>-    //
>-    // create the default efi varstore opcode for not exist varstore
>-    //
>-    if (!pNode->mAssignedFlag) {
>-      CIfrVarStoreEfi VSEObj;
>-      VSEObj.SetLineNo (LineNo);
>-      VSEObj.SetAttributes (0x00000002); //hardcode
>EFI_VARIABLE_BOOTSERVICE_ACCESS attribute
>-      VSEObj.SetGuid (&pNode->mGuid);
>-      VSEObj.SetVarStoreId (pNode->mVarStoreId);
>-      // Generate old efi varstore storage structure for compatible with old
>"VarEqVal" opcode,
>-      // which is 3 bytes less than new structure define in UEFI Spec 2.3.1.
>-      VSEObj.SetBinaryLength (sizeof (EFI_IFR_VARSTORE_EFI) - 3);
>-#ifdef VFREXP_DEBUG
>-      printf ("undefined Efi VarStoreName is %s and Id is 0x%x\n", pNode-
>>mVarStoreName, pNode->mVarStoreId);
>-#endif
>-    }
>-  }
>-
>-}
>-
> VOID
> EfiVfrParser::_DeclareDefaultLinearVarStore (
>   IN UINT32 LineNo
>   )
> {
>@@ -5917,20 +5826,10 @@ VOID
> EfiVfrParser::SetOverrideClassGuid (IN EFI_GUID *OverrideClassGuid)
> {
>   mOverrideClassGuid = OverrideClassGuid;
> }
>
>-//
>-// For framework vfr compatibility
>-//
>-VOID
>-EfiVfrParser::SetCompatibleMode (IN BOOLEAN Mode)
>-{
>-  mCompatibleMode = Mode;
>-  mCVfrQuestionDB.SetCompatibleMode (Mode);
>-}
>-
> VOID
> EfiVfrParser::CheckDuplicateDefaultValue (
>   IN EFI_DEFAULT_ID      DefaultId,
>   IN ANTLRTokenPtr       Tok
>   )
>diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
>b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
>index 9c9c4d4054..2b9b5dbb1c 100644
>--- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
>+++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
>@@ -1,10 +1,10 @@
> /** @file
>
>   Vfr common library functions.
>
>-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> #include "stdio.h"
>@@ -757,21 +757,10 @@ CVfrVarDataTypeDB::GetFieldOffset (
> {
>   if (Field == NULL) {
>     return VFR_RETURN_FATAL_ERROR;
>   }
>
>-  //
>-  // Framework Vfr file Array Index is from 1.
>-  // But Uefi Vfr file Array Index is from 0.
>-  //
>-  if (VfrCompatibleMode && ArrayIdx != INVALID_ARRAY_INDEX) {
>-    if (ArrayIdx == 0) {
>-      return VFR_RETURN_ERROR_ARRARY_NUM;
>-    }
>-    ArrayIdx = ArrayIdx - 1;
>-  }
>-
>   if ((ArrayIdx != INVALID_ARRAY_INDEX) && ((Field->mArrayNum == 0) ||
>(Field->mArrayNum <= ArrayIdx))) {
>     return VFR_RETURN_ERROR_ARRARY_NUM;
>   }
>
>   //
>@@ -1681,21 +1670,11 @@ CVfrDataStorage::GetFreeVarStoreId (
>   EFI_VFR_VARSTORE_TYPE VarType
>   )
> {
>   UINT32  Index, Mask, Offset;
>
>-  //
>-  // Assign the different ID range for the different type VarStore to support
>Framework Vfr
>-  //
>   Index = 0;
>-  if ((!VfrCompatibleMode) || (VarType == EFI_VFR_VARSTORE_BUFFER)) {
>-    Index = 0;
>-  } else if (VarType == EFI_VFR_VARSTORE_EFI) {
>-    Index = 1;
>-  } else if (VarType == EFI_VFR_VARSTORE_NAME) {
>-    Index = 2;
>-  }
>
>   for (; Index < EFI_FREE_VARSTORE_ID_BITMAP_SIZE; Index++) {
>     if (mFreeVarStoreIdBitMap[Index] != 0xFFFFFFFF) {
>       break;
>     }
>@@ -1913,17 +1892,10 @@ CVfrDataStorage::GetVarStoreByDataType (
>   )
> {
>   SVfrVarStorageNode    *pNode;
>   SVfrVarStorageNode    *MatchNode;
>
>-  //
>-  // Framework VFR uses Data type name as varstore name, so don't need
>check again.
>-  //
>-  if (VfrCompatibleMode) {
>-    return VFR_RETURN_UNDEFINED;
>-  }
>-
>   MatchNode = NULL;
>   for (pNode = mBufferVarStoreList; pNode != NULL; pNode = pNode->mNext)
>{
>     if (strcmp (pNode->mStorageInfo.mDataType->mTypeName,
>DataTypeName) != 0) {
>       continue;
>     }
>@@ -2287,20 +2259,10 @@ CVfrDataStorage::GetNameVarStoreInfo (
>
>   if (mCurrVarStorageNode == NULL) {
>     return VFR_RETURN_GET_NVVARSTORE_ERROR;
>   }
>
>-  //
>-  // Framework Vfr file Index is from 1, but Uefi Vfr file Index is from 0.
>-  //
>-  if (VfrCompatibleMode) {
>-    if (Index == 0) {
>-      return VFR_RETURN_ERROR_ARRARY_NUM;
>-    }
>-    Index --;
>-  }
>-
>   Info->mInfo.mVarName = mCurrVarStorageNode-
>>mStorageInfo.mNameSpace.mNameTable[Index];
>
>   return VFR_RETURN_SUCCESS;
> }
>
>@@ -2859,14 +2821,11 @@ CVfrQuestionDB::RegisterQuestion (
>   }
>
>   if (QuestionId == EFI_QUESTION_ID_INVALID) {
>     QuestionId = GetFreeQuestionId ();
>   } else {
>-    //
>-    // For Framework Vfr, don't check question ID conflict.
>-    //
>-    if (!VfrCompatibleMode && ChekQuestionIdFree (QuestionId) == FALSE) {
>+    if (ChekQuestionIdFree (QuestionId) == FALSE) {
>       delete pNode;
>       return VFR_RETURN_QUESTIONID_REDEFINED;
>     }
>     MarkQuestionIdUsed (QuestionId);
>   }
>@@ -3366,14 +3325,11 @@ CVfrQuestionDB::UpdateQuestionId (
>   if (QId == NewQId) {
>     // don't update
>     return VFR_RETURN_SUCCESS;
>   }
>
>-  //
>-  // For Framework Vfr, don't check question ID conflict.
>-  //
>-  if (!VfrCompatibleMode && ChekQuestionIdFree (NewQId) == FALSE) {
>+  if (ChekQuestionIdFree (NewQId) == FALSE) {
>     return VFR_RETURN_REDEFINED;
>   }
>
>   for (pNode = mQuestionList; pNode != NULL; pNode = pNode->mNext) {
>     if (pNode->mQuestionId == QId) {
>@@ -3955,12 +3911,10 @@ CVfrStringDB::GetUnicodeStringTextSize (
>   }
>
>   return StringSize;
> }
>
>-BOOLEAN  VfrCompatibleMode = FALSE;
>-
> CVfrVarDataTypeDB gCVfrVarDataTypeDB;
> CVfrDefaultStore  gCVfrDefaultStore;
> CVfrDataStorage  gCVfrDataStorage;
>
>
>diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
>b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
>index e2b2917e99..57bb0c424d 100644
>--- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
>+++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
>@@ -1,10 +1,10 @@
> /** @file
>
>   Vfr common library functions.
>
>-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
>+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> #ifndef _VFRUTILITYLIB_H_
>@@ -13,11 +13,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> #include "string.h"
> #include "Common/UefiBaseTypes.h"
> #include "EfiVfr.h"
> #include "VfrError.h"
>
>-extern BOOLEAN  VfrCompatibleMode;
> static EFI_GUID gEdkiiIfrBitVarGuid = EDKII_IFR_BIT_VARSTORE_GUID;
>
> #define MAX_BIT_WIDTH                      32
> #define MAX_NAME_LEN                       64
> #define MAX_STRING_LEN                     0x100
>@@ -422,14 +421,10 @@ public:
>   EFI_VFR_RETURN_CODE FindQuestion (IN EFI_QUESTION_ID);
>   EFI_VFR_RETURN_CODE FindQuestion (IN CHAR8 *);
>   VOID                PrintAllQuestion (IN VOID);
>   VOID                ResetInit (IN VOID);
>
>-  VOID SetCompatibleMode (IN BOOLEAN Mode) {
>-    VfrCompatibleMode = Mode;
>-  }
>-
> private:
>   CVfrQuestionDB (IN CONST CVfrQuestionDB&);             // Prevent copy-
>construction
>   CVfrQuestionDB& operator= (IN CONST CVfrQuestionDB&);  // Prevent
>assignment
> };
>
>diff --git a/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
>b/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
>index fa0beebb9c..2b056f8f26 100644
>--- a/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
>+++ b/BaseTools/UserManuals/VfrCompiler_Utility_Man_Page.rtf
>@@ -145,14 +145,10 @@ The generated file will be placed into the output
>directory sp\hich\af43\dbch\af
> \par }\pard \ltrpar\ql
>\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1
>\ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490
>\hich\af43\dbch\af31505\loch\f43 -n, --no-pre-processing
> \par }\pard \ltrpar\ql
>\li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0
>{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490
>\hich\af43\dbch\af31505\loch\f43 Do not preprocess}{\rtlch\fcs1 \af43\afs18
>\ltrch\fcs0
> \fs18\cf1\insrsid2570438 \hich\af43\dbch\af31505\loch\f43  t}{\rtlch\fcs1
>\af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid1204842
>\hich\af43\dbch\af31505\loch\f43 he}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0
>\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43
>  input vfr file. The input VFR file has been
>pro\hich\af43\dbch\af31505\loch\f43 cessed. If this option is not specified,
>the default behavior is same to set this option.
> \par }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid83254
>\hich\af43\dbch\af31505\loch\f43 Selecting this option disables preprocessing
>of VFR files. }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2570438
>-\par }\pard \ltrpar\ql
>\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1
>\ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490
>\hich\af43\dbch\af31505\loch\f43 -c, --compatible-framework
>-\par }\pard \ltrpar\ql
>\li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0
>{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490
>\hich\af43\dbch\af31505\loch\f43 Recognize}{\rtlch\fcs1 \af43\afs18
>\ltrch\fcs0 \fs18\cf1\insrsid83254
>-\hich\af43\dbch\af31505\loch\f43 s}{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0
>\fs18\cf1\insrsid14166490 \hich\af43\dbch\af31505\loch\f43  the input VFR
>file is the framework VFR syntax. If this option is
>n\hich\af43\dbch\af31505\loch\f43
>-ot specified, the UEFI syntax is default }{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0
>\fs18\cf1\insrsid83254 \hich\af43\dbch\af31505\loch\f43 the VFR }{\rtlch\fcs1
>\af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490
>\hich\af43\dbch\af31505\loch\f43 syntax.
> \par }\pard \ltrpar\ql
>\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1
>\ab\af43\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14166490
>\hich\af43\dbch\af31505\loch\f43 -h, --help
> \par }\pard \ltrpar\ql
>\fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0
>{\rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14166490
>\hich\af43\dbch\af31505\loch\f43 Print version and usage of this program and
>exit.
> \par }\pard \ltrpar\ql
>\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid129319
>70 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0
>\b\fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 -s,
>--string-db
> \par }\pard \ltrpar\ql
>\fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1
>2931970 {\rtlch\fcs1 \af43\afs18 \ltrch\fcs0
>\fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43
>Input uni string package file.
> \par }\pard \ltrpar\ql
>\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid129319
>70 {\rtlch\fcs1 \ab\af43\afs18 \ltrch\fcs0
>\b\fs18\insrsid12931970\charrsid6448922 \hich\af43\dbch\af31505\loch\f43 -g,
>--guid
>--
>2.18.0.windows.1
>
>
>


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 08/11] SignedCapsulePkg: Remove PcdFrameworkCompatibilitySupport usage
       [not found]   ` <3C0D5C461C9E904E8F62152F6274C0BB40BD01BF@SHSMSX104.ccr.corp.intel.com>
@ 2019-05-07  6:02     ` Yao, Jiewen
  0 siblings, 0 replies; 28+ messages in thread
From: Yao, Jiewen @ 2019-05-07  6:02 UTC (permalink / raw)
  To: Bi, Dandan, Zhang, Chao B, devel@edk2.groups.io

Reviewed-by: Jiewen.yao@intel.com


> > -----Original Message-----
> > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > Dandan Bi
> > Sent: Monday, April 29, 2019 10:16 AM
> > To: devel@edk2.groups.io
> > Cc: Yao, Jiewen <jiewen.yao@intel.com>; Chao
> > Subject: [edk2-devel] [patch 08/11] SignedCapsulePkg: Remove
> > PcdFrameworkCompatibilitySupport usage
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> >
> > Currently Framework compatibility support is not needed and
> > PcdFrameworkCompatibilitySupport will be removed from edk2.
> > So remove the usage of this PCD firstly.
> >
> > Cc: Jiewen Yao <jiewen.yao@intel.com>
> > Cc: Chao Zhang <chao.b.zhang@intel.com
> > Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> > ---
> >  .../Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.c | 6
> +++---
> >  .../RecoveryModuleLoadPei/RecoveryModuleLoadPei.inf         | 5
> +----
> >  2 files changed, 4 insertions(+), 7 deletions(-)
> >
> > diff --git
> >
> a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oadPei.c
> >
> b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oadPei.c
> > index 29a2cc520c..eda3cc5420 100644
> > ---
> >
> a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oadPei.c
> > +++
> >
> b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oa
> > +++ dPei.c
> > @@ -7,11 +7,11 @@
> >    buffer overflow, integer overflow.
> >
> >    ProcessRecoveryCapsule(), ProcessFmpCapsuleImage(),
> > ProcessRecoveryImage(),
> >    ValidateFmpCapsule() will receive untrusted input and do basic
> validation.
> >
> > -Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
> >  SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> >  **/
> >
> >  //
> > @@ -764,11 +764,11 @@ LoadRecoveryCapsule (
> >      for (CapsuleInstance = 1; CapsuleInstance <=
> NumberRecoveryCapsules;
> > CapsuleInstance++) {
> >        CapsuleSize = 0;
> >        Status = DeviceRecoveryPpi->GetRecoveryCapsuleInfo (
> >                                      (EFI_PEI_SERVICES
> **)PeiServices,
> >                                      DeviceRecoveryPpi,
> > -
> FeaturePcdGet(PcdFrameworkCompatibilitySupport) ?
> > CapsuleInstance - 1 : CapsuleInstance,
> > +                                    CapsuleInstance,
> >                                      &CapsuleSize,
> >                                      &CapsuleType
> >                                      );
> >        DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule -
> > GetRecoveryCapsuleInfo (%d - %x) - %r\n", CapsuleInstance, CapsuleSize,
> > Status));
> >        if (EFI_ERROR (Status)) {
> > @@ -781,11 +781,11 @@ LoadRecoveryCapsule (
> >          continue;
> >        }
> >        Status = DeviceRecoveryPpi->LoadRecoveryCapsule (
> >                                      (EFI_PEI_SERVICES
> **)PeiServices,
> >                                      DeviceRecoveryPpi,
> > -
> FeaturePcdGet(PcdFrameworkCompatibilitySupport) ?
> > CapsuleInstance - 1 : CapsuleInstance,
> > +                                    CapsuleInstance,
> >                                      CapsuleBuffer
> >                                      );
> >        DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule -
> LoadRecoveryCapsule
> > (%d) - %r\n", CapsuleInstance, Status));
> >        if (EFI_ERROR (Status)) {
> >          FreePages (CapsuleBuffer, EFI_SIZE_TO_PAGES(CapsuleSize));
> diff --git
> >
> a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oadPei.inf
> >
> b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oadPei.inf
> > index f0f5d21a7a..431b0e1802 100644
> > ---
> >
> a/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oadPei.inf
> > +++
> >
> b/SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleL
> > oa
> > +++ dPei.inf
> > @@ -1,11 +1,11 @@
> >  ## @file
> >  # Recovery module.
> >  #
> >  # Load Recovery capsule and install FV.
> >  #
> > -# Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
> > +# Copyright (c) 2016 - 2019, Intel Corporation. All rights
> > +reserved.<BR>
> >  #
> >  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  #  ## @@
> -54,13 +54,10
> > @@
> >
> >  [Pcd]
> >
> >
> gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGu
> > id  ## CONSUMES
> >
> gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareFileGuid
> > ## CONSUMES
> >
> > -[FeaturePcd]
> > -
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > ## CONSUMES
> > -
> >  [depex]
> >    gEfiPeiBootInRecoveryModePpiGuid
> >
> >  [UserExtensions.TianoCore."ExtraFiles"]
> >    RecoveryModuleLoadPeiExtra.uni
> > --
> > 2.18.0.windows.1
> >
> >
> > 


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch 06/11] MdeModulePkg/Setup: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:16 ` [patch 06/11] MdeModulePkg/Setup: " Dandan Bi
@ 2019-05-07  6:13   ` Dong, Eric
  0 siblings, 0 replies; 28+ messages in thread
From: Dong, Eric @ 2019-05-07  6:13 UTC (permalink / raw)
  To: Bi, Dandan, devel@edk2.groups.io; +Cc: Gao, Liming

Reviewed-by: Eric Dong <eric.dong@intel.com>

> -----Original Message-----
> From: Bi, Dandan
> Sent: Monday, April 29, 2019 10:16 AM
> To: devel@edk2.groups.io
> Cc: Gao, Liming <liming.gao@intel.com>; Dong, Eric <eric.dong@intel.com>
> Subject: [patch 06/11] MdeModulePkg/Setup: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> 
> Currently Framework compatibility support is not needed and
> PcdFrameworkCompatibilitySupport will be removed from edk2.
> So remove the usage of this PCD firstly.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> ---
>  .../Universal/SetupBrowserDxe/IfrParse.c      | 86 +------------------
>  .../SetupBrowserDxe/SetupBrowserDxe.inf       |  6 +-
>  2 files changed, 2 insertions(+), 90 deletions(-)
> 
> diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
> b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
> index 034edb51a7..891b95cf9f 100644
> --- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
> +++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
> @@ -1,9 +1,9 @@
>  /** @file
>  Parser for IFR binary encoding.
> 
> -Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
>  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
>  #include "Setup.h"
> @@ -82,80 +82,10 @@ CreateStatement (
>      InsertTailList (&Form->StatementListHead, &Statement->Link);
>    }
>    return Statement;
>  }
> 
> -/**
> -  Convert a numeric value to a Unicode String and insert it to String Package.
> -  This string is used as the Unicode Name for the EFI Variable. This is to support
> -  the deprecated vareqval opcode.
> -
> -  @param FormSet        The FormSet.
> -  @param Statement      The numeric question whose VarStoreInfo.VarName is
> the
> -                        numeric value which is used to produce the Unicode Name
> -                        for the EFI Variable.
> -
> -  If the Statement is NULL, the ASSERT.
> -  If the opcode is not Numeric, then ASSERT.
> -
> -  @retval EFI_SUCCESS The funtion always succeeds.
> -**/
> -EFI_STATUS
> -UpdateCheckBoxStringToken (
> -  IN CONST FORM_BROWSER_FORMSET *FormSet,
> -  IN       FORM_BROWSER_STATEMENT *Statement
> -  )
> -{
> -  CHAR16                  Str[MAXIMUM_VALUE_CHARACTERS];
> -  EFI_STRING_ID           Id;
> -
> -  ASSERT (Statement != NULL);
> -  ASSERT (Statement->Operand == EFI_IFR_NUMERIC_OP);
> -
> -  UnicodeValueToStringS (Str, sizeof (Str), 0, Statement->VarStoreInfo.VarName,
> MAXIMUM_VALUE_CHARACTERS - 1);
> -
> -  Id = HiiSetString (FormSet->HiiHandle, 0, Str, NULL);
> -  if (Id == 0) {
> -    return EFI_OUT_OF_RESOURCES;
> -  }
> -
> -  Statement->VarStoreInfo.VarName = Id;
> -
> -  return EFI_SUCCESS;
> -}
> -
> -/**
> -  Check if the next opcode is the EFI_IFR_EXTEND_OP_VAREQNAME.
> -
> -  @param OpCodeData     The current opcode.
> -
> -  @retval TRUE Yes.
> -  @retval FALSE No.
> -**/
> -BOOLEAN
> -IsNextOpCodeGuidedVarEqName (
> -  IN UINT8 *OpCodeData
> -  )
> -{
> -  //
> -  // Get next opcode
> -  //
> -  OpCodeData += ((EFI_IFR_OP_HEADER *) OpCodeData)->Length;
> -  if (*OpCodeData == EFI_IFR_GUID_OP) {
> -    if (CompareGuid (&gEfiIfrFrameworkGuid, (EFI_GUID *)(OpCodeData + sizeof
> (EFI_IFR_OP_HEADER)))) {
> -      //
> -      // Specific GUIDed opcodes to support IFR generated from Framework HII
> VFR
> -      //
> -      if ((((EFI_IFR_GUID_VAREQNAME *) OpCodeData)->ExtendOpCode) ==
> EFI_IFR_EXTEND_OP_VAREQNAME) {
> -        return TRUE;
> -      }
> -    }
> -  }
> -
> -  return FALSE;
> -}
> -
>  /**
>    Initialize Question's members.
> 
>    @param  OpCodeData             Pointer of the raw OpCode data.
>    @param  FormSet                Pointer of the current FormSet.
> @@ -174,11 +104,10 @@ CreateQuestion (
>    FORM_BROWSER_STATEMENT   *Statement;
>    EFI_IFR_QUESTION_HEADER  *QuestionHdr;
>    LIST_ENTRY               *Link;
>    FORMSET_STORAGE          *Storage;
>    NAME_VALUE_NODE          *NameValueNode;
> -  EFI_STATUS               Status;
>    BOOLEAN                  Find;
> 
>    Statement = CreateStatement (OpCodeData, FormSet, Form);
>    if (Statement == NULL) {
>      return NULL;
> @@ -196,23 +125,10 @@ CreateQuestion (
>      // VarStoreId of zero indicates no variable storage
>      //
>      return Statement;
>    }
> 
> -  //
> -  // Take a look at next OpCode to see whether it is a GUIDed opcode to
> support
> -  // Framework Compatibility
> -  //
> -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> -    if ((*OpCodeData == EFI_IFR_NUMERIC_OP) &&
> IsNextOpCodeGuidedVarEqName (OpCodeData)) {
> -      Status = UpdateCheckBoxStringToken (FormSet, Statement);
> -      if (EFI_ERROR (Status)) {
> -        return NULL;
> -      }
> -    }
> -  }
> -
>    //
>    // Find Storage for this Question
>    //
>    Link = GetFirstNode (&FormSet->StorageListHead);
>    while (!IsNull (&FormSet->StorageListHead, Link)) { diff --git
> a/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
> b/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
> index a6b9402daa..82db7c1ef1 100644
> --- a/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
> +++ b/MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
> @@ -1,11 +1,11 @@
>  ## @file
>  # The DXE driver produces FORM BROWSER2 protocol defined in UEFI
> specification.
>  #
>  # It also produces FormBrowserEx(2) protocol to let user register the different
> Hot key service.
>  #
> -# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2007 - 2019, Intel Corporation. All rights
> +reserved.<BR>
>  #
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  #  ## @@ -50,11 +50,10
> @@
>    DevicePathLib
>    PcdLib
>    UefiLib
> 
>  [Guids]
> -  gEfiIfrFrameworkGuid                          ## SOMETIMES_CONSUMES  ## GUID
>    gEfiHiiPlatformSetupFormsetGuid               ## SOMETIMES_CONSUMES  ##
> GUID
>    gEfiHiiStandardFormGuid                       ## SOMETIMES_CONSUMES  ## GUID
>    gZeroGuid                                     ## SOMETIMES_CONSUMES  ## GUID
>    gEdkiiIfrBitVarstoreGuid                      ## SOMETIMES_CONSUMES  ## GUID
> 
> @@ -71,13 +70,10 @@
>    ## NOTIFY
>    gEdkiiFormDisplayEngineProtocolGuid
>    gEdkiiFormBrowserExProtocolGuid               ## PRODUCES
>    gEfiRegularExpressionProtocolGuid             ## SOMETIMES_CONSUMES
> 
> -[FeaturePcd]
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> ## CONSUMES
> -
>  [Depex]
>    gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid
> 
>  [UserExtensions.TianoCore."ExtraFiles"]
>    SetupBrowserExtra.uni
> --
> 2.18.0.windows.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  2019-05-06  2:54       ` Wu, Hao A
@ 2019-05-07  7:08         ` Dandan Bi
  2019-05-08  8:23           ` Liming Gao
  0 siblings, 1 reply; 28+ messages in thread
From: Dandan Bi @ 2019-05-07  7:08 UTC (permalink / raw)
  To: Wu, Hao A, devel@edk2.groups.io; +Cc: Gao, Liming, Bi, Dandan

Hi Hao and Liming,

Any comments for this patch itself?
As for whether delete the header definition of EFI_PE32_IMAGE_PROTOCOL , it is another topic. Liming, do you have any comments on this one?

Thanks,
Dandan
> -----Original Message-----
> From: Wu, Hao A
> Sent: Monday, May 6, 2019 10:55 AM
> To: Bi, Dandan <dandan.bi@intel.com>; devel@edk2.groups.io
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> > -----Original Message-----
> > From: Bi, Dandan
> > Sent: Monday, May 06, 2019 10:48 AM
> > To: Wu, Hao A; devel@edk2.groups.io
> > Cc: Gao, Liming; Bi, Dandan
> > Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > PcdFrameworkCompatibilitySupport usage
> >
> > > -----Original Message-----
> > > From: Wu, Hao A
> > > Sent: Monday, May 6, 2019 9:23 AM
> > > To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>
> > > Cc: Gao, Liming <liming.gao@intel.com>
> > > Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > > PcdFrameworkCompatibilitySupport usage
> > >
> > > > -----Original Message-----
> > > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf
> > > > Of Dandan Bi
> > > > Sent: Monday, April 29, 2019 10:16 AM
> > > > To: devel@edk2.groups.io
> > > > Cc: Gao, Liming
> > > > Subject: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > > > PcdFrameworkCompatibilitySupport usage
> > > >
> > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> > > >
> > > > Currently Framework compatibility is not needed and
> > > > PcdFrameworkCompatibilitySupport will be removed from edk2.
> > > > So remove the usage of this PCD firstly.
> > > >
> > > > Cc: Liming Gao <liming.gao@intel.com>
> > > > Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> > > > ---
> > > >  MdeModulePkg/Core/Dxe/DxeMain.inf   |   6 +-
> > > >  MdeModulePkg/Core/Dxe/Image/Image.c | 132
> > > > +---------------------------  MdeModulePkg/Core/Dxe/Image/Image.h
> > > > +|
> > > > 85 +-----------------  MdeModulePkg/Core/Pei/FwVol/FwVol.c |  65
> > > > ----------
> > > ----
> > > >  MdeModulePkg/Core/Pei/PeiMain.inf   |   1 -
> > > >  5 files changed, 3 insertions(+), 286 deletions(-)
> > > >
> > > > diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > > b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > > index 8dee5bee0a..61161bee28 100644
> > > > --- a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > > +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > > @@ -1,11 +1,11 @@
> > > >  ## @file
> > > >  #  This is core module in DXE phase.
> > > >  #
> > > >  #  It provides an implementation of DXE Core that is compliant
> > > > with DXE
> > CIS.
> > > >  #
> > > > -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > > reserved.<BR>
> > > > +#  Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > > +reserved.<BR>
> > > >  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  ##
> > > >
> > > >  [Defines]
> > > > @@ -130,11 +130,10 @@
> > > >
> > > >  [Protocols]
> > > >    ## PRODUCES
> > > >    ## SOMETIMES_CONSUMES
> > > >    gEfiDecompressProtocolGuid
> > > > -  gEfiLoadPeImageProtocolGuid                   ## SOMETIMES_PRODUCES
> #
> > > > Produces when PcdFrameworkCompatibilitySupport is set
> > >
> > > A couple of questions.
> > >
> > > Is '#include <Protocol/LoadPe32Image.h>' in
> > > MdeModulePkg\Core\Dxe\DxeMain.h still needed?
> > >
> > > Can we remove EFI_PE32_IMAGE_PROTOCOL altogether? Seems to me
> there
> > > is no other consumer within edk2.
> > >
> > > Best Regards,
> > > Hao Wu
> >
> > Hi Hao,
> >
> > 1. Yes,  since following definitions in <Protocol/LoadPe32Image.h> are
> > still used in MdeModulePkg\Core\Dxe\Image\Image.c
> > #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION
> > 0x01
> > #define
> >
> EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRA
> TIO
> > N  0x02
> 
> OK. I overlooked that these definitions are still being used.
> 
> >
> > 2. I also think we can remove this protocol, but I prefer a separate
> > patch (not covered by this patch series) to remove it and solve the
> > dependency issue in 1 together. Is it OK to you?
> 
> As point 1 mentioned above, I think the protocol should be kept to preserve
> the definitions.
> 
> Maybe Liming will have some comments on this.
> 
> Best Regards,
> Hao Wu
> 
> >
> > Thanks,
> > Dandan
> > >
> > > >    gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
> > > >    gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
> > > >    gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
> > > >    gEfiBusSpecificDriverOverrideProtocolGuid     ##
> > SOMETIMES_CONSUMES
> > > >    gEfiDriverFamilyOverrideProtocolGuid          ##
> SOMETIMES_CONSUMES
> > > > @@ -171,13 +170,10 @@
> > > >    gEfiVariableWriteArchProtocolGuid             ## CONSUMES
> > > >    gEfiVariableArchProtocolGuid                  ## CONSUMES
> > > >    gEfiCapsuleArchProtocolGuid                   ## CONSUMES
> > > >    gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES
> > > >
> > > > -[FeaturePcd]
> > > > -
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > > > ## CONSUMES
> > > > -
> > > >  [Pcd]
> > > >
> > > >
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> > > Nu
> > > > mber    ## SOMETIMES_CONSUMES
> > > >
> > > >
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> > > um
> > > > ber     ## SOMETIMES_CONSUMES
> > > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > > > ## CONSUMES
> > > >
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress
> > > > ## CONSUMES
> > > > diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c
> > > > b/MdeModulePkg/Core/Dxe/Image/Image.c
> > > > index de5b8bed27..22a87ecf6d 100644
> > > > --- a/MdeModulePkg/Core/Dxe/Image/Image.c
> > > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.c
> > > > @@ -1,9 +1,9 @@
> > > >  /** @file
> > > >    Core image handling services to load and unload PeImage.
> > > >
> > > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > > reserved.<BR>
> > > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > > +reserved.<BR>
> > > >  SPDX-License-Identifier: BSD-2-Clause-Patent
> > > >
> > > >  **/
> > > >
> > > >  #include "DxeMain.h"
> > > > @@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> > > > // // Module Globals  //  LOADED_IMAGE_PRIVATE_DATA
> > > > *mCurrentImage
> > > =
> > > > NULL;
> > > >
> > > > -LOAD_PE32_IMAGE_PRIVATE_DATA  mLoadPe32PrivateData = {
> > > > -  LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE,
> > > > -  NULL,
> > > > -  {
> > > > -    CoreLoadImageEx,
> > > > -    CoreUnloadImageEx
> > > > -  }
> > > > -};
> > > > -
> > > >  typedef struct {
> > > >    LIST_ENTRY                            Link;
> > > >    EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL  *Emulator;
> > > >    UINT16                                MachineType;
> > > >  } EMULATOR_ENTRY;
> > > > @@ -274,22 +265,10 @@ CoreInitializeImageServices (
> > > >               );
> > > >    ASSERT_EFI_ERROR(Status);
> > > >
> > > >    InitializeListHead (&mAvailableEmulators);
> > > >
> > > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > > > -    //
> > > > -    // Export DXE Core PE Loader functionality for backward compatibility.
> > > > -    //
> > > > -    Status = CoreInstallProtocolInterface (
> > > > -               &mLoadPe32PrivateData.Handle,
> > > > -               &gEfiLoadPeImageProtocolGuid,
> > > > -               EFI_NATIVE_INTERFACE,
> > > > -               &mLoadPe32PrivateData.Pe32Image
> > > > -               );
> > > > -  }
> > > > -
> > > >    ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);
> > > >
> > > >    return Status;
> > > >  }
> > > >
> > > > @@ -1564,96 +1543,10 @@ CoreLoadImage (
> > > >    PERF_LOAD_IMAGE_END (Handle);
> > > >
> > > >    return Status;
> > > >  }
> > > >
> > > > -
> > > > -
> > > > -/**
> > > > -  Loads an EFI image into memory and returns a handle to the
> > > > image with extended parameters.
> > > > -
> > > > -  @param  This                    Calling context
> > > > -  @param  ParentImageHandle       The caller's image handle.
> > > > -  @param  FilePath                The specific file path from which the image
> is
> > > > -                                  loaded.
> > > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> > > location
> > > > -                                  containing a copy of the image to be loaded.
> > > > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > > > -  @param  DstBuffer               The buffer to store the image.
> > > > -  @param  NumberOfPages           For input, specifies the space size of
> the
> > > > -                                  image by caller if not NULL. For output,
> > > > -                                  specifies the actual space size needed.
> > > > -  @param  ImageHandle             Image handle for output.
> > > > -  @param  EntryPoint              Image entry point for output.
> > > > -  @param  Attribute               The bit mask of attributes to set for the
> load
> > > > -                                  PE image.
> > > > -
> > > > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an
> invalid
> > > > value.
> > > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or
> the
> > > > device
> > > > -                                  path cannot be parsed to locate the proper
> > > > -                                  protocol for loading the file.
> > > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> > > insufficient
> > > > -                                  resources.
> > > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
> > image
> > > > format was corrupt or not
> > > > -                                  understood.
> > > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> > > device
> > > > returned a read error.
> > > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> > > platform
> > > > policy prohibits the
> > > > -                                  image from being loaded. NULL is returned in
> > > > *ImageHandle.
> > > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> > > ImageHandle
> > > > was created with a
> > > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > > > current
> > > > -                                  platform policy specifies that the image should not be
> > > > started.
> > > > -
> > > > -**/
> > > > -EFI_STATUS
> > > > -EFIAPI
> > > > -CoreLoadImageEx (
> > > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > > > -  IN  EFI_HANDLE                       ParentImageHandle,
> > > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > > > -  IN  UINTN                            SourceSize,
> > > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > > > -  OUT EFI_HANDLE                       *ImageHandle,
> > > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > > > -  IN  UINT32                           Attribute
> > > > -  )
> > > > -{
> > > > -  EFI_STATUS    Status;
> > > > -  EFI_HANDLE    Handle;
> > > > -
> > > > -  PERF_LOAD_IMAGE_BEGIN (NULL);
> > > > -
> > > > -  Status = CoreLoadImageCommon (
> > > > -           TRUE,
> > > > -           ParentImageHandle,
> > > > -           FilePath,
> > > > -           SourceBuffer,
> > > > -           SourceSize,
> > > > -           DstBuffer,
> > > > -           NumberOfPages,
> > > > -           ImageHandle,
> > > > -           EntryPoint,
> > > > -           Attribute
> > > > -           );
> > > > -
> > > > -  Handle = NULL;
> > > > -  if (!EFI_ERROR (Status)) {
> > > > -    //
> > > > -    // ImageHandle will be valid only Status is success.
> > > > -    //
> > > > -    Handle = *ImageHandle;
> > > > -  }
> > > > -
> > > > -  PERF_LOAD_IMAGE_END (Handle);
> > > > -
> > > > -  return Status;
> > > > -}
> > > > -
> > > > -
> > > >  /**
> > > >    Transfer control to a loaded image's entry point.
> > > >
> > > >    @param  ImageHandle             Handle of image to be started.
> > > >    @param  ExitDataSize            Pointer of the size to ExitData
> > > > @@ -2010,28 +1903,5 @@ CoreUnloadImage (
> > > >    }
> > > >
> > > >  Done:
> > > >    return Status;
> > > >  }
> > > > -
> > > > -
> > > > -
> > > > -/**
> > > > -  Unload the specified image.
> > > > -
> > > > -  @param  This                    Indicates the calling context.
> > > > -  @param  ImageHandle             The specified image handle.
> > > > -
> > > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> > > image.
> > > > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > > > -
> > > > -**/
> > > > -EFI_STATUS
> > > > -EFIAPI
> > > > -CoreUnloadImageEx (
> > > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > > > -  IN EFI_HANDLE                         ImageHandle
> > > > -  )
> > > > -{
> > > > -  return CoreUnloadImage (ImageHandle); -} diff --git
> > > > a/MdeModulePkg/Core/Dxe/Image/Image.h
> > > > b/MdeModulePkg/Core/Dxe/Image/Image.h
> > > > index 6020a27371..e9c44ab2a7 100644
> > > > --- a/MdeModulePkg/Core/Dxe/Image/Image.h
> > > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.h
> > > > @@ -1,30 +1,17 @@
> > > >  /** @file
> > > >    Data structure and functions to load and unload PeImage.
> > > >
> > > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > > reserved.<BR>
> > > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > > +reserved.<BR>
> > > >  SPDX-License-Identifier: BSD-2-Clause-Patent
> > > >
> > > >  **/
> > > >
> > > >
> > > >  #ifndef _IMAGE_H_
> > > >  #define _IMAGE_H_
> > > >
> > > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE
> > > > SIGNATURE_32('l','p','e','i')
> > > > -
> > > > -typedef struct {
> > > > -  UINTN                       Signature;
> > > > -  /// Image handle
> > > > -  EFI_HANDLE                  Handle;
> > > > -  EFI_PE32_IMAGE_PROTOCOL     Pe32Image;
> > > > -} LOAD_PE32_IMAGE_PRIVATE_DATA;
> > > > -
> > > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
> > > > -          CR(a, LOAD_PE32_IMAGE_PRIVATE_DATA, Pe32Image,
> > > > LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE)
> > > > -
> > > > -
> > > >  //
> > > >  // Private Data Types
> > > >  //
> > > >  #define IMAGE_FILE_HANDLE_SIGNATURE
> SIGNATURE_32('i','m','g','f')
> > > >  typedef struct {
> > > > @@ -32,76 +19,6 @@ typedef struct {
> > > >    BOOLEAN             FreeBuffer;
> > > >    VOID                *Source;
> > > >    UINTN               SourceSize;
> > > >  } IMAGE_FILE_HANDLE;
> > > >
> > > > -/**
> > > > -  Loads an EFI image into memory and returns a handle to the
> > > > image with extended parameters.
> > > > -
> > > > -  @param  This                    Calling context
> > > > -  @param  ParentImageHandle       The caller's image handle.
> > > > -  @param  FilePath                The specific file path from which the image
> is
> > > > -                                  loaded.
> > > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> > > location
> > > > -                                  containing a copy of the image to be loaded.
> > > > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > > > -  @param  DstBuffer               The buffer to store the image.
> > > > -  @param  NumberOfPages           For input, specifies the space size of
> the
> > > > -                                  image by caller if not NULL. For output,
> > > > -                                  specifies the actual space size needed.
> > > > -  @param  ImageHandle             Image handle for output.
> > > > -  @param  EntryPoint              Image entry point for output.
> > > > -  @param  Attribute               The bit mask of attributes to set for the
> load
> > > > -                                  PE image.
> > > > -
> > > > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an
> invalid
> > > > value.
> > > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or
> the
> > > > device
> > > > -                                  path cannot be parsed to locate the proper
> > > > -                                  protocol for loading the file.
> > > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> > > insufficient
> > > > -                                  resources.
> > > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
> > image
> > > > format was corrupt or not
> > > > -                                  understood.
> > > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> > > device
> > > > returned a read error.
> > > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> > > platform
> > > > policy prohibits the
> > > > -                                  image from being loaded. NULL is returned in
> > > > *ImageHandle.
> > > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> > > ImageHandle
> > > > was created with a
> > > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > > > current
> > > > -                                  platform policy specifies that the image should not be
> > > > started.
> > > > -
> > > > -**/
> > > > -EFI_STATUS
> > > > -EFIAPI
> > > > -CoreLoadImageEx (
> > > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > > > -  IN  EFI_HANDLE                       ParentImageHandle,
> > > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > > > -  IN  UINTN                            SourceSize,
> > > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > > > -  OUT EFI_HANDLE                       *ImageHandle,
> > > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > > > -  IN  UINT32                           Attribute
> > > > -  );
> > > > -
> > > > -
> > > > -/**
> > > > -  Unload the specified image.
> > > > -
> > > > -  @param  This                    Indicates the calling context.
> > > > -  @param  ImageHandle             The specified image handle.
> > > > -
> > > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> > > image.
> > > > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > > > -
> > > > -**/
> > > > -EFI_STATUS
> > > > -EFIAPI
> > > > -CoreUnloadImageEx (
> > > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > > > -  IN EFI_HANDLE                         ImageHandle
> > > > -  );
> > > >  #endif
> > > > diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > > b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > > index f817ba04e2..709db00694 100644
> > > > --- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > > +++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > > @@ -1092,19 +1092,10 @@ PeiFfsFindNextFile (  {
> > > >    PEI_CORE_FV_HANDLE      *CoreFvHandle;
> > > >
> > > >    CoreFvHandle = FvHandleToCoreHandle (FvHandle);
> > > >
> > > > -  //
> > > > -  // To make backward compatiblity, if can not find corresponding
> > > > the handle of FV
> > > > -  // then treat FV as build-in FFS2/FFS3 format and memory mapped
> > > > FV that FV handle is pointed
> > > > -  // to the address of first byte of FV.
> > > > -  //
> > > > -  if ((CoreFvHandle == NULL) && FeaturePcdGet
> > > > (PcdFrameworkCompatibilitySupport)) {
> > > > -    return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);
> > > > -  }
> > > > -
> > > >    if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {
> > > >      return EFI_NOT_FOUND;
> > > >    }
> > > >
> > > >    return CoreFvHandle->FvPpi->FindFileByType
> > > > (CoreFvHandle->FvPpi, SearchType, FvHandle, FileHandle); @@
> > > > -2109,66 +2100,10 @@ PEI_CORE_FV_HANDLE *
> FindNextCoreFvHandle (
> > > >    IN PEI_CORE_INSTANCE  *Private,
> > > >    IN UINTN              Instance
> > > >    )
> > > >  {
> > > > -  UINTN                    Index;
> > > > -  BOOLEAN                  Match;
> > > > -  EFI_HOB_FIRMWARE_VOLUME  *FvHob;
> > > > -
> > > > -  //
> > > > -  // Handle Framework FvHob and Install FvInfo Ppi for it.
> > > > -  //
> > > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > > > -    //
> > > > -    // Loop to search the wanted FirmwareVolume which supports FFS
> > > > -    //
> > > > -    FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob
> > > (EFI_HOB_TYPE_FV);
> > > > -    while (FvHob != NULL) {
> > > > -      //
> > > > -      // Search whether FvHob has been installed into PeiCore's FV
> database.
> > > > -      // If found, no need install new FvInfoPpi for it.
> > > > -      //
> > > > -      for (Index = 0, Match = FALSE; Index < Private->FvCount; Index++) {
> > > > -        if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress == Private-
> > > > >Fv[Index].FvHeader) {
> > > > -          Match = TRUE;
> > > > -          break;
> > > > -        }
> > > > -      }
> > > > -
> > > > -      //
> > > > -      // Search whether FvHob has been cached into PeiCore's Unknown
> FV
> > > > database.
> > > > -      // If found, no need install new FvInfoPpi for it.
> > > > -      //
> > > > -      if (!Match) {
> > > > -        for (Index = 0; Index < Private->UnknownFvInfoCount; Index ++) {
> > > > -          if ((UINTN)FvHob->BaseAddress == (UINTN)Private-
> > > > >UnknownFvInfo[Index].FvInfo) {
> > > > -            Match = TRUE;
> > > > -            break;
> > > > -          }
> > > > -        }
> > > > -      }
> > > > -
> > > > -      //
> > > > -      // If the Fv in FvHob has not been installed into PeiCore's FV
> database
> > > and
> > > > has
> > > > -      // not been cached into PeiCore's Unknown FV database, install a
> new
> > > > FvInfoPpi
> > > > -      // for it then PeiCore will dispatch it in callback of FvInfoPpi.
> > > > -      //
> > > > -      if (!Match) {
> > > > -        PeiServicesInstallFvInfoPpi (
> > > > -          &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHob-
> > > >BaseAddress)-
> > > > >FileSystemGuid),
> > > > -          (VOID *)(UINTN)FvHob->BaseAddress,
> > > > -          (UINT32)FvHob->Length,
> > > > -          NULL,
> > > > -          NULL
> > > > -          );
> > > > -      }
> > > > -
> > > > -      FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob
> > > > (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob-
> > > >Header.HobLength));
> > > > -    }
> > > > -  }
> > > > -
> > > >    if (Instance >= Private->FvCount) {
> > > >      return NULL;
> > > >    }
> > > >
> > > >    return &Private->Fv[Instance];
> > > > diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf
> > > > b/MdeModulePkg/Core/Pei/PeiMain.inf
> > > > index c8a6d5b80b..7c482dacfc 100644
> > > > --- a/MdeModulePkg/Core/Pei/PeiMain.inf
> > > > +++ b/MdeModulePkg/Core/Pei/PeiMain.inf
> > > > @@ -100,11 +100,10 @@
> > > >    gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
> > > >
> > > >  [Pcd]
> > > >    gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize
> > > > ## CONSUMES
> > > >
> > > >
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSecti
> > > onFi
> > > > rst  ## CONSUMES
> > > > -
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > > > ## CONSUMES
> > > >
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumb
> > > er
> > > > ## SOMETIMES_CONSUMES
> > > >
> > > >
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> > > Nu
> > > > mber    ## SOMETIMES_CONSUMES
> > > >
> > > >
> > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> > > um
> > > > ber     ## SOMETIMES_CONSUMES
> > > >
> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > > > ## CONSUMES
> > > >    gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot
> > > > ## CONSUMES
> > > > --
> > > > 2.18.0.windows.1
> > > >
> > > >
> > > > 


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [patch 10/11] Vlv2TbltDevicePkg: Remove PcdFrameworkCompatibilitySupport usage
  2019-04-29  2:16 ` [patch 10/11] Vlv2TbltDevicePkg: " Dandan Bi
@ 2019-05-07  8:35   ` Sun, Zailiang
  0 siblings, 0 replies; 28+ messages in thread
From: Sun, Zailiang @ 2019-05-07  8:35 UTC (permalink / raw)
  To: Bi, Dandan, devel@edk2.groups.io; +Cc: Qian, Yi

Reviewed-by: Zailiang Sun <zailiang.sun@intel.com>

> -----Original Message-----
> From: Bi, Dandan
> Sent: Monday, April 29, 2019 10:16 AM
> To: devel@edk2.groups.io
> Cc: Sun, Zailiang <zailiang.sun@intel.com>; Qian, Yi <yi.qian@intel.com>
> Subject: [patch 10/11] Vlv2TbltDevicePkg: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> 
> Currently Framework compatibility support is not needed and
> PcdFrameworkCompatibilitySupport will be removed from edk2.
> So remove the usage of this PCD firstly.
> 
> Cc: Zailiang Sun <zailiang.sun@intel.com>
> Cc: Yi Qian <yi.qian@intel.com>
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> ---
>  Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc | 3 +--
>  Vlv2TbltDevicePkg/PlatformPkgIA32.dsc   | 3 +--
>  Vlv2TbltDevicePkg/PlatformPkgX64.dsc    | 3 +--
>  3 files changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
> b/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
> index b3642c5c7a..96e77d54e8 100644
> --- a/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
> +++ b/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
> @@ -1,9 +1,9 @@
>  #/** @file
>  # Platform description.
>  #
> -# Copyright (c) 2012  - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2012  - 2019, Intel Corporation. All rights
> +reserved.<BR>
>  #
>  # SPDX-License-Identifier: BSD-2-Clause-Patent  #  #  #**/ @@ -489,11
> +489,10 @@  !if $(CAPSULE_RESET_ENABLE) == TRUE
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|TRUE
>  !else
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALS
> E
>  !endif
> -
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|T
> RUE
>    gEfiCpuTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE
>  !if $(DATAHUB_STATUS_CODE_ENABLE) == TRUE
> 
> gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub
> |TRUE
>  !else
> 
> gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub
> |FALSE
> diff --git a/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
> b/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
> index 28e6f5a181..114353082b 100644
> --- a/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
> +++ b/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
> @@ -1,9 +1,9 @@
>  #/** @file
>  # Platform description.
>  #
> -# Copyright (c) 2012  - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2012  - 2019, Intel Corporation. All rights
> +reserved.<BR>
>  #
>  # SPDX-License-Identifier: BSD-2-Clause-Patent  #  #  #**/ @@ -491,11
> +491,10 @@  !if $(CAPSULE_RESET_ENABLE) == TRUE
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|TRUE
>  !else
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALS
> E
>  !endif
> -
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|T
> RUE
>    gEfiCpuTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE
>  !if $(DATAHUB_STATUS_CODE_ENABLE) == TRUE
> 
> gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub
> |TRUE
>  !else
> 
> gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub
> |FALSE
> diff --git a/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
> b/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
> index f9ba56ef4b..20fdc691cb 100644
> --- a/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
> +++ b/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
> @@ -1,9 +1,9 @@
>  #/** @file
>  # Platform description.
>  #
> -# Copyright (c) 2012  - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2012  - 2019, Intel Corporation. All rights
> +reserved.<BR>
>  #
>  # SPDX-License-Identifier: BSD-2-Clause-Patent  #  #  #**/ @@ -491,11
> +491,10 @@  !if $(CAPSULE_RESET_ENABLE) == TRUE
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|TRUE
>  !else
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALS
> E
>  !endif
> -
> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|T
> RUE
>    gEfiCpuTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE
>  !if $(DATAHUB_STATUS_CODE_ENABLE) == TRUE
> 
> gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub
> |TRUE
>  !else
> 
> gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseDataHub
> |FALSE
> --
> 2.18.0.windows.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  2019-05-07  7:08         ` Dandan Bi
@ 2019-05-08  8:23           ` Liming Gao
  0 siblings, 0 replies; 28+ messages in thread
From: Liming Gao @ 2019-05-08  8:23 UTC (permalink / raw)
  To: Bi, Dandan, Wu, Hao A, devel@edk2.groups.io

Dandan:
  I am OK to submit the separate BZ to remove the header definition of EFI_PE32_IMAGE_PROTOCOL. 

  For this patch, the change is good. Reviewed-by: Liming Gao <liming.gao@intel.com>

Thanks
Liming
>-----Original Message-----
>From: Bi, Dandan
>Sent: Tuesday, May 07, 2019 3:08 PM
>To: Wu, Hao A <hao.a.wu@intel.com>; devel@edk2.groups.io
>Cc: Gao, Liming <liming.gao@intel.com>; Bi, Dandan <dandan.bi@intel.com>
>Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
>PcdFrameworkCompatibilitySupport usage
>
>Hi Hao and Liming,
>
>Any comments for this patch itself?
>As for whether delete the header definition of EFI_PE32_IMAGE_PROTOCOL ,
>it is another topic. Liming, do you have any comments on this one?
>
>Thanks,
>Dandan
>> -----Original Message-----
>> From: Wu, Hao A
>> Sent: Monday, May 6, 2019 10:55 AM
>> To: Bi, Dandan <dandan.bi@intel.com>; devel@edk2.groups.io
>> Cc: Gao, Liming <liming.gao@intel.com>
>> Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
>> PcdFrameworkCompatibilitySupport usage
>>
>> > -----Original Message-----
>> > From: Bi, Dandan
>> > Sent: Monday, May 06, 2019 10:48 AM
>> > To: Wu, Hao A; devel@edk2.groups.io
>> > Cc: Gao, Liming; Bi, Dandan
>> > Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
>> > PcdFrameworkCompatibilitySupport usage
>> >
>> > > -----Original Message-----
>> > > From: Wu, Hao A
>> > > Sent: Monday, May 6, 2019 9:23 AM
>> > > To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>
>> > > Cc: Gao, Liming <liming.gao@intel.com>
>> > > Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
>> > > PcdFrameworkCompatibilitySupport usage
>> > >
>> > > > -----Original Message-----
>> > > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On
>Behalf
>> > > > Of Dandan Bi
>> > > > Sent: Monday, April 29, 2019 10:16 AM
>> > > > To: devel@edk2.groups.io
>> > > > Cc: Gao, Liming
>> > > > Subject: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
>> > > > PcdFrameworkCompatibilitySupport usage
>> > > >
>> > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
>> > > >
>> > > > Currently Framework compatibility is not needed and
>> > > > PcdFrameworkCompatibilitySupport will be removed from edk2.
>> > > > So remove the usage of this PCD firstly.
>> > > >
>> > > > Cc: Liming Gao <liming.gao@intel.com>
>> > > > Signed-off-by: Dandan Bi <dandan.bi@intel.com>
>> > > > ---
>> > > >  MdeModulePkg/Core/Dxe/DxeMain.inf   |   6 +-
>> > > >  MdeModulePkg/Core/Dxe/Image/Image.c | 132
>> > > > +---------------------------  MdeModulePkg/Core/Dxe/Image/Image.h
>> > > > +|
>> > > > 85 +-----------------  MdeModulePkg/Core/Pei/FwVol/FwVol.c |  65
>> > > > ----------
>> > > ----
>> > > >  MdeModulePkg/Core/Pei/PeiMain.inf   |   1 -
>> > > >  5 files changed, 3 insertions(+), 286 deletions(-)
>> > > >
>> > > > diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf
>> > > > b/MdeModulePkg/Core/Dxe/DxeMain.inf
>> > > > index 8dee5bee0a..61161bee28 100644
>> > > > --- a/MdeModulePkg/Core/Dxe/DxeMain.inf
>> > > > +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
>> > > > @@ -1,11 +1,11 @@
>> > > >  ## @file
>> > > >  #  This is core module in DXE phase.
>> > > >  #
>> > > >  #  It provides an implementation of DXE Core that is compliant
>> > > > with DXE
>> > CIS.
>> > > >  #
>> > > > -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights
>> > > > reserved.<BR>
>> > > > +#  Copyright (c) 2006 - 2019, Intel Corporation. All rights
>> > > > +reserved.<BR>
>> > > >  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  ##
>> > > >
>> > > >  [Defines]
>> > > > @@ -130,11 +130,10 @@
>> > > >
>> > > >  [Protocols]
>> > > >    ## PRODUCES
>> > > >    ## SOMETIMES_CONSUMES
>> > > >    gEfiDecompressProtocolGuid
>> > > > -  gEfiLoadPeImageProtocolGuid                   ## SOMETIMES_PRODUCES
>> #
>> > > > Produces when PcdFrameworkCompatibilitySupport is set
>> > >
>> > > A couple of questions.
>> > >
>> > > Is '#include <Protocol/LoadPe32Image.h>' in
>> > > MdeModulePkg\Core\Dxe\DxeMain.h still needed?
>> > >
>> > > Can we remove EFI_PE32_IMAGE_PROTOCOL altogether? Seems to me
>> there
>> > > is no other consumer within edk2.
>> > >
>> > > Best Regards,
>> > > Hao Wu
>> >
>> > Hi Hao,
>> >
>> > 1. Yes,  since following definitions in <Protocol/LoadPe32Image.h> are
>> > still used in MdeModulePkg\Core\Dxe\Image\Image.c
>> > #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION
>> > 0x01
>> > #define
>> >
>> EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRA
>> TIO
>> > N  0x02
>>
>> OK. I overlooked that these definitions are still being used.
>>
>> >
>> > 2. I also think we can remove this protocol, but I prefer a separate
>> > patch (not covered by this patch series) to remove it and solve the
>> > dependency issue in 1 together. Is it OK to you?
>>
>> As point 1 mentioned above, I think the protocol should be kept to preserve
>> the definitions.
>>
>> Maybe Liming will have some comments on this.
>>
>> Best Regards,
>> Hao Wu
>>
>> >
>> > Thanks,
>> > Dandan
>> > >
>> > > >    gEfiSimpleFileSystemProtocolGuid              ##
>SOMETIMES_CONSUMES
>> > > >    gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
>> > > >    gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
>> > > >    gEfiBusSpecificDriverOverrideProtocolGuid     ##
>> > SOMETIMES_CONSUMES
>> > > >    gEfiDriverFamilyOverrideProtocolGuid          ##
>> SOMETIMES_CONSUMES
>> > > > @@ -171,13 +170,10 @@
>> > > >    gEfiVariableWriteArchProtocolGuid             ## CONSUMES
>> > > >    gEfiVariableArchProtocolGuid                  ## CONSUMES
>> > > >    gEfiCapsuleArchProtocolGuid                   ## CONSUMES
>> > > >    gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES
>> > > >
>> > > > -[FeaturePcd]
>> > > > -
>> > >
>> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
>> > > > ## CONSUMES
>> > > > -
>> > > >  [Pcd]
>> > > >
>> > > >
>> > >
>>
>gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
>> > > Nu
>> > > > mber    ## SOMETIMES_CONSUMES
>> > > >
>> > > >
>> > >
>>
>gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
>> > > um
>> > > > ber     ## SOMETIMES_CONSUMES
>> > > >
>> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
>> > > > ## CONSUMES
>> > > >
>> > >
>> gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress
>> > > > ## CONSUMES
>> > > > diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c
>> > > > b/MdeModulePkg/Core/Dxe/Image/Image.c
>> > > > index de5b8bed27..22a87ecf6d 100644
>> > > > --- a/MdeModulePkg/Core/Dxe/Image/Image.c
>> > > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.c
>> > > > @@ -1,9 +1,9 @@
>> > > >  /** @file
>> > > >    Core image handling services to load and unload PeImage.
>> > > >
>> > > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
>> > > > reserved.<BR>
>> > > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
>> > > > +reserved.<BR>
>> > > >  SPDX-License-Identifier: BSD-2-Clause-Patent
>> > > >
>> > > >  **/
>> > > >
>> > > >  #include "DxeMain.h"
>> > > > @@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>> > > > // // Module Globals  //  LOADED_IMAGE_PRIVATE_DATA
>> > > > *mCurrentImage
>> > > =
>> > > > NULL;
>> > > >
>> > > > -LOAD_PE32_IMAGE_PRIVATE_DATA  mLoadPe32PrivateData = {
>> > > > -  LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE,
>> > > > -  NULL,
>> > > > -  {
>> > > > -    CoreLoadImageEx,
>> > > > -    CoreUnloadImageEx
>> > > > -  }
>> > > > -};
>> > > > -
>> > > >  typedef struct {
>> > > >    LIST_ENTRY                            Link;
>> > > >    EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL  *Emulator;
>> > > >    UINT16                                MachineType;
>> > > >  } EMULATOR_ENTRY;
>> > > > @@ -274,22 +265,10 @@ CoreInitializeImageServices (
>> > > >               );
>> > > >    ASSERT_EFI_ERROR(Status);
>> > > >
>> > > >    InitializeListHead (&mAvailableEmulators);
>> > > >
>> > > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
>> > > > -    //
>> > > > -    // Export DXE Core PE Loader functionality for backward
>compatibility.
>> > > > -    //
>> > > > -    Status = CoreInstallProtocolInterface (
>> > > > -               &mLoadPe32PrivateData.Handle,
>> > > > -               &gEfiLoadPeImageProtocolGuid,
>> > > > -               EFI_NATIVE_INTERFACE,
>> > > > -               &mLoadPe32PrivateData.Pe32Image
>> > > > -               );
>> > > > -  }
>> > > > -
>> > > >    ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);
>> > > >
>> > > >    return Status;
>> > > >  }
>> > > >
>> > > > @@ -1564,96 +1543,10 @@ CoreLoadImage (
>> > > >    PERF_LOAD_IMAGE_END (Handle);
>> > > >
>> > > >    return Status;
>> > > >  }
>> > > >
>> > > > -
>> > > > -
>> > > > -/**
>> > > > -  Loads an EFI image into memory and returns a handle to the
>> > > > image with extended parameters.
>> > > > -
>> > > > -  @param  This                    Calling context
>> > > > -  @param  ParentImageHandle       The caller's image handle.
>> > > > -  @param  FilePath                The specific file path from which the image
>> is
>> > > > -                                  loaded.
>> > > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
>> > > location
>> > > > -                                  containing a copy of the image to be loaded.
>> > > > -  @param  SourceSize              The size in bytes of SourceBuffer.
>> > > > -  @param  DstBuffer               The buffer to store the image.
>> > > > -  @param  NumberOfPages           For input, specifies the space size of
>> the
>> > > > -                                  image by caller if not NULL. For output,
>> > > > -                                  specifies the actual space size needed.
>> > > > -  @param  ImageHandle             Image handle for output.
>> > > > -  @param  EntryPoint              Image entry point for output.
>> > > > -  @param  Attribute               The bit mask of attributes to set for the
>> load
>> > > > -                                  PE image.
>> > > > -
>> > > > -  @retval EFI_SUCCESS             The image was loaded into memory.
>> > > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
>> > > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an
>> invalid
>> > > > value.
>> > > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or
>> the
>> > > > device
>> > > > -                                  path cannot be parsed to locate the proper
>> > > > -                                  protocol for loading the file.
>> > > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
>> > > insufficient
>> > > > -                                  resources.
>> > > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
>> > image
>> > > > format was corrupt or not
>> > > > -                                  understood.
>> > > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
>> > > device
>> > > > returned a read error.
>> > > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
>> > > platform
>> > > > policy prohibits the
>> > > > -                                  image from being loaded. NULL is returned in
>> > > > *ImageHandle.
>> > > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
>> > > ImageHandle
>> > > > was created with a
>> > > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
>> > > > current
>> > > > -                                  platform policy specifies that the image should not
>be
>> > > > started.
>> > > > -
>> > > > -**/
>> > > > -EFI_STATUS
>> > > > -EFIAPI
>> > > > -CoreLoadImageEx (
>> > > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
>> > > > -  IN  EFI_HANDLE                       ParentImageHandle,
>> > > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
>> > > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
>> > > > -  IN  UINTN                            SourceSize,
>> > > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
>> > > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
>> > > > -  OUT EFI_HANDLE                       *ImageHandle,
>> > > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
>> > > > -  IN  UINT32                           Attribute
>> > > > -  )
>> > > > -{
>> > > > -  EFI_STATUS    Status;
>> > > > -  EFI_HANDLE    Handle;
>> > > > -
>> > > > -  PERF_LOAD_IMAGE_BEGIN (NULL);
>> > > > -
>> > > > -  Status = CoreLoadImageCommon (
>> > > > -           TRUE,
>> > > > -           ParentImageHandle,
>> > > > -           FilePath,
>> > > > -           SourceBuffer,
>> > > > -           SourceSize,
>> > > > -           DstBuffer,
>> > > > -           NumberOfPages,
>> > > > -           ImageHandle,
>> > > > -           EntryPoint,
>> > > > -           Attribute
>> > > > -           );
>> > > > -
>> > > > -  Handle = NULL;
>> > > > -  if (!EFI_ERROR (Status)) {
>> > > > -    //
>> > > > -    // ImageHandle will be valid only Status is success.
>> > > > -    //
>> > > > -    Handle = *ImageHandle;
>> > > > -  }
>> > > > -
>> > > > -  PERF_LOAD_IMAGE_END (Handle);
>> > > > -
>> > > > -  return Status;
>> > > > -}
>> > > > -
>> > > > -
>> > > >  /**
>> > > >    Transfer control to a loaded image's entry point.
>> > > >
>> > > >    @param  ImageHandle             Handle of image to be started.
>> > > >    @param  ExitDataSize            Pointer of the size to ExitData
>> > > > @@ -2010,28 +1903,5 @@ CoreUnloadImage (
>> > > >    }
>> > > >
>> > > >  Done:
>> > > >    return Status;
>> > > >  }
>> > > > -
>> > > > -
>> > > > -
>> > > > -/**
>> > > > -  Unload the specified image.
>> > > > -
>> > > > -  @param  This                    Indicates the calling context.
>> > > > -  @param  ImageHandle             The specified image handle.
>> > > > -
>> > > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
>> > > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
>> > > image.
>> > > > -  @retval EFI_SUCCESS             Image successfully unloaded.
>> > > > -
>> > > > -**/
>> > > > -EFI_STATUS
>> > > > -EFIAPI
>> > > > -CoreUnloadImageEx (
>> > > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
>> > > > -  IN EFI_HANDLE                         ImageHandle
>> > > > -  )
>> > > > -{
>> > > > -  return CoreUnloadImage (ImageHandle); -} diff --git
>> > > > a/MdeModulePkg/Core/Dxe/Image/Image.h
>> > > > b/MdeModulePkg/Core/Dxe/Image/Image.h
>> > > > index 6020a27371..e9c44ab2a7 100644
>> > > > --- a/MdeModulePkg/Core/Dxe/Image/Image.h
>> > > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.h
>> > > > @@ -1,30 +1,17 @@
>> > > >  /** @file
>> > > >    Data structure and functions to load and unload PeImage.
>> > > >
>> > > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
>> > > > reserved.<BR>
>> > > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
>> > > > +reserved.<BR>
>> > > >  SPDX-License-Identifier: BSD-2-Clause-Patent
>> > > >
>> > > >  **/
>> > > >
>> > > >
>> > > >  #ifndef _IMAGE_H_
>> > > >  #define _IMAGE_H_
>> > > >
>> > > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE
>> > > > SIGNATURE_32('l','p','e','i')
>> > > > -
>> > > > -typedef struct {
>> > > > -  UINTN                       Signature;
>> > > > -  /// Image handle
>> > > > -  EFI_HANDLE                  Handle;
>> > > > -  EFI_PE32_IMAGE_PROTOCOL     Pe32Image;
>> > > > -} LOAD_PE32_IMAGE_PRIVATE_DATA;
>> > > > -
>> > > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
>> > > > -          CR(a, LOAD_PE32_IMAGE_PRIVATE_DATA, Pe32Image,
>> > > > LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE)
>> > > > -
>> > > > -
>> > > >  //
>> > > >  // Private Data Types
>> > > >  //
>> > > >  #define IMAGE_FILE_HANDLE_SIGNATURE
>> SIGNATURE_32('i','m','g','f')
>> > > >  typedef struct {
>> > > > @@ -32,76 +19,6 @@ typedef struct {
>> > > >    BOOLEAN             FreeBuffer;
>> > > >    VOID                *Source;
>> > > >    UINTN               SourceSize;
>> > > >  } IMAGE_FILE_HANDLE;
>> > > >
>> > > > -/**
>> > > > -  Loads an EFI image into memory and returns a handle to the
>> > > > image with extended parameters.
>> > > > -
>> > > > -  @param  This                    Calling context
>> > > > -  @param  ParentImageHandle       The caller's image handle.
>> > > > -  @param  FilePath                The specific file path from which the image
>> is
>> > > > -                                  loaded.
>> > > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
>> > > location
>> > > > -                                  containing a copy of the image to be loaded.
>> > > > -  @param  SourceSize              The size in bytes of SourceBuffer.
>> > > > -  @param  DstBuffer               The buffer to store the image.
>> > > > -  @param  NumberOfPages           For input, specifies the space size of
>> the
>> > > > -                                  image by caller if not NULL. For output,
>> > > > -                                  specifies the actual space size needed.
>> > > > -  @param  ImageHandle             Image handle for output.
>> > > > -  @param  EntryPoint              Image entry point for output.
>> > > > -  @param  Attribute               The bit mask of attributes to set for the
>> load
>> > > > -                                  PE image.
>> > > > -
>> > > > -  @retval EFI_SUCCESS             The image was loaded into memory.
>> > > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
>> > > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an
>> invalid
>> > > > value.
>> > > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or
>> the
>> > > > device
>> > > > -                                  path cannot be parsed to locate the proper
>> > > > -                                  protocol for loading the file.
>> > > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
>> > > insufficient
>> > > > -                                  resources.
>> > > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
>> > image
>> > > > format was corrupt or not
>> > > > -                                  understood.
>> > > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
>> > > device
>> > > > returned a read error.
>> > > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
>> > > platform
>> > > > policy prohibits the
>> > > > -                                  image from being loaded. NULL is returned in
>> > > > *ImageHandle.
>> > > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
>> > > ImageHandle
>> > > > was created with a
>> > > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
>> > > > current
>> > > > -                                  platform policy specifies that the image should not
>be
>> > > > started.
>> > > > -
>> > > > -**/
>> > > > -EFI_STATUS
>> > > > -EFIAPI
>> > > > -CoreLoadImageEx (
>> > > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
>> > > > -  IN  EFI_HANDLE                       ParentImageHandle,
>> > > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
>> > > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
>> > > > -  IN  UINTN                            SourceSize,
>> > > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
>> > > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
>> > > > -  OUT EFI_HANDLE                       *ImageHandle,
>> > > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
>> > > > -  IN  UINT32                           Attribute
>> > > > -  );
>> > > > -
>> > > > -
>> > > > -/**
>> > > > -  Unload the specified image.
>> > > > -
>> > > > -  @param  This                    Indicates the calling context.
>> > > > -  @param  ImageHandle             The specified image handle.
>> > > > -
>> > > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
>> > > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
>> > > image.
>> > > > -  @retval EFI_SUCCESS             Image successfully unloaded.
>> > > > -
>> > > > -**/
>> > > > -EFI_STATUS
>> > > > -EFIAPI
>> > > > -CoreUnloadImageEx (
>> > > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
>> > > > -  IN EFI_HANDLE                         ImageHandle
>> > > > -  );
>> > > >  #endif
>> > > > diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
>> > > > b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
>> > > > index f817ba04e2..709db00694 100644
>> > > > --- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
>> > > > +++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
>> > > > @@ -1092,19 +1092,10 @@ PeiFfsFindNextFile (  {
>> > > >    PEI_CORE_FV_HANDLE      *CoreFvHandle;
>> > > >
>> > > >    CoreFvHandle = FvHandleToCoreHandle (FvHandle);
>> > > >
>> > > > -  //
>> > > > -  // To make backward compatiblity, if can not find corresponding
>> > > > the handle of FV
>> > > > -  // then treat FV as build-in FFS2/FFS3 format and memory mapped
>> > > > FV that FV handle is pointed
>> > > > -  // to the address of first byte of FV.
>> > > > -  //
>> > > > -  if ((CoreFvHandle == NULL) && FeaturePcdGet
>> > > > (PcdFrameworkCompatibilitySupport)) {
>> > > > -    return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);
>> > > > -  }
>> > > > -
>> > > >    if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {
>> > > >      return EFI_NOT_FOUND;
>> > > >    }
>> > > >
>> > > >    return CoreFvHandle->FvPpi->FindFileByType
>> > > > (CoreFvHandle->FvPpi, SearchType, FvHandle, FileHandle); @@
>> > > > -2109,66 +2100,10 @@ PEI_CORE_FV_HANDLE *
>> FindNextCoreFvHandle (
>> > > >    IN PEI_CORE_INSTANCE  *Private,
>> > > >    IN UINTN              Instance
>> > > >    )
>> > > >  {
>> > > > -  UINTN                    Index;
>> > > > -  BOOLEAN                  Match;
>> > > > -  EFI_HOB_FIRMWARE_VOLUME  *FvHob;
>> > > > -
>> > > > -  //
>> > > > -  // Handle Framework FvHob and Install FvInfo Ppi for it.
>> > > > -  //
>> > > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
>> > > > -    //
>> > > > -    // Loop to search the wanted FirmwareVolume which supports FFS
>> > > > -    //
>> > > > -    FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob
>> > > (EFI_HOB_TYPE_FV);
>> > > > -    while (FvHob != NULL) {
>> > > > -      //
>> > > > -      // Search whether FvHob has been installed into PeiCore's FV
>> database.
>> > > > -      // If found, no need install new FvInfoPpi for it.
>> > > > -      //
>> > > > -      for (Index = 0, Match = FALSE; Index < Private->FvCount; Index++)
>{
>> > > > -        if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress ==
>Private-
>> > > > >Fv[Index].FvHeader) {
>> > > > -          Match = TRUE;
>> > > > -          break;
>> > > > -        }
>> > > > -      }
>> > > > -
>> > > > -      //
>> > > > -      // Search whether FvHob has been cached into PeiCore's Unknown
>> FV
>> > > > database.
>> > > > -      // If found, no need install new FvInfoPpi for it.
>> > > > -      //
>> > > > -      if (!Match) {
>> > > > -        for (Index = 0; Index < Private->UnknownFvInfoCount; Index ++)
>{
>> > > > -          if ((UINTN)FvHob->BaseAddress == (UINTN)Private-
>> > > > >UnknownFvInfo[Index].FvInfo) {
>> > > > -            Match = TRUE;
>> > > > -            break;
>> > > > -          }
>> > > > -        }
>> > > > -      }
>> > > > -
>> > > > -      //
>> > > > -      // If the Fv in FvHob has not been installed into PeiCore's FV
>> database
>> > > and
>> > > > has
>> > > > -      // not been cached into PeiCore's Unknown FV database, install a
>> new
>> > > > FvInfoPpi
>> > > > -      // for it then PeiCore will dispatch it in callback of FvInfoPpi.
>> > > > -      //
>> > > > -      if (!Match) {
>> > > > -        PeiServicesInstallFvInfoPpi (
>> > > > -          &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHob-
>> > > >BaseAddress)-
>> > > > >FileSystemGuid),
>> > > > -          (VOID *)(UINTN)FvHob->BaseAddress,
>> > > > -          (UINT32)FvHob->Length,
>> > > > -          NULL,
>> > > > -          NULL
>> > > > -          );
>> > > > -      }
>> > > > -
>> > > > -      FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob
>> > > > (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob-
>> > > >Header.HobLength));
>> > > > -    }
>> > > > -  }
>> > > > -
>> > > >    if (Instance >= Private->FvCount) {
>> > > >      return NULL;
>> > > >    }
>> > > >
>> > > >    return &Private->Fv[Instance];
>> > > > diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf
>> > > > b/MdeModulePkg/Core/Pei/PeiMain.inf
>> > > > index c8a6d5b80b..7c482dacfc 100644
>> > > > --- a/MdeModulePkg/Core/Pei/PeiMain.inf
>> > > > +++ b/MdeModulePkg/Core/Pei/PeiMain.inf
>> > > > @@ -100,11 +100,10 @@
>> > > >    gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
>> > > >
>> > > >  [Pcd]
>> > > >    gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize
>> > > > ## CONSUMES
>> > > >
>> > > >
>> > >
>> gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSecti
>> > > onFi
>> > > > rst  ## CONSUMES
>> > > > -
>> > >
>> gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
>> > > > ## CONSUMES
>> > > >
>> > >
>> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumb
>> > > er
>> > > > ## SOMETIMES_CONSUMES
>> > > >
>> > > >
>> > >
>>
>gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
>> > > Nu
>> > > > mber    ## SOMETIMES_CONSUMES
>> > > >
>> > > >
>> > >
>>
>gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
>> > > um
>> > > > ber     ## SOMETIMES_CONSUMES
>> > > >
>> gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
>> > > > ## CONSUMES
>> > > >    gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot
>> > > > ## CONSUMES
>> > > > --
>> > > > 2.18.0.windows.1
>> > > >
>> > > >
>> > > > 


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2019-05-08  8:23 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
2019-04-29  2:15 ` [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support Dandan Bi
2019-05-07  5:52   ` [edk2-devel] " Bob Feng
2019-05-07  6:00   ` Liming Gao
2019-04-29  2:15 ` [patch 02/11] FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage Dandan Bi
2019-05-05  3:25   ` [edk2-devel] " Ni, Ray
2019-04-29  2:15 ` [patch 03/11] IntelFrameworkModulePkg: " Dandan Bi
2019-05-07  5:59   ` Liming Gao
2019-04-29  2:16 ` [patch 04/11] MdeModulePkg/Core: " Dandan Bi
2019-05-06  1:22   ` [edk2-devel] " Wu, Hao A
2019-05-06  2:48     ` Dandan Bi
2019-05-06  2:54       ` Wu, Hao A
2019-05-07  7:08         ` Dandan Bi
2019-05-08  8:23           ` Liming Gao
2019-04-29  2:16 ` [patch 05/11] MdeModulePkg/CdExpress: " Dandan Bi
2019-05-06  1:05   ` Wu, Hao A
2019-04-29  2:16 ` [patch 06/11] MdeModulePkg/Setup: " Dandan Bi
2019-05-07  6:13   ` Dong, Eric
2019-04-29  2:16 ` [patch 07/11] QuarkPlatformPkg: " Dandan Bi
2019-05-07  5:58   ` [edk2-devel] " Liming Gao
2019-04-29  2:16 ` [patch 08/11] SignedCapsulePkg: " Dandan Bi
2019-04-29  2:16 ` [patch 09/11] UefiCpuPkg: " Dandan Bi
2019-04-29 15:15   ` Laszlo Ersek
2019-04-29  2:16 ` [patch 10/11] Vlv2TbltDevicePkg: " Dandan Bi
2019-05-07  8:35   ` Sun, Zailiang
2019-04-29  2:16 ` [patch 11/11] MdeModulePkg: Remove PcdFrameworkCompatibilitySupport Dandan Bi
2019-05-06  1:25   ` Wu, Hao A
     [not found] ` <1599D055711F0B7C.4588@groups.io>
     [not found]   ` <3C0D5C461C9E904E8F62152F6274C0BB40BD01BF@SHSMSX104.ccr.corp.intel.com>
2019-05-07  6:02     ` [edk2-devel] [patch 08/11] SignedCapsulePkg: Remove PcdFrameworkCompatibilitySupport usage Yao, Jiewen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox