xref: /dflybsd-src/sys/dev/misc/coremctl/coremctl_reg.h (revision d99020734925c4b1a391265bb97d160d8ce34d0b)
1f7409137SSepherosa Ziehau #ifndef _COREMCTL_REG_H_
2f7409137SSepherosa Ziehau #define _COREMCTL_REG_H_
3f7409137SSepherosa Ziehau 
4f7409137SSepherosa Ziehau #ifndef _SYS_BITOPS_H_
5f7409137SSepherosa Ziehau #include <sys/bitops.h>
6f7409137SSepherosa Ziehau #endif
7f7409137SSepherosa Ziehau 
8*d9902073SSepherosa Ziehau #define PCI_CORE_MEMCTL_CHN_MAX		2
9*d9902073SSepherosa Ziehau #define PCI_CORE_MEMCTL_CHN_DIMM_MAX	2
10*d9902073SSepherosa Ziehau 
11f7409137SSepherosa Ziehau #define PCI_CORE_MEMCTL_VID		0x8086
12f7409137SSepherosa Ziehau #define PCI_E3V1_MEMCTL_DID		0x0108
13f7409137SSepherosa Ziehau #define PCI_E3V2_MEMCTL_DID		0x0158
14f7409137SSepherosa Ziehau #define PCI_E3V3_MEMCTL_DID		0x0c08
15f7409137SSepherosa Ziehau #define PCI_COREV3_MEMCTL_DID		0x0c00
16f7409137SSepherosa Ziehau 
17f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_LO		0x48
18f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_LO_EN		0x1
19f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_HI		0x4c
20f7409137SSepherosa Ziehau 
21f7409137SSepherosa Ziehau #define PCI_E3_ERRSTS			0xc8
22f7409137SSepherosa Ziehau #define PCI_E3_ERRSTS_DMERR		__BIT(1)
23f7409137SSepherosa Ziehau #define PCI_E3_ERRSTS_DSERR		__BIT(0)
24f7409137SSepherosa Ziehau 
25f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_A		0xe4
26f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_A_DMFC	__BITS(0, 2)	/* v1 */
27f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_A_ECCDIS	__BIT(25)
28f7409137SSepherosa Ziehau 
29f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_B		0xe8
30f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_B_DMFC		__BITS(4, 6)	/* v2/v3 */
31f7409137SSepherosa Ziehau 
32f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_V1_ALL	0x0	/* v1 */
33f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2933	0x0	/* v2/v3 */
34f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2667	0x1	/* v2/v3 */
35f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2400	0x2	/* v2/v3 */
36f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_2133	0x3	/* v2/v3 */
37f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1867	0x4	/* v2/v3 */
38f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1600	0x5	/* v2/v3 */
39f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1333	0x6
40f7409137SSepherosa Ziehau #define PCI_CORE_CAPID0_DMFC_1067	0x7
41f7409137SSepherosa Ziehau 
42f7409137SSepherosa Ziehau #define PCI_CORE_MCHBAR_ADDRMASK	__BITS64(15, 38)
43f7409137SSepherosa Ziehau 
44f7409137SSepherosa Ziehau #define MCH_CORE_SIZE			(32 * 1024)
45f7409137SSepherosa Ziehau 
46f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_C0		0x40c8
47f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_C0		0x40cc
48f7409137SSepherosa Ziehau 
49f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_C1		0x44c8
50f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_C1		0x44cc
51f7409137SSepherosa Ziehau 
52f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_CERRSTS		__BIT(0)
53f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_MERRSTS		__BIT(1)
54f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRSYND		__BITS(16, 23)
55f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRCHUNK		__BITS(24, 26)
56f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRRANK		__BITS(27, 28)
57f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG0_ERRBANK		__BITS(29, 31)
58f7409137SSepherosa Ziehau 
59f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_ERRROW		__BITS(0, 15)
60f7409137SSepherosa Ziehau #define MCH_E3_ERRLOG1_ERRCOL		__BITS(16, 31)
61f7409137SSepherosa Ziehau 
62f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_CH0		0x5004
63f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_CH1		0x5008
64f7409137SSepherosa Ziehau 
65f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_SIZE_UNIT	256		/* MB */
66f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_SIZE		__BITS(0, 7)
67f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_B_SIZE		__BITS(8, 15)
68f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_SELECT		__BIT(16)
69f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_DUAL_RANK	__BIT(17)
70f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_B_DUAL_RANK	__BIT(18)
71f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_A_X16		__BIT(19)
72f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_B_X16		__BIT(20)
73f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_RI		__BIT(21)	/* rank interleave */
74f7409137SSepherosa Ziehau /* enchanced interleave */
75f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_ENHI		__BIT(22)
76f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC			__BITS(24, 25)
77f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_NONE		0x0
78f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_IO		0x1
79f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_LOGIC		0x2
80f7409137SSepherosa Ziehau #define MCH_E3_DIMM_ECC_ALL		0x3
81f7409137SSepherosa Ziehau /* high order rank interleave */
82f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_HORI		__BIT(26)	/* v3 */
83f7409137SSepherosa Ziehau /* high order rank interleave address (addr bits [20,27]) */
84f7409137SSepherosa Ziehau #define MCH_CORE_DIMM_HORIADDR		__BITS(27, 29)	/* v3 */
85f7409137SSepherosa Ziehau 
86*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0		0x5880	/* v3 */
87*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0_EXTTS	__BIT(4)
88*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0_CLTM	__BIT(1)
89*d9902073SSepherosa Ziehau #define MCH_CORE_DDR_PTM_CTL0_OLTM	__BIT(0)
90*d9902073SSepherosa Ziehau 
91*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_CH0		0x58b0	/* v3 */
92*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_CH1		0x58b4	/* v3 */
93*d9902073SSepherosa Ziehau 
94*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_DIMM0	__BITS(0, 7)
95*d9902073SSepherosa Ziehau #define MCH_CORE_DIMM_TEMP_DIMM1	__BITS(8, 15)
96*d9902073SSepherosa Ziehau 
97f7409137SSepherosa Ziehau #endif	/* !_COREMCTL_REG_H_ */
98