diff options
Diffstat (limited to 'roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib')
-rw-r--r-- | roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c | 35 | ||||
-rw-r--r-- | roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf | 46 |
2 files changed, 81 insertions, 0 deletions
diff --git a/roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c b/roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c new file mode 100644 index 000000000..353a20907 --- /dev/null +++ b/roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c @@ -0,0 +1,35 @@ +/** @file
+ A hook-in library for:
+ - MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
+ - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
+ - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
+
+ Plugging this library instance into one of the above modules makes that
+ variable service backend wait for another platform module to dynamically
+ initialize or verify EFI_FIRMWARE_VOLUME_HEADER and VARIABLE_STORE_HEADER in
+ the non-volatile variable store FVB device. The initialization / verification
+ is signaled by installing gEdkiiNvVarStoreFormattedGuid into the
+ phase-matching PPI or protocol database, with a NULL interface. (Note that
+ installing gEdkiiNvVarStoreFormattedGuid into either the DXE or the MM
+ protocol database will unblock VariableSmm -- refer to EFI_SECTION_MM_DEPEX
+ in the PI spec.)
+
+ Copyright (C) 2018, Red Hat, Inc.
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <Base.h>
+
+RETURN_STATUS
+EFIAPI
+NvVarStoreFormattedInitialize (
+ VOID
+ )
+{
+ //
+ // Do nothing, just imbue VariablePei / VariableRuntimeDxe / VariableSmm with
+ // a PPI or protocol dependency on EDKII_NV_VAR_STORE_FORMATTED_GUID.
+ //
+ return RETURN_SUCCESS;
+}
diff --git a/roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf b/roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf new file mode 100644 index 000000000..e2eed26c5 --- /dev/null +++ b/roms/edk2/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf @@ -0,0 +1,46 @@ +## @file
+# A hook-in library for:
+# - MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
+# - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
+# - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
+#
+# Plugging this library instance into one of the above modules makes that
+# variable service backend wait for another platform module to dynamically
+# initialize or verify EFI_FIRMWARE_VOLUME_HEADER and VARIABLE_STORE_HEADER in
+# the non-volatile variable store FVB device. The initialization / verification
+# is signaled by installing gEdkiiNvVarStoreFormattedGuid into the
+# phase-matching PPI or protocol database, with a NULL interface. (Note that
+# installing gEdkiiNvVarStoreFormattedGuid into either the DXE or the MM
+# protocol database will unblock VariableSmm -- refer to EFI_SECTION_MM_DEPEX
+# in the PI spec.)
+#
+# Copyright (C) 2018, Red Hat, Inc.
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+ INF_VERSION = 1.27
+ BASE_NAME = NvVarStoreFormattedLib
+ FILE_GUID = 78f76ae8-ae62-4455-8148-c3a7ebaaa3f3
+ MODULE_TYPE = BASE
+ VERSION_STRING = 1.0
+ LIBRARY_CLASS = NvVarStoreFormattedLib|PEIM DXE_RUNTIME_DRIVER DXE_DRIVER DXE_SMM_DRIVER
+ CONSTRUCTOR = NvVarStoreFormattedInitialize
+
+[Sources]
+ NvVarStoreFormattedLib.c
+
+[Packages]
+ EmbeddedPkg/EmbeddedPkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+ MdePkg/MdePkg.dec
+
+#
+# The matching DEPEX section below will generate the EFI_SECTION_PEI_DEPEX,
+# EFI_SECTION_DXE_DEPEX or EFI_SECTION_MM_DEPEX leaf section for the PEIM
+# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER/DXE_DRIVER (EFI_FV_FILETYPE_DRIVER), or
+# DXE_SMM_DRIVER (EFI_FV_FILETYPE_MM) module, respectively.
+#
+[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_DRIVER, Depex.common.DXE_SMM_DRIVER]
+ gEdkiiNvVarStoreFormattedGuid
|