diff options
| author | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
|---|---|---|
| committer | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
| commit | 7e2ccccace24636f29ddc210b94606abd4c7e42b (patch) | |
| tree | 545d43ea12671048956cafeb12303e84d601e571 /MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c')
| -rw-r--r-- | MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c | 358 |
1 files changed, 179 insertions, 179 deletions
diff --git a/MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c b/MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c index d589722589..5e24af908b 100644 --- a/MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c +++ b/MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c @@ -1,179 +1,179 @@ -/** @file
- Variable Flash Information Library
-
- Copyright (c) Microsoft Corporation<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Uefi.h>
-#include <Pi/PiMultiPhase.h>
-#include <Guid/VariableFlashInfo.h>
-#include <Library/DebugLib.h>
-#include <Library/HobLib.h>
-#include <Library/VariableFlashInfoLib.h>
-
-/**
- Get the HOB that contains variable flash information.
-
- @param[out] VariableFlashInfo Pointer to a pointer to set to the variable flash information structure.
-
- @retval EFI_SUCCESS Variable flash information was found successfully.
- @retval EFI_INVALID_PARAMETER The VariableFlashInfo pointer given is NULL.
- @retval EFI_NOT_FOUND Variable flash information could not be found.
-
-**/
-STATIC
-EFI_STATUS
-GetVariableFlashInfoFromHob (
- OUT VARIABLE_FLASH_INFO **VariableFlashInfo
- )
-{
- EFI_HOB_GUID_TYPE *GuidHob;
-
- if (VariableFlashInfo == NULL) {
- return EFI_INVALID_PARAMETER;
- }
-
- GuidHob = GetFirstGuidHob (&gVariableFlashInfoHobGuid);
- if (GuidHob == NULL) {
- return EFI_NOT_FOUND;
- }
-
- *VariableFlashInfo = GET_GUID_HOB_DATA (GuidHob);
-
- //
- // Assert if more than one variable flash information HOB is present.
- //
- DEBUG_CODE (
- if ((GetNextGuidHob (&gVariableFlashInfoHobGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
- DEBUG ((DEBUG_ERROR, "ERROR: Found two variable flash information HOBs\n"));
- ASSERT (FALSE);
- }
-
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Get the base address and size for the NV storage area used for UEFI variable storage.
-
- @param[out] BaseAddress The NV storage base address.
- @param[out] Length The NV storage length in bytes.
-
- @retval EFI_SUCCESS NV storage information was found successfully.
- @retval EFI_INVALID_PARAMETER A required pointer parameter is NULL.
-
-**/
-EFI_STATUS
-EFIAPI
-GetVariableFlashNvStorageInfo (
- OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
- OUT UINT64 *Length
- )
-{
- EFI_STATUS Status;
- VARIABLE_FLASH_INFO *VariableFlashInfo;
-
- if ((BaseAddress == NULL) || (Length == NULL)) {
- return EFI_INVALID_PARAMETER;
- }
-
- Status = GetVariableFlashInfoFromHob (&VariableFlashInfo);
- if (!EFI_ERROR (Status)) {
- *BaseAddress = VariableFlashInfo->NvVariableBaseAddress;
- *Length = VariableFlashInfo->NvVariableLength;
- } else {
- *BaseAddress = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageVariableBase64) != 0 ?
- PcdGet64 (PcdFlashNvStorageVariableBase64) :
- PcdGet32 (PcdFlashNvStorageVariableBase)
- );
- *Length = (UINT64)PcdGet32 (PcdFlashNvStorageVariableSize);
- }
-
- return EFI_SUCCESS;
-}
-
-/**
- Get the base address and size for the fault tolerant write (FTW) spare
- area used for UEFI variable storage.
-
- @param[out] BaseAddress The FTW spare base address.
- @param[out] Length The FTW spare length in bytes.
-
- @retval EFI_SUCCESS FTW spare information was found successfully.
- @retval EFI_INVALID_PARAMETER A required pointer parameter is NULL.
- @retval EFI_NOT_FOUND FTW spare information could not be found.
-
-**/
-EFI_STATUS
-EFIAPI
-GetVariableFlashFtwSpareInfo (
- OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
- OUT UINT64 *Length
- )
-{
- EFI_STATUS Status;
- VARIABLE_FLASH_INFO *VariableFlashInfo;
-
- if ((BaseAddress == NULL) || (Length == NULL)) {
- return EFI_INVALID_PARAMETER;
- }
-
- Status = GetVariableFlashInfoFromHob (&VariableFlashInfo);
- if (!EFI_ERROR (Status)) {
- *BaseAddress = VariableFlashInfo->FtwSpareBaseAddress;
- *Length = VariableFlashInfo->FtwSpareLength;
- } else {
- *BaseAddress = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageFtwSpareBase64) != 0 ?
- PcdGet64 (PcdFlashNvStorageFtwSpareBase64) :
- PcdGet32 (PcdFlashNvStorageFtwSpareBase)
- );
- *Length = (UINT64)PcdGet32 (PcdFlashNvStorageFtwSpareSize);
- }
-
- return EFI_SUCCESS;
-}
-
-/**
- Get the base address and size for the fault tolerant write (FTW) working
- area used for UEFI variable storage.
-
- @param[out] BaseAddress The FTW working area base address.
- @param[out] Length The FTW working area length in bytes.
-
- @retval EFI_SUCCESS FTW working information was found successfully.
- @retval EFI_INVALID_PARAMETER A required pointer parameter is NULL.
- @retval EFI_NOT_FOUND FTW working information could not be found.
-
-**/
-EFI_STATUS
-EFIAPI
-GetVariableFlashFtwWorkingInfo (
- OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
- OUT UINT64 *Length
- )
-{
- EFI_STATUS Status;
- VARIABLE_FLASH_INFO *VariableFlashInfo;
-
- if ((BaseAddress == NULL) || (Length == NULL)) {
- return EFI_INVALID_PARAMETER;
- }
-
- Status = GetVariableFlashInfoFromHob (&VariableFlashInfo);
- if (!EFI_ERROR (Status)) {
- *BaseAddress = VariableFlashInfo->FtwWorkingBaseAddress;
- *Length = VariableFlashInfo->FtwWorkingLength;
- } else {
- *BaseAddress = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageFtwWorkingBase64) != 0 ?
- PcdGet64 (PcdFlashNvStorageFtwWorkingBase64) :
- PcdGet32 (PcdFlashNvStorageFtwWorkingBase)
- );
- *Length = (UINT64)PcdGet32 (PcdFlashNvStorageFtwWorkingSize);
- }
-
- return EFI_SUCCESS;
-}
+/** @file + Variable Flash Information Library + + Copyright (c) Microsoft Corporation<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Uefi.h> +#include <Pi/PiMultiPhase.h> +#include <Guid/VariableFlashInfo.h> +#include <Library/DebugLib.h> +#include <Library/HobLib.h> +#include <Library/VariableFlashInfoLib.h> + +/** + Get the HOB that contains variable flash information. + + @param[out] VariableFlashInfo Pointer to a pointer to set to the variable flash information structure. + + @retval EFI_SUCCESS Variable flash information was found successfully. + @retval EFI_INVALID_PARAMETER The VariableFlashInfo pointer given is NULL. + @retval EFI_NOT_FOUND Variable flash information could not be found. + +**/ +STATIC +EFI_STATUS +GetVariableFlashInfoFromHob ( + OUT VARIABLE_FLASH_INFO **VariableFlashInfo + ) +{ + EFI_HOB_GUID_TYPE *GuidHob; + + if (VariableFlashInfo == NULL) { + return EFI_INVALID_PARAMETER; + } + + GuidHob = GetFirstGuidHob (&gVariableFlashInfoHobGuid); + if (GuidHob == NULL) { + return EFI_NOT_FOUND; + } + + *VariableFlashInfo = GET_GUID_HOB_DATA (GuidHob); + + // + // Assert if more than one variable flash information HOB is present. + // + DEBUG_CODE ( + if ((GetNextGuidHob (&gVariableFlashInfoHobGuid, GET_NEXT_HOB (GuidHob)) != NULL)) { + DEBUG ((DEBUG_ERROR, "ERROR: Found two variable flash information HOBs\n")); + ASSERT (FALSE); + } + + ); + + return EFI_SUCCESS; +} + +/** + Get the base address and size for the NV storage area used for UEFI variable storage. + + @param[out] BaseAddress The NV storage base address. + @param[out] Length The NV storage length in bytes. + + @retval EFI_SUCCESS NV storage information was found successfully. + @retval EFI_INVALID_PARAMETER A required pointer parameter is NULL. + +**/ +EFI_STATUS +EFIAPI +GetVariableFlashNvStorageInfo ( + OUT EFI_PHYSICAL_ADDRESS *BaseAddress, + OUT UINT64 *Length + ) +{ + EFI_STATUS Status; + VARIABLE_FLASH_INFO *VariableFlashInfo; + + if ((BaseAddress == NULL) || (Length == NULL)) { + return EFI_INVALID_PARAMETER; + } + + Status = GetVariableFlashInfoFromHob (&VariableFlashInfo); + if (!EFI_ERROR (Status)) { + *BaseAddress = VariableFlashInfo->NvVariableBaseAddress; + *Length = VariableFlashInfo->NvVariableLength; + } else { + *BaseAddress = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageVariableBase64) != 0 ? + PcdGet64 (PcdFlashNvStorageVariableBase64) : + PcdGet32 (PcdFlashNvStorageVariableBase) + ); + *Length = (UINT64)PcdGet32 (PcdFlashNvStorageVariableSize); + } + + return EFI_SUCCESS; +} + +/** + Get the base address and size for the fault tolerant write (FTW) spare + area used for UEFI variable storage. + + @param[out] BaseAddress The FTW spare base address. + @param[out] Length The FTW spare length in bytes. + + @retval EFI_SUCCESS FTW spare information was found successfully. + @retval EFI_INVALID_PARAMETER A required pointer parameter is NULL. + @retval EFI_NOT_FOUND FTW spare information could not be found. + +**/ +EFI_STATUS +EFIAPI +GetVariableFlashFtwSpareInfo ( + OUT EFI_PHYSICAL_ADDRESS *BaseAddress, + OUT UINT64 *Length + ) +{ + EFI_STATUS Status; + VARIABLE_FLASH_INFO *VariableFlashInfo; + + if ((BaseAddress == NULL) || (Length == NULL)) { + return EFI_INVALID_PARAMETER; + } + + Status = GetVariableFlashInfoFromHob (&VariableFlashInfo); + if (!EFI_ERROR (Status)) { + *BaseAddress = VariableFlashInfo->FtwSpareBaseAddress; + *Length = VariableFlashInfo->FtwSpareLength; + } else { + *BaseAddress = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageFtwSpareBase64) != 0 ? + PcdGet64 (PcdFlashNvStorageFtwSpareBase64) : + PcdGet32 (PcdFlashNvStorageFtwSpareBase) + ); + *Length = (UINT64)PcdGet32 (PcdFlashNvStorageFtwSpareSize); + } + + return EFI_SUCCESS; +} + +/** + Get the base address and size for the fault tolerant write (FTW) working + area used for UEFI variable storage. + + @param[out] BaseAddress The FTW working area base address. + @param[out] Length The FTW working area length in bytes. + + @retval EFI_SUCCESS FTW working information was found successfully. + @retval EFI_INVALID_PARAMETER A required pointer parameter is NULL. + @retval EFI_NOT_FOUND FTW working information could not be found. + +**/ +EFI_STATUS +EFIAPI +GetVariableFlashFtwWorkingInfo ( + OUT EFI_PHYSICAL_ADDRESS *BaseAddress, + OUT UINT64 *Length + ) +{ + EFI_STATUS Status; + VARIABLE_FLASH_INFO *VariableFlashInfo; + + if ((BaseAddress == NULL) || (Length == NULL)) { + return EFI_INVALID_PARAMETER; + } + + Status = GetVariableFlashInfoFromHob (&VariableFlashInfo); + if (!EFI_ERROR (Status)) { + *BaseAddress = VariableFlashInfo->FtwWorkingBaseAddress; + *Length = VariableFlashInfo->FtwWorkingLength; + } else { + *BaseAddress = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageFtwWorkingBase64) != 0 ? + PcdGet64 (PcdFlashNvStorageFtwWorkingBase64) : + PcdGet32 (PcdFlashNvStorageFtwWorkingBase) + ); + *Length = (UINT64)PcdGet32 (PcdFlashNvStorageFtwWorkingSize); + } + + return EFI_SUCCESS; +} |
