summaryrefslogtreecommitdiff
path: root/Silicon
diff options
context:
space:
mode:
Diffstat (limited to 'Silicon')
-rw-r--r--Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.c21
-rw-r--r--Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.inf7
2 files changed, 23 insertions, 5 deletions
diff --git a/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.c b/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.c
index 252ef67566..6e583a381f 100644
--- a/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.c
+++ b/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.c
@@ -26,6 +26,7 @@
#include <Library/UefiLib.h>
#include <Library/UefiRuntimeLib.h>
+#include <Guid/NvVarStoreFormatted.h>
#include <Guid/SystemNvDataGuid.h>
#include <Guid/VariableFormat.h>
@@ -1076,6 +1077,21 @@ MvFvbEntryPoint (
}
//
+ // The driver implementing the variable read service can now be dispatched;
+ // the varstore headers are in place.
+ //
+ Status = gBS->InstallProtocolInterface (&gImageHandle,
+ &gEdkiiNvVarStoreFormattedGuid,
+ EFI_NATIVE_INTERFACE,
+ NULL);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR,
+ "%a: Failed to install gEdkiiNvVarStoreFormattedGuid\n",
+ __FUNCTION__));
+ goto ErrorInstallNvVarStoreFormatted;
+ }
+
+ //
// Declare the Non-Volatile storage as EFI_MEMORY_RUNTIME
//
RuntimeMmioRegionSize = mFvbDevice->FvbSize;
@@ -1126,6 +1142,11 @@ ErrorSetMemAttr:
gDS->RemoveMemorySpace (RegionBaseAddress, RuntimeMmioRegionSize);
ErrorAddSpace:
+ gBS->UninstallProtocolInterface (&gImageHandle,
+ &gEdkiiNvVarStoreFormattedGuid,
+ NULL);
+
+ErrorInstallNvVarStoreFormatted:
gBS->UninstallMultipleProtocolInterfaces (&mFvbDevice->Handle,
&gEfiDevicePathProtocolGuid,
&gEfiFirmwareVolumeBlockProtocolGuid,
diff --git a/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.inf b/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.inf
index 117fe8bdd6..fd3f2f72be 100644
--- a/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.inf
+++ b/Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.inf
@@ -63,6 +63,7 @@
UefiRuntimeServicesTableLib
[Guids]
+ gEdkiiNvVarStoreFormattedGuid
gEfiAuthenticatedVariableGuid
gEfiEventVirtualAddressChangeGuid
gEfiSystemNvDataFvGuid
@@ -84,8 +85,4 @@
gMarvellTokenSpaceGuid.PcdSpiMemoryBase
[Depex]
- #
- # MvFvbDxe must be loaded before VariableRuntimeDxe in case empty
- # flash needs populating with default values.
- #
- BEFORE gVariableRuntimeDxeFileGuid
+ gEfiCpuArchProtocolGuid