// Additional pages are used by DXE memory manager.\r
// It should be consistent between RetrieveRequiredMemorySize() and GetPeiMemSize()\r
//\r
-#define PEI_ADDITIONAL_MEMORY_SIZE (16 * EFI_PAGE_SIZE)\r
+#define PEI_ADDITIONAL_MEMORY_SIZE (16 * EFI_PAGE_SIZE)\r
\r
/**\r
Get the mem size in memory type information table.\r
**/\r
UINT64\r
GetMemorySizeInMemoryTypeInformation (\r
- IN EFI_PEI_SERVICES **PeiServices\r
+ IN EFI_PEI_SERVICES **PeiServices\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_PEI_HOB_POINTERS Hob;\r
- EFI_MEMORY_TYPE_INFORMATION *MemoryData;\r
- UINT8 Index;\r
- UINTN TempPageNum;\r
+ EFI_STATUS Status;\r
+ EFI_PEI_HOB_POINTERS Hob;\r
+ EFI_MEMORY_TYPE_INFORMATION *MemoryData;\r
+ UINT8 Index;\r
+ UINTN TempPageNum;\r
\r
MemoryData = NULL;\r
- Status = (*PeiServices)->GetHobList ((CONST EFI_PEI_SERVICES**)PeiServices, (VOID **) &Hob.Raw);\r
+ Status = (*PeiServices)->GetHobList ((CONST EFI_PEI_SERVICES **)PeiServices, (VOID **)&Hob.Raw);\r
ASSERT_EFI_ERROR (Status);\r
while (!END_OF_HOB_LIST (Hob)) {\r
- if (Hob.Header->HobType == EFI_HOB_TYPE_GUID_EXTENSION &&\r
- CompareGuid (&Hob.Guid->Name, &gEfiMemoryTypeInformationGuid)) {\r
- MemoryData = (EFI_MEMORY_TYPE_INFORMATION *) (Hob.Raw + sizeof (EFI_HOB_GENERIC_HEADER) + sizeof (EFI_GUID));\r
+ if ((Hob.Header->HobType == EFI_HOB_TYPE_GUID_EXTENSION) &&\r
+ CompareGuid (&Hob.Guid->Name, &gEfiMemoryTypeInformationGuid))\r
+ {\r
+ MemoryData = (EFI_MEMORY_TYPE_INFORMATION *)(Hob.Raw + sizeof (EFI_HOB_GENERIC_HEADER) + sizeof (EFI_GUID));\r
break;\r
}\r
\r
**/\r
UINT64\r
RetrieveRequiredMemorySize (\r
- IN EFI_PEI_SERVICES **PeiServices\r
+ IN EFI_PEI_SERVICES **PeiServices\r
)\r
{\r
- UINT64 Size;\r
+ UINT64 Size;\r
\r
Size = GetMemorySizeInMemoryTypeInformation (PeiServices);\r
return Size + PEI_ADDITIONAL_MEMORY_SIZE;\r
**/\r
UINT64\r
GetPeiMemSize (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN UINT32 BootMode\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN UINT32 BootMode\r
)\r
{\r
- UINT64 Size;\r
- UINT64 MinSize;\r
+ UINT64 Size;\r
+ UINT64 MinSize;\r
\r
if (BootMode == BOOT_IN_RECOVERY_MODE) {\r
return PcdGet32 (PcdPeiRecoveryMinMemSize);\r
EFI_STATUS\r
EFIAPI\r
PostFspmHobProcess (\r
- IN VOID *FspHobList\r
+ IN VOID *FspHobList\r
)\r
{\r
- EFI_PEI_HOB_POINTERS Hob;\r
- UINT64 LowMemorySize;\r
- UINT64 FspMemorySize;\r
- EFI_PHYSICAL_ADDRESS FspMemoryBase;\r
- UINT64 PeiMemSize;\r
- EFI_PHYSICAL_ADDRESS PeiMemBase;\r
- UINT64 S3PeiMemSize;\r
- EFI_PHYSICAL_ADDRESS S3PeiMemBase;\r
- BOOLEAN FoundFspMemHob;\r
- EFI_STATUS Status;\r
- EFI_BOOT_MODE BootMode;\r
- EFI_PEI_CAPSULE_PPI *Capsule;\r
- VOID *CapsuleBuffer;\r
- UINTN CapsuleBufferLength;\r
- UINT64 RequiredMemSize;\r
- EFI_PEI_SERVICES **PeiServices;\r
+ EFI_PEI_HOB_POINTERS Hob;\r
+ UINT64 LowMemorySize;\r
+ UINT64 FspMemorySize;\r
+ EFI_PHYSICAL_ADDRESS FspMemoryBase;\r
+ UINT64 PeiMemSize;\r
+ EFI_PHYSICAL_ADDRESS PeiMemBase;\r
+ UINT64 S3PeiMemSize;\r
+ EFI_PHYSICAL_ADDRESS S3PeiMemBase;\r
+ BOOLEAN FoundFspMemHob;\r
+ EFI_STATUS Status;\r
+ EFI_BOOT_MODE BootMode;\r
+ EFI_PEI_CAPSULE_PPI *Capsule;\r
+ VOID *CapsuleBuffer;\r
+ UINTN CapsuleBufferLength;\r
+ UINT64 RequiredMemSize;\r
+ EFI_PEI_SERVICES **PeiServices;\r
\r
PeiServices = (EFI_PEI_SERVICES **)GetPeiServicesTablePointer ();\r
\r
PeiServicesGetBootMode (&BootMode);\r
\r
- PeiMemBase = 0;\r
- LowMemorySize = 0;\r
- FspMemorySize = 0;\r
- FspMemoryBase = 0;\r
+ PeiMemBase = 0;\r
+ LowMemorySize = 0;\r
+ FspMemorySize = 0;\r
+ FspMemoryBase = 0;\r
FoundFspMemHob = FALSE;\r
\r
//\r
// Report all the resource hob except the memory between 1M and 4G\r
//\r
Hob.Raw = (UINT8 *)(UINTN)FspHobList;\r
- DEBUG((DEBUG_INFO, "FspHobList - 0x%x\n", FspHobList));\r
+ DEBUG ((DEBUG_INFO, "FspHobList - 0x%x\n", FspHobList));\r
\r
while ((Hob.Raw = GetNextHob (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR, Hob.Raw)) != NULL) {\r
- DEBUG((DEBUG_INFO, "\nResourceType: 0x%x\n", Hob.ResourceDescriptor->ResourceType));\r
+ DEBUG ((DEBUG_INFO, "\nResourceType: 0x%x\n", Hob.ResourceDescriptor->ResourceType));\r
if ((Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) ||\r
- (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED)) {\r
- DEBUG((DEBUG_INFO, "ResourceAttribute: 0x%x\n", Hob.ResourceDescriptor->ResourceAttribute));\r
- DEBUG((DEBUG_INFO, "PhysicalStart: 0x%x\n", Hob.ResourceDescriptor->PhysicalStart));\r
- DEBUG((DEBUG_INFO, "ResourceLength: 0x%x\n", Hob.ResourceDescriptor->ResourceLength));\r
- DEBUG((DEBUG_INFO, "Owner: %g\n\n", &Hob.ResourceDescriptor->Owner));\r
+ (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED))\r
+ {\r
+ DEBUG ((DEBUG_INFO, "ResourceAttribute: 0x%x\n", Hob.ResourceDescriptor->ResourceAttribute));\r
+ DEBUG ((DEBUG_INFO, "PhysicalStart: 0x%x\n", Hob.ResourceDescriptor->PhysicalStart));\r
+ DEBUG ((DEBUG_INFO, "ResourceLength: 0x%x\n", Hob.ResourceDescriptor->ResourceLength));\r
+ DEBUG ((DEBUG_INFO, "Owner: %g\n\n", &Hob.ResourceDescriptor->Owner));\r
}\r
\r
- if ((Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) // Found the low memory length below 4G\r
- && (Hob.ResourceDescriptor->PhysicalStart >= BASE_1MB)\r
- && (Hob.ResourceDescriptor->PhysicalStart + Hob.ResourceDescriptor->ResourceLength <= BASE_4GB)) {\r
- LowMemorySize += Hob.ResourceDescriptor->ResourceLength;\r
- Hob.Raw = GET_NEXT_HOB (Hob);\r
+ if ( (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) // Found the low memory length below 4G\r
+ && (Hob.ResourceDescriptor->PhysicalStart >= BASE_1MB)\r
+ && (Hob.ResourceDescriptor->PhysicalStart + Hob.ResourceDescriptor->ResourceLength <= BASE_4GB))\r
+ {\r
+ LowMemorySize += Hob.ResourceDescriptor->ResourceLength;\r
+ Hob.Raw = GET_NEXT_HOB (Hob);\r
continue;\r
}\r
\r
- if ((Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) // Found the low memory length below 4G\r
- && (Hob.ResourceDescriptor->PhysicalStart >= BASE_1MB)\r
- && (Hob.ResourceDescriptor->PhysicalStart + Hob.ResourceDescriptor->ResourceLength <= BASE_4GB)\r
- && (CompareGuid (&Hob.ResourceDescriptor->Owner, &gFspReservedMemoryResourceHobGuid))) {\r
+ if ( (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) // Found the low memory length below 4G\r
+ && (Hob.ResourceDescriptor->PhysicalStart >= BASE_1MB)\r
+ && (Hob.ResourceDescriptor->PhysicalStart + Hob.ResourceDescriptor->ResourceLength <= BASE_4GB)\r
+ && (CompareGuid (&Hob.ResourceDescriptor->Owner, &gFspReservedMemoryResourceHobGuid)))\r
+ {\r
FoundFspMemHob = TRUE;\r
- FspMemoryBase = Hob.ResourceDescriptor->PhysicalStart;\r
- FspMemorySize = Hob.ResourceDescriptor->ResourceLength;\r
- DEBUG((DEBUG_INFO, "Find fsp mem hob, base 0x%x, len 0x%x\n", FspMemoryBase, FspMemorySize));\r
+ FspMemoryBase = Hob.ResourceDescriptor->PhysicalStart;\r
+ FspMemorySize = Hob.ResourceDescriptor->ResourceLength;\r
+ DEBUG ((DEBUG_INFO, "Find fsp mem hob, base 0x%x, len 0x%x\n", FspMemoryBase, FspMemorySize));\r
}\r
\r
//\r
}\r
\r
if (!FoundFspMemHob) {\r
- DEBUG((DEBUG_INFO, "Didn't find the fsp used memory information.\n"));\r
- //ASSERT(FALSE);\r
+ DEBUG ((DEBUG_INFO, "Didn't find the fsp used memory information.\n"));\r
+ // ASSERT(FALSE);\r
}\r
\r
- DEBUG((DEBUG_INFO, "LowMemorySize: 0x%x.\n", LowMemorySize));\r
- DEBUG((DEBUG_INFO, "FspMemoryBase: 0x%x.\n", FspMemoryBase));\r
- DEBUG((DEBUG_INFO, "FspMemorySize: 0x%x.\n", FspMemorySize));\r
+ DEBUG ((DEBUG_INFO, "LowMemorySize: 0x%x.\n", LowMemorySize));\r
+ DEBUG ((DEBUG_INFO, "FspMemoryBase: 0x%x.\n", FspMemoryBase));\r
+ DEBUG ((DEBUG_INFO, "FspMemorySize: 0x%x.\n", FspMemorySize));\r
\r
if (BootMode == BOOT_ON_S3_RESUME) {\r
BuildResourceDescriptorHob (\r
EFI_RESOURCE_SYSTEM_MEMORY,\r
(\r
- EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
- EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
- // EFI_RESOURCE_ATTRIBUTE_TESTED |\r
- EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
- EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
- EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
- EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE\r
+ EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
+ EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
+ // EFI_RESOURCE_ATTRIBUTE_TESTED |\r
+ EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE\r
),\r
BASE_1MB,\r
LowMemorySize\r
\r
S3PeiMemBase = 0;\r
S3PeiMemSize = 0;\r
- Status = GetS3MemoryInfo (&S3PeiMemSize, &S3PeiMemBase);\r
+ Status = GetS3MemoryInfo (&S3PeiMemSize, &S3PeiMemBase);\r
ASSERT_EFI_ERROR (Status);\r
- DEBUG((DEBUG_INFO, "S3 memory %Xh - %Xh bytes\n", S3PeiMemBase, S3PeiMemSize));\r
+ DEBUG ((DEBUG_INFO, "S3 memory %Xh - %Xh bytes\n", S3PeiMemBase, S3PeiMemSize));\r
\r
//\r
// Make sure Stack and PeiMemory are not overlap\r
ASSERT_EFI_ERROR (Status);\r
} else {\r
PeiMemSize = GetPeiMemSize (PeiServices, BootMode);\r
- DEBUG((DEBUG_INFO, "PEI memory size = %Xh bytes\n", PeiMemSize));\r
+ DEBUG ((DEBUG_INFO, "PEI memory size = %Xh bytes\n", PeiMemSize));\r
\r
//\r
// Capsule mode\r
//\r
- Capsule = NULL;\r
- CapsuleBuffer = NULL;\r
+ Capsule = NULL;\r
+ CapsuleBuffer = NULL;\r
CapsuleBufferLength = 0;\r
if (BootMode == BOOT_ON_FLASH_UPDATE) {\r
Status = PeiServicesLocatePpi (\r
&gEfiPeiCapsulePpiGuid,\r
0,\r
NULL,\r
- (VOID **) &Capsule\r
+ (VOID **)&Capsule\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
//\r
// Make sure Stack and CapsuleBuffer are not overlap\r
//\r
- CapsuleBuffer = (VOID *)(UINTN)BASE_1MB;\r
+ CapsuleBuffer = (VOID *)(UINTN)BASE_1MB;\r
CapsuleBufferLength = (UINTN)(LowMemorySize - PeiMemSize);\r
//\r
// Call the Capsule PPI Coalesce function to coalesce the capsule data.\r
}\r
\r
RequiredMemSize = RetrieveRequiredMemorySize (PeiServices);\r
- DEBUG((DEBUG_INFO, "Required memory size = %Xh bytes\n", RequiredMemSize));\r
+ DEBUG ((DEBUG_INFO, "Required memory size = %Xh bytes\n", RequiredMemSize));\r
\r
//\r
// Report the main memory\r
BuildResourceDescriptorHob (\r
EFI_RESOURCE_SYSTEM_MEMORY,\r
(\r
- EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
- EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
- EFI_RESOURCE_ATTRIBUTE_TESTED |\r
- EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
- EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
- EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
- EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE\r
+ EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
+ EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
+ EFI_RESOURCE_ATTRIBUTE_TESTED |\r
+ EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
+ EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE\r
),\r
BASE_1MB,\r
LowMemorySize\r
// Install efi memory\r
//\r
PeiMemBase = BASE_1MB + LowMemorySize - PeiMemSize;\r
- Status = PeiServicesInstallPeiMemory (\r
- PeiMemBase,\r
- PeiMemSize - RequiredMemSize\r
- );\r
+ Status = PeiServicesInstallPeiMemory (\r
+ PeiMemBase,\r
+ PeiMemSize - RequiredMemSize\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
\r
if (Capsule != NULL) {\r
**/\r
VOID\r
ProcessFspHobList (\r
- IN VOID *FspHobList\r
+ IN VOID *FspHobList\r
)\r
{\r
EFI_PEI_HOB_POINTERS FspHob;\r
//\r
// Skip FSP binary creates PcdDataBaseHobGuid\r
//\r
- if (!CompareGuid(&FspHob.Guid->Name, &gPcdDataBaseHobGuid)) {\r
+ if (!CompareGuid (&FspHob.Guid->Name, &gPcdDataBaseHobGuid)) {\r
BuildGuidDataHob (\r
&FspHob.Guid->Name,\r
- GET_GUID_HOB_DATA(FspHob),\r
- GET_GUID_HOB_DATA_SIZE(FspHob)\r
- );\r
+ GET_GUID_HOB_DATA (FspHob),\r
+ GET_GUID_HOB_DATA_SIZE (FspHob)\r
+ );\r
}\r
}\r
+\r
FspHob.Raw = GET_NEXT_HOB (FspHob);\r
}\r
}\r
EFI_STATUS\r
EFIAPI\r
PostFspsHobProcess (\r
- IN VOID *FspHobList\r
+ IN VOID *FspHobList\r
)\r
{\r
//\r
ASSERT (FspHobList != NULL);\r
ProcessFspHobList (FspHobList);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r