]> git.proxmox.com Git - mirror_edk2.git/blobdiff - PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c
PcAtChipsetPkg PcRtc: Use new EfiLocateFirstAcpiTable()
[mirror_edk2.git] / PcAtChipsetPkg / PcatRealTimeClockRuntimeDxe / PcRtc.c
index 2105acf35f7b78f75172a18ea14f49e0e1fbd461..7965eb8aa55b92caef7a63834695506123935e2d 100644 (file)
@@ -1202,49 +1202,6 @@ IsWithinOneDay (
   return Adjacent;\r
 }\r
 \r
-/**\r
-  This function find ACPI table with the specified signature in RSDT or XSDT.\r
-\r
-  @param Sdt              ACPI RSDT or XSDT.\r
-  @param Signature        ACPI table signature.\r
-  @param TablePointerSize Size of table pointer: 4 or 8.\r
-\r
-  @return ACPI table or NULL if not found.\r
-**/\r
-VOID *\r
-ScanTableInSDT (\r
-  IN EFI_ACPI_DESCRIPTION_HEADER    *Sdt,\r
-  IN UINT32                         Signature,\r
-  IN UINTN                          TablePointerSize\r
-  )\r
-{\r
-  UINTN                          Index;\r
-  UINTN                          EntryCount;\r
-  UINTN                          EntryBase;\r
-  EFI_ACPI_DESCRIPTION_HEADER    *Table;\r
-\r
-  EntryCount = (Sdt->Length - sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / TablePointerSize;\r
-\r
-  EntryBase = (UINTN) (Sdt + 1);\r
-  for (Index = 0; Index < EntryCount; Index++) {\r
-    //\r
-    // When TablePointerSize is 4 while sizeof (VOID *) is 8, make sure the upper 4 bytes are zero.\r
-    //\r
-    Table = 0;\r
-    CopyMem (&Table, (VOID *) (EntryBase + Index * TablePointerSize), TablePointerSize);\r
-\r
-    if (Table == NULL) {\r
-      continue;\r
-    }\r
-\r
-    if (Table->Signature == Signature) {\r
-      return Table;\r
-    }\r
-  }\r
-\r
-  return NULL;\r
-}\r
-\r
 /**\r
   Get the century RTC address from the ACPI FADT table.\r
 \r
@@ -1255,42 +1212,11 @@ GetCenturyRtcAddress (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                                    Status;\r
-  EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER  *Rsdp;\r
   EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE     *Fadt;\r
 \r
-  Status = EfiGetSystemConfigurationTable (&gEfiAcpiTableGuid, (VOID **) &Rsdp);\r
-  if (EFI_ERROR (Status)) {\r
-    Status = EfiGetSystemConfigurationTable (&gEfiAcpi10TableGuid, (VOID **) &Rsdp);\r
-  }\r
-\r
-  if (EFI_ERROR (Status) || (Rsdp == NULL)) {\r
-    return 0;\r
-  }\r
-\r
-  Fadt = NULL;\r
-\r
-  //\r
-  // Find FADT in XSDT\r
-  //\r
-  if (Rsdp->Revision >= EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION && Rsdp->XsdtAddress != 0) {\r
-    Fadt = ScanTableInSDT (\r
-             (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->XsdtAddress,\r
-             EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,\r
-             sizeof (UINTN)\r
-             );\r
-  }\r
-\r
-  //\r
-  // Find FADT in RSDT\r
-  //\r
-  if (Fadt == NULL && Rsdp->RsdtAddress != 0) {\r
-    Fadt = ScanTableInSDT (\r
-             (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->RsdtAddress,\r
-             EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,\r
-             sizeof (UINT32)\r
-             );\r
-  }\r
+  Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *) EfiLocateFirstAcpiTable (\r
+                                                         EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE\r
+                                                         );\r
 \r
   if ((Fadt != NULL) &&\r
       (Fadt->Century > RTC_ADDRESS_REGISTER_D) && (Fadt->Century < 0x80)\r