summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Wojtas <mw@semihalf.com>2018-04-16 07:09:12 +0200
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2018-04-16 12:48:08 +0200
commit79c9dd55a32752b7ae11d5f1a50fa3ae27d6d126 (patch)
treee9f8d7ef9b2d6781f23bd81999ef33b37e1ea8fc
parente74f53df8b18e4aed0c9df0942ce0c30f78a68e2 (diff)
downloadedk2-platforms-79c9dd55a32752b7ae11d5f1a50fa3ae27d6d126.tar.xz
Marvell/Drivers: MvFvbDxe: Adjust to new dependencies
Recent changes in the EDK2 mainline resulted in breaking of compilation and booting of Armada platforms. This patch adjust the MvFvbDxe driver by: * installation of gEdkiiNvVarStoreFormattedGuid in order to signal NvVarStoreFormattedLib to the generic variable runtime driver * making explicit dependency to ArmPkg/Drivers/CpuDxe drivers in order to enable successful calling of gDS->SetMemorySpaceAttributes Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-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