summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c80
1 files changed, 3 insertions, 77 deletions
diff --git a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c
index 2105acf35f..7965eb8aa5 100644
--- a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c
+++ b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c
@@ -1203,49 +1203,6 @@ IsWithinOneDay (
}
/**
- This function find ACPI table with the specified signature in RSDT or XSDT.
-
- @param Sdt ACPI RSDT or XSDT.
- @param Signature ACPI table signature.
- @param TablePointerSize Size of table pointer: 4 or 8.
-
- @return ACPI table or NULL if not found.
-**/
-VOID *
-ScanTableInSDT (
- IN EFI_ACPI_DESCRIPTION_HEADER *Sdt,
- IN UINT32 Signature,
- IN UINTN TablePointerSize
- )
-{
- UINTN Index;
- UINTN EntryCount;
- UINTN EntryBase;
- EFI_ACPI_DESCRIPTION_HEADER *Table;
-
- EntryCount = (Sdt->Length - sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / TablePointerSize;
-
- EntryBase = (UINTN) (Sdt + 1);
- for (Index = 0; Index < EntryCount; Index++) {
- //
- // When TablePointerSize is 4 while sizeof (VOID *) is 8, make sure the upper 4 bytes are zero.
- //
- Table = 0;
- CopyMem (&Table, (VOID *) (EntryBase + Index * TablePointerSize), TablePointerSize);
-
- if (Table == NULL) {
- continue;
- }
-
- if (Table->Signature == Signature) {
- return Table;
- }
- }
-
- return NULL;
-}
-
-/**
Get the century RTC address from the ACPI FADT table.
@return The century RTC address or 0 if not found.
@@ -1255,42 +1212,11 @@ GetCenturyRtcAddress (
VOID
)
{
- EFI_STATUS Status;
- EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp;
EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt;
- Status = EfiGetSystemConfigurationTable (&gEfiAcpiTableGuid, (VOID **) &Rsdp);
- if (EFI_ERROR (Status)) {
- Status = EfiGetSystemConfigurationTable (&gEfiAcpi10TableGuid, (VOID **) &Rsdp);
- }
-
- if (EFI_ERROR (Status) || (Rsdp == NULL)) {
- return 0;
- }
-
- Fadt = NULL;
-
- //
- // Find FADT in XSDT
- //
- if (Rsdp->Revision >= EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION && Rsdp->XsdtAddress != 0) {
- Fadt = ScanTableInSDT (
- (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->XsdtAddress,
- EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
- sizeof (UINTN)
- );
- }
-
- //
- // Find FADT in RSDT
- //
- if (Fadt == NULL && Rsdp->RsdtAddress != 0) {
- Fadt = ScanTableInSDT (
- (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->RsdtAddress,
- EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
- sizeof (UINT32)
- );
- }
+ Fadt = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *) EfiLocateFirstAcpiTable (
+ EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE
+ );
if ((Fadt != NULL) &&
(Fadt->Century > RTC_ADDRESS_REGISTER_D) && (Fadt->Century < 0x80)