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