2007-06-28 09:00:39 +02:00
|
|
|
/*++
|
|
|
|
|
2010-04-28 13:56:24 +02:00
|
|
|
Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
|
|
|
|
This program and the accompanying materials
|
2007-06-28 09:00:39 +02:00
|
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
|
|
|
|
hob.c
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
PEI Library Functions
|
|
|
|
|
|
|
|
--*/
|
|
|
|
|
|
|
|
#include "Tiano.h"
|
|
|
|
#include "Pei.h"
|
2008-04-11 22:24:11 +02:00
|
|
|
#include "PeiLib.h"
|
2007-06-28 09:00:39 +02:00
|
|
|
#include EFI_GUID_DEFINITION (MemoryAllocationHob)
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobModule (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_GUID *ModuleName,
|
|
|
|
IN EFI_PHYSICAL_ADDRESS MemoryAllocationModule,
|
|
|
|
IN UINT64 ModuleLength,
|
|
|
|
IN EFI_PHYSICAL_ADDRESS EntryPoint
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a HOB for a loaded PE32 module
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
ModuleName - The GUID File Name of the module
|
|
|
|
MemoryAllocationModule - The 64 bit physical address of the module
|
|
|
|
ModuleLength - The length of the module in bytes
|
|
|
|
EntryPoint - The 64 bit physical address of the entry point
|
|
|
|
to the module
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
EFI_HOB_MEMORY_ALLOCATION_MODULE *Hob;
|
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_MEMORY_ALLOCATION,
|
|
|
|
sizeof (EFI_HOB_MEMORY_ALLOCATION_MODULE),
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob->MemoryAllocationHeader.Name = gEfiHobMemeryAllocModuleGuid;
|
|
|
|
Hob->MemoryAllocationHeader.MemoryBaseAddress = MemoryAllocationModule;
|
|
|
|
Hob->MemoryAllocationHeader.MemoryLength = ModuleLength;
|
|
|
|
Hob->MemoryAllocationHeader.MemoryType = EfiBootServicesCode;
|
|
|
|
(*PeiServices)->SetMem (
|
|
|
|
Hob->MemoryAllocationHeader.Reserved,
|
|
|
|
sizeof (Hob->MemoryAllocationHeader.Reserved),
|
|
|
|
0
|
|
|
|
);
|
|
|
|
|
|
|
|
Hob->ModuleName = *ModuleName;
|
|
|
|
Hob->EntryPoint = EntryPoint;
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobResourceDescriptor (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_RESOURCE_TYPE ResourceType,
|
|
|
|
IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute,
|
|
|
|
IN EFI_PHYSICAL_ADDRESS PhysicalStart,
|
|
|
|
IN UINT64 NumberOfBytes
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a HOB that describes a chunck of system memory
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
|
|
|
|
ResourceType - The type of resource described by this HOB
|
|
|
|
|
|
|
|
ResourceAttribute - The resource attributes of the memory described by this HOB
|
|
|
|
|
|
|
|
PhysicalStart - The 64 bit physical address of memory described by this HOB
|
|
|
|
|
|
|
|
NumberOfBytes - The length of the memoty described by this HOB in bytes
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
EFI_HOB_RESOURCE_DESCRIPTOR *Hob;
|
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_RESOURCE_DESCRIPTOR,
|
|
|
|
sizeof (EFI_HOB_RESOURCE_DESCRIPTOR),
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob->ResourceType = ResourceType;
|
|
|
|
Hob->ResourceAttribute = ResourceAttribute;
|
|
|
|
Hob->PhysicalStart = PhysicalStart;
|
|
|
|
Hob->ResourceLength = NumberOfBytes;
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobGuid (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_GUID *Guid,
|
|
|
|
IN UINTN DataLength,
|
|
|
|
OUT VOID **Hob
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a custom HOB that is tagged with a GUID for identification
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
Guid - The GUID of the custome HOB type
|
|
|
|
DataLength - The size of the data payload for the GUIDed HOB
|
|
|
|
Hob - Pointer to pointer to the created Hob
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_GUID_EXTENSION,
|
|
|
|
(UINT16) (sizeof (EFI_HOB_GUID_TYPE) + DataLength),
|
|
|
|
Hob
|
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
((EFI_HOB_GUID_TYPE *)(*Hob))->Name = *Guid;
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobGuidData (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_GUID *Guid,
|
|
|
|
IN VOID *Data,
|
|
|
|
IN UINTN DataLength
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a custom HOB that is tagged with a GUID for identification
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
|
|
|
|
Guid - The GUID of the custome HOB type
|
|
|
|
|
|
|
|
Data - The data to be copied into the GUIDed HOB data field.
|
|
|
|
|
|
|
|
DataLength - The data field length.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
|
|
|
|
EFI_HOB_GUID_TYPE *Hob;
|
|
|
|
|
|
|
|
Status = PeiBuildHobGuid (
|
|
|
|
PeiServices,
|
|
|
|
Guid,
|
|
|
|
DataLength,
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob++;
|
|
|
|
(*PeiServices)->CopyMem (Hob, Data, DataLength);
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobFv (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_PHYSICAL_ADDRESS BaseAddress,
|
|
|
|
IN UINT64 Length
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a Firmware Volume HOB
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
|
|
|
|
BaseAddress - The base address of the Firmware Volume
|
|
|
|
|
|
|
|
Length - The size of the Firmware Volume in bytes
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
EFI_HOB_FIRMWARE_VOLUME *Hob;
|
|
|
|
|
|
|
|
//
|
|
|
|
// Check FV Signature
|
|
|
|
//
|
2008-11-18 10:52:43 +01:00
|
|
|
PEI_ASSERT ((CONST EFI_PEI_SERVICES **) PeiServices, ((EFI_FIRMWARE_VOLUME_HEADER*)((UINTN)BaseAddress))->Signature == EFI_FVH_SIGNATURE);
|
2007-06-28 09:00:39 +02:00
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_FV,
|
|
|
|
sizeof (EFI_HOB_FIRMWARE_VOLUME),
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob->BaseAddress = BaseAddress;
|
|
|
|
Hob->Length = Length;
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobCpu (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN UINT8 SizeOfMemorySpace,
|
|
|
|
IN UINT8 SizeOfIoSpace
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a HOB for the CPU
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
|
|
|
|
SizeOfMemorySpace - Identifies the maximum
|
|
|
|
physical memory addressibility of the processor.
|
|
|
|
|
|
|
|
SizeOfIoSpace - Identifies the maximum physical I/O addressibility
|
|
|
|
of the processor.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
EFI_HOB_CPU *Hob;
|
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_CPU,
|
|
|
|
sizeof (EFI_HOB_CPU),
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob->SizeOfMemorySpace = SizeOfMemorySpace;
|
|
|
|
Hob->SizeOfIoSpace = SizeOfIoSpace;
|
|
|
|
(*PeiServices)->SetMem (
|
|
|
|
Hob->Reserved,
|
|
|
|
sizeof (Hob->Reserved),
|
|
|
|
0
|
|
|
|
);
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobStack (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_PHYSICAL_ADDRESS BaseAddress,
|
|
|
|
IN UINT64 Length
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a HOB for the Stack
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
|
|
|
|
BaseAddress - The 64 bit physical address of the Stack
|
|
|
|
|
|
|
|
Length - The length of the stack in bytes
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
EFI_HOB_MEMORY_ALLOCATION_STACK *Hob;
|
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_MEMORY_ALLOCATION,
|
|
|
|
sizeof (EFI_HOB_MEMORY_ALLOCATION_STACK),
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob->AllocDescriptor.Name = gEfiHobMemeryAllocStackGuid;
|
|
|
|
Hob->AllocDescriptor.MemoryBaseAddress = BaseAddress;
|
|
|
|
Hob->AllocDescriptor.MemoryLength = Length;
|
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
1.1) Bug fixes. (For details, please check Documents & files: Snapshot/Release Notes at https://edk.tianocore.org/servlets/ProjectDocumentList?folderID=43&expandFolder=43&folderID=6)
1.2) Add new UEFI protocol definitions for AbsolutePointer, FormBrowser2, HiiConfigAccess, HiiConfigRouting, HiiDatabase, HiiFont, HiiImage, HiiString, SimpleTextInputEx, DPC protocol.
1.3) Add Smbios 2.5, 2.6 supports.
Incompatible changes hilighted:
1) EFI_MANAGED_NETWORK_PROTOCOL_GUID changed.
2) EFI_IP4_IPCONFIG_DATA changed.
2) Add in EdkCompatibilityPkg/EdkCompatibilityPkg.dsc to build all libraries in this package.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4623 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-24 08:10:05 +01:00
|
|
|
Hob->AllocDescriptor.MemoryType = EfiBootServicesData;
|
2007-06-28 09:00:39 +02:00
|
|
|
(*PeiServices)->SetMem (
|
|
|
|
Hob->AllocDescriptor.Reserved,
|
|
|
|
sizeof (Hob->AllocDescriptor.Reserved),
|
|
|
|
0
|
|
|
|
);
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobBspStore (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_PHYSICAL_ADDRESS BaseAddress,
|
|
|
|
IN UINT64 Length,
|
|
|
|
IN EFI_MEMORY_TYPE MemoryType
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a HOB for the bsp store
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
|
|
|
|
BaseAddress - The 64 bit physical address of the bsp
|
|
|
|
|
|
|
|
Length - The length of the bsp store in bytes
|
|
|
|
|
|
|
|
MemoryType - Memory type
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *Hob;
|
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_MEMORY_ALLOCATION,
|
|
|
|
sizeof (EFI_HOB_MEMORY_ALLOCATION_BSP_STORE),
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob->AllocDescriptor.Name = gEfiHobMemeryAllocBspStoreGuid;
|
|
|
|
Hob->AllocDescriptor.MemoryBaseAddress = BaseAddress;
|
|
|
|
Hob->AllocDescriptor.MemoryLength = Length;
|
|
|
|
Hob->AllocDescriptor.MemoryType = MemoryType;
|
|
|
|
(*PeiServices)->SetMem (
|
|
|
|
Hob->AllocDescriptor.Reserved,
|
|
|
|
sizeof (Hob->AllocDescriptor.Reserved),
|
|
|
|
0
|
|
|
|
);
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PeiBuildHobMemoryAllocation (
|
|
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
|
|
IN EFI_PHYSICAL_ADDRESS BaseAddress,
|
|
|
|
IN UINT64 Length,
|
|
|
|
IN EFI_GUID *Name,
|
|
|
|
IN EFI_MEMORY_TYPE MemoryType
|
|
|
|
)
|
|
|
|
/*++
|
|
|
|
|
|
|
|
Routine Description:
|
|
|
|
|
|
|
|
Builds a HOB for the memory allocation.
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
PeiServices - The PEI core services table.
|
|
|
|
|
|
|
|
BaseAddress - The 64 bit physical address of the memory
|
|
|
|
|
|
|
|
Length - The length of the memory allocation in bytes
|
|
|
|
|
|
|
|
Name - Name for Hob
|
|
|
|
|
|
|
|
MemoryType - Memory type
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
EFI_SUCCESS - Hob is successfully built.
|
|
|
|
Others - Errors occur while creating new Hob
|
|
|
|
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
EFI_STATUS Status;
|
|
|
|
EFI_HOB_MEMORY_ALLOCATION *Hob;
|
|
|
|
|
|
|
|
Status = (*PeiServices)->CreateHob (
|
|
|
|
PeiServices,
|
|
|
|
EFI_HOB_TYPE_MEMORY_ALLOCATION,
|
|
|
|
sizeof (EFI_HOB_MEMORY_ALLOCATION),
|
2008-08-23 11:31:51 +02:00
|
|
|
(VOID **) &Hob
|
2007-06-28 09:00:39 +02:00
|
|
|
);
|
|
|
|
if (EFI_ERROR (Status)) {
|
|
|
|
return Status;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (Name != NULL) {
|
|
|
|
Hob->AllocDescriptor.Name = *Name;
|
|
|
|
} else {
|
|
|
|
(*PeiServices)->SetMem(&(Hob->AllocDescriptor.Name), sizeof (EFI_GUID), 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
Hob->AllocDescriptor.MemoryBaseAddress = BaseAddress;
|
|
|
|
Hob->AllocDescriptor.MemoryLength = Length;
|
|
|
|
Hob->AllocDescriptor.MemoryType = MemoryType;
|
|
|
|
(*PeiServices)->SetMem (
|
|
|
|
Hob->AllocDescriptor.Reserved,
|
|
|
|
sizeof (Hob->AllocDescriptor.Reserved),
|
|
|
|
0
|
|
|
|
);
|
|
|
|
|
|
|
|
return EFI_SUCCESS;
|
|
|
|
}
|