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/Include/Guid/VariableFlashInfo.h | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'MdeModulePkg/Include/Guid/VariableFlashInfo.h')
| -rw-r--r-- | MdeModulePkg/Include/Guid/VariableFlashInfo.h | 222 |
1 files changed, 111 insertions, 111 deletions
diff --git a/MdeModulePkg/Include/Guid/VariableFlashInfo.h b/MdeModulePkg/Include/Guid/VariableFlashInfo.h index 992a0dcdd3..5d836f3ea9 100644 --- a/MdeModulePkg/Include/Guid/VariableFlashInfo.h +++ b/MdeModulePkg/Include/Guid/VariableFlashInfo.h @@ -1,111 +1,111 @@ -/** @file
- This file defines the GUID and data structure used to pass information about
- a variable store mapped on flash (i.e. a MMIO firmware volume) to the modules
- that consume that information such as the DXE and MM UEFI variable drivers.
-
- The HOB described in this file is currently optional. It is primarily provided
- to allow a platform to dynamically describe the flash information to environments
- such as Standalone MM that cannot access the prior method using dynamic PCDs.
-
- Even for platforms that use Standalone MM, if the information is only stored
- statically such as with FixedAtBuild PCDs, the HOB is not required.
-
- Every point of consumption in this package that uses the PCDs will first check
- for the HOB and use its value if present.
-
- Early modules such as the PEI UEFI variable driver might also consume this
- information. For modules such as these, that execute early in the boot flow,
- at least two approaches are possible depending on platform design.
-
- 1. If the information in the HOB exactly matches the information in the PCDs,
- (i.e. the HOB values are set using the PCD values), let the driver read
- the information from the PCD and produce the HOB later in boot.
-
- 2. Produce the HOB very early in boot. For example, the earliest point the HOB
- is currently consumed is in FaultTolerantWritePei. Note that FaultTolerantWritePei
- produces gEdkiiFaultTolerantWriteGuid which is a dependency for VariablePei.
-
- Therefore, attaching a NULL class library to FaultTolerantWritePei with a
- constructor that produces the HOB will guarantee it is produced before the first
- point of consumption as the constructor is executed before the module entry point.
-
- Copyright (c) Microsoft Corporation.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef VARIABLE_FLASH_INFO_H_
-#define VARIABLE_FLASH_INFO_H_
-
-#define VARIABLE_FLASH_INFO_HOB_GUID \
- { 0x5d11c653, 0x8154, 0x4ac3, { 0xa8, 0xc2, 0xfb, 0xa2, 0x89, 0x20, 0xfc, 0x90 }}
-
-#define VARIABLE_FLASH_INFO_HOB_VERSION 1
-
-extern EFI_GUID gVariableFlashInfoHobGuid;
-
-#pragma pack (push, 1)
-
-///
-/// This structure can be used to describe UEFI variable
-/// flash information.
-///
-typedef struct {
- ///
- /// Version of this structure.
- ///
- /// Increment the value when the structure is modified.
- ///
- UINT32 Version;
- ///
- /// Reserved field.
- ///
- /// Currently reserved for natural alignment.
- ///
- UINT32 Reserved;
- ///
- /// Base address of the non-volatile variable range in the flash device.
- ///
- /// Note that this address should align with the block size requirements of the flash device.
- ///
- EFI_PHYSICAL_ADDRESS NvVariableBaseAddress;
- ///
- /// Size of the non-volatile variable range in the flash device.
- ///
- /// Note that this value should be less than or equal to FtwSpareLength to support reclaim of
- /// entire variable store area.
- /// Note that this address should align with the block size requirements of the flash device.
- ///
- UINT64 NvVariableLength;
- ///
- /// Base address of the FTW spare block range in the flash device.
- ///
- /// Note that this address should align with the block size requirements of the flash device.
- ///
- EFI_PHYSICAL_ADDRESS FtwSpareBaseAddress;
- ///
- /// Size of the FTW spare block range in the flash device.
- ///
- /// Note that this value should be greater than or equal to NvVariableLength.
- /// Note that this address should align with the block size requirements of the flash device.
- ///
- UINT64 FtwSpareLength;
- ///
- /// Base address of the FTW working block range in the flash device.
- ///
- /// Note that if FtwWorkingLength is larger than on block size, this value should be block size aligned.
- ///
- EFI_PHYSICAL_ADDRESS FtwWorkingBaseAddress;
- ///
- /// Size of the FTW working block range in the flash device.
- ///
- /// Note that if the value is less than on block size, the range should not span blocks.
- /// Note that if the value is larger than one block size, this value should be block size aligned.
- ///
- UINT64 FtwWorkingLength;
-} VARIABLE_FLASH_INFO;
-
-#pragma pack (pop)
-
-#endif
+/** @file + This file defines the GUID and data structure used to pass information about + a variable store mapped on flash (i.e. a MMIO firmware volume) to the modules + that consume that information such as the DXE and MM UEFI variable drivers. + + The HOB described in this file is currently optional. It is primarily provided + to allow a platform to dynamically describe the flash information to environments + such as Standalone MM that cannot access the prior method using dynamic PCDs. + + Even for platforms that use Standalone MM, if the information is only stored + statically such as with FixedAtBuild PCDs, the HOB is not required. + + Every point of consumption in this package that uses the PCDs will first check + for the HOB and use its value if present. + + Early modules such as the PEI UEFI variable driver might also consume this + information. For modules such as these, that execute early in the boot flow, + at least two approaches are possible depending on platform design. + + 1. If the information in the HOB exactly matches the information in the PCDs, + (i.e. the HOB values are set using the PCD values), let the driver read + the information from the PCD and produce the HOB later in boot. + + 2. Produce the HOB very early in boot. For example, the earliest point the HOB + is currently consumed is in FaultTolerantWritePei. Note that FaultTolerantWritePei + produces gEdkiiFaultTolerantWriteGuid which is a dependency for VariablePei. + + Therefore, attaching a NULL class library to FaultTolerantWritePei with a + constructor that produces the HOB will guarantee it is produced before the first + point of consumption as the constructor is executed before the module entry point. + + Copyright (c) Microsoft Corporation.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef VARIABLE_FLASH_INFO_H_ +#define VARIABLE_FLASH_INFO_H_ + +#define VARIABLE_FLASH_INFO_HOB_GUID \ + { 0x5d11c653, 0x8154, 0x4ac3, { 0xa8, 0xc2, 0xfb, 0xa2, 0x89, 0x20, 0xfc, 0x90 }} + +#define VARIABLE_FLASH_INFO_HOB_VERSION 1 + +extern EFI_GUID gVariableFlashInfoHobGuid; + +#pragma pack (push, 1) + +/// +/// This structure can be used to describe UEFI variable +/// flash information. +/// +typedef struct { + /// + /// Version of this structure. + /// + /// Increment the value when the structure is modified. + /// + UINT32 Version; + /// + /// Reserved field. + /// + /// Currently reserved for natural alignment. + /// + UINT32 Reserved; + /// + /// Base address of the non-volatile variable range in the flash device. + /// + /// Note that this address should align with the block size requirements of the flash device. + /// + EFI_PHYSICAL_ADDRESS NvVariableBaseAddress; + /// + /// Size of the non-volatile variable range in the flash device. + /// + /// Note that this value should be less than or equal to FtwSpareLength to support reclaim of + /// entire variable store area. + /// Note that this address should align with the block size requirements of the flash device. + /// + UINT64 NvVariableLength; + /// + /// Base address of the FTW spare block range in the flash device. + /// + /// Note that this address should align with the block size requirements of the flash device. + /// + EFI_PHYSICAL_ADDRESS FtwSpareBaseAddress; + /// + /// Size of the FTW spare block range in the flash device. + /// + /// Note that this value should be greater than or equal to NvVariableLength. + /// Note that this address should align with the block size requirements of the flash device. + /// + UINT64 FtwSpareLength; + /// + /// Base address of the FTW working block range in the flash device. + /// + /// Note that if FtwWorkingLength is larger than on block size, this value should be block size aligned. + /// + EFI_PHYSICAL_ADDRESS FtwWorkingBaseAddress; + /// + /// Size of the FTW working block range in the flash device. + /// + /// Note that if the value is less than on block size, the range should not span blocks. + /// Note that if the value is larger than one block size, this value should be block size aligned. + /// + UINT64 FtwWorkingLength; +} VARIABLE_FLASH_INFO; + +#pragma pack (pop) + +#endif |
