[edk2] [Patch][edk2-platforms/devel-MinnowBoardMax-UDK2017] Ready To Lock events signaling and SMM S3 boot script.

zwei4 posted 1 patch 5 years, 10 months ago
Failed in applying to current master (apply log)
.../Library/PlatformBdsLib/BdsPlatform.c           | 90 ++++------------------
Vlv2TbltDevicePkg/PlatformPkg.fdf                  | 38 ++++-----
Vlv2TbltDevicePkg/PlatformPkgGcc.fdf               |  2 +
Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc            |  4 +
Vlv2TbltDevicePkg/PlatformPkgIA32.dsc              | 12 ++-
Vlv2TbltDevicePkg/PlatformPkgX64.dsc               | 14 ++--
Vlv2TbltDevicePkg/PlatformSmm/S3Save.c             |  8 +-
7 files changed, 65 insertions(+), 103 deletions(-)
[edk2] [Patch][edk2-platforms/devel-MinnowBoardMax-UDK2017] Ready To Lock events signaling and SMM S3 boot script.
Posted by zwei4 5 years, 10 months ago
(1) Move InstallReadyToLock() to make sure gEfiEndOfDxeEventGroupGuid, gExitPmAuthProtocolGuid and gEfiDxeSmmReadyToLockProtocolGuid are signaled before PCI bus enumeration.
(2) Add SMM driver PchInitSmm.inf and GraphicDxeInitSmm.in, so that some S3 boot script could be saved in secure way after gEfiDxeSmmReadyToLockProtocolGuid being installed.
(3) Fix a S3 boot script bug in SMM driver PlatformSmm to prevent boot script re-saving.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: zwei4 <david.wei@intel.com>
CC: Yao, Jiewen <jiewen.yao@intel.com>
CC: Guo, Mang <mang.guo@intel.com>
CC: Wu, Mike <mike.wu@intel.com>
---
 .../Library/PlatformBdsLib/BdsPlatform.c           | 90 ++++------------------
 Vlv2TbltDevicePkg/PlatformPkg.fdf                  | 38 ++++-----
 Vlv2TbltDevicePkg/PlatformPkgGcc.fdf               |  2 +
 Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc            |  4 +
 Vlv2TbltDevicePkg/PlatformPkgIA32.dsc              | 12 ++-
 Vlv2TbltDevicePkg/PlatformPkgX64.dsc               | 14 ++--
 Vlv2TbltDevicePkg/PlatformSmm/S3Save.c             |  8 +-
 7 files changed, 65 insertions(+), 103 deletions(-)

diff --git a/Vlv2TbltDevicePkg/Library/PlatformBdsLib/BdsPlatform.c b/Vlv2TbltDevicePkg/Library/PlatformBdsLib/BdsPlatform.c
index cb5711a620..3e7cf351e7 100644
--- a/Vlv2TbltDevicePkg/Library/PlatformBdsLib/BdsPlatform.c
+++ b/Vlv2TbltDevicePkg/Library/PlatformBdsLib/BdsPlatform.c
@@ -143,8 +143,8 @@ DisableAhciCtlr (
 }
 
 /**
-  Lock SMRAM with EFI_SMM_ACCESS2_PROTOCOL. To prevent DMA attack, Bus Master DMA of untrusetd PCI devices
-  must not be enabled before SMRAM lock.
+  Issues EndOfDxe event, installs gExitPmAuthProtocolGuid, and issues SMM lock envent. Bus Master DMA should
+  not be enabled before SMRAM lock.
 
   @param VOID
 
@@ -152,12 +152,14 @@ DisableAhciCtlr (
 
 **/
 VOID
-SmramLock (
+InstallReadyToLock (
   VOID
   )
 {
   EFI_STATUS                Status;
+  EFI_HANDLE                Handle;
   EFI_SMM_ACCESS2_PROTOCOL  *SmmAccess;
+  EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save;
   UINTN                      PciDeviceConfigAdd;
   UINT16                     VendorID;
   UINT16                     CommandReg;
@@ -165,7 +167,7 @@ SmramLock (
   UINT8                      FunIndex;
 
   // 
-  // Check Buster Master Enable bit of untrusted PCI devices,including PCIe root ports, on bus 0.
+  // Check Buster Master Enable bit of PCI devices,including PCIe root ports, on bus 0.
   //
   DEBUG ((DEBUG_ERROR, "BDS: Check Bus Master Enable of PCI devices before SMRAM lock: \n"));
   
@@ -208,44 +210,6 @@ SmramLock (
     }
   }
   
-  //
-  // Lock SMRAM.
-  //
-  Status = gBS->LocateProtocol (
-                  &gEfiSmmAccess2ProtocolGuid,
-                  NULL,
-                  (VOID **) &SmmAccess
-                  );
-  if (!EFI_ERROR (Status)) {
-    //
-    //
-    //
-    Status = SmmAccess->Lock(SmmAccess);
-    DEBUG ((DEBUG_ERROR, "SMRAM is locked by EFI_SMM_ACCESS2_PROTOCOL!\n"));
-    ASSERT_EFI_ERROR (Status);
-  }
-
-  return ;
-}
-
-/**
-  Issues EndOfDxe event, installs gExitPmAuthProtocolGuid, and issues SMM lock envent.
-
-  @param VOID
-
-  @retval  None.
-
-**/
-VOID
-InstallReadyToLock (
-  VOID
-  )
-{
-  EFI_STATUS                Status;
-  EFI_HANDLE                Handle;
-  EFI_SMM_ACCESS2_PROTOCOL  *SmmAccess;
-  EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save;
-
   //
   // Install DxeSmmReadyToLock protocol prior to the processing of boot options
   //
@@ -1896,17 +1860,13 @@ PlatformBdsPolicyBehavior (
     #endif
 
     //
-    // Lock SMRAM.
+    // Close boot script and install ready to lock.
     //
-    SmramLock ();
+    InstallReadyToLock ();
     
     PlatformBdsInitHotKeyEvent ();
     PlatformBdsConnectSimpleConsole (gPlatformSimpleConsole);
 
-    //
-    // Close boot script and install ready to lock.
-    //
-    InstallReadyToLock ();
 
     //
     // Check to see if it's needed to dispatch more DXE drivers.
@@ -1995,9 +1955,9 @@ PlatformBdsPolicyBehavior (
   case BOOT_ASSUMING_NO_CONFIGURATION_CHANGES:
 
     //
-    // Lock SMRAM.
+    // Close boot script and install ready to lock
     //
-    SmramLock ();
+    InstallReadyToLock ();
 
     //
     // In no-configuration boot mode, we can connect the
@@ -2006,10 +1966,6 @@ PlatformBdsPolicyBehavior (
     BdsLibConnectAllDefaultConsoles ();
     PlatformBdsDiagnostics (IGNORE, FALSE, BaseMemoryTest);
 
-    //
-    // Close boot script and install ready to lock
-    //
-    InstallReadyToLock ();
 
     //
     // Perform some platform specific connect sequence
@@ -2046,9 +2002,9 @@ PlatformBdsPolicyBehavior (
   case BOOT_ON_FLASH_UPDATE:
 
     //
-    // Lock SMRAM.
+    // Close boot script and install ready to lock
     //
-    SmramLock ();
+    InstallReadyToLock();
 
     //
     // Boot with the specific configuration
@@ -2060,10 +2016,6 @@ PlatformBdsPolicyBehavior (
     ProcessCapsules ();
     DEBUG((DEBUG_INFO, "ProcessCapsules Done\n"));
 
-    //
-    // Close boot script and install ready to lock
-    //
-    InstallReadyToLock ();
 
     BdsLibConnectAll ();
 
@@ -2100,9 +2052,9 @@ PlatformBdsPolicyBehavior (
   case BOOT_IN_RECOVERY_MODE:
 
     //
-    // Lock SMRAM.
+    // Close boot script and install ready to lock
     //
-    SmramLock ();
+    InstallReadyToLock ();
 
     //
     // In recovery mode, just connect platform console
@@ -2111,11 +2063,7 @@ PlatformBdsPolicyBehavior (
     PlatformBdsConnectConsole (gPlatformConsole);
     PlatformBdsDiagnostics (EXTENSIVE, FALSE, BaseMemoryTest);
 
-    //
-    // Close boot script and install ready to lock
-    //
-    InstallReadyToLock ();
-        
+
     BdsLibConnectAll ();
 
     //
@@ -2158,9 +2106,9 @@ FULL_CONFIGURATION:
 
 
     //
-    // Lock SMRAM.
+    // Close boot script and install ready to lock.
     //
-    SmramLock ();
+    InstallReadyToLock ();
 
     //
     // Connect platform console
@@ -2174,10 +2122,6 @@ FULL_CONFIGURATION:
       PlatformBdsNoConsoleAction ();
     }
 
-    //
-    // Close boot script and install ready to lock.
-    //
-    InstallReadyToLock ();
 
     //
     // This is Workgroud to show the fs for uSDcard,
diff --git a/Vlv2TbltDevicePkg/PlatformPkg.fdf b/Vlv2TbltDevicePkg/PlatformPkg.fdf
index 84bc7db9dc..ca7fb24267 100644
--- a/Vlv2TbltDevicePkg/PlatformPkg.fdf
+++ b/Vlv2TbltDevicePkg/PlatformPkg.fdf
@@ -1,7 +1,7 @@
 #/** @file
 # FDF file of Platform.
 #
-# Copyright (c) 2008  - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008  - 2018, Intel Corporation. All rights reserved.<BR>
 #                                                                                  
 # This program and the accompanying materials are licensed and made available under
 # the terms and conditions of the BSD License that accompanies this distribution.  
@@ -342,7 +342,7 @@ INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET
 INF MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
 INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
 
-INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
+INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
 INF $(PLATFORM_PACKAGE)/PlatformPei/PlatformPei.inf
 
 !if $(MINNOW2_FSP_BUILD) == FALSE
@@ -409,10 +409,10 @@ APRIORI DXE {
 FILE FREEFORM = C3E36D09-8294-4b97-A857-D5288FE33E28 {
     SECTION RAW = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/$(DXE_ARCHITECTURE)/BiosId.bin
   }
-  
-FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
-    SECTION RAW = MdeModulePkg/Logo/Logo.bmp
-  }
+  
+FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
+    SECTION RAW = MdeModulePkg/Logo/Logo.bmp
+  }
 
   #
   # EDK II Related Platform codes
@@ -427,7 +427,7 @@ INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
 !if $(ACPI50_ENABLE) == TRUE
 INF  MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.inf
 INF  MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.inf
-INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
+INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
 !endif
 
 
@@ -499,6 +499,7 @@ INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET
 
 !if $(MINNOW2_FSP_BUILD) == FALSE
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitDxe.inf
+INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitSmm.inf
 !endif
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSmiDispatcher.inf
 !if $(PCIESC_ENABLE) == TRUE
@@ -512,6 +513,7 @@ INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PciHostBridge.inf
 !if $(MINNOW2_FSP_BUILD) == FALSE
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/VlvInitDxe.inf
+INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/GraphicDxeInitSmm.inf
 !else
 INF IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe.inf
 INF Vlv2TbltDevicePkg/VlvPlatformInitDxe/VlvPlatformInitDxe.inf
@@ -543,7 +545,7 @@ INF $(PLATFORM_PACKAGE)/PlatformSmm/PlatformSmm.inf
 INF $(PLATFORM_PACKAGE)/PlatformInfoDxe/PlatformInfoDxe.inf
 INF $(PLATFORM_PACKAGE)/PlatformCpuInfoDxe/PlatformCpuInfoDxe.inf
 INF $(PLATFORM_PACKAGE)/PlatformDxe/PlatformDxe.inf
-INF $(PLATFORM_PACKAGE)/PlatformRtcRuntimeDxe/PlatformRtcRuntimeDxe.inf
+INF $(PLATFORM_PACKAGE)/PlatformRtcRuntimeDxe/PlatformRtcRuntimeDxe.inf
 INF $(PLATFORM_PACKAGE)/PciPlatform/PciPlatform.inf
 INF $(PLATFORM_PACKAGE)/SaveMemoryConfig/SaveMemoryConfig.inf
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PlatformCpuPolicy.inf
@@ -733,10 +735,10 @@ FILE FREEFORM = 878AC2CC-5343-46F2-B563-51F89DAF56BA {
   INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
   INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
 !if $(HTTP_BOOT_SUPPORT) == TRUE
-  INF NetworkPkg\HttpDxe\HttpDxe.inf
-  INF NetworkPkg\HttpBootDxe\HttpBootDxe.inf
-  INF NetworkPkg\HttpUtilitiesDxe\HttpUtilitiesDxe.inf
-  INF NetworkPkg\DnsDxe\DnsDxe.inf
+  INF NetworkPkg/HttpDxe/HttpDxe.inf
+  INF NetworkPkg/HttpBootDxe/HttpBootDxe.inf
+  INF NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+  INF NetworkPkg/DnsDxe/DnsDxe.inf
 !endif
   !if $(NETWORK_IP6_ENABLE) == TRUE
   INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
@@ -1020,7 +1022,7 @@ INF FILE_GUID=F1E68873-DA37-4AA0-A12F-F0F8EBA2B24E USE=X64 SignedCapsulePkg/Univ
     SMM_DEPEX SMM_DEPEX                |.depex
     PE32      PE32                     |.efi
     RAW       BIN  Optional            |.aml
-    RAW       ASL  Optional            |.aml
+    RAW       ASL  Optional            |.aml
     UI        STRING="$(MODULE_NAME)" Optional
     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
   }
@@ -1083,11 +1085,11 @@ INF FILE_GUID=F1E68873-DA37-4AA0-A12F-F0F8EBA2B24E USE=X64 SignedCapsulePkg/Univ
     RAW ASL   Optional            |.aml
   }
 
-[Rule.Common.USER_DEFINED.LOGO]
-  FILE FREEFORM = $(NAMED_GUID) {
-    RAW BIN               |.bmp
-  }
-
+[Rule.Common.USER_DEFINED.LOGO]
+  FILE FREEFORM = $(NAMED_GUID) {
+    RAW BIN               |.bmp
+  }
+
 [Rule.Common.ACPITABLE]
   FILE FREEFORM = $(NAMED_GUID) {
     RAW ACPI  Optional            |.acpi
diff --git a/Vlv2TbltDevicePkg/PlatformPkgGcc.fdf b/Vlv2TbltDevicePkg/PlatformPkgGcc.fdf
index 2c1a283fc7..e44b0906d6 100644
--- a/Vlv2TbltDevicePkg/PlatformPkgGcc.fdf
+++ b/Vlv2TbltDevicePkg/PlatformPkgGcc.fdf
@@ -452,6 +452,7 @@ INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET
 
 !if $(MINNOW2_FSP_BUILD) == FALSE
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitDxe.inf
+INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitSmm.inf
 !endif
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSmiDispatcher.inf
 !if $(PCIESC_ENABLE) == TRUE
@@ -465,6 +466,7 @@ INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PciHostBridge.inf
 !if $(MINNOW2_FSP_BUILD) == FALSE
 INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/VlvInitDxe.inf
+INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/GraphicDxeInitSmm.inf
 !else
 INF IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe.inf
 INF Vlv2TbltDevicePkg/VlvPlatformInitDxe/VlvPlatformInitDxe.inf
diff --git a/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc b/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
index d83756348f..7fd82e2b62 100644
--- a/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
+++ b/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
@@ -1309,6 +1309,9 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
     <PcdsPatchableInModule>
         gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0xF0000043
   }
+
+  $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitSmm.inf
+
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSmiDispatcher.inf
 
 !if $(PCIESC_ENABLE) == TRUE
@@ -1320,6 +1323,7 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SmmAccess.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PciHostBridge.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/VlvInitDxe.inf
+  $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/GraphicDxeInitSmm.inf
 
   IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe.inf
   
diff --git a/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc b/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
index 15e0b81866..4dc05a2ad1 100644
--- a/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
+++ b/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
@@ -1321,6 +1321,9 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
     <PcdsPatchableInModule>
         gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0xF0000043
   }
+
+  $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitSmm.inf
+
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSmiDispatcher.inf
 
 !if $(PCIESC_ENABLE) == TRUE
@@ -1332,6 +1335,7 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SmmAccess.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PciHostBridge.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/VlvInitDxe.inf
+  $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/GraphicDxeInitSmm.inf
 
   IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe.inf
   
@@ -1605,10 +1609,10 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
     MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
     MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
 !if $(HTTP_BOOT_SUPPORT) == TRUE
-    NetworkPkg\HttpDxe\HttpDxe.inf
-    NetworkPkg\HttpBootDxe\HttpBootDxe.inf
-    NetworkPkg\HttpUtilitiesDxe\HttpUtilitiesDxe.inf
-    NetworkPkg\DnsDxe\DnsDxe.inf
+    NetworkPkg/HttpDxe/HttpDxe.inf
+    NetworkPkg/HttpBootDxe/HttpBootDxe.inf
+    NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+    NetworkPkg/DnsDxe/DnsDxe.inf
 !endif
     MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
     MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
diff --git a/Vlv2TbltDevicePkg/PlatformPkgX64.dsc b/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
index cbbae31a7d..bf0a4cc905 100644
--- a/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
+++ b/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
@@ -893,11 +893,9 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdSystemRebootAfterCapsuleProcessFlag|0x0001
 
   ## This PCD defines the video horizontal resolution.
   #  This PCD could be set to 0 then video resolution could be at highest resolution.
-  #gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|0
   gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
   ## This PCD defines the video vertical resolution.
   #  This PCD could be set to 0 then video resolution could be at highest resolution.
-  #gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|0
   gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
 
   ## This PCD defines the Console output column and the default value is 25 according to UEFI spec.
@@ -1322,6 +1320,9 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
     <PcdsPatchableInModule>
         gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0xF0000043
   }
+  
+  $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitSmm.inf
+
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSmiDispatcher.inf
 
 !if $(PCIESC_ENABLE) == TRUE
@@ -1333,6 +1334,7 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SmmAccess.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PciHostBridge.inf
   $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/VlvInitDxe.inf
+  $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/GraphicDxeInitSmm.inf
 
   IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe.inf
   
@@ -1607,10 +1609,10 @@ $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
     MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
     MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
 !if $(HTTP_BOOT_SUPPORT) == TRUE
-    NetworkPkg\HttpDxe\HttpDxe.inf
-    NetworkPkg\HttpBootDxe\HttpBootDxe.inf
-    NetworkPkg\HttpUtilitiesDxe\HttpUtilitiesDxe.inf
-    NetworkPkg\DnsDxe\DnsDxe.inf
+    NetworkPkg/HttpDxe/HttpDxe.inf
+    NetworkPkg/HttpBootDxe/HttpBootDxe.inf
+    NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+    NetworkPkg/DnsDxe/DnsDxe.inf
 !endif
     MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
     MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
diff --git a/Vlv2TbltDevicePkg/PlatformSmm/S3Save.c b/Vlv2TbltDevicePkg/PlatformSmm/S3Save.c
index 8c7112bf0b..e70f2550db 100644
--- a/Vlv2TbltDevicePkg/PlatformSmm/S3Save.c
+++ b/Vlv2TbltDevicePkg/PlatformSmm/S3Save.c
@@ -27,6 +27,7 @@ Revision History
 
 extern  UINT16                          mAcpiBaseAddr;
 EFI_PHYSICAL_ADDRESS                    mRuntimeScriptTableBase;
+BOOLEAN                                 mScriptSaved = FALSE;
 
 EFI_STATUS
 InitRuntimeScriptTable (
@@ -249,7 +250,9 @@ SaveRuntimeScriptTable (
   //
   UINT8                 ExtReg[] = { 0x9E, 0x9D };  // SMRAM settings
 
-
+  if (mScriptSaved == TRUE) {
+    return EFI_SUCCESS;
+  }
 
   //
   // Save PCI-Host bridge settings (0, 0, 0). 0x90, 94 and 9c are changed by CSM
@@ -377,6 +380,7 @@ SaveRuntimeScriptTable (
       &Data16
       );
 
-
+  mScriptSaved = TRUE;
+  
   return EFI_SUCCESS;
 }
-- 
2.14.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel