* [Patch][edk2-platforms/devel-MinnowBoardMax-UDK2017] Ready To Lock events signaling and SMM S3 boot script.
@ 2018-06-20 3:29 zwei4
0 siblings, 0 replies; only message in thread
From: zwei4 @ 2018-06-20 3:29 UTC (permalink / raw)
To: edk2-devel; +Cc: Yao, Jiewen, Guo, Mang, Wu, Mike
(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
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2018-06-20 3:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-20 3:29 [Patch][edk2-platforms/devel-MinnowBoardMax-UDK2017] Ready To Lock events signaling and SMM S3 boot script zwei4
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox