diff options
author | Marcin Wojtas <mw@semihalf.com> | 2018-04-16 07:09:12 +0200 |
---|---|---|
committer | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2018-04-16 12:48:08 +0200 |
commit | 79c9dd55a32752b7ae11d5f1a50fa3ae27d6d126 (patch) | |
tree | e9f8d7ef9b2d6781f23bd81999ef33b37e1ea8fc | |
parent | e74f53df8b18e4aed0c9df0942ce0c30f78a68e2 (diff) | |
download | edk2-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.c | 21 | ||||
-rw-r--r-- | Silicon/Marvell/Drivers/Spi/MvFvbDxe/MvFvbDxe.inf | 7 |
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
|