]>
Commit | Line | Data |
---|---|---|
656419f9 RC |
1 | /*\r |
2 | * Copyright (c) 2020, Rebecca Cran <rebecca@bsdio.com>\r | |
3 | * Copyright (c) 2014, Pluribus Networks, Inc.\r | |
4 | *\r | |
5 | * SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
6 | */\r | |
7 | \r | |
8 | #include <IndustryStandard/HighPrecisionEventTimerTable.h>\r | |
9 | \r | |
10 | #include "Platform.h"\r | |
11 | \r | |
12 | #define EFI_ACPI_HPET_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')\r | |
13 | #define EFI_ACPI_OEM_TABLE_ID SIGNATURE_64('B','V','H','P','E','T',' ',' ')\r | |
14 | \r | |
15 | //\r | |
16 | // Ensure proper structure formats\r | |
17 | //\r | |
18 | #pragma pack (1)\r | |
19 | \r | |
20 | //\r | |
21 | // ACPI HPET structure\r | |
22 | //\r | |
23 | typedef struct {\r | |
24 | EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER Header;\r | |
25 | } EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_DESCRIPTION_TABLE;\r | |
26 | \r | |
27 | #pragma pack ()\r | |
28 | \r | |
29 | //\r | |
30 | // HPET Description Table\r | |
31 | //\r | |
32 | EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_DESCRIPTION_TABLE Hpet = {\r | |
33 | {\r | |
34 | {\r | |
35 | EFI_ACPI_HPET_DESCRIPTION_TABLE_SIGNATURE,\r | |
36 | sizeof (EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_DESCRIPTION_TABLE),\r | |
37 | EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_REVISION,\r | |
38 | 0x00, // Checksum will be updated at runtime\r | |
39 | {EFI_ACPI_OEM_ID},\r | |
40 | EFI_ACPI_OEM_TABLE_ID,\r | |
41 | EFI_ACPI_OEM_REVISION,\r | |
42 | EFI_ACPI_CREATOR_ID,\r | |
43 | EFI_ACPI_CREATOR_REVISION\r | |
44 | },\r | |
45 | \r | |
46 | //\r | |
47 | // HPET specific fields\r | |
48 | //\r | |
49 | 0x0000A400, // EventTimerBlockId\r | |
50 | {\r | |
51 | EFI_ACPI_2_0_SYSTEM_MEMORY,\r | |
52 | 0,\r | |
53 | 0,\r | |
54 | EFI_ACPI_RESERVED_BYTE,\r | |
55 | 0xFED00000,\r | |
56 | },\r | |
57 | 0 // HpetNumber\r | |
58 | }\r | |
59 | };\r | |
60 | \r | |
61 | \r | |
62 | VOID*\r | |
63 | ReferenceAcpiTable (\r | |
64 | VOID\r | |
65 | )\r | |
66 | {\r | |
67 | //\r | |
68 | // Reference the table being generated to prevent the optimizer from removing the\r | |
69 | // data structure from the exeutable\r | |
70 | //\r | |
71 | return (VOID*)&Hpet;\r | |
72 | }\r |