]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / Library / QemuFwCfgLib / QemuFwCfgLib.c
index 1387ea85f3f08cf14d329111947c13842b694c24..8e8f54ba3facfe558520b9835603337269e0a6fd 100644 (file)
@@ -4,13 +4,7 @@
   Copyright (C) 2013, Red Hat, Inc.\r
   Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>\r
 \r
   Copyright (C) 2013, Red Hat, Inc.\r
   Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>\r
 \r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this 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
 \r
 **/\r
 \r
 \r
 #include "QemuFwCfgLibInternal.h"\r
 \r
 \r
 #include "QemuFwCfgLibInternal.h"\r
 \r
-\r
 /**\r
   Selects a firmware configuration item for reading.\r
 /**\r
   Selects a firmware configuration item for reading.\r
-  \r
+\r
   Following this call, any data read from this item will start from\r
   the beginning of the configuration item's data.\r
 \r
   Following this call, any data read from this item will start from\r
   the beginning of the configuration item's data.\r
 \r
 VOID\r
 EFIAPI\r
 QemuFwCfgSelectItem (\r
 VOID\r
 EFIAPI\r
 QemuFwCfgSelectItem (\r
-  IN FIRMWARE_CONFIG_ITEM   QemuFwCfgItem\r
+  IN FIRMWARE_CONFIG_ITEM  QemuFwCfgItem\r
   )\r
 {\r
   )\r
 {\r
-  DEBUG ((EFI_D_INFO, "Select Item: 0x%x\n", (UINT16)(UINTN) QemuFwCfgItem));\r
-  IoWrite16 (FW_CFG_IO_SELECTOR, (UINT16)(UINTN) QemuFwCfgItem);\r
+  DEBUG ((DEBUG_INFO, "Select Item: 0x%x\n", (UINT16)(UINTN)QemuFwCfgItem));\r
+  IoWrite16 (FW_CFG_IO_SELECTOR, (UINT16)(UINTN)QemuFwCfgItem);\r
 }\r
 \r
 }\r
 \r
-\r
-/**\r
-  Transfer an array of bytes, or skip a number of bytes, using the DMA\r
-  interface.\r
-\r
-  @param[in]     Size     Size in bytes to transfer or skip.\r
-\r
-  @param[in,out] Buffer   Buffer to read data into or write data from. Ignored,\r
-                          and may be NULL, if Size is zero, or Control is\r
-                          FW_CFG_DMA_CTL_SKIP.\r
-\r
-  @param[in]     Control  One of the following:\r
-                          FW_CFG_DMA_CTL_WRITE - write to fw_cfg from Buffer.\r
-                          FW_CFG_DMA_CTL_READ  - read from fw_cfg into Buffer.\r
-                          FW_CFG_DMA_CTL_SKIP  - skip bytes in fw_cfg.\r
-**/\r
-VOID\r
-InternalQemuFwCfgDmaBytes (\r
-  IN     UINT32   Size,\r
-  IN OUT VOID     *Buffer OPTIONAL,\r
-  IN     UINT32   Control\r
-  )\r
-{\r
-  volatile FW_CFG_DMA_ACCESS Access;\r
-  UINT32                     AccessHigh, AccessLow;\r
-  UINT32                     Status;\r
-\r
-  ASSERT (Control == FW_CFG_DMA_CTL_WRITE || Control == FW_CFG_DMA_CTL_READ ||\r
-    Control == FW_CFG_DMA_CTL_SKIP);\r
-\r
-  if (Size == 0) {\r
-    return;\r
-  }\r
-\r
-  Access.Control = SwapBytes32 (Control);\r
-  Access.Length  = SwapBytes32 (Size);\r
-  Access.Address = SwapBytes64 ((UINTN)Buffer);\r
-\r
-  //\r
-  // Delimit the transfer from (a) modifications to Access, (b) in case of a\r
-  // write, from writes to Buffer by the caller.\r
-  //\r
-  MemoryFence ();\r
-\r
-  //\r
-  // Start the transfer.\r
-  //\r
-  AccessHigh = (UINT32)RShiftU64 ((UINTN)&Access, 32);\r
-  AccessLow  = (UINT32)(UINTN)&Access;\r
-  IoWrite32 (0x514, SwapBytes32 (AccessHigh));\r
-  IoWrite32 (0x518, SwapBytes32 (AccessLow));\r
-\r
-  //\r
-  // Don't look at Access.Control before starting the transfer.\r
-  //\r
-  MemoryFence ();\r
-\r
-  //\r
-  // Wait for the transfer to complete.\r
-  //\r
-  do {\r
-    Status = SwapBytes32 (Access.Control);\r
-    ASSERT ((Status & FW_CFG_DMA_CTL_ERROR) == 0);\r
-  } while (Status != 0);\r
-\r
-  //\r
-  // After a read, the caller will want to use Buffer.\r
-  //\r
-  MemoryFence ();\r
-}\r
-\r
-\r
 /**\r
   Reads firmware configuration bytes into a buffer\r
 \r
 /**\r
   Reads firmware configuration bytes into a buffer\r
 \r
@@ -127,17 +48,17 @@ InternalQemuFwCfgDmaBytes (
 VOID\r
 EFIAPI\r
 InternalQemuFwCfgReadBytes (\r
 VOID\r
 EFIAPI\r
 InternalQemuFwCfgReadBytes (\r
-  IN UINTN                  Size,\r
-  IN VOID                   *Buffer  OPTIONAL\r
+  IN UINTN  Size,\r
+  IN VOID   *Buffer  OPTIONAL\r
   )\r
 {\r
   )\r
 {\r
-  if (InternalQemuFwCfgDmaIsAvailable () && Size <= MAX_UINT32) {\r
+  if (InternalQemuFwCfgDmaIsAvailable () && (Size <= MAX_UINT32)) {\r
     InternalQemuFwCfgDmaBytes ((UINT32)Size, Buffer, FW_CFG_DMA_CTL_READ);\r
     return;\r
   }\r
     InternalQemuFwCfgDmaBytes ((UINT32)Size, Buffer, FW_CFG_DMA_CTL_READ);\r
     return;\r
   }\r
-  IoReadFifo8 (0x511, Size, Buffer);\r
-}\r
 \r
 \r
+  IoReadFifo8 (FW_CFG_IO_DATA, Size, Buffer);\r
+}\r
 \r
 /**\r
   Reads firmware configuration bytes into a buffer\r
 \r
 /**\r
   Reads firmware configuration bytes into a buffer\r
@@ -153,8 +74,8 @@ InternalQemuFwCfgReadBytes (
 VOID\r
 EFIAPI\r
 QemuFwCfgReadBytes (\r
 VOID\r
 EFIAPI\r
 QemuFwCfgReadBytes (\r
-  IN UINTN                  Size,\r
-  IN VOID                   *Buffer\r
+  IN UINTN  Size,\r
+  IN VOID   *Buffer\r
   )\r
 {\r
   if (InternalQemuFwCfgIsAvailable ()) {\r
   )\r
 {\r
   if (InternalQemuFwCfgIsAvailable ()) {\r
@@ -178,20 +99,20 @@ QemuFwCfgReadBytes (
 VOID\r
 EFIAPI\r
 QemuFwCfgWriteBytes (\r
 VOID\r
 EFIAPI\r
 QemuFwCfgWriteBytes (\r
-  IN UINTN                  Size,\r
-  IN VOID                   *Buffer\r
+  IN UINTN  Size,\r
+  IN VOID   *Buffer\r
   )\r
 {\r
   if (InternalQemuFwCfgIsAvailable ()) {\r
   )\r
 {\r
   if (InternalQemuFwCfgIsAvailable ()) {\r
-    if (InternalQemuFwCfgDmaIsAvailable () && Size <= MAX_UINT32) {\r
+    if (InternalQemuFwCfgDmaIsAvailable () && (Size <= MAX_UINT32)) {\r
       InternalQemuFwCfgDmaBytes ((UINT32)Size, Buffer, FW_CFG_DMA_CTL_WRITE);\r
       return;\r
     }\r
       InternalQemuFwCfgDmaBytes ((UINT32)Size, Buffer, FW_CFG_DMA_CTL_WRITE);\r
       return;\r
     }\r
-    IoWriteFifo8 (0x511, Size, Buffer);\r
+\r
+    IoWriteFifo8 (FW_CFG_IO_DATA, Size, Buffer);\r
   }\r
 }\r
 \r
   }\r
 }\r
 \r
-\r
 /**\r
   Skip bytes in the firmware configuration item.\r
 \r
 /**\r
   Skip bytes in the firmware configuration item.\r
 \r
@@ -204,17 +125,17 @@ QemuFwCfgWriteBytes (
 VOID\r
 EFIAPI\r
 QemuFwCfgSkipBytes (\r
 VOID\r
 EFIAPI\r
 QemuFwCfgSkipBytes (\r
-  IN UINTN                  Size\r
+  IN UINTN  Size\r
   )\r
 {\r
   )\r
 {\r
-  UINTN ChunkSize;\r
-  UINT8 SkipBuffer[256];\r
+  UINTN  ChunkSize;\r
+  UINT8  SkipBuffer[256];\r
 \r
   if (!InternalQemuFwCfgIsAvailable ()) {\r
     return;\r
   }\r
 \r
 \r
   if (!InternalQemuFwCfgIsAvailable ()) {\r
     return;\r
   }\r
 \r
-  if (InternalQemuFwCfgDmaIsAvailable () && Size <= MAX_UINT32) {\r
+  if (InternalQemuFwCfgDmaIsAvailable () && (Size <= MAX_UINT32)) {\r
     InternalQemuFwCfgDmaBytes ((UINT32)Size, NULL, FW_CFG_DMA_CTL_SKIP);\r
     return;\r
   }\r
     InternalQemuFwCfgDmaBytes ((UINT32)Size, NULL, FW_CFG_DMA_CTL_SKIP);\r
     return;\r
   }\r
@@ -230,12 +151,11 @@ QemuFwCfgSkipBytes (
   //\r
   while (Size > 0) {\r
     ChunkSize = MIN (Size, sizeof SkipBuffer);\r
   //\r
   while (Size > 0) {\r
     ChunkSize = MIN (Size, sizeof SkipBuffer);\r
-    IoReadFifo8 (0x511, ChunkSize, SkipBuffer);\r
+    IoReadFifo8 (FW_CFG_IO_DATA, ChunkSize, SkipBuffer);\r
     Size -= ChunkSize;\r
   }\r
 }\r
 \r
     Size -= ChunkSize;\r
   }\r
 }\r
 \r
-\r
 /**\r
   Reads a UINT8 firmware configuration value\r
 \r
 /**\r
   Reads a UINT8 firmware configuration value\r
 \r
@@ -248,14 +168,13 @@ QemuFwCfgRead8 (
   VOID\r
   )\r
 {\r
   VOID\r
   )\r
 {\r
-  UINT8 Result;\r
+  UINT8  Result;\r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
-\r
 /**\r
   Reads a UINT16 firmware configuration value\r
 \r
 /**\r
   Reads a UINT16 firmware configuration value\r
 \r
@@ -268,14 +187,13 @@ QemuFwCfgRead16 (
   VOID\r
   )\r
 {\r
   VOID\r
   )\r
 {\r
-  UINT16 Result;\r
+  UINT16  Result;\r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
-\r
 /**\r
   Reads a UINT32 firmware configuration value\r
 \r
 /**\r
   Reads a UINT32 firmware configuration value\r
 \r
@@ -288,14 +206,13 @@ QemuFwCfgRead32 (
   VOID\r
   )\r
 {\r
   VOID\r
   )\r
 {\r
-  UINT32 Result;\r
+  UINT32  Result;\r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
-\r
 /**\r
   Reads a UINT64 firmware configuration value\r
 \r
 /**\r
   Reads a UINT64 firmware configuration value\r
 \r
@@ -308,14 +225,13 @@ QemuFwCfgRead64 (
   VOID\r
   )\r
 {\r
   VOID\r
   )\r
 {\r
-  UINT64 Result;\r
+  UINT64  Result;\r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
 \r
   QemuFwCfgReadBytes (sizeof (Result), &Result);\r
 \r
   return Result;\r
 }\r
 \r
-\r
 /**\r
   Find the configuration item corresponding to the firmware configuration file.\r
 \r
 /**\r
   Find the configuration item corresponding to the firmware configuration file.\r
 \r
@@ -337,8 +253,8 @@ QemuFwCfgFindFile (
   OUT  UINTN                 *Size\r
   )\r
 {\r
   OUT  UINTN                 *Size\r
   )\r
 {\r
-  UINT32 Count;\r
-  UINT32 Idx;\r
+  UINT32  Count;\r
+  UINT32  Idx;\r
 \r
   if (!InternalQemuFwCfgIsAvailable ()) {\r
     return RETURN_UNSUPPORTED;\r
 \r
   if (!InternalQemuFwCfgIsAvailable ()) {\r
     return RETURN_UNSUPPORTED;\r
@@ -348,15 +264,15 @@ QemuFwCfgFindFile (
   Count = SwapBytes32 (QemuFwCfgRead32 ());\r
 \r
   for (Idx = 0; Idx < Count; ++Idx) {\r
   Count = SwapBytes32 (QemuFwCfgRead32 ());\r
 \r
   for (Idx = 0; Idx < Count; ++Idx) {\r
-    UINT32 FileSize;\r
-    UINT16 FileSelect;\r
-    UINT16 FileReserved;\r
-    CHAR8  FName[QEMU_FW_CFG_FNAME_SIZE];\r
+    UINT32  FileSize;\r
+    UINT16  FileSelect;\r
+    UINT16  FileReserved;\r
+    CHAR8   FName[QEMU_FW_CFG_FNAME_SIZE];\r
 \r
     FileSize     = QemuFwCfgRead32 ();\r
     FileSelect   = QemuFwCfgRead16 ();\r
     FileReserved = QemuFwCfgRead16 ();\r
 \r
     FileSize     = QemuFwCfgRead32 ();\r
     FileSelect   = QemuFwCfgRead16 ();\r
     FileReserved = QemuFwCfgRead16 ();\r
-    (VOID) FileReserved; /* Force a do-nothing reference. */\r
+    (VOID)FileReserved;  /* Force a do-nothing reference. */\r
     InternalQemuFwCfgReadBytes (sizeof (FName), FName);\r
 \r
     if (AsciiStrCmp (Name, FName) == 0) {\r
     InternalQemuFwCfgReadBytes (sizeof (FName), FName);\r
 \r
     if (AsciiStrCmp (Name, FName) == 0) {\r
@@ -368,31 +284,3 @@ QemuFwCfgFindFile (
 \r
   return RETURN_NOT_FOUND;\r
 }\r
 \r
   return RETURN_NOT_FOUND;\r
 }\r
-\r
-\r
-/**\r
-  Determine if S3 support is explicitly enabled.\r
-\r
-  @retval  TRUE   if S3 support is explicitly enabled.\r
-           FALSE  otherwise. This includes unavailability of the firmware\r
-                  configuration interface.\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-QemuFwCfgS3Enabled (\r
-  VOID\r
-  )\r
-{\r
-  RETURN_STATUS        Status;\r
-  FIRMWARE_CONFIG_ITEM FwCfgItem;\r
-  UINTN                FwCfgSize;\r
-  UINT8                SystemStates[6];\r
-\r
-  Status = QemuFwCfgFindFile ("etc/system-states", &FwCfgItem, &FwCfgSize);\r
-  if (Status != RETURN_SUCCESS || FwCfgSize != sizeof SystemStates) {\r
-    return FALSE;\r
-  }\r
-  QemuFwCfgSelectItem (FwCfgItem);\r
-  QemuFwCfgReadBytes (sizeof SystemStates, SystemStates);\r
-  return (BOOLEAN) (SystemStates[3] & BIT7);\r
-}\r