/* * Copyright (c) 2020, Rebecca Cran * Copyright (c) 2014, Pluribus Networks, Inc. * * SPDX-License-Identifier: BSD-2-Clause-Patent */ #include #include "Platform.h" #define EFI_ACPI_HPET_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T') #define EFI_ACPI_OEM_TABLE_ID SIGNATURE_64('B','V','H','P','E','T',' ',' ') // // Ensure proper structure formats // #pragma pack (1) // // ACPI HPET structure // typedef struct { EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER Header; } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_DESCRIPTION_TABLE; #pragma pack () // // HPET Description Table // EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_DESCRIPTION_TABLE Hpet = { { { EFI_ACPI_HPET_DESCRIPTION_TABLE_SIGNATURE, sizeof (EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_DESCRIPTION_TABLE), EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_REVISION, 0x00, // Checksum will be updated at runtime {EFI_ACPI_OEM_ID}, EFI_ACPI_OEM_TABLE_ID, EFI_ACPI_OEM_REVISION, EFI_ACPI_CREATOR_ID, EFI_ACPI_CREATOR_REVISION }, // // HPET specific fields // 0x0000A400, // EventTimerBlockId { EFI_ACPI_2_0_SYSTEM_MEMORY, 0, 0, EFI_ACPI_RESERVED_BYTE, 0xFED00000, }, 0 // HpetNumber } }; VOID* ReferenceAcpiTable ( VOID ) { // // Reference the table being generated to prevent the optimizer from removing the // data structure from the exeutable // return (VOID*)&Hpet; }