• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/** @file
2*  Fixed ACPI Description Table (FADT)
3*
4*  Copyright (c) 2012 - 2014, ARM Limited. All rights reserved.
5*
6*  This program and the accompanying materials
7*  are licensed and made available under the terms and conditions of the BSD License
8*  which accompanies this distribution.  The full text of the license may be found at
9*  http://opensource.org/licenses/bsd-license.php
10*
11*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13*
14**/
15
16#include "ArmPlatform.h"
17#include <Library/AcpiLib.h>
18#include <IndustryStandard/Acpi.h>
19
20#ifdef ARM_JUNO_ACPI_5_0
21EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
22  ARM_ACPI_HEADER (
23    EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
24    EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE,
25    EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION
26  ),
27#else
28EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
29  ARM_ACPI_HEADER (
30    EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
31    EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE,
32    EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION
33  ),
34#endif
35  0,                                                                        // UINT32     FirmwareCtrl
36  0,                                                                        // UINT32     Dsdt
37  EFI_ACPI_RESERVED_BYTE,                                                   // UINT8      Reserved0
38  EFI_ACPI_5_0_PM_PROFILE_UNSPECIFIED,                                      // UINT8      PreferredPmProfile
39  0,                                                                        // UINT16     SciInt
40  0,                                                                        // UINT32     SmiCmd
41  0,                                                                        // UINT8      AcpiEnable
42  0,                                                                        // UINT8      AcpiDisable
43  0,                                                                        // UINT8      S4BiosReq
44  0,                                                                        // UINT8      PstateCnt
45  0,                                                                        // UINT32     Pm1aEvtBlk
46  0,                                                                        // UINT32     Pm1bEvtBlk
47  0,                                                                        // UINT32     Pm1aCntBlk
48  0,                                                                        // UINT32     Pm1bCntBlk
49  0,                                                                        // UINT32     Pm2CntBlk
50  0,                                                                        // UINT32     PmTmrBlk
51  0,                                                                        // UINT32     Gpe0Blk
52  0,                                                                        // UINT32     Gpe1Blk
53  0,                                                                        // UINT8      Pm1EvtLen
54  0,                                                                        // UINT8      Pm1CntLen
55  0,                                                                        // UINT8      Pm2CntLen
56  0,                                                                        // UINT8      PmTmrLen
57  0,                                                                        // UINT8      Gpe0BlkLen
58  0,                                                                        // UINT8      Gpe1BlkLen
59  0,                                                                        // UINT8      Gpe1Base
60  0,                                                                        // UINT8      CstCnt
61  0,                                                                        // UINT16     PLvl2Lat
62  0,                                                                        // UINT16     PLvl3Lat
63  0,                                                                        // UINT16     FlushSize
64  0,                                                                        // UINT16     FlushStride
65  0,                                                                        // UINT8      DutyOffset
66  0,                                                                        // UINT8      DutyWidth
67  0,                                                                        // UINT8      DayAlrm
68  0,                                                                        // UINT8      MonAlrm
69  0,                                                                        // UINT8      Century
70  0,                                                                        // UINT16     IaPcBootArch
71  0,                                                                        // UINT8      Reserved1
72  EFI_ACPI_5_0_HW_REDUCED_ACPI | EFI_ACPI_5_0_LOW_POWER_S0_IDLE_CAPABLE,    // UINT32     Flags
73  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  ResetReg
74  0,                                                                        // UINT8      ResetValue
75#if ARM_JUNO_ACPI_5_0
76  {EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE},   // UINT8      Reserved2[3]
77#else
78  EFI_ACPI_5_1_ARM_PSCI_COMPLIANT,                                          // UINT16     ArmBootArchFlags
79  EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,                 // UINT8      MinorRevision
80#endif
81  0,                                                                        // UINT64     XFirmwareCtrl
82  0,                                                                        // UINT64     XDsdt
83  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk
84  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk
85  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk
86  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk
87  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk
88  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk
89  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk
90  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk
91  NULL_GAS,                                                                 // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  SleepControlReg
92  NULL_GAS                                                                  // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  SleepStatusReg
93};
94
95//
96// Reference the table being generated to prevent the optimizer from removing the
97// data structure from the executable
98//
99VOID* CONST ReferenceAcpiTable = &Fadt;
100