Home | History | Annotate | Line # | Download | only in examples
extables.c revision 1.1
      1  1.1  christos /******************************************************************************
      2  1.1  christos  *
      3  1.1  christos  * Module Name: extables - ACPI tables for Example program
      4  1.1  christos  *
      5  1.1  christos  *****************************************************************************/
      6  1.1  christos 
      7  1.1  christos /*
      8  1.1  christos  * Copyright (C) 2000 - 2013, Intel Corp.
      9  1.1  christos  * All rights reserved.
     10  1.1  christos  *
     11  1.1  christos  * Redistribution and use in source and binary forms, with or without
     12  1.1  christos  * modification, are permitted provided that the following conditions
     13  1.1  christos  * are met:
     14  1.1  christos  * 1. Redistributions of source code must retain the above copyright
     15  1.1  christos  *    notice, this list of conditions, and the following disclaimer,
     16  1.1  christos  *    without modification.
     17  1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18  1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
     19  1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
     20  1.1  christos  *    including a substantially similar Disclaimer requirement for further
     21  1.1  christos  *    binary redistribution.
     22  1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
     23  1.1  christos  *    of any contributors may be used to endorse or promote products derived
     24  1.1  christos  *    from this software without specific prior written permission.
     25  1.1  christos  *
     26  1.1  christos  * Alternatively, this software may be distributed under the terms of the
     27  1.1  christos  * GNU General Public License ("GPL") version 2 as published by the Free
     28  1.1  christos  * Software Foundation.
     29  1.1  christos  *
     30  1.1  christos  * NO WARRANTY
     31  1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32  1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  1.1  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34  1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35  1.1  christos  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36  1.1  christos  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37  1.1  christos  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38  1.1  christos  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39  1.1  christos  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40  1.1  christos  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41  1.1  christos  * POSSIBILITY OF SUCH DAMAGES.
     42  1.1  christos  */
     43  1.1  christos 
     44  1.1  christos #define __EXTABLES_C__
     45  1.1  christos 
     46  1.1  christos #include "examples.h"
     47  1.1  christos #include "actables.h"
     48  1.1  christos 
     49  1.1  christos #define _COMPONENT          ACPI_EXAMPLE
     50  1.1  christos         ACPI_MODULE_NAME    ("extables")
     51  1.1  christos 
     52  1.1  christos ACPI_PHYSICAL_ADDRESS
     53  1.1  christos AeLocalGetRootPointer (
     54  1.1  christos     void);
     55  1.1  christos 
     56  1.1  christos 
     57  1.1  christos /******************************************************************************
     58  1.1  christos  *
     59  1.1  christos  * ACPICA Example tables and table setup
     60  1.1  christos  *
     61  1.1  christos  * This module contains the ACPI tables used for the example program. The
     62  1.1  christos  * original source code for the tables appears at the end of the module.
     63  1.1  christos  *
     64  1.1  christos  *****************************************************************************/
     65  1.1  christos 
     66  1.1  christos 
     67  1.1  christos /* These tables will be modified at runtime */
     68  1.1  christos 
     69  1.1  christos unsigned char RsdpCode[] =
     70  1.1  christos {
     71  1.1  christos     0x52,0x53,0x44,0x20,0x50,0x54,0x52,0x20,  /* 00000000    "RSD PTR " */
     72  1.1  christos     0x43,0x49,0x4E,0x54,0x45,0x4C,0x20,0x02,  /* 00000008    "CINTEL ." */
     73  1.1  christos     0x00,0x00,0x00,0x00,0x24,0x00,0x00,0x00,  /* 00000010    "....$..." */
     74  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000018    "........" */
     75  1.1  christos     0xDC,0x00,0x00,0x00                       /* 00000020    "...."     */
     76  1.1  christos };
     77  1.1  christos 
     78  1.1  christos unsigned char RsdtCode[] =
     79  1.1  christos {
     80  1.1  christos     0x52,0x53,0x44,0x54,0x28,0x00,0x00,0x00,  /* 00000000    "RSDT(..." */
     81  1.1  christos     0x01,0x10,0x49,0x4E,0x54,0x45,0x4C,0x20,  /* 00000008    "..INTEL " */
     82  1.1  christos     0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45,  /* 00000010    "TEMPLATE" */
     83  1.1  christos     0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C,  /* 00000018    "....INTL" */
     84  1.1  christos     0x15,0x11,0x13,0x20,0x01,0x00,0x00,0x00   /* 00000020    "... ...." */
     85  1.1  christos };
     86  1.1  christos 
     87  1.1  christos unsigned char XsdtCode[] =
     88  1.1  christos {
     89  1.1  christos     0x58,0x53,0x44,0x54,0x2C,0x00,0x00,0x00,  /* 00000000    "XSDT,..." */
     90  1.1  christos     0x01,0x06,0x49,0x4E,0x54,0x45,0x4C,0x20,  /* 00000008    "..INTEL " */
     91  1.1  christos     0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45,  /* 00000010    "TEMPLATE" */
     92  1.1  christos     0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C,  /* 00000018    "....INTL" */
     93  1.1  christos     0x15,0x11,0x13,0x20,0x01,0x00,0x00,0x00,  /* 00000020    "... ...." */
     94  1.1  christos     0x00,0x00,0x00,0x00                       /* 00000028    "...."     */
     95  1.1  christos };
     96  1.1  christos 
     97  1.1  christos unsigned char FadtCode[] =
     98  1.1  christos {
     99  1.1  christos     0x46,0x41,0x43,0x50,0x0C,0x01,0x00,0x00,  /* 00000000    "FACP...." */
    100  1.1  christos     0x05,0x64,0x49,0x4E,0x54,0x45,0x4C,0x20,  /* 00000008    ".dINTEL " */
    101  1.1  christos     0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45,  /* 00000010    "TEMPLATE" */
    102  1.1  christos     0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C,  /* 00000018    "....INTL" */
    103  1.1  christos     0x15,0x11,0x13,0x20,0x01,0x00,0x00,0x00,  /* 00000020    "... ...." */
    104  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000028    "........" */
    105  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000030    "........" */
    106  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000038    "........" */
    107  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000040    "........" */
    108  1.1  christos     0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,  /* 00000048    "........" */
    109  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000050    "........" */
    110  1.1  christos     0x04,0x02,0x01,0x04,0x08,0x00,0x00,0x00,  /* 00000058    "........" */
    111  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000060    "........" */
    112  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000068    "........" */
    113  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x01,  /* 00000070    "........" */
    114  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000078    "........" */
    115  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,  /* 00000080    "........" */
    116  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,  /* 00000088    "........" */
    117  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x20,0x00,0x02,  /* 00000090    "..... .." */
    118  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000098    "........" */
    119  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 000000A0    "........" */
    120  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x02,  /* 000000A8    "........" */
    121  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 000000B0    "........" */
    122  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 000000B8    "........" */
    123  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x00,  /* 000000C0    "........" */
    124  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 000000C8    "........" */
    125  1.1  christos     0x01,0x20,0x00,0x03,0x01,0x00,0x00,0x00,  /* 000000D0    ". ......" */
    126  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x01,  /* 000000D8    ".....@.." */
    127  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 000000E0    "........" */
    128  1.1  christos     0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 000000E8    "........" */
    129  1.1  christos     0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x01,  /* 000000F0    "........" */
    130  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 000000F8    "........" */
    131  1.1  christos     0x01,0x08,0x00,0x01,0x00,0x00,0x00,0x00,  /* 00000100    "........" */
    132  1.1  christos     0x00,0x00,0x00,0x00                       /* 00000108    "...."     */
    133  1.1  christos };
    134  1.1  christos 
    135  1.1  christos /* Fixed tables */
    136  1.1  christos 
    137  1.1  christos static unsigned char FacsCode[] =
    138  1.1  christos {
    139  1.1  christos     0x46,0x41,0x43,0x53,0x40,0x00,0x00,0x00,  /* 00000000    "FACS (at) ..." */
    140  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000008    "........" */
    141  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000010    "........" */
    142  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000018    "........" */
    143  1.1  christos     0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000020    "........" */
    144  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000028    "........" */
    145  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000030    "........" */
    146  1.1  christos     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00   /* 00000038    "........" */
    147  1.1  christos };
    148  1.1  christos 
    149  1.1  christos static unsigned char DsdtCode[] =
    150  1.1  christos {
    151  1.1  christos     0x44,0x53,0x44,0x54,0x67,0x00,0x00,0x00,  /* 00000000    "DSDTg..." */
    152  1.1  christos     0x02,0x97,0x49,0x6E,0x74,0x65,0x6C,0x00,  /* 00000008    "..Intel." */
    153  1.1  christos     0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65,  /* 00000010    "Template" */
    154  1.1  christos     0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C,  /* 00000018    "....INTL" */
    155  1.1  christos     0x15,0x11,0x13,0x20,0x14,0x42,0x04,0x4D,  /* 00000020    "... .B.M" */
    156  1.1  christos     0x41,0x49,0x4E,0x01,0x70,0x73,0x0D,0x4D,  /* 00000028    "AIN.ps.M" */
    157  1.1  christos     0x61,0x69,0x6E,0x2F,0x41,0x72,0x67,0x30,  /* 00000030    "ain/Arg0" */
    158  1.1  christos     0x3A,0x20,0x00,0x68,0x00,0x5B,0x31,0xA4,  /* 00000038    ": .h.[1." */
    159  1.1  christos     0x0D,0x4D,0x61,0x69,0x6E,0x20,0x73,0x75,  /* 00000040    ".Main su" */
    160  1.1  christos     0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6C,  /* 00000048    "ccessful" */
    161  1.1  christos     0x6C,0x79,0x20,0x63,0x6F,0x6D,0x70,0x6C,  /* 00000050    "ly compl" */
    162  1.1  christos     0x65,0x74,0x65,0x64,0x20,0x65,0x78,0x65,  /* 00000058    "eted exe" */
    163  1.1  christos     0x63,0x75,0x74,0x69,0x6F,0x6E,0x00        /* 00000060    "cution."  */
    164  1.1  christos };
    165  1.1  christos 
    166  1.1  christos 
    167  1.1  christos /* Useful pointers */
    168  1.1  christos 
    169  1.1  christos ACPI_TABLE_RSDP *Rsdp = ACPI_CAST_PTR (ACPI_TABLE_RSDP, RsdpCode);
    170  1.1  christos ACPI_TABLE_RSDT *Rsdt = ACPI_CAST_PTR (ACPI_TABLE_RSDT, RsdtCode);
    171  1.1  christos ACPI_TABLE_XSDT *Xsdt = ACPI_CAST_PTR (ACPI_TABLE_XSDT, XsdtCode);
    172  1.1  christos ACPI_TABLE_FADT *Fadt = ACPI_CAST_PTR (ACPI_TABLE_FADT, FadtCode);
    173  1.1  christos 
    174  1.1  christos 
    175  1.1  christos /******************************************************************************
    176  1.1  christos  *
    177  1.1  christos  * Build the various required ACPI tables:
    178  1.1  christos  *
    179  1.1  christos  * 1) Setup RSDP to point to the RSDT and XSDT
    180  1.1  christos  * 2) Setup RSDT/XSDT to point to the FADT
    181  1.1  christos  * 3) Setup FADT to point to the DSDT and FACS
    182  1.1  christos  * 4) Update checksums for all modified tables
    183  1.1  christos  *
    184  1.1  christos  *****************************************************************************/
    185  1.1  christos 
    186  1.1  christos void
    187  1.1  christos ExInitializeAcpiTables (
    188  1.1  christos     void)
    189  1.1  christos {
    190  1.1  christos 
    191  1.1  christos     /* Setup RSDP */
    192  1.1  christos 
    193  1.1  christos     Rsdp->RsdtPhysicalAddress = (UINT32) ACPI_TO_INTEGER (RsdtCode);
    194  1.1  christos     Rsdp->XsdtPhysicalAddress = (UINT64) ACPI_TO_INTEGER (XsdtCode);
    195  1.1  christos 
    196  1.1  christos     /* RSDT and XSDT */
    197  1.1  christos 
    198  1.1  christos     Rsdt->TableOffsetEntry[0] = (UINT32) ACPI_TO_INTEGER (FadtCode);
    199  1.1  christos     Xsdt->TableOffsetEntry[0] = (UINT64) ACPI_TO_INTEGER (FadtCode);
    200  1.1  christos 
    201  1.1  christos     /* FADT */
    202  1.1  christos 
    203  1.1  christos     Fadt->Facs = 0;
    204  1.1  christos     Fadt->Dsdt = 0;
    205  1.1  christos     Fadt->XFacs = (UINT64) ACPI_TO_INTEGER (FacsCode);
    206  1.1  christos     Fadt->XDsdt = (UINT64) ACPI_TO_INTEGER (DsdtCode);
    207  1.1  christos 
    208  1.1  christos     /* Set new checksums for the modified tables */
    209  1.1  christos 
    210  1.1  christos     Rsdp->Checksum = 0;
    211  1.1  christos     Rsdp->Checksum = (UINT8) -AcpiTbChecksum (
    212  1.1  christos         (void *) RsdpCode, ACPI_RSDP_CHECKSUM_LENGTH);
    213  1.1  christos 
    214  1.1  christos     Rsdt->Header.Checksum = 0;
    215  1.1  christos     Rsdt->Header.Checksum = (UINT8) -AcpiTbChecksum (
    216  1.1  christos         (void *) Rsdt, Rsdt->Header.Length);
    217  1.1  christos 
    218  1.1  christos     Xsdt->Header.Checksum = 0;
    219  1.1  christos     Xsdt->Header.Checksum =  (UINT8) -AcpiTbChecksum (
    220  1.1  christos         (void *) Xsdt, Xsdt->Header.Length);
    221  1.1  christos 
    222  1.1  christos     Fadt->Header.Checksum = 0;
    223  1.1  christos     Fadt->Header.Checksum =  (UINT8) -AcpiTbChecksum (
    224  1.1  christos         (void *) Fadt, Fadt->Header.Length);
    225  1.1  christos }
    226  1.1  christos 
    227  1.1  christos 
    228  1.1  christos /******************************************************************************
    229  1.1  christos  *
    230  1.1  christos  * OSL support - return the address of the RSDP
    231  1.1  christos  *
    232  1.1  christos  *****************************************************************************/
    233  1.1  christos 
    234  1.1  christos ACPI_PHYSICAL_ADDRESS
    235  1.1  christos AeLocalGetRootPointer (
    236  1.1  christos     void)
    237  1.1  christos {
    238  1.1  christos 
    239  1.1  christos     return ((ACPI_PHYSICAL_ADDRESS) RsdpCode);
    240  1.1  christos }
    241  1.1  christos 
    242  1.1  christos 
    243  1.1  christos #ifdef DO_NOT_COMPILE_ACPI_TABLE_CODE
    244  1.1  christos /******************************************************************************
    245  1.1  christos  *
    246  1.1  christos  * ACPICA Example table source code
    247  1.1  christos  *
    248  1.1  christos  * This is the original source code for the tables above
    249  1.1  christos  *
    250  1.1  christos  *****************************************************************************/
    251  1.1  christos 
    252  1.1  christos /* RSDP */
    253  1.1  christos 
    254  1.1  christos [0008]                          Signature : "RSD PTR "
    255  1.1  christos [0001]                           Checksum : 43
    256  1.1  christos [0006]                             Oem ID : "INTEL "
    257  1.1  christos [0001]                           Revision : 02
    258  1.1  christos [0004]                       RSDT Address : 00000000
    259  1.1  christos [0004]                             Length : 00000024
    260  1.1  christos [0008]                       XSDT Address : 0000000000000000
    261  1.1  christos [0001]                  Extended Checksum : DC
    262  1.1  christos [0003]                           Reserved : 000000
    263  1.1  christos 
    264  1.1  christos 
    265  1.1  christos /* RSDT */
    266  1.1  christos 
    267  1.1  christos [0004]                          Signature : "RSDT"    [Root System Description Table]
    268  1.1  christos [0004]                       Table Length : 00000044
    269  1.1  christos [0001]                           Revision : 01
    270  1.1  christos [0001]                           Checksum : B1
    271  1.1  christos [0006]                             Oem ID : "INTEL "
    272  1.1  christos [0008]                       Oem Table ID : "TEMPLATE"
    273  1.1  christos [0004]                       Oem Revision : 00000001
    274  1.1  christos [0004]                    Asl Compiler ID : "INTL"
    275  1.1  christos [0004]              Asl Compiler Revision : 20100528
    276  1.1  christos 
    277  1.1  christos [0004]             ACPI Table Address   0 : 00000001
    278  1.1  christos 
    279  1.1  christos 
    280  1.1  christos /* XSDT */
    281  1.1  christos 
    282  1.1  christos [0004]                          Signature : "XSDT"    [Extended System Description Table]
    283  1.1  christos [0004]                       Table Length : 00000064
    284  1.1  christos [0001]                           Revision : 01
    285  1.1  christos [0001]                           Checksum : 8B
    286  1.1  christos [0006]                             Oem ID : "INTEL "
    287  1.1  christos [0008]                       Oem Table ID : "TEMPLATE"
    288  1.1  christos [0004]                       Oem Revision : 00000001
    289  1.1  christos [0004]                    Asl Compiler ID : "INTL"
    290  1.1  christos [0004]              Asl Compiler Revision : 20100528
    291  1.1  christos 
    292  1.1  christos [0008]             ACPI Table Address   0 : 0000000000000001
    293  1.1  christos 
    294  1.1  christos 
    295  1.1  christos /* FADT */
    296  1.1  christos 
    297  1.1  christos [0004]                          Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
    298  1.1  christos [0004]                       Table Length : 0000010C
    299  1.1  christos [0001]                           Revision : 05
    300  1.1  christos [0001]                           Checksum : 18
    301  1.1  christos [0006]                             Oem ID : "INTEL "
    302  1.1  christos [0008]                       Oem Table ID : "TEMPLATE"
    303  1.1  christos [0004]                       Oem Revision : 00000000
    304  1.1  christos [0004]                    Asl Compiler ID : "INTL"
    305  1.1  christos [0004]              Asl Compiler Revision : 20111123
    306  1.1  christos 
    307  1.1  christos [0004]                       FACS Address : 00000001
    308  1.1  christos [0004]                       DSDT Address : 00000001
    309  1.1  christos [0001]                              Model : 00
    310  1.1  christos [0001]                         PM Profile : 00 [Unspecified]
    311  1.1  christos [0002]                      SCI Interrupt : 0000
    312  1.1  christos [0004]                   SMI Command Port : 00000000
    313  1.1  christos [0001]                  ACPI Enable Value : 00
    314  1.1  christos [0001]                 ACPI Disable Value : 00
    315  1.1  christos [0001]                     S4BIOS Command : 00
    316  1.1  christos [0001]                    P-State Control : 00
    317  1.1  christos [0004]           PM1A Event Block Address : 00000001
    318  1.1  christos [0004]           PM1B Event Block Address : 00000000
    319  1.1  christos [0004]         PM1A Control Block Address : 00000001
    320  1.1  christos [0004]         PM1B Control Block Address : 00000000
    321  1.1  christos [0004]          PM2 Control Block Address : 00000001
    322  1.1  christos [0004]             PM Timer Block Address : 00000001
    323  1.1  christos [0004]                 GPE0 Block Address : 00000001
    324  1.1  christos [0004]                 GPE1 Block Address : 00000000
    325  1.1  christos [0001]             PM1 Event Block Length : 04
    326  1.1  christos [0001]           PM1 Control Block Length : 02
    327  1.1  christos [0001]           PM2 Control Block Length : 01
    328  1.1  christos [0001]              PM Timer Block Length : 04
    329  1.1  christos [0001]                  GPE0 Block Length : 08
    330  1.1  christos [0001]                  GPE1 Block Length : 00
    331  1.1  christos [0001]                   GPE1 Base Offset : 00
    332  1.1  christos [0001]                       _CST Support : 00
    333  1.1  christos [0002]                         C2 Latency : 0000
    334  1.1  christos [0002]                         C3 Latency : 0000
    335  1.1  christos [0002]                     CPU Cache Size : 0000
    336  1.1  christos [0002]                 Cache Flush Stride : 0000
    337  1.1  christos [0001]                  Duty Cycle Offset : 00
    338  1.1  christos [0001]                   Duty Cycle Width : 00
    339  1.1  christos [0001]                RTC Day Alarm Index : 00
    340  1.1  christos [0001]              RTC Month Alarm Index : 00
    341  1.1  christos [0001]                  RTC Century Index : 00
    342  1.1  christos [0002]         Boot Flags (decoded below) : 0000
    343  1.1  christos             Legacy Devices Supported (V2) : 0
    344  1.1  christos          8042 Present on ports 60/64 (V2) : 0
    345  1.1  christos                      VGA Not Present (V4) : 0
    346  1.1  christos                    MSI Not Supported (V4) : 0
    347  1.1  christos              PCIe ASPM Not Supported (V4) : 0
    348  1.1  christos                 CMOS RTC Not Present (V5) : 0
    349  1.1  christos [0001]                           Reserved : 00
    350  1.1  christos [0004]              Flags (decoded below) : 00000000
    351  1.1  christos    WBINVD instruction is operational (V1) : 0
    352  1.1  christos            WBINVD flushes all caches (V1) : 0
    353  1.1  christos                  All CPUs support C1 (V1) : 0
    354  1.1  christos                C2 works on MP system (V1) : 0
    355  1.1  christos          Control Method Power Button (V1) : 0
    356  1.1  christos          Control Method Sleep Button (V1) : 0
    357  1.1  christos      RTC wake not in fixed reg space (V1) : 0
    358  1.1  christos          RTC can wake system from S4 (V1) : 0
    359  1.1  christos                      32-bit PM Timer (V1) : 0
    360  1.1  christos                    Docking Supported (V1) : 0
    361  1.1  christos             Reset Register Supported (V2) : 0
    362  1.1  christos                          Sealed Case (V3) : 0
    363  1.1  christos                  Headless - No Video (V3) : 0
    364  1.1  christos      Use native instr after SLP_TYPx (V3) : 0
    365  1.1  christos            PCIEXP_WAK Bits Supported (V4) : 0
    366  1.1  christos                   Use Platform Timer (V4) : 0
    367  1.1  christos             RTC_STS valid on S4 wake (V4) : 0
    368  1.1  christos              Remote Power-on capable (V4) : 0
    369  1.1  christos               Use APIC Cluster Model (V4) : 0
    370  1.1  christos   Use APIC Physical Destination Mode (V4) : 0
    371  1.1  christos                     Hardware Reduced (V5) : 0
    372  1.1  christos                    Low Power S0 Idle (V5) : 0
    373  1.1  christos 
    374  1.1  christos [0012]                     Reset Register : [Generic Address Structure]
    375  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    376  1.1  christos [0001]                          Bit Width : 08
    377  1.1  christos [0001]                         Bit Offset : 00
    378  1.1  christos [0001]               Encoded Access Width : 01 [Byte Access:8]
    379  1.1  christos [0008]                            Address : 0000000000000001
    380  1.1  christos 
    381  1.1  christos [0001]               Value to cause reset : 00
    382  1.1  christos [0003]                           Reserved : 000000
    383  1.1  christos [0008]                       FACS Address : 0000000000000001
    384  1.1  christos [0008]                       DSDT Address : 0000000000000001
    385  1.1  christos [0012]                   PM1A Event Block : [Generic Address Structure]
    386  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    387  1.1  christos [0001]                          Bit Width : 20
    388  1.1  christos [0001]                         Bit Offset : 00
    389  1.1  christos [0001]               Encoded Access Width : 02 [Word Access:16]
    390  1.1  christos [0008]                            Address : 0000000000000001
    391  1.1  christos 
    392  1.1  christos [0012]                   PM1B Event Block : [Generic Address Structure]
    393  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    394  1.1  christos [0001]                          Bit Width : 00
    395  1.1  christos [0001]                         Bit Offset : 00
    396  1.1  christos [0001]               Encoded Access Width : 00 [Undefined/Legacy]
    397  1.1  christos [0008]                            Address : 0000000000000000
    398  1.1  christos 
    399  1.1  christos [0012]                 PM1A Control Block : [Generic Address Structure]
    400  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    401  1.1  christos [0001]                          Bit Width : 10
    402  1.1  christos [0001]                         Bit Offset : 00
    403  1.1  christos [0001]               Encoded Access Width : 02 [Word Access:16]
    404  1.1  christos [0008]                            Address : 0000000000000001
    405  1.1  christos 
    406  1.1  christos [0012]                 PM1B Control Block : [Generic Address Structure]
    407  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    408  1.1  christos [0001]                          Bit Width : 00
    409  1.1  christos [0001]                         Bit Offset : 00
    410  1.1  christos [0001]               Encoded Access Width : 00 [Undefined/Legacy]
    411  1.1  christos [0008]                            Address : 0000000000000000
    412  1.1  christos 
    413  1.1  christos [0012]                  PM2 Control Block : [Generic Address Structure]
    414  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    415  1.1  christos [0001]                          Bit Width : 08
    416  1.1  christos [0001]                         Bit Offset : 00
    417  1.1  christos [0001]               Encoded Access Width : 00 [Undefined/Legacy]
    418  1.1  christos [0008]                            Address : 0000000000000001
    419  1.1  christos 
    420  1.1  christos [0012]                     PM Timer Block : [Generic Address Structure]
    421  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    422  1.1  christos [0001]                          Bit Width : 20
    423  1.1  christos [0001]                         Bit Offset : 00
    424  1.1  christos [0001]               Encoded Access Width : 03 [DWord Access:32]
    425  1.1  christos [0008]                            Address : 0000000000000001
    426  1.1  christos 
    427  1.1  christos [0012]                         GPE0 Block : [Generic Address Structure]
    428  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    429  1.1  christos [0001]                          Bit Width : 40
    430  1.1  christos [0001]                         Bit Offset : 00
    431  1.1  christos [0001]               Encoded Access Width : 01 [Byte Access:8]
    432  1.1  christos [0008]                            Address : 0000000000000001
    433  1.1  christos 
    434  1.1  christos [0012]                         GPE1 Block : [Generic Address Structure]
    435  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    436  1.1  christos [0001]                          Bit Width : 00
    437  1.1  christos [0001]                         Bit Offset : 00
    438  1.1  christos [0001]               Encoded Access Width : 00 [Undefined/Legacy]
    439  1.1  christos [0008]                            Address : 0000000000000000
    440  1.1  christos 
    441  1.1  christos 
    442  1.1  christos [0012]             Sleep Control Register : [Generic Address Structure]
    443  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    444  1.1  christos [0001]                          Bit Width : 08
    445  1.1  christos [0001]                         Bit Offset : 00
    446  1.1  christos [0001]               Encoded Access Width : 01 [Byte Access:8]
    447  1.1  christos [0008]                            Address : 0000000000000000
    448  1.1  christos 
    449  1.1  christos [0012]              Sleep Status Register : [Generic Address Structure]
    450  1.1  christos [0001]                           Space ID : 01 [SystemIO]
    451  1.1  christos [0001]                          Bit Width : 08
    452  1.1  christos [0001]                         Bit Offset : 00
    453  1.1  christos [0001]               Encoded Access Width : 01 [Byte Access:8]
    454  1.1  christos [0008]                            Address : 0000000000000000
    455  1.1  christos 
    456  1.1  christos 
    457  1.1  christos /* FACS */
    458  1.1  christos 
    459  1.1  christos [0004]                          Signature : "FACS"
    460  1.1  christos [0004]                             Length : 00000040
    461  1.1  christos [0004]                 Hardware Signature : 00000000
    462  1.1  christos [0004]          32 Firmware Waking Vector : 00000000
    463  1.1  christos [0004]                        Global Lock : 00000000
    464  1.1  christos [0004]              Flags (decoded below) : 00000000
    465  1.1  christos                    S4BIOS Support Present : 0
    466  1.1  christos                64-bit Wake Supported (V2) : 0
    467  1.1  christos [0008]          64 Firmware Waking Vector : 0000000000000000
    468  1.1  christos [0001]                            Version : 02
    469  1.1  christos [0003]                           Reserved : 000000
    470  1.1  christos [0004]          OspmFlags (decoded below) : 00000000
    471  1.1  christos             64-bit Wake Env Required (V2) : 0
    472  1.1  christos 
    473  1.1  christos 
    474  1.1  christos /* DSDT - ASL code */
    475  1.1  christos 
    476  1.1  christos DefinitionBlock ("dsdt.aml", "DSDT", 2, "Intel", "Template", 0x00000001)
    477  1.1  christos {
    478  1.1  christos     Method (MAIN, 1, NotSerialized)
    479  1.1  christos     {
    480  1.1  christos         Store (Concatenate ("Main/Arg0: ", Arg0), Debug)
    481  1.1  christos         Return ("Main successfully completed execution")
    482  1.1  christos     }
    483  1.1  christos }
    484  1.1  christos #endif
    485