summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c4
-rw-r--r--IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c13
-rw-r--r--IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf1
-rw-r--r--IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h1
4 files changed, 17 insertions, 2 deletions
diff --git a/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c
index 42f7699..602e42b 100644
--- a/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c
+++ b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c
@@ -30,7 +30,7 @@ InternalGetReportStatusCode (
if (gRT->Hdr.Revision < 0x20000) {
return ((FRAMEWORK_EFI_RUNTIME_SERVICES*)gRT)->ReportStatusCode;
- } else if (gBS != NULL) {
+ } else if (gBS != NULL && gBS->LocateProtocol != NULL) {
Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID**)&StatusCodeProtocol);
if (!EFI_ERROR (Status) && StatusCodeProtocol != NULL) {
return StatusCodeProtocol->ReportStatusCode;
@@ -99,7 +99,7 @@ InternalReportStatusCodeEx (
ASSERT (!((ExtendedData == NULL) && (ExtendedDataSize != 0)));
ASSERT (!((ExtendedData != NULL) && (ExtendedDataSize == 0)));
- if (gBS == NULL) {
+ if (gBS == NULL || gBS->AllocatePool == NULL || gBS->FreePool == NULL) {
return EFI_UNSUPPORTED;
}
diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
index df8be07..0cb21c1 100644
--- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
+++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
@@ -146,6 +146,7 @@ BdsLibBootViaBootOption (
EFI_DEVICE_PATH_PROTOCOL *WorkingDevicePath;
EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save;
LIST_ENTRY TempBootLists;
+ EFI_SECURITY_ARCH_PROTOCOL *SecurityProtocol;
//
// Record the performance data for End of BDS
@@ -241,6 +242,18 @@ BdsLibBootViaBootOption (
DevicePath = Option->DevicePath;
}
+ //
+ // Measure GPT Table by SAP protocol.
+ //
+ Status = gBS->LocateProtocol (
+ &gEfiSecurityArchProtocolGuid,
+ NULL,
+ &SecurityProtocol
+ );
+ if (!EFI_ERROR (Status)) {
+ Status = SecurityProtocol->FileAuthenticationState (SecurityProtocol, 0, DevicePath);
+ }
+
DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Booting %S\n", Option->Description));
Status = gBS->LoadImage (
diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
index e9d4bef..983280a 100644
--- a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
+++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
@@ -108,6 +108,7 @@
gEfiConsoleControlProtocolGuid # PROTOCOL CONSUMES
gEfiOEMBadgingProtocolGuid # PROTOCOL CONSUMES
gEfiHiiFontProtocolGuid # PROTOCOL CONSUMES
+ gEfiSecurityArchProtocolGuid
[FeaturePcd.common]
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h
index f1a977a..61d5227 100644
--- a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h
+++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h
@@ -39,6 +39,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Protocol/UgaDraw.h>
#include <Protocol/HiiFont.h>
#include <Protocol/HiiImage.h>
+#include <Protocol/Security.h>
#include <Guid/MemoryTypeInformation.h>
#include <Guid/FileInfo.h>