/** @file ARM Dynamic Table Manager Dxe Copyright (c) 2017 - 2019, ARM Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include // Module specific include files. #include #include #include #include #include #include #include #include "DynamicTableManagerDxe.h" /// /// Array containing the ACPI tables to check. /// We require the FADT, MADT, GTDT and the DSDT tables to boot. /// This list also include optional ACPI tables: DBG2, SPCR. /// The FADT table must be placed at index 0. /// STATIC ACPI_TABLE_PRESENCE_INFO mAcpiVerifyTables[] = { { EStdAcpiTableIdFadt, EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, "FADT", TRUE, 0 }, { EStdAcpiTableIdMadt, EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, "MADT", TRUE, 0 }, { EStdAcpiTableIdGtdt, EFI_ACPI_6_2_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, "GTDT", TRUE, 0 }, { EStdAcpiTableIdDsdt, EFI_ACPI_6_2_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, "DSDT", TRUE, 0 }, { EStdAcpiTableIdDbg2, EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE, "DBG2", FALSE, 0 }, { EStdAcpiTableIdSpcr, EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE, "SPCR", FALSE, 0 }, }; /** Get the arch specific ACPI table presence information. @param [out] PresenceArray Array containing the ACPI tables to check. @param [out] PresenceArrayCount Count of elements in the PresenceArray. @param [out] FadtIndex Index of the FADT table in the PresenceArray. -1 if absent. @retval EFI_SUCCESS Success. **/ EFI_STATUS EFIAPI GetAcpiTablePresenceInfo ( OUT ACPI_TABLE_PRESENCE_INFO **PresenceArray, OUT UINT32 *PresenceArrayCount, OUT INT32 *FadtIndex ) { *PresenceArray = mAcpiVerifyTables; *PresenceArrayCount = ARRAY_SIZE (mAcpiVerifyTables); *FadtIndex = ACPI_TABLE_VERIFY_FADT; return EFI_SUCCESS; }