15f1d0042SMatt Roper /* SPDX-License-Identifier: MIT */ 25f1d0042SMatt Roper /* 35f1d0042SMatt Roper * Copyright © 2022 Intel Corporation 45f1d0042SMatt Roper */ 55f1d0042SMatt Roper 65f1d0042SMatt Roper #ifndef __INTEL_MCHBAR_REGS__ 75f1d0042SMatt Roper #define __INTEL_MCHBAR_REGS__ 85f1d0042SMatt Roper 95f1d0042SMatt Roper #include "i915_reg_defs.h" 105f1d0042SMatt Roper 115f1d0042SMatt Roper /* 125f1d0042SMatt Roper * MCHBAR mirror. 135f1d0042SMatt Roper * 145f1d0042SMatt Roper * This mirrors the MCHBAR MMIO space whose location is determined by 155f1d0042SMatt Roper * device 0 function 0's pci config register 0x44 or 0x48 and matches it in 165f1d0042SMatt Roper * every way. It is not accessible from the CP register read instructions. 175f1d0042SMatt Roper * 185f1d0042SMatt Roper * Starting from Haswell, you can't write registers using the MCHBAR mirror, 195f1d0042SMatt Roper * just read. 205f1d0042SMatt Roper */ 215f1d0042SMatt Roper 225f1d0042SMatt Roper #define MCHBAR_MIRROR_BASE 0x10000 235f1d0042SMatt Roper #define MCHBAR_MIRROR_BASE_SNB 0x140000 245f1d0042SMatt Roper 255f1d0042SMatt Roper #define CTG_STOLEN_RESERVED _MMIO(MCHBAR_MIRROR_BASE + 0x34) 265f1d0042SMatt Roper #define ELK_STOLEN_RESERVED _MMIO(MCHBAR_MIRROR_BASE + 0x48) 275f1d0042SMatt Roper #define G4X_STOLEN_RESERVED_ADDR1_MASK (0xFFFF << 16) 285f1d0042SMatt Roper #define G4X_STOLEN_RESERVED_ADDR2_MASK (0xFFF << 4) 295f1d0042SMatt Roper #define G4X_STOLEN_RESERVED_ENABLE (1 << 0) 305f1d0042SMatt Roper 315f1d0042SMatt Roper /* Pineview MCH register contains DDR3 setting */ 325f1d0042SMatt Roper #define CSHRDDR3CTL _MMIO(MCHBAR_MIRROR_BASE + 0x1a8) 335f1d0042SMatt Roper #define CSHRDDR3CTL_DDR3 (1 << 2) 345f1d0042SMatt Roper 355f1d0042SMatt Roper /* 915-945 and GM965 MCH register controlling DRAM channel access */ 365f1d0042SMatt Roper #define DCC _MMIO(MCHBAR_MIRROR_BASE + 0x200) 375f1d0042SMatt Roper #define DCC_ADDRESSING_MODE_SINGLE_CHANNEL (0 << 0) 385f1d0042SMatt Roper #define DCC_ADDRESSING_MODE_DUAL_CHANNEL_ASYMMETRIC (1 << 0) 395f1d0042SMatt Roper #define DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED (2 << 0) 405f1d0042SMatt Roper #define DCC_ADDRESSING_MODE_MASK (3 << 0) 415f1d0042SMatt Roper #define DCC_CHANNEL_XOR_DISABLE (1 << 10) 425f1d0042SMatt Roper #define DCC_CHANNEL_XOR_BIT_17 (1 << 9) 435f1d0042SMatt Roper #define DCC2 _MMIO(MCHBAR_MIRROR_BASE + 0x204) 445f1d0042SMatt Roper #define DCC2_MODIFIED_ENHANCED_DISABLE (1 << 20) 455f1d0042SMatt Roper 465f1d0042SMatt Roper /* 965 MCH register controlling DRAM channel configuration */ 475f1d0042SMatt Roper #define C0DRB3_BW _MMIO(MCHBAR_MIRROR_BASE + 0x206) 485f1d0042SMatt Roper #define C1DRB3_BW _MMIO(MCHBAR_MIRROR_BASE + 0x606) 495f1d0042SMatt Roper 505f1d0042SMatt Roper /* Clocking configuration register */ 515f1d0042SMatt Roper #define CLKCFG _MMIO(MCHBAR_MIRROR_BASE + 0xc00) 525f1d0042SMatt Roper #define CLKCFG_FSB_400 (0 << 0) /* hrawclk 100 */ 535f1d0042SMatt Roper #define CLKCFG_FSB_400_ALT (5 << 0) /* hrawclk 100 */ 545f1d0042SMatt Roper #define CLKCFG_FSB_533 (1 << 0) /* hrawclk 133 */ 555f1d0042SMatt Roper #define CLKCFG_FSB_667 (3 << 0) /* hrawclk 166 */ 565f1d0042SMatt Roper #define CLKCFG_FSB_800 (2 << 0) /* hrawclk 200 */ 575f1d0042SMatt Roper #define CLKCFG_FSB_1067 (6 << 0) /* hrawclk 266 */ 585f1d0042SMatt Roper #define CLKCFG_FSB_1067_ALT (0 << 0) /* hrawclk 266 */ 595f1d0042SMatt Roper #define CLKCFG_FSB_1333 (7 << 0) /* hrawclk 333 */ 605f1d0042SMatt Roper #define CLKCFG_FSB_1333_ALT (4 << 0) /* hrawclk 333 */ 615f1d0042SMatt Roper #define CLKCFG_FSB_1600_ALT (6 << 0) /* hrawclk 400 */ 625f1d0042SMatt Roper #define CLKCFG_FSB_MASK (7 << 0) 635f1d0042SMatt Roper #define CLKCFG_MEM_533 (1 << 4) 645f1d0042SMatt Roper #define CLKCFG_MEM_667 (2 << 4) 655f1d0042SMatt Roper #define CLKCFG_MEM_800 (3 << 4) 665f1d0042SMatt Roper #define CLKCFG_MEM_MASK (7 << 4) 675f1d0042SMatt Roper 685f1d0042SMatt Roper #define HPLLVCO_MOBILE _MMIO(MCHBAR_MIRROR_BASE + 0xc0f) 695f1d0042SMatt Roper #define HPLLVCO _MMIO(MCHBAR_MIRROR_BASE + 0xc38) 705f1d0042SMatt Roper 715f1d0042SMatt Roper #define TSC1 _MMIO(MCHBAR_MIRROR_BASE + 0x1001) 725f1d0042SMatt Roper #define TSE (1 << 0) 735f1d0042SMatt Roper #define TR1 _MMIO(MCHBAR_MIRROR_BASE + 0x1006) 745f1d0042SMatt Roper #define TSFS _MMIO(MCHBAR_MIRROR_BASE + 0x1020) 755f1d0042SMatt Roper #define TSFS_SLOPE_MASK 0x0000ff00 765f1d0042SMatt Roper #define TSFS_SLOPE_SHIFT 8 775f1d0042SMatt Roper #define TSFS_INTR_MASK 0x000000ff 785f1d0042SMatt Roper 795f1d0042SMatt Roper /* Memory latency timer register */ 805f1d0042SMatt Roper #define MLTR_ILK _MMIO(MCHBAR_MIRROR_BASE + 0x1222) 815f1d0042SMatt Roper /* the unit of memory self-refresh latency time is 0.5us */ 82b71a4a25SVille Syrjälä #define MLTR_WM2_MASK REG_GENMASK(13, 8) 83b71a4a25SVille Syrjälä #define MLTR_WM1_MASK REG_GENMASK(5, 0) 845f1d0042SMatt Roper 855f1d0042SMatt Roper #define CSIPLL0 _MMIO(MCHBAR_MIRROR_BASE + 0x2c10) 865f1d0042SMatt Roper #define DDRMPLL1 _MMIO(MCHBAR_MIRROR_BASE + 0x2c20) 875f1d0042SMatt Roper 885f1d0042SMatt Roper #define ILK_GDSR _MMIO(MCHBAR_MIRROR_BASE + 0x2ca4) 895f1d0042SMatt Roper #define ILK_GRDOM_FULL (0 << 1) 905f1d0042SMatt Roper #define ILK_GRDOM_RENDER (1 << 1) 915f1d0042SMatt Roper #define ILK_GRDOM_MEDIA (3 << 1) 925f1d0042SMatt Roper #define ILK_GRDOM_MASK (3 << 1) 935f1d0042SMatt Roper #define ILK_GRDOM_RESET_ENABLE (1 << 0) 945f1d0042SMatt Roper 955f1d0042SMatt Roper #define BXT_D_CR_DRP0_DUNIT8 0x1000 965f1d0042SMatt Roper #define BXT_D_CR_DRP0_DUNIT9 0x1200 975f1d0042SMatt Roper #define BXT_D_CR_DRP0_DUNIT_START 8 985f1d0042SMatt Roper #define BXT_D_CR_DRP0_DUNIT_END 11 995f1d0042SMatt Roper #define BXT_D_CR_DRP0_DUNIT(x) _MMIO(MCHBAR_MIRROR_BASE_SNB + \ 1005f1d0042SMatt Roper _PICK_EVEN((x) - 8, BXT_D_CR_DRP0_DUNIT8,\ 1015f1d0042SMatt Roper BXT_D_CR_DRP0_DUNIT9)) 1025f1d0042SMatt Roper #define BXT_DRAM_RANK_MASK 0x3 1035f1d0042SMatt Roper #define BXT_DRAM_RANK_SINGLE 0x1 1045f1d0042SMatt Roper #define BXT_DRAM_RANK_DUAL 0x3 1055f1d0042SMatt Roper #define BXT_DRAM_WIDTH_MASK (0x3 << 4) 1065f1d0042SMatt Roper #define BXT_DRAM_WIDTH_SHIFT 4 1075f1d0042SMatt Roper #define BXT_DRAM_WIDTH_X8 (0x0 << 4) 1085f1d0042SMatt Roper #define BXT_DRAM_WIDTH_X16 (0x1 << 4) 1095f1d0042SMatt Roper #define BXT_DRAM_WIDTH_X32 (0x2 << 4) 1105f1d0042SMatt Roper #define BXT_DRAM_WIDTH_X64 (0x3 << 4) 1115f1d0042SMatt Roper #define BXT_DRAM_SIZE_MASK (0x7 << 6) 1125f1d0042SMatt Roper #define BXT_DRAM_SIZE_SHIFT 6 1135f1d0042SMatt Roper #define BXT_DRAM_SIZE_4GBIT (0x0 << 6) 1145f1d0042SMatt Roper #define BXT_DRAM_SIZE_6GBIT (0x1 << 6) 1155f1d0042SMatt Roper #define BXT_DRAM_SIZE_8GBIT (0x2 << 6) 1165f1d0042SMatt Roper #define BXT_DRAM_SIZE_12GBIT (0x3 << 6) 1175f1d0042SMatt Roper #define BXT_DRAM_SIZE_16GBIT (0x4 << 6) 1185f1d0042SMatt Roper #define BXT_DRAM_TYPE_MASK (0x7 << 22) 1195f1d0042SMatt Roper #define BXT_DRAM_TYPE_SHIFT 22 1205f1d0042SMatt Roper #define BXT_DRAM_TYPE_DDR3 (0x0 << 22) 1215f1d0042SMatt Roper #define BXT_DRAM_TYPE_LPDDR3 (0x1 << 22) 1225f1d0042SMatt Roper #define BXT_DRAM_TYPE_LPDDR4 (0x2 << 22) 1235f1d0042SMatt Roper #define BXT_DRAM_TYPE_DDR4 (0x4 << 22) 1245f1d0042SMatt Roper 1255f1d0042SMatt Roper #define MCHBAR_CH0_CR_TC_PRE_0_0_0_MCHBAR _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x4000) 1265f1d0042SMatt Roper #define DG1_DRAM_T_RDPRE_MASK REG_GENMASK(16, 11) 1275f1d0042SMatt Roper #define DG1_DRAM_T_RP_MASK REG_GENMASK(6, 0) 1285f1d0042SMatt Roper #define MCHBAR_CH0_CR_TC_PRE_0_0_0_MCHBAR_HIGH _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x4004) 1295f1d0042SMatt Roper #define DG1_DRAM_T_RCD_MASK REG_GENMASK(15, 9) 1305f1d0042SMatt Roper #define DG1_DRAM_T_RAS_MASK REG_GENMASK(8, 1) 1315f1d0042SMatt Roper 1325f1d0042SMatt Roper #define SKL_MAD_INTER_CHANNEL_0_0_0_MCHBAR_MCMAIN _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5000) 1335f1d0042SMatt Roper #define SKL_DRAM_DDR_TYPE_MASK (0x3 << 0) 1345f1d0042SMatt Roper #define SKL_DRAM_DDR_TYPE_DDR4 (0 << 0) 1355f1d0042SMatt Roper #define SKL_DRAM_DDR_TYPE_DDR3 (1 << 0) 1365f1d0042SMatt Roper #define SKL_DRAM_DDR_TYPE_LPDDR3 (2 << 0) 1375f1d0042SMatt Roper #define SKL_DRAM_DDR_TYPE_LPDDR4 (3 << 0) 1385f1d0042SMatt Roper 1395f1d0042SMatt Roper /* snb MCH registers for reading the DRAM channel configuration */ 1405f1d0042SMatt Roper #define MAD_DIMM_C0 _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5004) 1415f1d0042SMatt Roper #define MAD_DIMM_C1 _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5008) 1425f1d0042SMatt Roper #define MAD_DIMM_C2 _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x500C) 1435f1d0042SMatt Roper #define MAD_DIMM_ECC_MASK (0x3 << 24) 1445f1d0042SMatt Roper #define MAD_DIMM_ECC_OFF (0x0 << 24) 1455f1d0042SMatt Roper #define MAD_DIMM_ECC_IO_ON_LOGIC_OFF (0x1 << 24) 1465f1d0042SMatt Roper #define MAD_DIMM_ECC_IO_OFF_LOGIC_ON (0x2 << 24) 1475f1d0042SMatt Roper #define MAD_DIMM_ECC_ON (0x3 << 24) 1485f1d0042SMatt Roper #define MAD_DIMM_ENH_INTERLEAVE (0x1 << 22) 1495f1d0042SMatt Roper #define MAD_DIMM_RANK_INTERLEAVE (0x1 << 21) 1505f1d0042SMatt Roper #define MAD_DIMM_B_WIDTH_X16 (0x1 << 20) /* X8 chips if unset */ 1515f1d0042SMatt Roper #define MAD_DIMM_A_WIDTH_X16 (0x1 << 19) /* X8 chips if unset */ 1525f1d0042SMatt Roper #define MAD_DIMM_B_DUAL_RANK (0x1 << 18) 1535f1d0042SMatt Roper #define MAD_DIMM_A_DUAL_RANK (0x1 << 17) 1545f1d0042SMatt Roper #define MAD_DIMM_A_SELECT (0x1 << 16) 1555f1d0042SMatt Roper /* DIMM sizes are in multiples of 256mb. */ 1565f1d0042SMatt Roper #define MAD_DIMM_B_SIZE_SHIFT 8 1575f1d0042SMatt Roper #define MAD_DIMM_B_SIZE_MASK (0xff << MAD_DIMM_B_SIZE_SHIFT) 1585f1d0042SMatt Roper #define MAD_DIMM_A_SIZE_SHIFT 0 1595f1d0042SMatt Roper #define MAD_DIMM_A_SIZE_MASK (0xff << MAD_DIMM_A_SIZE_SHIFT) 1605f1d0042SMatt Roper 1615f1d0042SMatt Roper #define SKL_MAD_DIMM_CH0_0_0_0_MCHBAR_MCMAIN _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x500C) 1625f1d0042SMatt Roper #define SKL_MAD_DIMM_CH1_0_0_0_MCHBAR_MCMAIN _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5010) 1635f1d0042SMatt Roper #define SKL_DRAM_S_SHIFT 16 1645f1d0042SMatt Roper #define SKL_DRAM_SIZE_MASK 0x3F 1655f1d0042SMatt Roper #define SKL_DRAM_WIDTH_MASK (0x3 << 8) 1665f1d0042SMatt Roper #define SKL_DRAM_WIDTH_SHIFT 8 1675f1d0042SMatt Roper #define SKL_DRAM_WIDTH_X8 (0x0 << 8) 1685f1d0042SMatt Roper #define SKL_DRAM_WIDTH_X16 (0x1 << 8) 1695f1d0042SMatt Roper #define SKL_DRAM_WIDTH_X32 (0x2 << 8) 1705f1d0042SMatt Roper #define SKL_DRAM_RANK_MASK (0x1 << 10) 1715f1d0042SMatt Roper #define SKL_DRAM_RANK_SHIFT 10 1725f1d0042SMatt Roper #define SKL_DRAM_RANK_1 (0x0 << 10) 1735f1d0042SMatt Roper #define SKL_DRAM_RANK_2 (0x1 << 10) 1745f1d0042SMatt Roper #define SKL_DRAM_RANK_MASK (0x1 << 10) 1755f1d0042SMatt Roper #define ICL_DRAM_SIZE_MASK 0x7F 1765f1d0042SMatt Roper #define ICL_DRAM_WIDTH_MASK (0x3 << 7) 1775f1d0042SMatt Roper #define ICL_DRAM_WIDTH_SHIFT 7 1785f1d0042SMatt Roper #define ICL_DRAM_WIDTH_X8 (0x0 << 7) 1795f1d0042SMatt Roper #define ICL_DRAM_WIDTH_X16 (0x1 << 7) 1805f1d0042SMatt Roper #define ICL_DRAM_WIDTH_X32 (0x2 << 7) 1815f1d0042SMatt Roper #define ICL_DRAM_RANK_MASK (0x3 << 9) 1825f1d0042SMatt Roper #define ICL_DRAM_RANK_SHIFT 9 1835f1d0042SMatt Roper #define ICL_DRAM_RANK_1 (0x0 << 9) 1845f1d0042SMatt Roper #define ICL_DRAM_RANK_2 (0x1 << 9) 1855f1d0042SMatt Roper #define ICL_DRAM_RANK_3 (0x2 << 9) 1865f1d0042SMatt Roper #define ICL_DRAM_RANK_4 (0x3 << 9) 1875f1d0042SMatt Roper 1885f1d0042SMatt Roper #define SA_PERF_STATUS_0_0_0_MCHBAR_PC _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5918) 1895f1d0042SMatt Roper #define DG1_QCLK_RATIO_MASK REG_GENMASK(9, 2) 1905f1d0042SMatt Roper #define DG1_QCLK_REFERENCE REG_BIT(10) 1915f1d0042SMatt Roper 19299f55efbSDale B Stimson /* 19399f55efbSDale B Stimson * *_PACKAGE_POWER_SKU - SKU power and timing parameters. 19499f55efbSDale B Stimson */ 19599f55efbSDale B Stimson #define PCU_PACKAGE_POWER_SKU _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5930) 19699f55efbSDale B Stimson #define PKG_PKG_TDP GENMASK_ULL(14, 0) 197*d2c3c8c3SAshutosh Dixit #define PKG_MIN_PWR GENMASK_ULL(30, 16) 198*d2c3c8c3SAshutosh Dixit #define PKG_MAX_PWR GENMASK_ULL(46, 32) 1994c2572feSAshutosh Dixit #define PKG_MAX_WIN GENMASK_ULL(54, 48) 2004c2572feSAshutosh Dixit #define PKG_MAX_WIN_X GENMASK_ULL(54, 53) 2014c2572feSAshutosh Dixit #define PKG_MAX_WIN_Y GENMASK_ULL(52, 48) 20299f55efbSDale B Stimson 20399f55efbSDale B Stimson #define PCU_PACKAGE_POWER_SKU_UNIT _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5938) 20499f55efbSDale B Stimson #define PKG_PWR_UNIT REG_GENMASK(3, 0) 205c41b8bdcSDale B Stimson #define PKG_ENERGY_UNIT REG_GENMASK(12, 8) 20699f55efbSDale B Stimson #define PKG_TIME_UNIT REG_GENMASK(19, 16) 207c41b8bdcSDale B Stimson #define PCU_PACKAGE_ENERGY_STATUS _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x593c) 20899f55efbSDale B Stimson 2095f1d0042SMatt Roper #define GEN6_GT_PERF_STATUS _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5948) 2105f1d0042SMatt Roper #define GEN6_RP_STATE_LIMITS _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5994) 2115f1d0042SMatt Roper #define GEN6_RP_STATE_CAP _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5998) 2125f1d0042SMatt Roper #define RP0_CAP_MASK REG_GENMASK(7, 0) 2135f1d0042SMatt Roper #define RP1_CAP_MASK REG_GENMASK(15, 8) 2145f1d0042SMatt Roper #define RPN_CAP_MASK REG_GENMASK(23, 16) 2155f1d0042SMatt Roper 21695ccf312SVinay Belgaumkar #define GEN10_FREQ_INFO_REC _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5ef0) 21795ccf312SVinay Belgaumkar #define RPE_MASK REG_GENMASK(15, 8) 21899f55efbSDale B Stimson #define PCU_PACKAGE_RAPL_LIMIT _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x59a0) 21999f55efbSDale B Stimson #define PKG_PWR_LIM_1 REG_GENMASK(14, 0) 2204c2572feSAshutosh Dixit #define PKG_PWR_LIM_1_EN REG_BIT(15) 2214c2572feSAshutosh Dixit #define PKG_PWR_LIM_1_TIME REG_GENMASK(23, 17) 2224c2572feSAshutosh Dixit #define PKG_PWR_LIM_1_TIME_X REG_GENMASK(23, 22) 2234c2572feSAshutosh Dixit #define PKG_PWR_LIM_1_TIME_Y REG_GENMASK(21, 17) 22495ccf312SVinay Belgaumkar 2255f1d0042SMatt Roper /* snb MCH registers for priority tuning */ 2265f1d0042SMatt Roper #define MCH_SSKPD _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5d10) 227b71a4a25SVille Syrjälä #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56) 228b71a4a25SVille Syrjälä #define SSKPD_WM4_MASK_HSW REG_GENMASK64(40, 32) 229b71a4a25SVille Syrjälä #define SSKPD_WM3_MASK_HSW REG_GENMASK64(28, 20) 230b71a4a25SVille Syrjälä #define SSKPD_WM2_MASK_HSW REG_GENMASK64(19, 12) 231b71a4a25SVille Syrjälä #define SSKPD_WM1_MASK_HSW REG_GENMASK64(11, 4) 232b71a4a25SVille Syrjälä #define SSKPD_OLD_WM0_MASK_HSW REG_GENMASK64(3, 0) 233b71a4a25SVille Syrjälä #define SSKPD_WM3_MASK_SNB REG_GENMASK(29, 24) 234b71a4a25SVille Syrjälä #define SSKPD_WM2_MASK_SNB REG_GENMASK(21, 16) 235b71a4a25SVille Syrjälä #define SSKPD_WM1_MASK_SNB REG_GENMASK(13, 8) 236b71a4a25SVille Syrjälä #define SSKPD_WM0_MASK_SNB REG_GENMASK(5, 0) 2375f1d0042SMatt Roper 2385f1d0042SMatt Roper /* Memory controller frequency in MCHBAR for Haswell (possible SNB+) */ 2395f1d0042SMatt Roper #define DCLK _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5e04) 2405f1d0042SMatt Roper #define SKL_MC_BIOS_DATA_0_0_0_MCHBAR_PCU _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5e04) 2415f1d0042SMatt Roper #define DG1_GEAR_TYPE REG_BIT(16) 2425f1d0042SMatt Roper 2435f1d0042SMatt Roper /* 2445f1d0042SMatt Roper * Please see hsw_read_dcomp() and hsw_write_dcomp() before using this register, 2455f1d0042SMatt Roper * since on HSW we can't write to it using intel_uncore_write. 2465f1d0042SMatt Roper */ 2475f1d0042SMatt Roper #define D_COMP_HSW _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5f0c) 2485f1d0042SMatt Roper #define D_COMP_RCOMP_IN_PROGRESS (1 << 9) 2495f1d0042SMatt Roper #define D_COMP_COMP_FORCE (1 << 8) 2505f1d0042SMatt Roper #define D_COMP_COMP_DISABLE (1 << 0) 2515f1d0042SMatt Roper 2525f1d0042SMatt Roper #define BXT_GT_PERF_STATUS _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x7070) 2535f1d0042SMatt Roper 2545f1d0042SMatt Roper #endif /* __INTEL_MCHBAR_REGS */ 255