Home | History | Annotate | Download | only in Ich
      1 /** @file
      2   Generic definitions for registers in the Intel Ich devices.
      3 
      4   These definitions should work for any version of Ich.
      5 
      6   Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
      7   This program and the accompanying materials
      8   are licensed and made available under the terms and conditions of the BSD License
      9   which accompanies this distribution.  The full text of the license may be found at
     10   http://opensource.org/licenses/bsd-license.php
     11 
     12   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     13   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     14 
     15 **/
     16 
     17 #ifndef _GENERIC_ICH_H_
     18 #define _GENERIC_ICH_H_
     19 
     20 /** GenericIchDefs  Generic ICH Definitions.
     21 
     22 Definitions beginning with "R_" are registers.
     23 Definitions beginning with "B_" are bits within registers.
     24 Definitions beginning with "V_" are meaningful values of bits within the registers.
     25 **/
     26 ///@{
     27 
     28 /// IchPciAddressing  PCI Bus Address for ICH.
     29 ///@{
     30 #define PCI_BUS_NUMBER_ICH                0x00  ///< ICH is on PCI Bus 0.
     31 #define PCI_DEVICE_NUMBER_ICH_LPC           31  ///< ICH is Device 31.
     32 #define PCI_FUNCTION_NUMBER_ICH_LPC          0  ///< ICH is Function 0.
     33 ///@}
     34 
     35 /// IchAcpiCntr   Control for the ICH's ACPI Counter.
     36 ///@{
     37 #define R_ICH_LPC_ACPI_BASE                   0x40
     38 #define   B_ICH_LPC_ACPI_BASE_BAR                 0x0000FF80
     39 #define R_ICH_LPC_ACPI_CNT                    0x44
     40 #define   B_ICH_LPC_ACPI_CNT_ACPI_EN              0x80
     41 ///@}
     42 
     43 /// IchAcpiTimer  The ICH's ACPI Timer.
     44 ///@{
     45 #define R_ACPI_PM1_TMR                        0x08
     46 #define   V_ACPI_TMR_FREQUENCY                    3579545
     47 #define   V_ACPI_PM1_TMR_MAX_VAL                  0x1000000 ///< The timer is 24 bit overflow.
     48 ///@}
     49 
     50 /// Macro to generate the PCI address of any given ICH Register.
     51 #define PCI_ICH_LPC_ADDRESS(Register) \
     52   ((UINTN)(PCI_LIB_ADDRESS (PCI_BUS_NUMBER_ICH, PCI_DEVICE_NUMBER_ICH_LPC, PCI_FUNCTION_NUMBER_ICH_LPC, Register)))
     53 
     54 ///@}
     55 #endif  // _GENERIC_ICH_H_
     56