1/** @file
2*  Fixed ACPI Description Table (FADT)
3*
4*  Copyright (c) 2020, Linaro Limited. All rights reserved.
5*
6*  SPDX-License-Identifier: BSD-2-Clause-Patent
7**/
8
9#include <Library/AcpiLib.h>
10#include <IndustryStandard/Acpi.h>
11#include <IndustryStandard/SbsaQemuAcpi.h>
12
13EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
14  SBSAQEMU_ACPI_HEADER (
15    EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
16    EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE,
17    EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION
18  ),
19  0,                                            // UINT32     FirmwareCtrl
20  0,                                            // UINT32     Dsdt
21  EFI_ACPI_RESERVED_BYTE,                       // UINT8      Reserved0
22  EFI_ACPI_6_0_PM_PROFILE_ENTERPRISE_SERVER,    // UINT8      PreferredPmProfile
23  0,                                            // UINT16     SciInt
24  0,                                            // UINT32     SmiCmd
25  0,                                            // UINT8      AcpiEnable
26  0,                                            // UINT8      AcpiDisable
27  0,                                            // UINT8      S4BiosReq
28  0,                                            // UINT8      PstateCnt
29  0,                                            // UINT32     Pm1aEvtBlk
30  0,                                            // UINT32     Pm1bEvtBlk
31  0,                                            // UINT32     Pm1aCntBlk
32  0,                                            // UINT32     Pm1bCntBlk
33  0,                                            // UINT32     Pm2CntBlk
34  0,                                            // UINT32     PmTmrBlk
35  0,                                            // UINT32     Gpe0Blk
36  0,                                            // UINT32     Gpe1Blk
37  0,                                            // UINT8      Pm1EvtLen
38  0,                                            // UINT8      Pm1CntLen
39  0,                                            // UINT8      Pm2CntLen
40  0,                                            // UINT8      PmTmrLen
41  0,                                            // UINT8      Gpe0BlkLen
42  0,                                            // UINT8      Gpe1BlkLen
43  0,                                            // UINT8      Gpe1Base
44  0,                                            // UINT8      CstCnt
45  0,                                            // UINT16     PLvl2Lat
46  0,                                            // UINT16     PLvl3Lat
47  0,                                            // UINT16     FlushSize
48  0,                                            // UINT16     FlushStride
49  0,                                            // UINT8      DutyOffset
50  0,                                            // UINT8      DutyWidth
51  0,                                            // UINT8      DayAlrm
52  0,                                            // UINT8      MonAlrm
53  0,                                            // UINT8      Century
54  0,                                            // UINT16     IaPcBootArch
55  0,                                            // UINT8      Reserved1
56  EFI_ACPI_6_0_HW_REDUCED_ACPI |
57  EFI_ACPI_6_0_LOW_POWER_S0_IDLE_CAPABLE,       // UINT32     Flags
58  NULL_GAS,                                     // GAS        ResetReg
59  0,                                            // UINT8      ResetValue
60  EFI_ACPI_6_0_ARM_PSCI_COMPLIANT,              // UINT16     ArmBootArchFlags
61  EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,
62                                                // UINT8      MinorRevision
63  0,                                            // UINT64     XFirmwareCtrl
64  0,                                            // UINT64     XDsdt
65  NULL_GAS,                                     // GAS        XPm1aEvtBlk
66  NULL_GAS,                                     // GAS        XPm1bEvtBlk
67  NULL_GAS,                                     // GAS        XPm1aCntBlk
68  NULL_GAS,                                     // GAS        XPm1bCntBlk
69  NULL_GAS,                                     // GAS        XPm2CntBlk
70  NULL_GAS,                                     // GAS        XPmTmrBlk
71  NULL_GAS,                                     // GAS        XGpe0Blk
72  NULL_GAS,                                     // GAS        XGpe1Blk
73  NULL_GAS,                                     // GAS        SleepControlReg
74  NULL_GAS,                                     // GAS        SleepStatusReg
75  0                                             // UINT64     HypervisorVendorId
76};
77
78// Reference the table being generated to prevent the optimizer
79// from removing the data structure from the executable
80VOID* CONST ReferenceAcpiTable = &Fadt;
81