summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MdeModulePkg/Include/Guid/VariableRuntimeCacheInfo.h61
-rw-r--r--MdeModulePkg/MdeModulePkg.dec3
2 files changed, 64 insertions, 0 deletions
diff --git a/MdeModulePkg/Include/Guid/VariableRuntimeCacheInfo.h b/MdeModulePkg/Include/Guid/VariableRuntimeCacheInfo.h
new file mode 100644
index 0000000..2f807b8
--- /dev/null
+++ b/MdeModulePkg/Include/Guid/VariableRuntimeCacheInfo.h
@@ -0,0 +1,61 @@
+/** @file
+ This Variable Runtime Cache Info HOB is used to store the address
+ and the size of the buffer that will be used for variable runtime
+ service when the PcdEnableVariableRuntimeCache is TRUE.
+
+ Copyright (c) 2024, Intel Corporation. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef VARIABLE_RUNTIME_CACHE_INFO_H_
+#define VARIABLE_RUNTIME_CACHE_INFO_H_
+
+#define VARIABLE_RUNTIME_CACHE_INFO_HOB_REVISION 1
+
+#define VARIABLE_RUNTIME_CACHE_INFO_GUID \
+ { \
+ 0x0f472f7d, 0x6713, 0x4915, {0x96, 0x14, 0x5d, 0xda, 0x28, 0x40, 0x10, 0x56} \
+ }
+
+typedef struct {
+ ///
+ /// TRUE indicates GetVariable () or GetNextVariable () is being called.
+ /// When the value is FALSE, the given update (and any other pending updates)
+ /// can be flushed to the runtime cache.
+ ///
+ BOOLEAN ReadLock;
+ ///
+ /// TRUE indicates there is pending update for the given variable store needed
+ /// to be flushed to the runtime cache.
+ ///
+ BOOLEAN PendingUpdate;
+ ///
+ /// TRUE indicates all HOB variables have been flushed in flash.
+ ///
+ BOOLEAN HobFlushComplete;
+} CACHE_INFO_FLAG;
+
+typedef struct {
+ EFI_PHYSICAL_ADDRESS CacheInfoFlagBuffer;
+ ///
+ /// Base address of the runtime Hob variable cache Buffer.
+ ///
+ EFI_PHYSICAL_ADDRESS RuntimeHobCacheBuffer;
+ UINT64 RuntimeHobCachePages;
+ ///
+ /// Base address of the non-volatile variable runtime cache Buffer.
+ ///
+ EFI_PHYSICAL_ADDRESS RuntimeNvCacheBuffer;
+ UINT64 RuntimeNvCachePages;
+ ///
+ /// Base address of the volatile variable runtime cache Buffer.
+ ///
+ EFI_PHYSICAL_ADDRESS RuntimeVolatileCacheBuffer;
+ UINT64 RuntimeVolatileCachePages;
+} VARIABLE_RUNTIME_CACHE_INFO;
+
+extern EFI_GUID gEdkiiVariableRuntimeCacheInfoHobGuid;
+
+#endif
diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index 02f330a..fdd1d48 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -468,6 +468,9 @@
## This GUID will be used to save MTRR_SETTINGS at EndOfDxe by LockBox and restore at S3 boot PEI phase for s3 usage.
gEdkiiS3MtrrSettingGuid = { 0xd77baa84, 0xb332, 0x4463, { 0x9f, 0x1d, 0xce, 0x81, 0x00, 0xfe, 0x7f, 0x35 }}
+ ## Include/Guid/VariableRuntimeCacheInfo.h
+ gEdkiiVariableRuntimeCacheInfoHobGuid = { 0x0f472f7d, 0x6713, 0x4915, { 0x96, 0x14, 0x5d, 0xda, 0x28, 0x40, 0x10, 0x56 }}
+
[Ppis]
## Include/Ppi/FirmwareVolumeShadowPpi.h
gEdkiiPeiFirmwareVolumeShadowPpiGuid = { 0x7dfe756c, 0xed8d, 0x4d77, {0x9e, 0xc4, 0x39, 0x9a, 0x8a, 0x81, 0x51, 0x16 } }