mirror of https://github.com/acidanthera/audk.git
MdePkg HobLib: Add BuildFv3Hob API
Add BuildFv3Hob API in HobLib.h and implement the API in HobLib instances PeiHobLib, DxeHobLib and DxeCoreHobLib. 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
4e6fed2719
commit
5450086c52
|
@ -6,9 +6,9 @@
|
||||||
defined in the PI Specification.
|
defined in the PI Specification.
|
||||||
A HOB is a Hand-Off Block, defined in the Framework architecture, that
|
A HOB is a Hand-Off Block, defined in the Framework architecture, that
|
||||||
allows the PEI phase to pass information to the DXE phase. HOBs are position
|
allows the PEI phase to pass information to the DXE phase. HOBs are position
|
||||||
independent and can be relocated easily to different memory memory locations.
|
independent and can be relocated easily to different memory locations.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 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
|
||||||
|
@ -342,6 +342,38 @@ BuildFv2Hob (
|
||||||
IN CONST EFI_GUID *FileName
|
IN CONST EFI_GUID *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
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Builds a Capsule Volume HOB.
|
Builds a Capsule Volume HOB.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
HOB Library implementation for DxeCore driver.
|
HOB Library implementation for DxeCore driver.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 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
|
||||||
|
@ -432,6 +432,41 @@ BuildFv2Hob (
|
||||||
ASSERT (FALSE);
|
ASSERT (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
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
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ASSERT (FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Builds a Capsule Volume HOB.
|
Builds a Capsule Volume HOB.
|
||||||
|
|
||||||
|
|
|
@ -466,6 +466,40 @@ BuildFv2Hob (
|
||||||
ASSERT (FALSE);
|
ASSERT (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
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
|
||||||
|
)
|
||||||
|
{
|
||||||
|
ASSERT (FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Builds a Capsule Volume HOB.
|
Builds a Capsule Volume HOB.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Provide Hob Library functions for Pei phase.
|
Provide Hob Library functions for Pei phase.
|
||||||
|
|
||||||
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
|
||||||
|
@ -609,6 +609,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…
Reference in New Issue