Home | History | Annotate | Download | only in AcpiTables
      1 /** @file
      2 *  Fixed ACPI Description Table (FADT)
      3 *
      4 *  Copyright (c) 2012 - 2016, 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
     21 EFI_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
     28 EFI_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 #ifdef 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 //
     99 VOID* CONST ReferenceAcpiTable = &Fadt;
    100