/** @file

  Fixed ACPI Description Table (FADT)

  Copyright (c) 2017, Linaro Ltd. All rights reserved.<BR>
  Copyright (C) 2018, Marvell International Ltd. and its affiliates.<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#include <Library/AcpiLib.h>

#include "AcpiHeader.h"

#define FADT_FLAGS    EFI_ACPI_6_0_HW_REDUCED_ACPI |           \
                      EFI_ACPI_6_0_LOW_POWER_S0_IDLE_CAPABLE | \
                      EFI_ACPI_6_0_HEADLESS

EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
  __ACPI_HEADER (EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
                 EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE,
                 EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION),
  0,                                            // UINT32     FirmwareCtrl
  0,                                            // UINT32     Dsdt
  EFI_ACPI_RESERVED_BYTE,                       // UINT8      Reserved0
  EFI_ACPI_6_0_PM_PROFILE_ENTERPRISE_SERVER,    // UINT8      PreferredPmProfile
  0,                                            // UINT16     SciInt
  0,                                            // UINT32     SmiCmd
  0,                                            // UINT8      AcpiEnable
  0,                                            // UINT8      AcpiDisable
  0,                                            // UINT8      S4BiosReq
  0,                                            // UINT8      PstateCnt
  0,                                            // UINT32     Pm1aEvtBlk
  0,                                            // UINT32     Pm1bEvtBlk
  0,                                            // UINT32     Pm1aCntBlk
  0,                                            // UINT32     Pm1bCntBlk
  0,                                            // UINT32     Pm2CntBlk
  0,                                            // UINT32     PmTmrBlk
  0,                                            // UINT32     Gpe0Blk
  0,                                            // UINT32     Gpe1Blk
  0,                                            // UINT8      Pm1EvtLen
  0,                                            // UINT8      Pm1CntLen
  0,                                            // UINT8      Pm2CntLen
  0,                                            // UINT8      PmTmrLen
  0,                                            // UINT8      Gpe0BlkLen
  0,                                            // UINT8      Gpe1BlkLen
  0,                                            // UINT8      Gpe1Base
  0,                                            // UINT8      CstCnt
  0,                                            // UINT16     PLvl2Lat
  0,                                            // UINT16     PLvl3Lat
  0,                                            // UINT16     FlushSize
  0,                                            // UINT16     FlushStride
  0,                                            // UINT8      DutyOffset
  0,                                            // UINT8      DutyWidth
  0,                                            // UINT8      DayAlrm
  0,                                            // UINT8      MonAlrm
  0,                                            // UINT8      Century
  0,                                            // UINT16     IaPcBootArch
  0,                                            // UINT8      Reserved1
  FADT_FLAGS,                                   // UINT32     Flags
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  ResetReg
  0,                                            // UINT8      ResetValue
  EFI_ACPI_6_0_ARM_PSCI_COMPLIANT,              // UINT16     ArmBootArch
  EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, // UINT8      MinorVersion
  0,                                            // UINT64     XFirmwareCtrl
  0,                                            // UINT64     XDsdt
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk
  NULL_GAS,                                     // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  SleepControlReg
  NULL_GAS                                      // EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE  SleepStatusReg
};

VOID CONST * CONST ReferenceAcpiTable = &Fadt;
