Home | History | Annotate | Download | only in AcpiDescription
      1 /*++
      2 
      3 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 Module Name:
     13 
     14     AcpiDescription.h
     15 
     16 Abstract:
     17 
     18 
     19    GUIDs used for ACPI Description
     20 
     21 --*/
     22 
     23 #ifndef _EFI_ACPI_DESCRIPTION_H_
     24 #define _EFI_ACPI_DESCRIPTION_H_
     25 
     26 #define EFI_ACPI_DESCRIPTION_GUID \
     27   { \
     28     0x3c699197, 0x93c, 0x4c69, {0xb0, 0x6b, 0x12, 0x8a, 0xe3, 0x48, 0x1d, 0xc9} \
     29   }
     30 
     31 #pragma pack(1)
     32 typedef struct {
     33   UINT8   AddressSpaceId;
     34   UINT8   RegisterBitWidth;
     35   UINT8   RegisterBitOffset;
     36   UINT8   AccessSize;
     37   UINT64  Address;
     38 } EFI_ACPI_GENERIC_ADDRESS_STRUCTURE;
     39 
     40 #define ACPI_ADDRESS_ID_MEMORY    0
     41 #define ACPI_ADDRESS_ID_IO        1
     42 #define ACPI_ADDRESS_ID_PCI       2
     43 #define ACPI_ADDRESS_ID_EC        3
     44 #define ACPI_ADDRESS_ID_SMBUS     4
     45 
     46 #define ACPI_ADDRESS_ACCESS_ANY   0
     47 #define ACPI_ADDRESS_ACCESS_BYTE  1
     48 #define ACPI_ADDRESS_ACCESS_WORD  2
     49 #define ACPI_ADDRESS_ACCESS_DWORD 3
     50 #define ACPI_ADDRESS_ACCESS_QWORD 4
     51 
     52 //
     53 // Following structure defines ACPI Description information.
     54 // This information is platform specific, may be consumed by DXE generic driver.
     55 //
     56 typedef struct _EFI_ACPI_DESCRIPTION {
     57   //
     58   // For Timer
     59   //
     60   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM_TMR_BLK;
     61   UINT8                                    PM_TMR_LEN;
     62   UINT8                                    TMR_VAL_EXT;
     63 
     64   //
     65   // For RTC
     66   //
     67   UINT8                                    DAY_ALRM;
     68   UINT8                                    MON_ALRM;
     69   UINT8                                    CENTURY;
     70 
     71   //
     72   // For Reset
     73   //
     74   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       RESET_REG;
     75   UINT8                                    RESET_VALUE;
     76 
     77   //
     78   // For Shutdown
     79   //
     80   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1a_EVT_BLK;
     81   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1b_EVT_BLK;
     82   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1a_CNT_BLK;
     83   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1b_CNT_BLK;
     84   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM2_CNT_BLK;
     85   UINT8                                    PM1_EVT_LEN;
     86   UINT8                                    PM1_CNT_LEN;
     87   UINT8                                    PM2_CNT_LEN;
     88   UINT8                                    SLP_TYPa;
     89   UINT8                                    SLP_TYPb;
     90 
     91   //
     92   // For sleep
     93   //
     94   UINT8                                    SLP1_TYPa;
     95   UINT8                                    SLP1_TYPb;
     96   UINT8                                    SLP2_TYPa;
     97   UINT8                                    SLP2_TYPb;
     98   UINT8                                    SLP3_TYPa;
     99   UINT8                                    SLP3_TYPb;
    100   UINT8                                    SLP4_TYPa;
    101   UINT8                                    SLP4_TYPb;
    102 
    103   //
    104   // GPE
    105   //
    106   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       GPE0_BLK;
    107   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       GPE1_BLK;
    108   UINT8                                    GPE0_BLK_LEN;
    109   UINT8                                    GPE1_BLK_LEN;
    110   UINT8                                    GPE1_BASE;
    111 
    112   //
    113   // IAPC Boot Arch
    114   //
    115   UINT16                                   IAPC_BOOT_ARCH;
    116 
    117   //
    118   // Flags
    119   //
    120   UINT32                                   Flags;
    121 
    122 } EFI_ACPI_DESCRIPTION;
    123 #pragma pack()
    124 
    125 extern EFI_GUID gEfiAcpiDescriptionGuid;
    126 
    127 #endif
    128