]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c
OvmfPkg/SmmCpuFeaturesLib: SEV: encrypt+free pages of init. save state map
[mirror_edk2.git] / OvmfPkg / AcpiPlatformDxe / AcpiPlatform.c
index 47f32e2f76efc7a8a97b003a29747ed1d1fb9368..61166c65c33cd2c366b4b8d11df95f522bff5a43 100644 (file)
@@ -130,42 +130,20 @@ LocateFvInstanceWithTables (
 \r
 \r
 /**\r
-  This function calculates and updates an UINT8 checksum.\r
+  Find ACPI tables in an FV and install them. \r
 \r
-  @param  Buffer          Pointer to buffer to checksum\r
-  @param  Size            Number of bytes to checksum\r
+  This is now a fall-back path. Normally, we will search for tables provided\r
+  by the VMM first.\r
 \r
-**/\r
-VOID\r
-AcpiPlatformChecksum (\r
-  IN UINT8      *Buffer,\r
-  IN UINTN      Size\r
-  )\r
-{\r
-  UINTN ChecksumOffset;\r
-\r
-  ChecksumOffset = OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER, Checksum);\r
-\r
-  //\r
-  // Set checksum to 0 first\r
-  //\r
-  Buffer[ChecksumOffset] = 0;\r
-\r
-  //\r
-  // Update checksum value\r
-  //\r
-  Buffer[ChecksumOffset] = CalculateCheckSum8(Buffer, Size);\r
-}\r
-\r
-/**\r
-  Find ACPI tables in an FV and parses them. This function is useful for QEMU and KVM.\r
+  If that fails, we use this function to load the ACPI tables from an FV. The\r
+  sources for the FV based tables is located under OvmfPkg/AcpiTables.\r
 \r
   @param  AcpiTable     Protocol instance pointer    \r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-FindAcpiTablesInFv (\r
+InstallOvmfFvTables (\r
   IN  EFI_ACPI_TABLE_PROTOCOL     *AcpiTable\r
   )\r
 {\r
@@ -219,11 +197,6 @@ FindAcpiTablesInFv (
       TableSize = ((EFI_ACPI_DESCRIPTION_HEADER *) CurrentTable)->Length;\r
       ASSERT (Size >= TableSize);\r
 \r
-      //\r
-      // Checksum ACPI table\r
-      //\r
-      AcpiPlatformChecksum ((UINT8*)CurrentTable, TableSize);\r
-\r
       //\r
       // Install ACPI table\r
       //\r
@@ -255,7 +228,7 @@ FindAcpiTablesInFv (
 }\r
 \r
 /**\r
-  Entrypoint of Acpi Platform driver.\r
+  Effective entrypoint of Acpi Platform driver.\r
 \r
   @param  ImageHandle\r
   @param  SystemTable\r
@@ -267,38 +240,22 @@ FindAcpiTablesInFv (
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-AcpiPlatformEntryPoint (\r
-  IN EFI_HANDLE         ImageHandle,\r
-  IN EFI_SYSTEM_TABLE   *SystemTable\r
+InstallAcpiTables (\r
+  IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiTable\r
   )\r
 {\r
   EFI_STATUS                         Status;\r
-  EFI_ACPI_TABLE_PROTOCOL            *AcpiTable;\r
-\r
-  //\r
-  // Find the AcpiTable protocol\r
-  //\r
-  Status = gBS->LocateProtocol (\r
-                  &gEfiAcpiTableProtocolGuid,\r
-                  NULL,\r
-                  (VOID**)&AcpiTable\r
-                  );\r
-  if (EFI_ERROR (Status)) {\r
-    return EFI_ABORTED;\r
-  }\r
 \r
   if (XenDetected ()) {\r
     Status = InstallXenTables (AcpiTable);\r
-    if (EFI_ERROR (Status)) {\r
-      Status = FindAcpiTablesInFv (AcpiTable);\r
-    }\r
   } else {\r
-    Status = FindAcpiTablesInFv (AcpiTable);\r
+    Status = InstallQemuFwCfgTables (AcpiTable);\r
   }\r
+\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    Status = InstallOvmfFvTables (AcpiTable);\r
   }\r
 \r
-  return EFI_SUCCESS;\r
+  return Status;\r
 }\r
 \r