1 /** @file 2 Various register numbers and value bits based on the following publications: 3 - Intel(R) datasheet 316966-002 4 - Intel(R) datasheet 316972-004 5 6 Copyright (C) 2015, Red Hat, Inc. 7 Copyright (c) 2014, Gabriel L. Somlo <somlo@cmu.edu> 8 9 This program and the accompanying materials are licensed and made available 10 under the terms and conditions of the BSD License which accompanies this 11 distribution. The full text of the license may be found at 12 http://opensource.org/licenses/bsd-license.php 13 14 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT 15 WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 16 **/ 17 18 #ifndef __Q35_MCH_ICH9_H__ 19 #define __Q35_MCH_ICH9_H__ 20 21 #include <Library/PciLib.h> 22 23 // 24 // Host Bridge Device ID (DID) value for Q35/MCH 25 // 26 #define INTEL_Q35_MCH_DEVICE_ID 0x29C0 27 28 // 29 // B/D/F/Type: 0/0/0/PCI 30 // 31 #define DRAMC_REGISTER_Q35(Offset) PCI_LIB_ADDRESS (0, 0, 0, (Offset)) 32 33 #define MCH_GGC 0x52 34 #define MCH_GGC_IVD BIT1 35 36 #define MCH_SMRAM 0x9D 37 #define MCH_SMRAM_D_LCK BIT4 38 #define MCH_SMRAM_G_SMRAME BIT3 39 40 #define MCH_ESMRAMC 0x9E 41 #define MCH_ESMRAMC_H_SMRAME BIT7 42 #define MCH_ESMRAMC_E_SMERR BIT6 43 #define MCH_ESMRAMC_SM_CACHE BIT5 44 #define MCH_ESMRAMC_SM_L1 BIT4 45 #define MCH_ESMRAMC_SM_L2 BIT3 46 #define MCH_ESMRAMC_TSEG_8MB BIT2 47 #define MCH_ESMRAMC_TSEG_2MB BIT1 48 #define MCH_ESMRAMC_TSEG_1MB 0 49 #define MCH_ESMRAMC_TSEG_MASK (BIT2 | BIT1) 50 #define MCH_ESMRAMC_T_EN BIT0 51 52 #define MCH_GBSM 0xA4 53 #define MCH_GBSM_MB_SHIFT 20 54 55 #define MCH_BGSM 0xA8 56 #define MCH_BGSM_MB_SHIFT 20 57 58 #define MCH_TSEGMB 0xAC 59 #define MCH_TSEGMB_MB_SHIFT 20 60 61 #define MCH_TOLUD 0xB0 62 #define MCH_TOLUD_MB_SHIFT 4 63 64 // 65 // B/D/F/Type: 0/0x1f/0/PCI 66 // 67 #define POWER_MGMT_REGISTER_Q35(Offset) \ 68 PCI_LIB_ADDRESS (0, 0x1f, 0, (Offset)) 69 70 #define ICH9_PMBASE 0x40 71 #define ICH9_PMBASE_MASK (BIT15 | BIT14 | BIT13 | BIT12 | BIT11 | \ 72 BIT10 | BIT9 | BIT8 | BIT7) 73 74 #define ICH9_ACPI_CNTL 0x44 75 #define ICH9_ACPI_CNTL_ACPI_EN BIT7 76 77 #define ICH9_GEN_PMCON_1 0xA0 78 #define ICH9_GEN_PMCON_1_SMI_LOCK BIT4 79 80 #define ICH9_RCBA 0xF0 81 #define ICH9_RCBA_EN BIT0 82 83 // 84 // IO ports 85 // 86 #define ICH9_APM_CNT 0xB2 87 #define ICH9_APM_STS 0xB3 88 89 // 90 // IO ports relative to PMBASE 91 // 92 #define ICH9_PMBASE_OFS_SMI_EN 0x30 93 #define ICH9_SMI_EN_APMC_EN BIT5 94 #define ICH9_SMI_EN_GBL_SMI_EN BIT0 95 96 #define ICH9_ROOT_COMPLEX_BASE 0xFED1C000 97 98 #endif 99