Home | History | Annotate | Download | only in AcpiTables
      1 /** @file
      2   FACP Table
      3 
      4   Copyright (c) 2013, Red Hat, Inc.
      5   Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
      6   This program and the accompanying materials are
      7   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 "Platform.h"
     17 
     18 EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE FACP = {
     19   {
     20     EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
     21     sizeof (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE),
     22     EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION,
     23     0,                          // to make sum of entire table == 0
     24     {EFI_ACPI_OEM_ID},          // OEMID is a 6 bytes long field
     25     EFI_ACPI_OEM_TABLE_ID,      // OEM table identification(8 bytes long)
     26     EFI_ACPI_OEM_REVISION,      // OEM revision number
     27     EFI_ACPI_CREATOR_ID,        // ASL compiler vendor ID
     28     EFI_ACPI_CREATOR_REVISION   // ASL compiler revision number
     29   },
     30   0,                // Physical addesss of FACS
     31   0,                // Physical address of DSDT
     32   RESERVED,         // System Interrupt Model in ACPI 1.0, eliminated in 2.0
     33   EFI_ACPI_2_0_PM_PROFILE_UNSPECIFIED, // Preferred PM profile
     34   SCI_INT_VECTOR,   // System vector of SCI interrupt
     35   SMI_CMD_IO_PORT,  // Port address of SMI command port
     36   ACPI_ENABLE,      // value to write to port smi_cmd to enable ACPI
     37   ACPI_DISABLE,     // value to write to port smi_cmd to disable ACPI
     38   S4BIOS_REQ,       // Value to write to SMI CMD port to enter the S4BIOS state
     39   0,                // PState control
     40   PM1a_EVT_BLK,     // Port address of Power Mgt 1a Event Reg Blk
     41   0,                // Power Mgt 1b Event Reg Blk unsupported
     42   PM1a_CNT_BLK,     // Port address of Power Mgt 1a Ctrl Reg Blk
     43   0,                // Power Mgt 1b Ctrl Reg Blk unsupported
     44   0,                // Power Mgt 2  Ctrl Reg Blk unsupported
     45   PM_TMR_BLK,       // Port address of Power Mgt Timer Ctrl Reg Blk
     46   GPE0_BLK,         // Port addr of General Purpose Event 0 Reg Blk
     47   0,                // General Purpose Event 1 Reg Blk unsupported
     48   PM1_EVT_LEN,      // Byte Length of ports at pm1X_evt_blk
     49   PM1_CNT_LEN,      // Byte Length of ports at pm1X_cnt_blk
     50   0,                // Power Mgt 2 Ctrl Reg Blk unsupported
     51   PM_TM_LEN,        // Byte Length of ports at pm_tm_blk
     52   GPE0_BLK_LEN,     // Byte Length of ports at gpe0_blk
     53   0,                // General Purpose Event 1 Reg Blk unsupported
     54   0,                // General Purpose Event 1 Reg Blk unsupported
     55   0,                // _CST support
     56   P_LVL2_LAT,       // worst case HW latency to enter/exit C2 state
     57   P_LVL3_LAT,       // worst case HW latency to enter/exit C3 state
     58   FLUSH_SIZE,       // Size of area read to flush caches
     59   FLUSH_STRIDE,     // Stride used in flushing caches
     60   DUTY_OFFSET,      // bit location of duty cycle field in p_cnt reg
     61   DUTY_WIDTH,       // bit width of duty cycle field in p_cnt reg
     62   DAY_ALRM,         // index to day-of-month alarm in RTC CMOS RAM
     63   MON_ALRM,         // index to month-of-year alarm in RTC CMOS RAM
     64   CENTURY,          // index to century in RTC CMOS RAM
     65   0x0000,           // Boot architecture flag (16-bit)
     66   RESERVED,         // reserved
     67   FLAG,             // Fixed feature flags
     68   GAS2_IO(RESET_REG, 1), // Extended address of the Reset Register
     69   RESET_VALUE,           // Value for the Reset Register to reset the system
     70   { RESERVED },     // reserved[3]
     71   0,                // 64-bit physical addesss of FACS, set at installation
     72   0,                // 64-bit physical addesss of DSDT, set at installation
     73 
     74   GAS2_IO(PM1a_EVT_BLK, PM1_EVT_LEN), // Ext. addr. of PM 1a Event Reg Blk
     75   { 0 },                              // PM 1b Event Reg Blk unsupported
     76   GAS2_IO(PM1a_CNT_BLK, PM1_CNT_LEN), // Ext. addr. of PM 1a Ctrl Reg Blk
     77   { 0 },                              // PM 1b Ctrl Reg Blk unsupported
     78   { 0 },                              // PM 2  Ctrl Reg Blk unsupported
     79   GAS2_IO(PM_TMR_BLK, PM_TM_LEN),     // Ext. addr. of PM Timer Ctrl Reg Blk
     80   GAS2_IO(GPE0_BLK, GPE0_BLK_LEN),    // Ext. addr. of GPE 0 Reg Blk
     81   { 0 }                               // GPE 1 Reg Blk unsupported
     82 };
     83 
     84 
     85 VOID*
     86 ReferenceAcpiTable (
     87   VOID
     88   )
     89 {
     90   //
     91   // Reference the table being generated to prevent the optimizer from removing the
     92   // data structure from the exeutable
     93   //
     94   return (VOID*)&FACP;
     95 }
     96