]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/QemuFlashFvbServices: factor out SetPcdFlashNvStorageBaseAddresses
authorLaszlo Ersek <lersek@redhat.com>
Tue, 10 Mar 2020 22:27:36 +0000 (23:27 +0100)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 12 Mar 2020 21:14:46 +0000 (21:14 +0000)
Extract the dynamic setting of the
- PcdFlashNvStorageVariableBase64
- PcdFlashNvStorageFtwWorkingBase
- PcdFlashNvStorageFtwSpareBase
addresses to a helper function.

For now, the helper function is identical (duplicated) between the SMM
flash driver and the runtime DXE flash driver. In subsequent patches, this
will change.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=386
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200310222739.26717-3-lersek@redhat.com>
Acked-by: Leif Lindholm <leif@nuviainc.com>
OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c
OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h
OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceDxe.c
OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceSmm.c

index b7b99129a80e782289bfc853bf5781dfa7c1e9af..76a7853de04df71d80a1c8516483e260345e614f 100644 (file)
@@ -1051,24 +1051,7 @@ FvbInitialize (
 \r
   MarkIoMemoryRangeForRuntimeAccess (BaseAddress, Length);\r
 \r
-  //\r
-  // Set several PCD values to point to flash\r
-  //\r
-  PcdStatus = PcdSet64S (\r
-    PcdFlashNvStorageVariableBase64,\r
-    (UINTN) PcdGet32 (PcdOvmfFlashNvStorageVariableBase)\r
-    );\r
-  ASSERT_RETURN_ERROR (PcdStatus);\r
-  PcdStatus = PcdSet32S (\r
-    PcdFlashNvStorageFtwWorkingBase,\r
-    PcdGet32 (PcdOvmfFlashNvStorageFtwWorkingBase)\r
-    );\r
-  ASSERT_RETURN_ERROR (PcdStatus);\r
-  PcdStatus = PcdSet32S (\r
-    PcdFlashNvStorageFtwSpareBase,\r
-    PcdGet32 (PcdOvmfFlashNvStorageFtwSpareBase)\r
-    );\r
-  ASSERT_RETURN_ERROR (PcdStatus);\r
+  SetPcdFlashNvStorageBaseAddresses ();\r
 \r
   FwhInstance = (EFI_FW_VOL_INSTANCE *)\r
     (\r
index a12577182d663a7f4701b38d52cc297c476f98b9..d064aee6ef55f214765a98f2d95256500296b4a4 100644 (file)
@@ -190,4 +190,9 @@ MarkIoMemoryRangeForRuntimeAccess (
   IN UINTN                  Length\r
   );\r
 \r
+VOID\r
+SetPcdFlashNvStorageBaseAddresses (\r
+  VOID\r
+  );\r
+\r
 #endif\r
index 69b20916bc7ce582430a88470281eeee30be4b66..e60978fa127badc228ada22a22f4d8fc05ab53a0 100644 (file)
@@ -216,3 +216,30 @@ MarkIoMemoryRangeForRuntimeAccess (
 \r
   return Status;\r
 }\r
+\r
+VOID\r
+SetPcdFlashNvStorageBaseAddresses (\r
+  VOID\r
+  )\r
+{\r
+  RETURN_STATUS PcdStatus;\r
+\r
+  //\r
+  // Set several PCD values to point to flash\r
+  //\r
+  PcdStatus = PcdSet64S (\r
+    PcdFlashNvStorageVariableBase64,\r
+    (UINTN) PcdGet32 (PcdOvmfFlashNvStorageVariableBase)\r
+    );\r
+  ASSERT_RETURN_ERROR (PcdStatus);\r
+  PcdStatus = PcdSet32S (\r
+    PcdFlashNvStorageFtwWorkingBase,\r
+    PcdGet32 (PcdOvmfFlashNvStorageFtwWorkingBase)\r
+    );\r
+  ASSERT_RETURN_ERROR (PcdStatus);\r
+  PcdStatus = PcdSet32S (\r
+    PcdFlashNvStorageFtwSpareBase,\r
+    PcdGet32 (PcdOvmfFlashNvStorageFtwSpareBase)\r
+    );\r
+  ASSERT_RETURN_ERROR (PcdStatus);\r
+}\r
index 1b74fc17b1ee8187e3c971b2fd25e6be0c54ffb4..33bc3e1137be4e4cc8e2ec3901d6414f3f3f900b 100644 (file)
@@ -74,3 +74,30 @@ MarkIoMemoryRangeForRuntimeAccess (
 \r
   return EFI_SUCCESS;\r
 }\r
+\r
+VOID\r
+SetPcdFlashNvStorageBaseAddresses (\r
+  VOID\r
+  )\r
+{\r
+  RETURN_STATUS PcdStatus;\r
+\r
+  //\r
+  // Set several PCD values to point to flash\r
+  //\r
+  PcdStatus = PcdSet64S (\r
+    PcdFlashNvStorageVariableBase64,\r
+    (UINTN) PcdGet32 (PcdOvmfFlashNvStorageVariableBase)\r
+    );\r
+  ASSERT_RETURN_ERROR (PcdStatus);\r
+  PcdStatus = PcdSet32S (\r
+    PcdFlashNvStorageFtwWorkingBase,\r
+    PcdGet32 (PcdOvmfFlashNvStorageFtwWorkingBase)\r
+    );\r
+  ASSERT_RETURN_ERROR (PcdStatus);\r
+  PcdStatus = PcdSet32S (\r
+    PcdFlashNvStorageFtwSpareBase,\r
+    PcdGet32 (PcdOvmfFlashNvStorageFtwSpareBase)\r
+    );\r
+  ASSERT_RETURN_ERROR (PcdStatus);\r
+}\r