aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/renesas/rcar/ddr/ddr_b/boot_init_dram_regdef.h
blob: abddf0cf2f19c321f4b981d54b37a532b7950d68 (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
295
296
/*
 * Copyright (c) 2015-2019, Renesas Electronics Corporation. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#define RCAR_DDR_VERSION	"rev.0.36"
#define DRAM_CH_CNT		(0x04)
#define SLICE_CNT		(0x04)
#define CS_CNT			(0x02)

/* order : CS0A, CS0B, CS1A, CS1B */
#define CSAB_CNT		(CS_CNT * 2)

/* order : CH0A, CH0B, CH1A, CH1B, CH2A, CH2B, CH3A, CH3B */
#define CHAB_CNT		(DRAM_CH_CNT * 2)

/* pll setting */
#define CLK_DIV(a, diva, b, divb) (((a) * (divb)) /((b) * (diva)))
#define CLK_MUL(a, diva, b, divb) (((a) * (b)) / ((diva) * (divb)))

/* for ddr deisity setting */
#define DBMEMCONF_REG(d3, row, bank, col, dw) 	\
	((d3) << 30 | ((row) << 24) | ((bank) << 16) | ((col) << 8) | (dw))

#define DBMEMCONF_REGD(density) 		\
(DBMEMCONF_REG((density) % 2, ((density) + 1) / 2 + (29-3-10-2), 3, 10, 2))

#define DBMEMCONF_VAL(ch, cs) (DBMEMCONF_REGD(DBMEMCONF_DENS(ch, cs)))

/* refresh mode */
#define DBSC_REFINTS		(0x0)

/* system registers */
#define CPG_BASE		(0xE6150000U)
#define CPG_FRQCRB		(CPG_BASE + 0x0004U)

#define CPG_PLLECR		(CPG_BASE + 0x00D0U)
#define CPG_MSTPSR5		(CPG_BASE + 0x003CU)
#define CPG_SRCR4		(CPG_BASE + 0x00BCU)
#define CPG_PLL3CR		(CPG_BASE + 0x00DCU)
#define CPG_ZB3CKCR		(CPG_BASE + 0x0380U)
#define CPG_FRQCRD		(CPG_BASE + 0x00E4U)
#define CPG_SMSTPCR5		(CPG_BASE + 0x0144U)
#define CPG_CPGWPR		(CPG_BASE + 0x0900U)
#define CPG_SRSTCLR4		(CPG_BASE + 0x0950U)

#define CPG_FRQCRB_KICK_BIT	(1U<<31)
#define CPG_PLLECR_PLL3E_BIT	(1U<<3)
#define CPG_PLLECR_PLL3ST_BIT	(1U<<11)
#define CPG_ZB3CKCR_ZB3ST_BIT	(1U<<11)

#define RST_BASE		(0xE6160000U)
#define RST_MODEMR		(RST_BASE + 0x0060U)

#define LIFEC_CHIPID(x)		(0xE6110040U + 0x04U * (x))

/* DBSC registers */
#define DBSC_DBSYSCONF1		0xE6790004U
#define DBSC_DBPHYCONF0		0xE6790010U
#define DBSC_DBKIND		0xE6790020U

#define DBSC_DBMEMCONF(ch, cs)	(0xE6790030U + 0x10U * (ch) + 0x04U * (cs))
#define DBSC_DBMEMCONF_0_0	0xE6790030U
#define DBSC_DBMEMCONF_0_1	0xE6790034U
#define DBSC_DBMEMCONF_0_2	0xE6790038U
#define DBSC_DBMEMCONF_0_3	0xE679003CU
#define DBSC_DBMEMCONF_1_2	0xE6790048U
#define DBSC_DBMEMCONF_1_3	0xE679004CU
#define DBSC_DBMEMCONF_1_0	0xE6790040U
#define DBSC_DBMEMCONF_1_1	0xE6790044U
#define DBSC_DBMEMCONF_2_0	0xE6790050U
#define DBSC_DBMEMCONF_2_1	0xE6790054U
#define DBSC_DBMEMCONF_2_2	0xE6790058U
#define DBSC_DBMEMCONF_2_3	0xE679005CU
#define DBSC_DBMEMCONF_3_0	0xE6790060U
#define DBSC_DBMEMCONF_3_1	0xE6790064U
#define DBSC_DBMEMCONF_3_2	0xE6790068U
#define DBSC_DBMEMCONF_3_3	0xE679006CU

#define DBSC_DBSYSCNT0		0xE6790100U

#define DBSC_DBACEN		0xE6790200U
#define DBSC_DBRFEN		0xE6790204U
#define DBSC_DBCMD		0xE6790208U
#define DBSC_DBWAIT		0xE6790210U
#define DBSC_DBSYSCTRL0		0xE6790280U

#define DBSC_DBTR(x)		(0xE6790300U + 0x04U * (x))
#define DBSC_DBTR0		0xE6790300U
#define DBSC_DBTR1		0xE6790304U
#define DBSC_DBTR3		0xE679030CU
#define DBSC_DBTR4		0xE6790310U
#define DBSC_DBTR5		0xE6790314U
#define DBSC_DBTR6		0xE6790318U
#define DBSC_DBTR7		0xE679031CU
#define DBSC_DBTR8		0xE6790320U
#define DBSC_DBTR9		0xE6790324U
#define DBSC_DBTR10		0xE6790328U
#define DBSC_DBTR11		0xE679032CU
#define DBSC_DBTR12		0xE6790330U
#define DBSC_DBTR13		0xE6790334U
#define DBSC_DBTR14		0xE6790338U
#define DBSC_DBTR15		0xE679033CU
#define DBSC_DBTR16		0xE6790340U
#define DBSC_DBTR17		0xE6790344U
#define DBSC_DBTR18		0xE6790348U
#define DBSC_DBTR19		0xE679034CU
#define DBSC_DBTR20		0xE6790350U
#define DBSC_DBTR21		0xE6790354U
#define DBSC_DBTR22		0xE6790358U
#define DBSC_DBTR23		0xE679035CU
#define DBSC_DBTR24		0xE6790360U
#define DBSC_DBTR25		0xE6790364U
#define DBSC_DBTR26		0xE6790368U

#define DBSC_DBBL		0xE6790400U
#define DBSC_DBRFCNF1		0xE6790414U
#define DBSC_DBRFCNF2		0xE6790418U
#define DBSC_DBTSPCNF		0xE6790420U
#define DBSC_DBCALCNF		0xE6790424U
#define DBSC_DBRNK(x)		(0xE6790430U + 0x04U * (x))
#define DBSC_DBRNK2		0xE6790438U
#define DBSC_DBRNK3		0xE679043CU
#define DBSC_DBRNK4		0xE6790440U
#define DBSC_DBRNK5		0xE6790444U
#define DBSC_DBODT(x)		(0xE6790460U + 0x04U * (x))

#define DBSC_DBADJ0		0xE6790500U
#define DBSC_DBDBICNT		0xE6790518U
#define DBSC_DBDFIPMSTRCNF	0xE6790520U
#define DBSC_DBDFICUPDCNF	0xE679052CU

#define DBSC_DBDFISTAT(ch)	(0xE6790600U + 0x40U * (ch))
#define DBSC_DBDFISTAT_0		0xE6790600U
#define DBSC_DBDFISTAT_1		0xE6790640U
#define DBSC_DBDFISTAT_2		0xE6790680U
#define DBSC_DBDFISTAT_3		0xE67906C0U

#define DBSC_DBDFICNT(ch)	(0xE6790604U + 0x40U * (ch))
#define DBSC_DBDFICNT_0		0xE6790604U
#define DBSC_DBDFICNT_1		0xE6790644U
#define DBSC_DBDFICNT_2		0xE6790684U
#define DBSC_DBDFICNT_3		0xE67906C4U

#define DBSC_DBPDCNT0(ch)	(0xE6790610U + 0x40U * (ch))
#define DBSC_DBPDCNT0_0		0xE6790610U
#define DBSC_DBPDCNT0_1		0xE6790650U
#define DBSC_DBPDCNT0_2		0xE6790690U
#define DBSC_DBPDCNT0_3		0xE67906D0U

#define DBSC_DBPDCNT1(ch)	(0xE6790614U + 0x40U * (ch))
#define DBSC_DBPDCNT1_0		0xE6790614U
#define DBSC_DBPDCNT1_1		0xE6790654U
#define DBSC_DBPDCNT1_2		0xE6790694U
#define DBSC_DBPDCNT1_3		0xE67906D4U

#define DBSC_DBPDCNT2(ch)	(0xE6790618U + 0x40U * (ch))
#define DBSC_DBPDCNT2_0		0xE6790618U
#define DBSC_DBPDCNT2_1		0xE6790658U
#define DBSC_DBPDCNT2_2		0xE6790698U
#define DBSC_DBPDCNT2_3		0xE67906D8U

#define DBSC_DBPDCNT3(ch)	(0xE679061CU + 0x40U * (ch))
#define DBSC_DBPDCNT3_0		0xE679061CU
#define DBSC_DBPDCNT3_1		0xE679065CU
#define DBSC_DBPDCNT3_2		0xE679069CU
#define DBSC_DBPDCNT3_3		0xE67906DCU

#define DBSC_DBPDLK(ch)		(0xE6790620U + 0x40U * (ch))
#define DBSC_DBPDLK_0		0xE6790620U
#define DBSC_DBPDLK_1		0xE6790660U
#define DBSC_DBPDLK_2		0xE67906a0U
#define DBSC_DBPDLK_3		0xE67906e0U

#define DBSC_DBPDRGA(ch)	(0xE6790624U + 0x40U * (ch))
#define DBSC_DBPDRGD(ch)	(0xE6790628U + 0x40U * (ch))
#define DBSC_DBPDRGA_0		0xE6790624U
#define DBSC_DBPDRGD_0		0xE6790628U
#define DBSC_DBPDRGA_1		0xE6790664U
#define DBSC_DBPDRGD_1		0xE6790668U
#define DBSC_DBPDRGA_2		0xE67906A4U
#define DBSC_DBPDRGD_2		0xE67906A8U
#define DBSC_DBPDRGA_3		0xE67906E4U
#define DBSC_DBPDRGD_3		0xE67906E8U

#define DBSC_DBPDSTAT(ch)	(0xE6790630U + 0x40U * (ch))
#define DBSC_DBPDSTAT_0		0xE6790630U
#define DBSC_DBPDSTAT_1		0xE6790670U
#define DBSC_DBPDSTAT_2		0xE67906B0U
#define DBSC_DBPDSTAT_3		0xE67906F0U

#define DBSC_DBBUS0CNF0		0xE6790800U
#define DBSC_DBBUS0CNF1		0xE6790804U

#define DBSC_DBCAM0CNF1		0xE6790904U
#define DBSC_DBCAM0CNF2		0xE6790908U
#define DBSC_DBCAM0CNF3		0xE679090CU
#define DBSC_DBBSWAP		0xE67909F0U
#define DBSC_DBBCAMDIS		0xE67909FCU
#define DBSC_DBSCHCNT0		0xE6791000U
#define DBSC_DBSCHCNT1		0xE6791004U
#define DBSC_DBSCHSZ0		0xE6791010U
#define DBSC_DBSCHRW0		0xE6791020U
#define DBSC_DBSCHRW1		0xE6791024U

#define DBSC_DBSCHQOS_0(x)	(0xE6791030U +0x10U * (x))
#define DBSC_DBSCHQOS_1(x)	(0xE6791034U +0x10U * (x))
#define DBSC_DBSCHQOS_2(x)	(0xE6791038U +0x10U * (x))
#define DBSC_DBSCHQOS_3(x)	(0xE679103CU +0x10U * (x))

#define DBSC_DBSCTR0		0xE6791700U
#define DBSC_DBSCTR1		0xE6791708U
#define DBSC_DBSCHRW2		0xE679170CU

#define DBSC_SCFCTST01(x)	(0xE6791700U + 0x08U * (x))
#define DBSC_SCFCTST0		0xE6791700U
#define DBSC_SCFCTST1		0xE6791708U
#define DBSC_SCFCTST2		0xE679170CU

#define DBSC_DBMRRDR(chab)	(0xE6791800U + 0x04U * (chab))
#define DBSC_DBMRRDR_0		0xE6791800U
#define DBSC_DBMRRDR_1		0xE6791804U
#define DBSC_DBMRRDR_2		0xE6791808U
#define DBSC_DBMRRDR_3		0xE679180CU
#define DBSC_DBMRRDR_4		0xE6791810U
#define DBSC_DBMRRDR_5		0xE6791814U
#define DBSC_DBMRRDR_6		0xE6791818U
#define DBSC_DBMRRDR_7		0xE679181CU

#define DBSC_DBMEMSWAPCONF0	0xE6792000U

#define DBSC_DBMONCONF4		0xE6793010U

#define DBSC_PLL_LOCK(ch)	(0xE6794054U + 0x100U * (ch))
#define DBSC_PLL_LOCK_0		0xE6794054U
#define DBSC_PLL_LOCK_1		0xE6794154U
#define DBSC_PLL_LOCK_2		0xE6794254U
#define DBSC_PLL_LOCK_3		0xE6794354U

/* STAT registers */
#define MSTAT_SL_INIT		0xE67E8000U
#define MSTAT_REF_ARS		0xE67E8004U
#define MSTATQ_STATQC		0xE67E8008U
#define MSTATQ_WTENABLE		0xE67E8030U
#define MSTATQ_WTREFRESH	0xE67E8034U
#define MSTATQ_WTSETTING0	0xE67E8038U
#define MSTATQ_WTSETTING1	0xE67E803CU

#define QOS_BASE1		(0xE67F0000U)
#define QOSCTRL_RAS		(QOS_BASE1 + 0x0000U)
#define QOSCTRL_FIXTH		(QOS_BASE1 + 0x0004U)
#define QOSCTRL_RAEN		(QOS_BASE1 + 0x0018U)
#define QOSCTRL_REGGD		(QOS_BASE1 + 0x0020U)
#define QOSCTRL_DANN		(QOS_BASE1 + 0x0030U)
#define QOSCTRL_DANT		(QOS_BASE1 + 0x0038U)
#define QOSCTRL_EC		(QOS_BASE1 + 0x003CU)
#define QOSCTRL_EMS		(QOS_BASE1 + 0x0040U)
#define QOSCTRL_INSFC		(QOS_BASE1 + 0x0050U)
#define QOSCTRL_BERR		(QOS_BASE1 + 0x0054U)
#define QOSCTRL_RACNT0		(QOS_BASE1 + 0x0080U)
#define QOSCTRL_STATGEN0	(QOS_BASE1 + 0x0088U)

/* other module */
#define THS1_THCTR		0xE6198020U
#define THS1_TEMP		0xE6198028U

#define	DBSC_BASE		(0xE6790000U)
#define DBSC_DBSCHQOS00		(DBSC_BASE + 0x1030U)
#define DBSC_DBSCHQOS01		(DBSC_BASE + 0x1034U)
#define DBSC_DBSCHQOS02		(DBSC_BASE + 0x1038U)
#define DBSC_DBSCHQOS03		(DBSC_BASE + 0x103CU)
#define DBSC_DBSCHQOS40		(DBSC_BASE + 0x1070U)
#define DBSC_DBSCHQOS41		(DBSC_BASE + 0x1074U)
#define DBSC_DBSCHQOS42		(DBSC_BASE + 0x1078U)
#define DBSC_DBSCHQOS43		(DBSC_BASE + 0x107CU)
#define DBSC_DBSCHQOS90		(DBSC_BASE + 0x10C0U)
#define DBSC_DBSCHQOS91		(DBSC_BASE + 0x10C4U)
#define DBSC_DBSCHQOS92		(DBSC_BASE + 0x10C8U)
#define DBSC_DBSCHQOS93		(DBSC_BASE + 0x10CCU)
#define DBSC_DBSCHQOS120	(DBSC_BASE + 0x10F0U)
#define DBSC_DBSCHQOS121	(DBSC_BASE + 0x10F4U)
#define DBSC_DBSCHQOS122	(DBSC_BASE + 0x10F8U)
#define DBSC_DBSCHQOS123	(DBSC_BASE + 0x10FCU)
#define DBSC_DBSCHQOS130	(DBSC_BASE + 0x1100U)
#define DBSC_DBSCHQOS131	(DBSC_BASE + 0x1104U)
#define DBSC_DBSCHQOS132	(DBSC_BASE + 0x1108U)
#define DBSC_DBSCHQOS133	(DBSC_BASE + 0x110CU)
#define DBSC_DBSCHQOS140	(DBSC_BASE + 0x1110U)
#define DBSC_DBSCHQOS141	(DBSC_BASE + 0x1114U)
#define DBSC_DBSCHQOS142	(DBSC_BASE + 0x1118U)
#define DBSC_DBSCHQOS143	(DBSC_BASE + 0x111CU)
#define DBSC_DBSCHQOS150	(DBSC_BASE + 0x1120U)
#define DBSC_DBSCHQOS151	(DBSC_BASE + 0x1124U)
#define DBSC_DBSCHQOS152	(DBSC_BASE + 0x1128U)
#define DBSC_DBSCHQOS153	(DBSC_BASE + 0x112CU)