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:
qwang12 2007-10-18 10:01:06 +00:00
parent e6c560aad6
commit 02422d17f7
3 changed files with 36 additions and 0 deletions

View File

@ -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>

View File

@ -96,6 +96,7 @@
gEfiPeiFirmwareVolumeInfoPpiGuid gEfiPeiFirmwareVolumeInfoPpiGuid
gEfiPeiLoadFilePpiGuid gEfiPeiLoadFilePpiGuid
gEfiPeiSecurity2PpiGuid gEfiPeiSecurity2PpiGuid
gEfiSecPlatformInformationPpiGuid
[FixedPcd.common] [FixedPcd.common]
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported

View File

@ -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)
);
}
}
} }
} }