mirror of https://github.com/acidanthera/audk.git
Fix a bug:
PI spec Vol 1, 7.3.1 specifies that this same information reported by EFI_SEC_PLATFORM_INFORMATION_PPI will be placed in a GUIDed HOB with the PPI GUID as the HOB GUID for HOB consumer phase. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4166 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
e6c560aad6
commit
02422d17f7
|
@ -37,6 +37,7 @@ Revision History
|
|||
#include <Ppi/GuidedSectionExtraction.h>
|
||||
#include <Ppi/LoadFile.h>
|
||||
#include <Ppi/Security2.h>
|
||||
#include <Ppi/SecPlatformInformation.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/PeiCoreEntryPoint.h>
|
||||
#include <Library/BaseLib.h>
|
||||
|
|
|
@ -96,6 +96,7 @@
|
|||
gEfiPeiFirmwareVolumeInfoPpiGuid
|
||||
gEfiPeiLoadFilePpiGuid
|
||||
gEfiPeiSecurity2PpiGuid
|
||||
gEfiSecPlatformInformationPpiGuid
|
||||
|
||||
[FixedPcd.common]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported
|
||||
|
|
|
@ -122,6 +122,9 @@ Returns:
|
|||
PEI_CORE_INSTANCE *OldCoreData;
|
||||
EFI_PEI_CPU_IO_PPI *CpuIo;
|
||||
EFI_PEI_PCI_CFG2_PPI *PciCfg;
|
||||
UINT64 SecPlatformInfoRecordSize;
|
||||
EFI_SEC_PLATFORM_INFORMATION_PPI *SecPlatformInfoPpi;
|
||||
EFI_SEC_PLATFORM_INFORMATION_RECORD *SecPlatformInfoRecord;
|
||||
|
||||
mTick = 0;
|
||||
OldCoreData = (PEI_CORE_INSTANCE *) Data;
|
||||
|
@ -234,6 +237,37 @@ Returns:
|
|||
if (PpiList != NULL) {
|
||||
Status = PeiServicesInstallPpi (PpiList);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// PI spec Vol 1, 7.3.1 specifies that this same information reported by EFI_SEC_PLATFORM_INFORMATION_PPI
|
||||
// will be placed in a GUIDed HOB with the PPI GUID as the HOB GUID for HOB consumer phase.
|
||||
//
|
||||
Status = PeiServicesLocatePpi (
|
||||
&gEfiSecPlatformInformationPpiGuid,
|
||||
0,
|
||||
NULL,
|
||||
(VOID **) &SecPlatformInfoPpi
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
SecPlatformInfoRecord = AllocateZeroPool (sizeof(*SecPlatformInfoRecord));
|
||||
ASSERT (SecPlatformInfoRecord != NULL);
|
||||
|
||||
SecPlatformInfoRecordSize = sizeof(*SecPlatformInfoRecord);
|
||||
|
||||
Status = SecPlatformInfoPpi->PlatformInformation (
|
||||
(CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),
|
||||
&SecPlatformInfoRecordSize,
|
||||
SecPlatformInfoRecord
|
||||
);
|
||||
|
||||
if (!EFI_ERROR (Status)) {
|
||||
BuildGuidDataHob (
|
||||
&gEfiSecPlatformInformationPpiGuid,
|
||||
SecPlatformInfoRecord,
|
||||
sizeof (*SecPlatformInfoRecord)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue