Update PeiCore to handle FvImage with PI FV extension header

Update Capsule PCDs PcdMaxSizePopulateCapsule and  PcdMaxSizeNonPopulateCapsule to the flexible PCD type.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7805 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4 2009-03-05 05:05:57 +00:00
parent 5bb820af59
commit 97b2c9b514
8 changed files with 62 additions and 38 deletions

View File

@ -85,6 +85,12 @@ DiscoverPeimsAndOrderWithApriori (
Private->CurrentFvFileHandles[PeimCount] = FileHandle; Private->CurrentFvFileHandles[PeimCount] = FileHandle;
} }
//
// Check whether the count of Peims exceeds the max support PEIMs in a FV image
// If more Peims are required in a FV image, PcdPeiCoreMaxPeimPerFv can be set to a larger value in DSC file.
//
ASSERT (PeimCount < FixedPcdGet32 (PcdPeiCoreMaxPeimPerFv));
Private->AprioriCount = 0; Private->AprioriCount = 0;
if (AprioriFileHandle != NULL) { if (AprioriFileHandle != NULL) {
@ -377,7 +383,7 @@ PeiDispatcher (
// //
// For Fv type file, Produce new FV PPI and FV hob // For Fv type file, Produce new FV PPI and FV hob
// //
Status = ProcessFvFile (PeiServices, PeimFileHandle, &AuthenticationState); Status = ProcessFvFile (PeiServices, VolumeHandle, PeimFileHandle, &AuthenticationState);
} else { } else {
// //
// For PEIM driver, Load its entry point // For PEIM driver, Load its entry point

View File

@ -151,7 +151,6 @@ PeiFindFileEx (
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader; EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;
EFI_FFS_FILE_HEADER **FileHeader; EFI_FFS_FILE_HEADER **FileHeader;
EFI_FFS_FILE_HEADER *FfsFileHeader; EFI_FFS_FILE_HEADER *FfsFileHeader;
EFI_FIRMWARE_VOLUME_EXT_HEADER *FwVolExHeaderInfo;
UINT32 FileLength; UINT32 FileLength;
UINT32 FileOccupiedSize; UINT32 FileOccupiedSize;
UINT32 FileOffset; UINT32 FileOffset;
@ -176,10 +175,6 @@ PeiFindFileEx (
// //
if ((*FileHeader == NULL) || (FileName != NULL)) { if ((*FileHeader == NULL) || (FileName != NULL)) {
FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FwVolHeader + FwVolHeader->HeaderLength); FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FwVolHeader + FwVolHeader->HeaderLength);
if (FwVolHeader->ExtHeaderOffset != 0) {
FwVolExHeaderInfo = (EFI_FIRMWARE_VOLUME_EXT_HEADER *)(((UINT8 *)FwVolHeader) + FwVolHeader->ExtHeaderOffset);
FfsFileHeader = (EFI_FFS_FILE_HEADER *)(((UINT8 *)FwVolExHeaderInfo) + FwVolExHeaderInfo->ExtHeaderSize);
}
} else { } else {
// //
// Length is 24 bits wide so mask upper 8 bits // Length is 24 bits wide so mask upper 8 bits
@ -332,11 +327,16 @@ FirmwareVolmeInfoPpiNotifyCallback (
PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices); PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);
if (PrivateData->FvCount >= FixedPcdGet32 (PcdPeiCoreMaxFvSupported)) { if (PrivateData->FvCount >= FixedPcdGet32 (PcdPeiCoreMaxFvSupported)) {
DEBUG ((EFI_D_ERROR, "The number of Fv Images (%d) exceed the max supported FVs (%d) in Pei", PrivateData->FvCount + 1, FixedPcdGet32 (PcdPeiCoreMaxFvSupported)));
DEBUG ((EFI_D_ERROR, "PcdPeiCoreMaxFvSupported value need be reconfigurated in DSC"));
ASSERT (FALSE); ASSERT (FALSE);
} }
Fv = (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI *)Ppi; Fv = (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI *)Ppi;
//
// Only add FileSystem2 Fv to Fv list
//
if (CompareGuid (&Fv->FvFormat, &gEfiFirmwareFileSystem2Guid)) { if (CompareGuid (&Fv->FvFormat, &gEfiFirmwareFileSystem2Guid)) {
for (FvCount = 0; FvCount < PrivateData->FvCount; FvCount ++) { for (FvCount = 0; FvCount < PrivateData->FvCount; FvCount ++) {
if ((UINTN)PrivateData->Fv[FvCount].FvHeader == (UINTN)Fv->FvInfo) { if ((UINTN)PrivateData->Fv[FvCount].FvHeader == (UINTN)Fv->FvInfo) {
@ -352,9 +352,6 @@ FirmwareVolmeInfoPpiNotifyCallback (
PrivateData->Fv[PrivateData->FvCount++].FvHeader = (EFI_FIRMWARE_VOLUME_HEADER*)Fv->FvInfo; PrivateData->Fv[PrivateData->FvCount++].FvHeader = (EFI_FIRMWARE_VOLUME_HEADER*)Fv->FvInfo;
//
// Only add FileSystem2 Fv to the All list
//
PrivateData->AllFv[PrivateData->AllFvCount++] = (EFI_PEI_FV_HANDLE)Fv->FvInfo; PrivateData->AllFv[PrivateData->AllFvCount++] = (EFI_PEI_FV_HANDLE)Fv->FvInfo;
DEBUG ((EFI_D_INFO, "The %dth FvImage start address is 0x%11p and size is 0x%08x\n", (UINT32)PrivateData->AllFvCount, (VOID *) Fv->FvInfo, Fv->FvInfoSize)); DEBUG ((EFI_D_INFO, "The %dth FvImage start address is 0x%11p and size is 0x%08x\n", (UINT32)PrivateData->AllFvCount, (VOID *) Fv->FvInfo, Fv->FvInfoSize));
@ -387,7 +384,7 @@ FirmwareVolmeInfoPpiNotifyCallback (
// //
// Process FvFile to install FvInfo ppi and build FvHob // Process FvFile to install FvInfo ppi and build FvHob
// //
ProcessFvFile ((CONST EFI_PEI_SERVICES **) PeiServices, FileHandle, &AuthenticationStatus); ProcessFvFile ((CONST EFI_PEI_SERVICES **) PeiServices, (EFI_PEI_FV_HANDLE)Fv->FvInfo, FileHandle, &AuthenticationStatus);
} }
} while (FileHandle != NULL); } while (FileHandle != NULL);
} }
@ -809,6 +806,7 @@ PeiFfsGetVolumeInfo (
if (FwVolHeader.Signature != EFI_FVH_SIGNATURE) { if (FwVolHeader.Signature != EFI_FVH_SIGNATURE) {
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
} }
ZeroMem (VolumeInfo, sizeof (EFI_FV_INFO));
VolumeInfo->FvAttributes = FwVolHeader.Attributes; VolumeInfo->FvAttributes = FwVolHeader.Attributes;
VolumeInfo->FvStart = (VOID *) VolumeHandle; VolumeInfo->FvStart = (VOID *) VolumeHandle;
VolumeInfo->FvSize = FwVolHeader.FvLength; VolumeInfo->FvSize = FwVolHeader.FvLength;
@ -825,7 +823,8 @@ PeiFfsGetVolumeInfo (
Get Fv image from the FV type file, then install FV INFO ppi, Build FV hob. Get Fv image from the FV type file, then install FV INFO ppi, Build FV hob.
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
@param FvFileHandle File handle of a Fv type file. @param ParentFvHandle Fv handle to parent Fv image that contain this Fv image.
@param ParentFvFileHandle File handle of a Fv type file that contain this Fv image.
@param AuthenticationState Pointer to attestation authentication state of image. @param AuthenticationState Pointer to attestation authentication state of image.
@ -838,13 +837,15 @@ PeiFfsGetVolumeInfo (
EFI_STATUS EFI_STATUS
ProcessFvFile ( ProcessFvFile (
IN CONST EFI_PEI_SERVICES **PeiServices, IN CONST EFI_PEI_SERVICES **PeiServices,
IN EFI_PEI_FILE_HANDLE FvFileHandle, IN EFI_PEI_FV_HANDLE ParentFvHandle,
IN EFI_PEI_FILE_HANDLE ParentFvFileHandle,
OUT UINT32 *AuthenticationState OUT UINT32 *AuthenticationState
) )
{ {
EFI_STATUS Status; EFI_STATUS Status;
EFI_PEI_FV_HANDLE FvImageHandle; EFI_PEI_FV_HANDLE FvImageHandle;
EFI_FV_INFO FvImageInfo; EFI_FV_INFO FvImageInfo;
EFI_FV_INFO ParentFvImageInfo;
UINT32 FvAlignment; UINT32 FvAlignment;
VOID *FvBuffer; VOID *FvBuffer;
EFI_PEI_HOB_POINTERS HobPtr; EFI_PEI_HOB_POINTERS HobPtr;
@ -858,7 +859,7 @@ ProcessFvFile (
// //
HobPtr.Raw = GetHobList (); HobPtr.Raw = GetHobList ();
while ((HobPtr.Raw = GetNextHob (EFI_HOB_TYPE_FV2, HobPtr.Raw)) != NULL) { while ((HobPtr.Raw = GetNextHob (EFI_HOB_TYPE_FV2, HobPtr.Raw)) != NULL) {
if (CompareGuid (&(((EFI_FFS_FILE_HEADER *)FvFileHandle)->Name), &HobPtr.FirmwareVolume2->FileName)) { if (CompareGuid (&(((EFI_FFS_FILE_HEADER *)ParentFvFileHandle)->Name), &HobPtr.FirmwareVolume2->FileName)) {
// //
// this FILE has been dispatched, it will not be dispatched again. // this FILE has been dispatched, it will not be dispatched again.
// //
@ -873,14 +874,20 @@ ProcessFvFile (
Status = PeiFfsFindSectionData ( Status = PeiFfsFindSectionData (
PeiServices, PeiServices,
EFI_SECTION_FIRMWARE_VOLUME_IMAGE, EFI_SECTION_FIRMWARE_VOLUME_IMAGE,
FvFileHandle, ParentFvFileHandle,
(VOID **)&FvImageHandle (VOID **)&FvImageHandle
); );
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
return Status; return Status;
} }
//
// Collect Parent FvImage Info.
//
Status = PeiFfsGetVolumeInfo (ParentFvHandle, &ParentFvImageInfo);
ASSERT_EFI_ERROR (Status);
// //
// Collect FvImage Info. // Collect FvImage Info.
// //
@ -907,7 +914,8 @@ ProcessFvFile (
// //
// Update FvImageInfo after reload FvImage to new aligned memory // Update FvImageInfo after reload FvImage to new aligned memory
// //
PeiFfsGetVolumeInfo ((EFI_PEI_FV_HANDLE) FvBuffer, &FvImageInfo); Status = PeiFfsGetVolumeInfo ((EFI_PEI_FV_HANDLE) FvBuffer, &FvImageInfo);
ASSERT_EFI_ERROR (Status);
} }
// //
@ -917,8 +925,8 @@ ProcessFvFile (
NULL, NULL,
FvImageInfo.FvStart, FvImageInfo.FvStart,
(UINT32) FvImageInfo.FvSize, (UINT32) FvImageInfo.FvSize,
&(FvImageInfo.FvName), &ParentFvImageInfo.FvName,
&(((EFI_FFS_FILE_HEADER*)FvFileHandle)->Name) &(((EFI_FFS_FILE_HEADER*)ParentFvFileHandle)->Name)
); );
// //
@ -936,8 +944,8 @@ ProcessFvFile (
BuildFv2Hob ( BuildFv2Hob (
(EFI_PHYSICAL_ADDRESS) (UINTN) FvImageInfo.FvStart, (EFI_PHYSICAL_ADDRESS) (UINTN) FvImageInfo.FvStart,
FvImageInfo.FvSize, FvImageInfo.FvSize,
&FvImageInfo.FvName, &ParentFvImageInfo.FvName,
&(((EFI_FFS_FILE_HEADER *)FvFileHandle)->Name) &(((EFI_FFS_FILE_HEADER *)ParentFvFileHandle)->Name)
); );
return EFI_SUCCESS; return EFI_SUCCESS;

View File

@ -1006,7 +1006,8 @@ InitializeImageServices (
Get Fv image from the FV type file, then install FV INFO ppi, Build FV hob. Get Fv image from the FV type file, then install FV INFO ppi, Build FV hob.
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
@param FvFileHandle File handle of a Fv type file. @param ParentFvHandle Fv handle to parent Fv image that contain this Fv file.
@param ParentFvFileHandle File handle of a Fv type file that contain this Fv image.
@param AuthenticationState Pointer to attestation authentication state of image. @param AuthenticationState Pointer to attestation authentication state of image.
If return 0, means pass security checking. If return 0, means pass security checking.
@ -1017,7 +1018,8 @@ InitializeImageServices (
EFI_STATUS EFI_STATUS
ProcessFvFile ( ProcessFvFile (
IN CONST EFI_PEI_SERVICES **PeiServices, IN CONST EFI_PEI_SERVICES **PeiServices,
IN EFI_PEI_FILE_HANDLE FvFileHandle, IN EFI_PEI_FV_HANDLE ParentFvHandle,
IN EFI_PEI_FILE_HANDLE ParentFvFileHandle,
OUT UINT32 *AuthenticationState OUT UINT32 *AuthenticationState
); );

View File

@ -88,7 +88,7 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported ## CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv ## CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPpiSupported ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPpiSupported ## CONSUMES
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeimDispatch ## CONSUMES gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeimDispatch ## CONSUMES
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiCoreEntry ## CONSUMES gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiCoreEntry ## CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize ## CONSUMES

View File

@ -151,6 +151,7 @@ PeiInstallPpi (
// //
// Since PpiData is used for NotifyList and PpiList, max resource // Since PpiData is used for NotifyList and PpiList, max resource
// is reached if the Install reaches the NotifyList // is reached if the Install reaches the NotifyList
// PcdPeiCoreMaxPpiSupported can be set to a larger value in DSC to satisfy more PPI requirement.
// //
if (Index == PrivateData->PpiData.NotifyListEnd + 1) { if (Index == PrivateData->PpiData.NotifyListEnd + 1) {
return EFI_OUT_OF_RESOURCES; return EFI_OUT_OF_RESOURCES;
@ -392,6 +393,7 @@ PeiNotifyPpi (
// //
// Since PpiData is used for NotifyList and InstallList, max resource // Since PpiData is used for NotifyList and InstallList, max resource
// is reached if the Install reaches the PpiList // is reached if the Install reaches the PpiList
// PcdPeiCoreMaxPpiSupported can be set to a larger value in DSC to satisfy more Notify PPIs requirement.
// //
if (Index == PrivateData->PpiData.PpiListEnd - 1) { if (Index == PrivateData->PpiData.PpiListEnd - 1) {
return EFI_OUT_OF_RESOURCES; return EFI_OUT_OF_RESOURCES;

View File

@ -30,17 +30,20 @@
[LibraryClasses.common] [LibraryClasses.common]
## @libraryclass IpIo layer upon EFI IP4 Protocol. ## @libraryclass IpIo layer upon EFI IP4 Protocol.
# Ihis library is only intended to be used by UEFI network stack modules.
IpIoLib|Include/Library/IpIoLib.h IpIoLib|Include/Library/IpIoLib.h
## @libraryclass Basic function for UEFI network stack. ## @libraryclass Basic function for UEFI network stack.
# Ihis library is only intended to be used by UEFI network stack modules.
NetLib|Include/Library/NetLib.h NetLib|Include/Library/NetLib.h
## @libraryclass Defines a set of methods to reset whole system.
ResetSystemLib|Include/Library/ResetSystemLib.h
## @libraryclass The helper routines to access UDP service. ## @libraryclass The helper routines to access UDP service.
# Ihis library is only intended to be used by UEFI network stack modules.
UdpIoLib|Include/Library/UdpIoLib.h UdpIoLib|Include/Library/UdpIoLib.h
## @libraryclass Defines a set of methods to reset whole system.
ResetSystemLib|Include/Library/ResetSystemLib.h
## @libraryclass Defines a set of methods related do S3 mode. ## @libraryclass Defines a set of methods related do S3 mode.
S3Lib|Include/Library/S3Lib.h S3Lib|Include/Library/S3Lib.h
@ -48,6 +51,7 @@
RecoveryLib|Include/Library/RecoveryLib.h RecoveryLib|Include/Library/RecoveryLib.h
## @libraryclass Basic platform driver override functions. ## @libraryclass Basic platform driver override functions.
# Ihis library is only intended to be used by Platform Driver Override Dxe Driver and Application.
PlatformDriverOverrideLib|Include/Library/PlatformDriverOverrideLib.h PlatformDriverOverrideLib|Include/Library/PlatformDriverOverrideLib.h
## @libraryclass Provides HII related functions. ## @libraryclass Provides HII related functions.
@ -91,9 +95,11 @@
gPcdDataBaseHobGuid = { 0xEA296D92, 0x0B69, 0x423C, { 0x8C, 0x28, 0x33, 0xB4, 0xE0, 0xA9, 0x12, 0x68 }} gPcdDataBaseHobGuid = { 0xEA296D92, 0x0B69, 0x423C, { 0x8C, 0x28, 0x33, 0xB4, 0xE0, 0xA9, 0x12, 0x68 }}
## Guid for EDKII implementation GUIDed opcodes ## Guid for EDKII implementation GUIDed opcodes
# Include/Guid/MdeModuleHii.h
gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }} gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
## Guid for Framework vfr GUIDed opcodes. ## Guid for Framework vfr GUIDed opcodes.
# Include/Guid/MdeModuleHii.h
gEfiIfrFrameworkGuid = { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 }} gEfiIfrFrameworkGuid = { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 }}
## Guid to specify the System Non Volatile FV ## Guid to specify the System Non Volatile FV
@ -292,15 +298,7 @@
# to store PCD value. # to store PCD value.
# #
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0|UINT32|0x00010010 gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0|UINT32|0x00010010
## Indicate the max size of the populated capsule image that the platform can support.
# The default max size is 100MB (0x6400000) for more than one large capsule images.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x6400000|UINT32|0x0001001e
## Indicate the max size of the non-populated capsule image that the platform can support.
# The default max size is 10MB (0xa00000) for the casule image without populated flag setting.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0xa00000|UINT32|0x0001001f
## Maximum number of FV is supported by PeiCore's dispatching. ## Maximum number of FV is supported by PeiCore's dispatching.
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported|6|UINT32|0x00010030 gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported|6|UINT32|0x00010030
@ -343,6 +341,14 @@
## ##
gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes|1|UINT32|0x40000005 gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes|1|UINT32|0x40000005
## Indicate the max size of the populated capsule image that the platform can support.
# The default max size is 100MB (0x6400000) for more than one large capsule images.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x6400000|UINT32|0x0001001e
## Indicate the max size of the non-populated capsule image that the platform can support.
# The default max size is 10MB (0xa00000) for the casule image without populated flag setting.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0xa00000|UINT32|0x0001001f
[PcdsFixedAtBuild,PcdsPatchableInModule] [PcdsFixedAtBuild,PcdsPatchableInModule]
## Maximun number of performance log entries during PEI phase. ## Maximun number of performance log entries during PEI phase.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f

View File

@ -55,7 +55,7 @@
[FeaturePcd] [FeaturePcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset
[FixedPcd] [Pcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule || PcdSupportUpdateCapsuleReset ## Populate Image requires reset support. gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule || PcdSupportUpdateCapsuleReset ## Populate Image requires reset support.

View File

@ -247,9 +247,9 @@ QueryCapsuleCapabilities (
// The support max capsule image size // The support max capsule image size
// //
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0) { if ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0) {
*MaxiumCapsuleSize = FixedPcdGet32(PcdMaxSizePopulateCapsule); *MaxiumCapsuleSize = PcdGet32(PcdMaxSizePopulateCapsule);
} else { } else {
*MaxiumCapsuleSize = FixedPcdGet32(PcdMaxSizeNonPopulateCapsule); *MaxiumCapsuleSize = PcdGet32(PcdMaxSizeNonPopulateCapsule);
} }
return EFI_SUCCESS; return EFI_SUCCESS;