]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c
OvmfPkg: replace old EFI_D_ debug levels with new DEBUG_ ones
[mirror_edk2.git] / OvmfPkg / QemuFlashFvbServicesRuntimeDxe / QemuFlash.c
index 888d1eaa42e18f24b0448d1c71a80c057525bbf3..1b0d6c053f1aa526460519fd100f8c26a2acda1a 100644 (file)
@@ -3,23 +3,13 @@
 \r
   Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>\r
 \r
-  This program and the accompanying materials are licensed and made available\r
-  under the terms and conditions of the BSD License which accompanies this\r
-  distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
-#include "PiDxe.h"\r
-#include <Library/DebugLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
+#include <Library/DebugLib.h>\r
 #include <Library/PcdLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiRuntimeLib.h>\r
-#include <Guid/EventGroup.h>\r
 \r
 #include "QemuFlash.h"\r
 \r
 #define CLEARED_ARRAY_STATUS  0x00\r
 \r
 \r
-STATIC UINT8       *mFlashBase = NULL;\r
+UINT8 *mFlashBase;\r
+\r
 STATIC UINTN       mFdBlockSize = 0;\r
 STATIC UINTN       mFdBlockCount = 0;\r
 \r
-\r
-VOID\r
-QemuFlashConvertPointers (\r
-  VOID\r
-  )\r
-{\r
-  EfiConvertPointer (0x0, (VOID **) &mFlashBase);\r
-}\r
-\r
-\r
 STATIC\r
 volatile UINT8*\r
 QemuFlashPtr (\r
@@ -93,35 +74,35 @@ QemuFlashDetected (
   }\r
 \r
   if (Offset >= mFdBlockSize) {\r
-    DEBUG ((EFI_D_INFO, "QEMU Flash: Failed to find probe location\n"));\r
+    DEBUG ((DEBUG_INFO, "QEMU Flash: Failed to find probe location\n"));\r
     return FALSE;\r
   }\r
 \r
-  DEBUG ((EFI_D_INFO, "QEMU Flash: Attempting flash detection at %p\n", Ptr));\r
+  DEBUG ((DEBUG_INFO, "QEMU Flash: Attempting flash detection at %p\n", Ptr));\r
 \r
   OriginalUint8 = *Ptr;\r
   *Ptr = CLEAR_STATUS_CMD;\r
   ProbeUint8 = *Ptr;\r
   if (OriginalUint8 != CLEAR_STATUS_CMD &&\r
       ProbeUint8 == CLEAR_STATUS_CMD) {\r
-    DEBUG ((EFI_D_INFO, "QemuFlashDetected => FD behaves as RAM\n"));\r
+    DEBUG ((DEBUG_INFO, "QemuFlashDetected => FD behaves as RAM\n"));\r
     *Ptr = OriginalUint8;\r
   } else {\r
     *Ptr = READ_STATUS_CMD;\r
     ProbeUint8 = *Ptr;\r
     if (ProbeUint8 == OriginalUint8) {\r
-      DEBUG ((EFI_D_INFO, "QemuFlashDetected => FD behaves as ROM\n"));\r
+      DEBUG ((DEBUG_INFO, "QemuFlashDetected => FD behaves as ROM\n"));\r
     } else if (ProbeUint8 == READ_STATUS_CMD) {\r
-      DEBUG ((EFI_D_INFO, "QemuFlashDetected => FD behaves as RAM\n"));\r
+      DEBUG ((DEBUG_INFO, "QemuFlashDetected => FD behaves as RAM\n"));\r
       *Ptr = OriginalUint8;\r
     } else if (ProbeUint8 == CLEARED_ARRAY_STATUS) {\r
-      DEBUG ((EFI_D_INFO, "QemuFlashDetected => FD behaves as FLASH\n"));\r
+      DEBUG ((DEBUG_INFO, "QemuFlashDetected => FD behaves as FLASH\n"));\r
       FlashDetected = TRUE;\r
       *Ptr = READ_ARRAY_CMD;\r
     }\r
   }\r
 \r
-  DEBUG ((EFI_D_INFO, "QemuFlashDetected => %a\n",\r
+  DEBUG ((DEBUG_INFO, "QemuFlashDetected => %a\n",\r
                       FlashDetected ? "Yes" : "No"));\r
   return FlashDetected;\r
 }\r
@@ -257,7 +238,17 @@ QemuFlashInitialize (
   ASSERT(PcdGet32 (PcdOvmfFirmwareFdSize) % mFdBlockSize == 0);\r
   mFdBlockCount = PcdGet32 (PcdOvmfFirmwareFdSize) / mFdBlockSize;\r
 \r
+  //\r
+  // execute module specific hooks before probing the flash\r
+  //\r
+  QemuFlashBeforeProbe (\r
+    (EFI_PHYSICAL_ADDRESS)(UINTN) mFlashBase,\r
+    mFdBlockSize,\r
+    mFdBlockCount\r
+    );\r
+\r
   if (!QemuFlashDetected ()) {\r
+    ASSERT (!FeaturePcdGet (PcdSmmSmramRequire));\r
     return EFI_WRITE_PROTECTED;\r
   }\r
 \r