Correct more comments for PeiCore.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5627 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -18,8 +18,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Initialize the memory services.
|
||||
|
||||
|
||||
@param PrivateData Add parameter description
|
||||
@param PrivateData Points to PeiCore's private instance data.
|
||||
@param SecCoreData Points to a data structure containing information about the PEI core's operating
|
||||
environment, such as the size and location of temporary RAM, the stack location and
|
||||
the BFV location.
|
||||
@@ -76,9 +75,13 @@ InitializeMemoryServices (
|
||||
|
||||
/**
|
||||
|
||||
Install the permanent memory is now available.
|
||||
Creates HOB (PHIT and Stack).
|
||||
This function registers the found memory configuration with the PEI Foundation.
|
||||
|
||||
The usage model is that the PEIM that discovers the permanent memory shall invoke this service.
|
||||
This routine will hold discoveried memory information into PeiCore's private data,
|
||||
and set SwitchStackSignal flag. After PEIM who discovery memory is dispatched,
|
||||
PeiDispatcher will migrate temporary memory to permenement memory.
|
||||
|
||||
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
|
||||
@param MemoryBegin Start of memory address.
|
||||
@param MemoryLength Length of memory.
|
||||
@@ -120,7 +123,6 @@ PeiInstallPeiMemory (
|
||||
@param Memory Pointer of memory allocated.
|
||||
|
||||
@retval EFI_SUCCESS The allocation was successful
|
||||
@retval EFI_INVALID_PARAMETER Only AllocateAnyAddress is supported.
|
||||
@retval EFI_NOT_AVAILABLE_YET Called with permanent memory not available
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough HOB heap to satisfy the requirement
|
||||
to allocate the number of pages.
|
||||
@@ -129,15 +131,14 @@ PeiInstallPeiMemory (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PeiAllocatePages (
|
||||
IN CONST EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_MEMORY_TYPE MemoryType,
|
||||
IN UINTN Pages,
|
||||
OUT EFI_PHYSICAL_ADDRESS *Memory
|
||||
IN CONST EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_MEMORY_TYPE MemoryType,
|
||||
IN UINTN Pages,
|
||||
OUT EFI_PHYSICAL_ADDRESS *Memory
|
||||
)
|
||||
{
|
||||
PEI_CORE_INSTANCE *PrivateData;
|
||||
EFI_PEI_HOB_POINTERS Hob;
|
||||
EFI_PHYSICAL_ADDRESS Offset;
|
||||
EFI_PHYSICAL_ADDRESS *FreeMemoryTop;
|
||||
EFI_PHYSICAL_ADDRESS *FreeMemoryBottom;
|
||||
|
||||
@@ -150,7 +151,7 @@ PeiAllocatePages (
|
||||
if (!PrivateData->PeiMemoryInstalled) {
|
||||
//
|
||||
// When PeiInstallMemory is called but CAR has *not* been moved to temporary memory,
|
||||
// the AllocatePage will dependent the field of PEI_CORE_INSTANCE structure.
|
||||
// the AllocatePage will dependent on the field of PEI_CORE_INSTANCE structure.
|
||||
//
|
||||
if (!PrivateData->SwitchStackSignal) {
|
||||
return EFI_NOT_AVAILABLE_YET;
|
||||
@@ -164,16 +165,9 @@ PeiAllocatePages (
|
||||
}
|
||||
|
||||
//
|
||||
// Check to see if on 4k boundary
|
||||
// Check to see if on 4k boundary, If not aligned, make the allocation aligned.
|
||||
//
|
||||
Offset = *(FreeMemoryTop) & 0xFFF;
|
||||
|
||||
//
|
||||
// If not aligned, make the allocation aligned.
|
||||
//
|
||||
if (Offset != 0) {
|
||||
*(FreeMemoryTop) -= Offset;
|
||||
}
|
||||
*(FreeMemoryTop) -= *(FreeMemoryTop) & 0xFFF;
|
||||
|
||||
//
|
||||
// Verify that there is sufficient memory to satisfy the allocation
|
||||
@@ -210,12 +204,14 @@ PeiAllocatePages (
|
||||
|
||||
/**
|
||||
|
||||
Memory allocation service on the CAR.
|
||||
Pool allocation service. Before permenent memory is discoveried, the pool will
|
||||
be allocated the heap in the CAR. Genenrally, the size of heap in temporary
|
||||
memory does not exceed to 64K, so the biggest pool size could be allocated is
|
||||
64K.
|
||||
|
||||
|
||||
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
|
||||
@param Size Amount of memory required
|
||||
@param Buffer Address of pointer to the buffer
|
||||
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
|
||||
@param Size Amount of memory required
|
||||
@param Buffer Address of pointer to the buffer
|
||||
|
||||
@retval EFI_SUCCESS The allocation was successful
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough heap to satisfy the requirement
|
||||
@@ -225,26 +221,30 @@ PeiAllocatePages (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PeiAllocatePool (
|
||||
IN CONST EFI_PEI_SERVICES **PeiServices,
|
||||
IN UINTN Size,
|
||||
OUT VOID **Buffer
|
||||
IN CONST EFI_PEI_SERVICES **PeiServices,
|
||||
IN UINTN Size,
|
||||
OUT VOID **Buffer
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_HOB_MEMORY_POOL *Hob;
|
||||
|
||||
//
|
||||
// If some "post-memory" PEIM wishes to allocate larger pool,
|
||||
// it should use AllocatePages service instead.
|
||||
//
|
||||
ASSERT (Size < 0x10000 - sizeof (EFI_HOB_MEMORY_POOL));
|
||||
Status = PeiServicesCreateHob (
|
||||
//
|
||||
// If some "post-memory" PEIM wishes to allocate larger pool,
|
||||
// it should use AllocatePages service instead.
|
||||
//
|
||||
|
||||
//
|
||||
// Generally, the size of heap in temporary memory does not exceed to 64K,
|
||||
// so the maxmium size of pool is 0x10000 - sizeof (EFI_HOB_MEMORY_POOL)
|
||||
//
|
||||
ASSERT (Size < 0x10000 - sizeof (EFI_HOB_MEMORY_POOL));
|
||||
Status = PeiServicesCreateHob (
|
||||
EFI_HOB_TYPE_MEMORY_POOL,
|
||||
(UINT16)(sizeof (EFI_HOB_MEMORY_POOL) + Size),
|
||||
(VOID **)&Hob
|
||||
);
|
||||
*Buffer = Hob+1;
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
Reference in New Issue
Block a user