summaryrefslogtreecommitdiff
path: root/src/include/cpu/amd/gx2def.h
blob: b7ff4c0c872b4ce203c28496f3e6713edbaf126b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
#ifndef CPU_AMD_GX2DEF_H
#define CPU_AMD_GX2DEF_H

/* GeodeLink Control Processor Registers, GLIU1, Port 3 */
#define	GLCP_CLK_DIS_DELAY	0x4c000008
#define	GLCP_PMCLKDISABLE	0x4c000009
#define	GLCP_DELAY_CONTROLS	0x4c00000f
#define	GLCP_SYS_RSTPLL 	0x4c000014
#define	GLCP_DOTPLL		0x4c000015
#define	GLCP_CHIP_REVID	0x4c000017
/* MSR routing as follows*/
/* MSB = 1 means not for CPU*/
/* next 3 bits 1st port*/
/* next3 bits next port if through an GLIU*/
/* etc...*/

/*Redcloud as follows.*/
/* GLIU0*/
/*	port0 - GLIU0*/
/*	port1 - MC*/
/*	port2 - GLIU1*/
/*	port3 - CPU*/
/*	port4 - VG*/
/*	port5 - GP*/
/*	port6 - DF*/

/* GLIU1*/
/*	port1 - GLIU0*/
/*	port3 - GLCP*/
/*	port4 - PCI*/
/*	port5 - FG*/


#define	GL0_GLIU0			0
#define	GL0_MC				1
#define	GL0_GLIU1			2
#define	GL0_CPU				3
#define	GL0_VG				4
#define	GL0_GP				5
#define	GL0_DF				6

#define	GL1_GLIU0			1
#define	GL1_GLCP				3
#define	GL1_PCI				4
#define	GL1_FG				5


#define	MSR_GLIU0			(GL0_GLIU0 << 29) + 1 << 28 /* To get on GeodeLink one bit has to be set */
#define	MSR_MC				GL0_MC		<< 29
#define	MSR_GLIU1			GL0_GLIU1	<< 29
#define	MSR_CPU				GL0_CPU	<< 29 /* this is not used for BIOS since code executing on CPU doesn't need to be routed*/
#define	MSR_VG				GL0_VG		<< 29
#define	MSR_GP				GL0_GP		<< 29
#define	MSR_DF				GL0_DF		<< 29

#define	MSR_GLCP				(GL1_GLCP << 26) + MSR_GLIU1
#define	MSR_PCI				(GL1_PCI << 26) + MSR_GLIU1
#define	MSR_FG				(GL1_FG << 26) + MSR_GLIU1

/* South Bridge*/
#define	MSR_SB				(SB_PORT << 23) + MSR_PCI	/* address to the SouthBridge*/
#define	SB_SHIFT			20							/* 29 -> 26 -> 23 -> 20...... When making a SB address uses this shift.*/


/**/
/*GeodeLink Interface Unit 0 (GLIU0) port0*/
/**/

#define	GLIU0_GLD_MSR_CAP			MSR_GLIU0 + 2000h
#define	GLIU0_GLD_MSR_PM			MSR_GLIU0 + 2004h

#define	GLIU0_DESC_BASE				MSR_GLIU0 + 20h
#define	GLIU0_CAP					MSR_GLIU0 + 86h
#define	GLIU0_GLD_MSR_COH			MSR_GLIU0 + 80h


/**/
/* Memory Controller GLIU0 port 1*/
/**/
#define	MC_GLD_MSR_CAP			MSR_MC + 2000h
#define	MC_GLD_MSR_PM			MSR_MC + 2004h

#define	MC_CF07_DATA			MSR_MC + 18h

#define		CF07_UPPER_D1_SZ_SHIFT				28
#define		CF07_UPPER_D1_MB_SHIFT				24
#define		CF07_UPPER_D1_CB_SHIFT				20
#define		CF07_UPPER_D1_PSZ_SHIFT				16
#define		CF07_UPPER_D0_SZ_SHIFT				12
#define		CF07_UPPER_D0_MB_SHIFT				8
#define		CF07_UPPER_D0_CB_SHIFT				4
#define		CF07_UPPER_D0_PSZ_SHIFT				0

#define		CF07_LOWER_REF_INT_SHIFT			8
#define		CF07_LOWER_LOAD_MODE_DDR_SET			01 << 28
#define		CF07_LOWER_LOAD_MODE_DLL_RESET			01 << 27
#define		CF07_LOWER_EMR_QFC_SET				01 << 26
#define		CF07_LOWER_EMR_DRV_SET				01 << 25
#define		CF07_LOWER_REF_TEST_SET				1 << 3
#define		CF07_LOWER_PROG_DRAM_SET			1 << 0


#define	MC_CF8F_DATA			MSR_MC + 19h

#define		CF8F_UPPER_XOR_BS_SHIFT				19
#define		CF8F_UPPER_XOR_MB0_SHIFT			18
#define		CF8F_UPPER_XOR_BA1_SHIFT			17
#define		CF8F_UPPER_XOR_BA0_SHIFT			16
#define		CF8F_UPPER_REORDER_DIS_SET			1 << 8
#define		CF8F_UPPER_REG_DIMM_SHIFT			4
#define		CF8F_LOWER_CAS_LAT_SHIFT			28
#define		CF8F_LOWER_REF2ACT_SHIFT			24
#define		CF8F_LOWER_ACT2PRE_SHIFT			20
#define		CF8F_LOWER_PRE2ACT_SHIFT			16
#define		CF8F_LOWER_ACT2CMD_SHIFT			12
#define		CF8F_LOWER_ACT2ACT_SHIFT			8
#define		CF8F_UPPER_32BIT_SET				1 << 5
#define		CF8F_UPPER_HOI_LOI_SET				1 << 1

#define	MC_CF1017_DATA			MSR_MC + 1Ah

#define		CF1017_LOWER_PM1_UP_DLY_SET					1 << 8
#define		CF1017_LOWER_WR2DAT_SHIFT					0

#define	MC_CFCLK_DBUG			MSR_MC + 1Dh

#define		CFCLK_UPPER_MTST_B2B_DIS_SET			1 << 2
#define		CFCLK_UPPER_MTST_DQS_EN_SET			1 << 1
#define		CFCLK_UPPER_MTEST_EN_SET			1 << 0

#define		CFCLK_LOWER_MASK_CKE_SET1			1 << 9
#define		CFCLK_LOWER_MASK_CKE_SET0			1 << 8
#define		CFCLK_LOWER_SDCLK_SET				0Fh << 0

#define	MC_CF_RDSYNC		 MSR_MC	+ 1Fh


/**/
/* GLIU1 GLIU0 port2*/
/**/
#define	GLIU1_GLD_MSR_CAP			MSR_GLIU1 + 2000h
#define	GLIU1_GLD_MSR_PM			MSR_GLIU1 + 2004h

#define	GLIU1_GLD_MSR_COH			MSR_GLIU1 + 80h


/**/
/* CPU	; does not need routing instructions since we are executing there.*/
/**/
#define	CPU_GLD_MSR_CAP						2000h
#define	CPU_GLD_MSR_CONFIG					2001h
#define	CPU_GLD_MSR_PM						2004h

#define	CPU_GLD_MSR_DIAG					2005h
#define		DIAG_SEL1_MODE_SHIFT				16
#define		DIAG_SEL1_SET						1 << 31
#define		DIAG_SEL0__MODE_SHIFT				0
#define		DIAG_SET0_SET						1 << 15

#define	CPU_PF_BTB_CONF						1100h
#define		BTB_ENABLE_SET						1 << 0
#define		RETURN_STACK_ENABLE_SET				1 << 4
#define	CPU_PF_BTBRMA_BIST					110Ch

#define	CPU_XC_CONFIG						1210h
#define		XC_CONFIG_SUSP_ON_HLT				1 << 0
#define	CPU_ID_CONFIG						1250h
#define		ID_CONFIG_SERIAL_SET				1 << 0

#define	CPU_AC_MSR							1301h
#define	CPU_EX_BIST							1428h

/*IM*/
#define	CPU_IM_CONFIG							1700h
#define		IM_CONFIG_LOWER_ICD_SET					1 << 8
#define		IM_CONFIG_LOWER_QWT_SET					1 << 20
#define	CPU_IC_INDEX							1710h
#define	CPU_IC_DATA								1711h
#define	CPU_IC_TAG								1712h
#define	CPU_IC_TAG_I							1713h
#define	CPU_ITB_INDEX							1720h
#define	CPU_ITB_LRU								1721h
#define	CPU_ITB_ENTRY							1722h
#define	CPU_ITB_ENTRY_I							1723h
#define	CPU_IM_BIST_TAG							1730h
#define	CPU_IM_BIST_DATA						1731h


/* various CPU MSRs */
#define CPU_DM_CONFIG0 0x1800
#define	DM_CONFIG0_UPPER_WSREQ_SHIFT  12
#define	DM_CONFIG0_LOWER_DCDIS_SET		(1<<8)
#define	DM_CONFIG0_LOWER_WBINVD_SET	(1<<5)
#define	DM_CONFIG0_LOWER_MISSER_SET		(1<<1)
/* configuration MSRs */
#define	CPU_RCONF_DEFAULT						0x1808
#define		RCONF_DEFAULT_UPPER_ROMRC_SHIFT				24
#define		RCONF_DEFAULT_UPPER_ROMBASE_SHIFT			4
#define		RCONF_DEFAULT_UPPER_DEVRC_HI_SHIFT			0
#define		RCONF_DEFAULT_LOWER_DEVRC_LOW_SHIFT			28
#define		RCONF_DEFAULT_LOWER_SYSTOP_SHIFT			8
#define		RCONF_DEFAULT_LOWER_SYSRC_SHIFT				0

#define	CPU_RCONF_BYPASS						0x180A
#define	CPU_RCONF_A0_BF							0x180B
#define	CPU_RCONF_C0_DF							0x180C
#define	CPU_RCONF_E0_FF							0x180D

#define	CPU_RCONF_SMM							0x180E
#define		RCONF_SMM_UPPER_SMMTOP_SHIFT			12
#define		RCONF_SMM_UPPER_RCSMM_SHIFT				0
#define		RCONF_SMM_LOWER_SMMBASE_SHIFT			12
#define		RCONF_SMM_LOWER_RCNORM_SHIFT			0
#define		RCONF_SMM_LOWER_EN_SET					(1<<8)

#define	CPU_RCONF_DMM							0x180F
#define		RCONF_DMM_UPPER_DMMTOP_SHIFT			12
#define		RCONF_DMM_UPPER_RCDMM_SHIFT				0
#define		RCONF_DMM_LOWER_DMMBASE_SHIFT			12
#define		RCONF_DMM_LOWER_RCNORM_SHIFT			0
#define		RCONF_DMM_LOWER_EN_SET					(1<<8)

#define	CPU_RCONF0							0x1810
#define	CPU_RCONF1							0x1811
#define	CPU_RCONF2							0x1812
#define	CPU_RCONF3							0x1813
#define	CPU_RCONF4							0x1814
#define	CPU_RCONF5							0x1815
#define	CPU_RCONF6							0x1816
#define	CPU_RCONF7							0x1817
#define	CPU_CR1_MSR							0x1881
#define	CPU_CR2_MSR							0x1882
#define	CPU_CR3_MSR							0x1883
#define	CPU_CR4_MSR							0x1884
#define	CPU_DC_INDEX						0x1890
#define	CPU_DC_DATA							0x1891
#define	CPU_DC_TAG							0x1892
#define	CPU_DC_TAG_I						0x1893
#define	CPU_SNOOP							0x1894
#define	CPU_DTB_INDEX						0x1898
#define	CPU_DTB_LRU							0x1899
#define	CPU_DTB_ENTRY						0x189A
#define	CPU_DTB_ENTRY_I						0x189B
#define	CPU_L2TB_INDEX						0x189C
#define	CPU_L2TB_LRU						0x189D
#define	CPU_L2TB_ENTRY						0x189E
#define	CPU_L2TB_ENTRY_I					0x189F
#define	CPU_DM_BIST							0x18C0
		/* SMM*/
#define	CPU_AC_SMM_CTL						0x1301
#define		SMM_NMI_EN_SET					(1<<0)
#define		SMM_SUSP_EN_SET					(1<<1)
#define		NEST_SMI_EN_SET					(1<<2)
#define		SMM_INST_EN_SET					(1<<3)
#define		INTL_SMI_EN_SET					(1<<4)
#define		EXTL_SMI_EN_SET					(1<<5)
	
#define	CPU_FPU_MSR_MODE					0x1A00
#define		FPU_IE_SET						(1<<0)
	
#define	CPU_FP_UROM_BIST					0x1A03
	
#define	CPU_BC_CONF_0						0x1900
#define		TSC_SUSP_SET				 (1<<5)
#define		SUSP_EN_SET				 (1<<1)2
	
	/**/
	/*	VG GLIU0 port4*/
	/**/
	
#define	VG_GLD_MSR_CAP			MSR_VG + 0x2000
#define	VG_GLD_MSR_CONFIG		MSR_VG + 0x2001
#define	VG_GLD_MSR_PM			MSR_VG + 0x2004

	/* Upper 32 bits */
#define	GLCP_SYS_RSTPLL_MDIV_SHIFT   9
#define	GLCP_SYS_RSTPLL_VDIV_SHIFT   6
#define	GLCP_SYS_RSTPLL_FBDIV_SHIFT  0

	/* Lower 32 bits */
#define	GLCP_SYS_RSTPLL_SWFLAGS_SHIFT	26
#define	GLCP_SYS_RSTPLL_SWFLAGS_MASK 	(0x3f << 26)

#define	GLCP_SYS_RSTPLL_LOCKWAIT	24
#define	GLCP_SYS_RSTPLL_HOLDCOUNT	16
#define	GLCP_SYS_RSTPLL_BYPASS		15
#define	GLCP_SYS_RSTPLL_PD		14
#define	GLCP_SYS_RSTPLL_RESETPLL	13
#define	GLCP_SYS_RSTPLL_DDRMODE		10
#define	GLCP_SYS_RSTPLL_VA_SEMI_SYNC_MODE   9
#define	GLCP_SYS_RSTPLL_PCI_SEMI_SYNC_MODE  8
#define	GLCP_SYS_RSTPLL_CHIP_RESET	    0

#endif /* CPU_AMD_GX2DEF_H */