mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 23:54:02 +02:00
IntelFrameworkPkg PeiHobLibFramework: Implement BuildFv3Hob
Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
5450086c52
commit
e4623bd5e6
@ -5,7 +5,7 @@
|
|||||||
This library instance uses EFI_HOB_TYPE_CV defined in Intel framework HOB specification v0.9
|
This library instance uses EFI_HOB_TYPE_CV defined in Intel framework HOB specification v0.9
|
||||||
to implement HobLib BuildCvHob() API.
|
to implement HobLib BuildCvHob() API.
|
||||||
|
|
||||||
Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -611,6 +611,60 @@ BuildFv2Hob (
|
|||||||
CopyGuid (&Hob->FileName, FileName);
|
CopyGuid (&Hob->FileName, FileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Builds a EFI_HOB_TYPE_FV3 HOB.
|
||||||
|
|
||||||
|
This function builds a EFI_HOB_TYPE_FV3 HOB.
|
||||||
|
It can only be invoked during PEI phase;
|
||||||
|
for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
|
||||||
|
|
||||||
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
|
If the FvImage buffer is not at its required alignment, then ASSERT().
|
||||||
|
|
||||||
|
@param BaseAddress The base address of the Firmware Volume.
|
||||||
|
@param Length The size of the Firmware Volume in bytes.
|
||||||
|
@param AuthenticationStatus The authentication status.
|
||||||
|
@param ExtractedFv TRUE if the FV was extracted as a file within
|
||||||
|
another firmware volume. FALSE otherwise.
|
||||||
|
@param FvName The name of the Firmware Volume.
|
||||||
|
Valid only if IsExtractedFv is TRUE.
|
||||||
|
@param FileName The name of the file.
|
||||||
|
Valid only if IsExtractedFv is TRUE.
|
||||||
|
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
BuildFv3Hob (
|
||||||
|
IN EFI_PHYSICAL_ADDRESS BaseAddress,
|
||||||
|
IN UINT64 Length,
|
||||||
|
IN UINT32 AuthenticationStatus,
|
||||||
|
IN BOOLEAN ExtractedFv,
|
||||||
|
IN CONST EFI_GUID *FvName, OPTIONAL
|
||||||
|
IN CONST EFI_GUID *FileName OPTIONAL
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_HOB_FIRMWARE_VOLUME3 *Hob;
|
||||||
|
|
||||||
|
if (!InternalCheckFvAlignment (BaseAddress, Length)) {
|
||||||
|
ASSERT (FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Hob = InternalPeiCreateHob (EFI_HOB_TYPE_FV3, (UINT16) sizeof (EFI_HOB_FIRMWARE_VOLUME3));
|
||||||
|
if (Hob == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Hob->BaseAddress = BaseAddress;
|
||||||
|
Hob->Length = Length;
|
||||||
|
Hob->AuthenticationStatus = AuthenticationStatus;
|
||||||
|
Hob->ExtractedFv = ExtractedFv;
|
||||||
|
if (ExtractedFv) {
|
||||||
|
CopyGuid (&Hob->FvName, FvName);
|
||||||
|
CopyGuid (&Hob->FileName, FileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Builds a Capsule Volume HOB.
|
Builds a Capsule Volume HOB.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user