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/GuidedSectionExtraction.h>
|
||||||
#include <Ppi/LoadFile.h>
|
#include <Ppi/LoadFile.h>
|
||||||
#include <Ppi/Security2.h>
|
#include <Ppi/Security2.h>
|
||||||
|
#include <Ppi/SecPlatformInformation.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/PeiCoreEntryPoint.h>
|
#include <Library/PeiCoreEntryPoint.h>
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
|
|
|
@ -96,6 +96,7 @@
|
||||||
gEfiPeiFirmwareVolumeInfoPpiGuid
|
gEfiPeiFirmwareVolumeInfoPpiGuid
|
||||||
gEfiPeiLoadFilePpiGuid
|
gEfiPeiLoadFilePpiGuid
|
||||||
gEfiPeiSecurity2PpiGuid
|
gEfiPeiSecurity2PpiGuid
|
||||||
|
gEfiSecPlatformInformationPpiGuid
|
||||||
|
|
||||||
[FixedPcd.common]
|
[FixedPcd.common]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported
|
||||||
|
|
|
@ -122,6 +122,9 @@ Returns:
|
||||||
PEI_CORE_INSTANCE *OldCoreData;
|
PEI_CORE_INSTANCE *OldCoreData;
|
||||||
EFI_PEI_CPU_IO_PPI *CpuIo;
|
EFI_PEI_CPU_IO_PPI *CpuIo;
|
||||||
EFI_PEI_PCI_CFG2_PPI *PciCfg;
|
EFI_PEI_PCI_CFG2_PPI *PciCfg;
|
||||||
|
UINT64 SecPlatformInfoRecordSize;
|
||||||
|
EFI_SEC_PLATFORM_INFORMATION_PPI *SecPlatformInfoPpi;
|
||||||
|
EFI_SEC_PLATFORM_INFORMATION_RECORD *SecPlatformInfoRecord;
|
||||||
|
|
||||||
mTick = 0;
|
mTick = 0;
|
||||||
OldCoreData = (PEI_CORE_INSTANCE *) Data;
|
OldCoreData = (PEI_CORE_INSTANCE *) Data;
|
||||||
|
@ -234,6 +237,37 @@ Returns:
|
||||||
if (PpiList != NULL) {
|
if (PpiList != NULL) {
|
||||||
Status = PeiServicesInstallPpi (PpiList);
|
Status = PeiServicesInstallPpi (PpiList);
|
||||||
ASSERT_EFI_ERROR (Status);
|
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