xref: /openbmc/linux/drivers/gpu/drm/i915/intel_mchbar_regs.h (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
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