xref: /netbsd/sys/arch/hpcmips/tx/tx39biureg.h (revision 6550d01e)
1 /*	$NetBSD: tx39biureg.h,v 1.6 2008/04/28 20:23:21 martin Exp $ */
2 
3 /*-
4  * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software contributed to The NetBSD Foundation
8  * by UCHIYAMA Yasushi.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 /*
32  * Toshiba TX3912/3922 BIU module (Bus Interface Unit)
33  */
34 
35 /*
36  * System Address Map
37  */
38 #define TX39_SYSADDR_DRAMBANK0CS1	0x00000000
39 #define TX39_SYSADDR_DRAMBANK1CS1	0x02000000
40 #define TX39_SYSADDR_DRAMBANK0		0x04000000
41 #define TX39_SYSADDR_DRAMBANK1		0x06000000
42 #define TX39_SYSADDR_DRAMBANK_LEN	0x02000000
43 
44 #define TX39_SYSADDR_CARD1		0x08000000
45 #define TX39_SYSADDR_CARD2		0x0C000000
46 /* 64MByte */
47 #define TX39_SYSADDR_CARD_SIZE		0x04000000
48 
49 #define TX39_SYSADDR_CS1		0x10000000
50 #define TX39_SYSADDR_CS2		0x10400000
51 #define TX39_SYSADDR_CS3		0x10800000
52 /* 4MByte */
53 #define TX39_SYSADDR_CS_SIZE		0x00400000
54 
55 #define TX39_SYSADDR_CONFIG_REG		0x10c00000
56 #define TX39_SYSADDR_CONFIG_REG_LEN	0x00200000
57 
58 #define TX39_SYSADDR_SDRAMBANK0MODE_REG	0x10e00000
59 #define TX39_SYSADDR_SDRAMBANK1MODE_REG	0x10f00000
60 #define TX39_SYSADDR_CS0		0x11000000
61 #define TX39_SYSADDR_KUSEG_DRAMBANK0CS1	0x40000000
62 #define TX39_SYSADDR_KUSEG_DRAMBANK1CS1	0x42000000
63 #define TX39_SYSADDR_KUSEG_DRAMBANK0	0x44000000
64 #define TX39_SYSADDR_KUSEG_DRAMBANK1	0x46000000
65 #define TX39_SYSADDR_KUSEG_CS0		0x50000000
66 #define TX39_SYSADDR_KUSEG_CS1		0x58000000
67 #define TX39_SYSADDR_KUSEG_CS2		0x5c000000
68 #define TX39_SYSADDR_KUSEG_CS3		0x60000000
69 /* 64MByte */
70 #define TX39_SYSADDR_KUCS_SIZE		0x04000000
71 
72 #define TX39_SYSADDR_CARD1MEM		0x64000000
73 #define TX39_SYSADDR_CARD2MEM		0x68000000
74 #define TX39_SYSADDR_MCS0		0x6c000000
75 #define TX39_SYSADDR_MCS1		0x70000000
76 #ifdef TX391X
77 #define TX39_SYSADDR_MCS2		0x74000000
78 #define TX39_SYSADDR_MCS3		0x78000000
79 #endif /* TX391X */
80 /* 64MByte */
81 #define TX39_SYSADDR_MCS_SIZE		0x04000000
82 
83 /*
84  *	BIU module registers.
85  */
86 #define TX39_MEMCONFIG0_REG		0x00
87 #define TX39_MEMCONFIG1_REG		0x04
88 #define TX39_MEMCONFIG2_REG		0x08
89 #define TX39_MEMCONFIG3_REG		0x0C
90 #define TX39_MEMCONFIG4_REG		0x10
91 #define TX39_MEMCONFIG5_REG		0x14
92 #define TX39_MEMCONFIG6_REG		0x18
93 #define TX39_MEMCONFIG7_REG		0x1C
94 #define TX39_MEMCONFIG8_REG		0x20
95 
96 /*
97  *	Memory Configuration 0 Register
98  */
99 /* R/W */
100 #define TX39_MEMCONFIG0_ENDCLKOUTTRI	0x40000000
101 #define TX39_MEMCONFIG0_DISDQMINIT	0x20000000
102 #define TX39_MEMCONFIG0_ENSDRAMPD	0x10000000
103 #define TX39_MEMCONFIG0_SHOWDINO	0x08000000
104 #define TX39_MEMCONFIG0_ENRMAP2		0x04000000
105 #define TX39_MEMCONFIG0_ENRMAP1		0x02000000
106 #define TX39_MEMCONFIG0_ENWRINPAGE	0x01000000
107 #define TX39_MEMCONFIG0_ENCS3USER	0x00800000
108 #define TX39_MEMCONFIG0_ENCS2USER	0x00400000
109 #define TX39_MEMCONFIG0_ENCS1USER	0x00200000
110 #define TX39_MEMCONFIG0_ENCS1DRAM	0x00100000
111 
112 #define TX39_MEMCONFIG0_BANK1CONF_SHIFT 18
113 #define TX39_MEMCONFIG0_BANK1CONF_MASK	0x3
114 #define TX39_MEMCONFIG0_BANK1CONF(cr)					\
115 	(((cr) >> TX39_MEMCONFIG0_BANK1CONF_SHIFT) &			\
116 	TX39_MEMCONFIG0_BANK1CONF_MASK)
117 #define TX39_MEMCONFIG0_BANK1CONF_SET(cr, val)				\
118 	((cr) | (((val) << TX39_MEMCONFIG0_BANK1CONF_SHIFT) &		\
119 	(TX39_MEMCONFIG0_BANK1CONF_MASK << TX39_MEMCONFIG0_BANK1CONF_SHIFT)))
120 #define TX39_MEMCONFIG0_BANK0CONF_SHIFT 16
121 #define TX39_MEMCONFIG0_BANK0CONF_MASK	0x3
122 #define TX39_MEMCONFIG0_BANK0CONF(cr)					\
123 	(((cr) >> TX39_MEMCONFIG0_BANK0CONF_SHIFT) &			\
124 	TX39_MEMCONFIG0_BANK0CONF_MASK)
125 #define TX39_MEMCONFIG0_BANK0CONF_SET(cr, val)				\
126 	((cr) | (((val) << TX39_MEMCONFIG0_BANK0CONF_SHIFT) &		\
127 	(TX39_MEMCONFIG0_BANK0CONF_MASK << TX39_MEMCONFIG0_BANK0CONF_SHIFT)))
128 #define TX39_MEMCONFIG0_BANKCONF_16BITSDRAM	0x3
129 #define TX39_MEMCONFIG0_BANKCONF_8BITSDRAM	0x2
130 #define TX39_MEMCONFIG0_BANKCONF_32BITSDHDRAM	0x1
131 #define TX39_MEMCONFIG0_BANKCONF_16BITSDHDRAM	0x0
132 
133 #define TX39_MEMCONFIG0_ROWSEL1_SHIFT 14
134 #define TX39_MEMCONFIG0_ROWSEL1_MASK	0x3
135 #define TX39_MEMCONFIG0_ROWSEL1(cr)					\
136 	(((cr) >> TX39_MEMCONFIG0_ROWSEL1_SHIFT) &			\
137 	TX39_MEMCONFIG0_ROWSEL1_MASK)
138 #define TX39_MEMCONFIG0_ROWSEL1_SET(cr, val)				\
139 	((cr) | (((val) << TX39_MEMCONFIG0_ROWSEL1_SHIFT) &		\
140 	(TX39_MEMCONFIG0_ROWSEL1_MASK << TX39_MEMCONFIG0_ROWSEL1_SHIFT)))
141 #define TX39_MEMCONFIG0_ROWSEL0_SHIFT 12
142 #define TX39_MEMCONFIG0_ROWSEL0_MASK	0x3
143 #define TX39_MEMCONFIG0_ROWSEL0(cr)					\
144 	(((cr) >> TX39_MEMCONFIG0_ROWSEL0_SHIFT) &			\
145 	TX39_MEMCONFIG0_ROWSEL0_MASK)
146 #define TX39_MEMCONFIG0_ROWSEL0_SET(cr, val)				\
147 	((cr) | (((val) << TX39_MEMCONFIG0_ROWSEL0_SHIFT) &		\
148 	(TX39_MEMCONFIG0_ROWSEL0_MASK << TX39_MEMCONFIG0_ROWSEL0_SHIFT)))
149 
150 #define TX39_MEMCONFIG0_COLSEL1_SHIFT 8
151 #define TX39_MEMCONFIG0_COLSEL1_MASK	0xf
152 #define TX39_MEMCONFIG0_COLSEL1(cr)					\
153 	(((cr) >> TX39_MEMCONFIG0_COLSEL1_SHIFT) &			\
154 	TX39_MEMCONFIG0_COLSEL1_MASK)
155 #define TX39_MEMCONFIG0_COLSEL1_SET(cr, val)				\
156 	((cr) | (((val) << TX39_MEMCONFIG0_COLSEL1_SHIFT) &		\
157 	(TX39_MEMCONFIG0_COLSEL1_MASK << TX39_MEMCONFIG0_COLSEL1_SHIFT)))
158 #define TX39_MEMCONFIG0_COLSEL0_SHIFT 4
159 #define TX39_MEMCONFIG0_COLSEL0_MASK	0xf
160 #define TX39_MEMCONFIG0_COLSEL0(cr)					\
161 	(((cr) >> TX39_MEMCONFIG0_COLSEL0_SHIFT) &			\
162 	TX39_MEMCONFIG0_COLSEL0_MASK)
163 #define TX39_MEMCONFIG0_COLSEL0_SET(cr, val)				\
164 	((cr) | (((val) << TX39_MEMCONFIG0_COLSEL0_SHIFT) &		\
165 	(TX39_MEMCONFIG0_COLSEL0_MASK << TX39_MEMCONFIG0_COLSEL0_SHIFT)))
166 
167 #define TX39_MEMCONFIG0_CS3SIZE		0x00000008
168 #define TX39_MEMCONFIG0_CS2SIZE		0x00000004
169 #define TX39_MEMCONFIG0_CS1SIZE		0x00000002
170 #define TX39_MEMCONFIG0_CS0SIZE		0x00000001
171 
172 /*
173  *	Memory Configuration 1 Register
174  */
175 #ifdef TX391X
176 #define TX39_MEMCONFIG1_MCS3ACCVAL1_SHIFT	28
177 #define TX39_MEMCONFIG1_MCS3ACCVAL1_MASK	0xf
178 #define TX39_MEMCONFIG1_MCS3ACCVAL1(cr)					\
179 	(((cr) >> TX39_MEMCONFIG1_MCS3ACCVAL1_SHIFT) &			\
180 	TX39_MEMCONFIG1_MCS3ACCVAL1_MASK)
181 #define TX39_MEMCONFIG1_MCS3ACCVAL1_SET(cr, val)			\
182 	((cr) | (((val) << TX39_MEMCONFIG1_MCS3ACCVAL1_SHIFT) &		\
183 	(TX39_MEMCONFIG1_MCS3ACCVAL1_MASK <<				\
184 	TX39_MEMCONFIG1_MCS3ACCVAL1_SHIFT)))
185 
186 #define TX39_MEMCONFIG1_MCS3ACCVAL2_SHIFT	24
187 #define TX39_MEMCONFIG1_MCS3ACCVAL2_MASK	0xf
188 #define TX39_MEMCONFIG1_MCS3ACCVAL2(cr)					\
189 	(((cr) >> TX39_MEMCONFIG1_MCS3ACCVAL2_SHIFT) &			\
190 	TX39_MEMCONFIG1_MCS3ACCVAL2_MASK)
191 #define TX39_MEMCONFIG1_MCS3ACCVAL2_SET(cr, val)			\
192 	((cr) | (((val) << TX39_MEMCONFIG1_MCS3ACCVAL2_SHIFT) &		\
193 	(TX39_MEMCONFIG1_MCS3ACCVAL2_MASK <<				\
194 	TX39_MEMCONFIG1_MCS3ACCVAL2_SHIFT)))
195 
196 #define TX39_MEMCONFIG1_MCS2ACCVAL1_SHIFT	20
197 #define TX39_MEMCONFIG1_MCS2ACCVAL1_MASK	0xf
198 #define TX39_MEMCONFIG1_MCS2ACCVAL1(cr)					\
199 	(((cr) >> TX39_MEMCONFIG1_MCS2ACCVAL1_SHIFT) &			\
200 	TX39_MEMCONFIG1_MCS2ACCVAL1_MASK)
201 #define TX39_MEMCONFIG1_MCS2ACCVAL1_SET(cr, val)			\
202 	((cr) | (((val) << TX39_MEMCONFIG1_MCS2ACCVAL1_SHIFT) &		\
203 	(TX39_MEMCONFIG1_MCS2ACCVAL1_MASK <<				\
204 	TX39_MEMCONFIG1_MCS2ACCVAL1_SHIFT)))
205 
206 #define TX39_MEMCONFIG1_MCS2ACCVAL2_SHIFT	16
207 #define TX39_MEMCONFIG1_MCS2ACCVAL2_MASK	0xf
208 #define TX39_MEMCONFIG1_MCS2ACCVAL2(cr)					\
209 	(((cr) >> TX39_MEMCONFIG1_MCS2ACCVAL2_SHIFT) &			\
210 	TX39_MEMCONFIG1_MCS2ACCVAL2_MASK)
211 #define TX39_MEMCONFIG1_MCS2ACCVAL2_SET(cr, val)			\
212 	((cr) | (((val) << TX39_MEMCONFIG1_MCS2ACCVAL2_SHIFT) &		\
213 	(TX39_MEMCONFIG1_MCS2ACCVAL2_MASK <<				\
214 	TX39_MEMCONFIG1_MCS2ACCVAL2_SHIFT)))
215 #endif /* TX391X */
216 #ifdef TX392X
217 #define	TX39_MEMCONFIG1_C48MPLLON	0x40000000
218 #define	TX39_MEMCONFIG1_ENMCS1BE	0x20000000
219 #define	TX39_MEMCONFIG1_ENMCS0BE	0x10000000
220 #define	TX39_MEMCONFIG1_ENMCS1ACC	0x08000000
221 #define	TX39_MEMCONFIG1_ENMCS0ACC	0x04000000
222 #define TX39_MEMCONFIG1_BCLKDIV_SHIFT	23
223 #define TX39_MEMCONFIG1_BCLKDIV_MASK	0x7
224 #define TX39_MEMCONFIG1_BCLKDIV(cr)					\
225 	(((cr) >> TX39_MEMCONFIG1_BCLKDIV_SHIFT) &			\
226 	TX39_MEMCONFIG1_BCLKDIV_MASK)
227 #define TX39_MEMCONFIG1_BCLKDIV_SET(cr, val)				\
228 	((cr) | (((val) << TX39_MEMCONFIG1_BCLKDIV_SHIFT) &		\
229 	(TX39_MEMCONFIG1_BCLKDIV_MASK << TX39_MEMCONFIG1_BCLKDIV_SHIFT)))
230 #define	TX39_MEMCONFIG1_ENBCLK		0x00400000
231 #define	TX39_MEMCONFIG1_ENMCS1PAGE	0x00200000
232 #define	TX39_MEMCONFIG1_ENMCS0PAGE	0x00100000
233 #define	TX39_MEMCONFIG1_ENMCS1WAIT	0x00080000
234 #define	TX39_MEMCONFIG1_ENMCS0WAIT	0x00040000
235 #define	TX39_MEMCONFIG1_MCS1_32		0x00020000
236 #define	TX39_MEMCONFIG1_MCS0_32		0x00010000
237 #endif /* TX392X */
238 
239 #define TX39_MEMCONFIG1_MCS1ACCVAL1_SHIFT	12
240 #define TX39_MEMCONFIG1_MCS1ACCVAL1_MASK	0xf
241 #define TX39_MEMCONFIG1_MCS1ACCVAL1(cr)					\
242 	(((cr) >> TX39_MEMCONFIG1_MCS1ACCVAL1_SHIFT) &			\
243 	TX39_MEMCONFIG1_MCS1ACCVAL1_MASK)
244 #define TX39_MEMCONFIG1_MCS1ACCVAL1_SET(cr, val)			\
245 	((cr) | (((val) << TX39_MEMCONFIG1_MCS1ACCVAL1_SHIFT) &		\
246 	(TX39_MEMCONFIG1_MCS1ACCVAL1_MASK <<				\
247 	TX39_MEMCONFIG1_MCS1ACCVAL1_SHIFT)))
248 
249 #define TX39_MEMCONFIG1_MCS1ACCVAL2_SHIFT	8
250 #define TX39_MEMCONFIG1_MCS1ACCVAL2_MASK	0xf
251 #define TX39_MEMCONFIG1_MCS1ACCVAL2(cr)					\
252 	(((cr) >> TX39_MEMCONFIG1_MCS1ACCVAL2_SHIFT) &			\
253 	TX39_MEMCONFIG1_MCS1ACCVAL2_MASK)
254 #define TX39_MEMCONFIG1_MCS1ACCVAL2_SET(cr, val)			\
255 	((cr) | (((val) << TX39_MEMCONFIG1_MCS1ACCVAL2_SHIFT) &		\
256 	(TX39_MEMCONFIG1_MCS1ACCVAL2_MASK <<				\
257 	TX39_MEMCONFIG1_MCS1ACCVAL2_SHIFT)))
258 
259 #define TX39_MEMCONFIG1_MCS0ACCVAL1_SHIFT	4
260 #define TX39_MEMCONFIG1_MCS0ACCVAL1_MASK	0xf
261 #define TX39_MEMCONFIG1_MCS0ACCVAL1(cr)					\
262 	(((cr) >> TX39_MEMCONFIG1_MCS0ACCVAL1_SHIFT) &			\
263 	TX39_MEMCONFIG1_MCS0ACCVAL1_MASK)
264 #define TX39_MEMCONFIG1_MCS0ACCVAL1_SET(cr, val)			\
265 	((cr) | (((val) << TX39_MEMCONFIG1_MCS0ACCVAL1_SHIFT) &		\
266 	(TX39_MEMCONFIG1_MCS0ACCVAL1_MASK <<				\
267 	TX39_MEMCONFIG1_MCS0ACCVAL1_SHIFT)))
268 
269 #define TX39_MEMCONFIG1_MCS0ACCVAL2_SHIFT	0
270 #define TX39_MEMCONFIG1_MCS0ACCVAL2_MASK	0xf
271 #define TX39_MEMCONFIG1_MCS0ACCVAL2(cr)					\
272 	(((cr) >> TX39_MEMCONFIG1_MCS0ACCVAL2_SHIFT) &			\
273 	TX39_MEMCONFIG1_MCS0ACCVAL2_MASK)
274 #define TX39_MEMCONFIG1_MCS0ACCVAL2_SET(cr, val)			\
275 	((cr) | (((val) << TX39_MEMCONFIG1_MCS0ACCVAL2_SHIFT) &		\
276 	(TX39_MEMCONFIG1_MCS0ACCVAL2_MASK <<				\
277 	TX39_MEMCONFIG1_MCS0ACCVAL2_SHIFT)))
278 
279 /*
280  *	Memory Configuration 2 Register
281  */
282 /* Define access timing. not required yet */
283 #define TX39_MEMCONFIG2_CS3ACCVAL1_SHIFT	28
284 #define TX39_MEMCONFIG2_CS3ACCVAL1_MASK		0xf
285 #define TX39_MEMCONFIG2_CS3ACCVAL1(cr)					\
286 	(((cr) >> TX39_MEMCONFIG2_CS3ACCVAL1_SHIFT) &			\
287 	TX39_MEMCONFIG2_CS3ACCVAL1_MASK)
288 #define TX39_MEMCONFIG2_CS3ACCVAL1_SET(cr, val)				\
289 	((cr) | (((val) << TX39_MEMCONFIG2_CS3ACCVAL1_SHIFT) &		\
290 	(TX39_MEMCONFIG2_CS3ACCVAL1_MASK << TX39_MEMCONFIG2_CS3ACCVAL1_SHIFT)))
291 
292 #define TX39_MEMCONFIG2_CS3ACCVAL2_SHIFT	24
293 #define TX39_MEMCONFIG2_CS3ACCVAL2_MASK		0xf
294 #define TX39_MEMCONFIG2_CS3ACCVAL2(cr)					\
295 	(((cr) >> TX39_MEMCONFIG2_CS3ACCVAL2_SHIFT) &			\
296 	TX39_MEMCONFIG2_CS3ACCVAL2_MASK)
297 #define TX39_MEMCONFIG2_CS3ACCVAL2_SET(cr, val)				\
298 	((cr) | (((val) << TX39_MEMCONFIG2_CS3ACCVAL2_SHIFT) &		\
299 	(TX39_MEMCONFIG2_CS3ACCVAL2_MASK << TX39_MEMCONFIG2_CS3ACCVAL2_SHIFT)))
300 
301 #define TX39_MEMCONFIG2_CS2ACCVAL1_SHIFT	20
302 #define TX39_MEMCONFIG2_CS2ACCVAL1_MASK		0xf
303 #define TX39_MEMCONFIG2_CS2ACCVAL1(cr)					\
304 	(((cr) >> TX39_MEMCONFIG2_CS2ACCVAL1_SHIFT) &			\
305 	TX39_MEMCONFIG2_CS2ACCVAL1_MASK)
306 #define TX39_MEMCONFIG2_CS2ACCVAL1_SET(cr, val)				\
307 	((cr) | (((val) << TX39_MEMCONFIG2_CS2ACCVAL1_SHIFT) &		\
308 	(TX39_MEMCONFIG2_CS2ACCVAL1_MASK << TX39_MEMCONFIG2_CS2ACCVAL1_SHIFT)))
309 
310 #define TX39_MEMCONFIG2_CS2ACCVAL2_SHIFT	16
311 #define TX39_MEMCONFIG2_CS2ACCVAL2_MASK		0xf
312 #define TX39_MEMCONFIG2_CS2ACCVAL2(cr)					\
313 	(((cr) >> TX39_MEMCONFIG2_CS2ACCVAL2_SHIFT) &			\
314 	TX39_MEMCONFIG2_CS2ACCVAL2_MASK)
315 #define TX39_MEMCONFIG2_CS2ACCVAL2_SET(cr, val)				\
316 	((cr) | (((val) << TX39_MEMCONFIG2_CS2ACCVAL2_SHIFT) &		\
317 	(TX39_MEMCONFIG2_CS2ACCVAL2_MASK << TX39_MEMCONFIG2_CS2ACCVAL2_SHIFT)))
318 
319 #define TX39_MEMCONFIG2_CS1ACCVAL1_SHIFT	12
320 #define TX39_MEMCONFIG2_CS1ACCVAL1_MASK		0xf
321 #define TX39_MEMCONFIG2_CS1ACCVAL1(cr)					\
322 	(((cr) >> TX39_MEMCONFIG2_CS1ACCVAL1_SHIFT) &			\
323 	TX39_MEMCONFIG2_CS1ACCVAL1_MASK)
324 #define TX39_MEMCONFIG2_CS1ACCVAL1_SET(cr, val)				\
325 	((cr) | (((val) << TX39_MEMCONFIG2_CS1ACCVAL1_SHIFT) &		\
326 	(TX39_MEMCONFIG2_CS1ACCVAL1_MASK << TX39_MEMCONFIG2_CS1ACCVAL1_SHIFT)))
327 
328 #define TX39_MEMCONFIG2_CS1ACCVAL2_SHIFT	8
329 #define TX39_MEMCONFIG2_CS1ACCVAL2_MASK		0xf
330 #define TX39_MEMCONFIG2_CS1ACCVAL2(cr)					\
331 	(((cr) >> TX39_MEMCONFIG2_CS1ACCVAL2_SHIFT) &			\
332 	TX39_MEMCONFIG2_CS1ACCVAL2_MASK)
333 #define TX39_MEMCONFIG2_CS1ACCVAL2_SET(cr, val)				\
334 	((cr) | (((val) << TX39_MEMCONFIG2_CS1ACCVAL2_SHIFT) &		\
335 	(TX39_MEMCONFIG2_CS1ACCVAL2_MASK << TX39_MEMCONFIG2_CS1ACCVAL2_SHIFT)))
336 
337 #define TX39_MEMCONFIG2_CS0ACCVAL1_SHIFT	4
338 #define TX39_MEMCONFIG2_CS0ACCVAL1_MASK		0xf
339 #define TX39_MEMCONFIG2_CS0ACCVAL1(cr)					\
340 	(((cr) >> TX39_MEMCONFIG2_CS0ACCVAL1_SHIFT) &			\
341 	TX39_MEMCONFIG2_CS0ACCVAL1_MASK)
342 #define TX39_MEMCONFIG2_CS0ACCVAL1_SET(cr, val)				\
343 	((cr) | (((val) << TX39_MEMCONFIG2_CS0ACCVAL1_SHIFT) &		\
344 	(TX39_MEMCONFIG2_CS0ACCVAL1_MASK << TX39_MEMCONFIG2_CS0ACCVAL1_SHIFT)))
345 
346 #define TX39_MEMCONFIG2_CS0ACCVAL2_SHIFT	0
347 #define TX39_MEMCONFIG2_CS0ACCVAL2_MASK		0xf
348 #define TX39_MEMCONFIG2_CS0ACCVAL2(cr)					\
349 	(((cr) >> TX39_MEMCONFIG2_CS0ACCVAL2_SHIFT) &			\
350 	TX39_MEMCONFIG2_CS0ACCVAL2_MASK)
351 #define TX39_MEMCONFIG2_CS0ACCVAL2_SET(cr, val)				\
352 	((cr) | (((val) << TX39_MEMCONFIG2_CS0ACCVAL2_SHIFT) &		\
353 	(TX39_MEMCONFIG2_CS0ACCVAL2_MASK << TX39_MEMCONFIG2_CS0ACCVAL2_SHIFT)))
354 
355 /*
356  *	Memory Configuration 3 Register
357  */
358 /* Define access timing, enable read page mode, PC-Card. */
359 #define TX39_MEMCONFIG3_CARD2ACCVAL_SHIFT	28
360 #define TX39_MEMCONFIG3_CARD2ACCVAL_MASK	0xf
361 #define TX39_MEMCONFIG3_CARD2ACCVAL(cr)					\
362 	(((cr) >> TX39_MEMCONFIG3_CARD2ACCVAL_SHIFT) &			\
363 	TX39_MEMCONFIG3_CARD2ACCVAL_MASK)
364 #define TX39_MEMCONFIG3_CARD2ACCVAL_SET(cr, val)			\
365 	((cr) | (((val) << TX39_MEMCONFIG3_CARD2ACCVAL_SHIFT) &		\
366 	(TX39_MEMCONFIG3_CARD2ACCVAL_MASK <<				\
367 	TX39_MEMCONFIG3_CARD2ACCVAL_SHIFT)))
368 
369 #define TX39_MEMCONFIG3_CARD1ACCVAL_SHIFT	24
370 #define TX39_MEMCONFIG3_CARD1ACCVAL_MASK	0xf
371 #define TX39_MEMCONFIG3_CARD1ACCVAL(cr)					\
372 	(((cr) >> TX39_MEMCONFIG3_CARD1ACCVAL_SHIFT) &			\
373 	TX39_MEMCONFIG3_CARD1ACCVAL_MASK)
374 #define TX39_MEMCONFIG3_CARD1ACCVAL_SET(cr, val)			\
375 	((cr) | (((val) << TX39_MEMCONFIG3_CARD1ACCVAL_SHIFT) &		\
376 	(TX39_MEMCONFIG3_CARD1ACCVAL_MASK <<				\
377 	TX39_MEMCONFIG3_CARD1ACCVAL_SHIFT)))
378 
379 #define TX39_MEMCONFIG3_CARD2IOACCVAL_SHIFT	20
380 #define TX39_MEMCONFIG3_CARD2IOACCVAL_MASK	0xf
381 #define TX39_MEMCONFIG3_CARD2IOACCVAL(cr)				\
382 	(((cr) >> TX39_MEMCONFIG3_CARD2IOACCVAL_SHIFT) &		\
383 	TX39_MEMCONFIG3_CARD2IOACCVAL_MASK)
384 #define TX39_MEMCONFIG3_CARD2IOACCVAL_SET(cr, val)			\
385 	((cr) | (((val) << TX39_MEMCONFIG3_CARD2IOACCVAL_SHIFT) &	\
386 	(TX39_MEMCONFIG3_CARD2IOACCVAL_MASK <<				\
387 	TX39_MEMCONFIG3_CARD2IOACCVAL_SHIFT)))
388 
389 #define TX39_MEMCONFIG3_CARD1IOACCVAL_SHIFT	16
390 #define TX39_MEMCONFIG3_CARD1IOACCVAL_MASK	0xf
391 #define TX39_MEMCONFIG3_CARD1IOACCVAL(cr)				\
392 	(((cr) >> TX39_MEMCONFIG3_CARD1IOACCVAL_SHIFT) &		\
393 	TX39_MEMCONFIG3_CARD1IOACCVAL_MASK)
394 #define TX39_MEMCONFIG3_CARD1IOACCVAL_SET(cr, val)			\
395 	((cr) | (((val) << TX39_MEMCONFIG3_CARD1IOACCVAL_SHIFT) &	\
396 	(TX39_MEMCONFIG3_CARD1IOACCVAL_MASK <<				\
397 	TX39_MEMCONFIG3_CARD1IOACCVAL_SHIFT)))
398 #ifdef TX391X
399 #define TX39_MEMCONFIG3_ENMCS3PAGE		0x00008000
400 #define TX39_MEMCONFIG3_ENMCS2PAGE		0x00004000
401 #define TX39_MEMCONFIG3_ENMCS1PAGE		0x00002000
402 #define TX39_MEMCONFIG3_ENMCS0PAGE		0x00001000
403 #endif /* TX391X */
404 #define TX39_MEMCONFIG3_ENCS3PAGE		0x00000800
405 #define TX39_MEMCONFIG3_ENCS2PAGE		0x00000400
406 #define TX39_MEMCONFIG3_ENCS1PAGE		0x00000200
407 #define TX39_MEMCONFIG3_ENCS0PAGE		0x00000100
408 #define TX39_MEMCONFIG3_CARD2WAITEN		0x00000080
409 #define TX39_MEMCONFIG3_CARD1WAITEN		0x00000040
410 #define TX39_MEMCONFIG3_CARD2IOEN		0x00000020
411 #define TX39_MEMCONFIG3_CARD1IOEN		0x00000010
412 #ifdef TX391X
413 #define TX39_MEMCONFIG3_PORT8SEL		0x00000008
414 #endif /* TX391X */
415 #ifdef TX392X
416 #define TX39_MEMCONFIG3_CARD2_8SEL		0x00000008
417 #define TX39_MEMCONFIG3_CARD1_8SEL		0x00000004
418 #endif /* TX392X */
419 /*
420  *	Memory Configuration 4 Register
421  */
422 /* DMA */
423 #define TX39_MEMCONFIG4_ENBANK1HDRAM		0x80000000
424 #define TX39_MEMCONFIG4_ENBANK0HDRAM		0x40000000
425 #define TX39_MEMCONFIG4_ENARB			0x20000000
426 #define TX39_MEMCONFIG4_DISSNOOP		0x10000000
427 #define TX39_MEMCONFIG4_CLRWRBUSERRINT		0x08000000
428 #define TX39_MEMCONFIG4_ENBANK1OPT		0x04000000
429 #define TX39_MEMCONFIG4_ENBANK0OPT		0x02000000
430 #define TX39_MEMCONFIG4_ENWATCH			0x01000000
431 
432 /*
433  * WatchDogTimerRate = (WATCHTIME[3:0] + 1) * 64 / 36.864MHz
434  */
435 #define TX39_MEMCONFIG4_WATCHTIMEVAL_SHIFT	20
436 #define TX39_MEMCONFIG4_WATCHTIMEVAL_MASK	0xf
437 #define TX39_MEMCONFIG4_WATCHTIMEVAL(cr)				\
438 	(((cr) >> TX39_MEMCONFIG4_WATCHTIMEVAL_SHIFT) &			\
439 	TX39_MEMCONFIG4_WATCHTIMEVAL_MASK)
440 #define TX39_MEMCONFIG4_WATCHTIMEVAL_SET(cr, val)			\
441 	((cr) | (((val) << TX39_MEMCONFIG4_WATCHTIMEVAL_SHIFT) &	\
442 	(TX39_MEMCONFIG4_WATCHTIMEVAL_MASK <<				\
443 	TX39_MEMCONFIG4_WATCHTIMEVAL_SHIFT)))
444 
445 
446 #define TX39_MEMCONFIG4_MEMPOWERDOWN		0x00010000
447 #define TX39_MEMCONFIG4_ENRFSH1			0x00008000
448 #define TX39_MEMCONFIG4_ENRFSH0			0x00004000
449 
450 #define TX39_MEMCONFIG4_RFSHVAL1_SHIFT	8
451 #define TX39_MEMCONFIG4_RFSHVAL1_MASK	0x3f
452 #define TX39_MEMCONFIG4_RFSHVAL1(cr)					\
453 	(((cr) >> TX39_MEMCONFIG4_RFSHVAL1_SHIFT) &			\
454 	TX39_MEMCONFIG4_RFSHVAL1_MASK)
455 #define TX39_MEMCONFIG4_RFSHVAL1_SET(cr, val)				\
456 	((cr) | (((val) << TX39_MEMCONFIG4_RFSHVAL1_SHIFT) &		\
457 	(TX39_MEMCONFIG4_RFSHVAL1_MASK << TX39_MEMCONFIG4_RFSHVAL1_SHIFT)))
458 
459 #define TX39_MEMCONFIG4_RFSHVAL0_SHIFT	0
460 #define TX39_MEMCONFIG4_RFSHVAL0_MASK	0x3f
461 #define TX39_MEMCONFIG4_RFSHVAL0(cr)					\
462 	(((cr) >> TX39_MEMCONFIG4_RFSHVAL0_SHIFT) &			\
463 	TX39_MEMCONFIG4_RFSHVAL0_MASK)
464 #define TX39_MEMCONFIG4_RFSHVAL0_SET(cr, val)				\
465 	((cr) | (((val) << TX39_MEMCONFIG4_RFSHVAL0_SHIFT) &		\
466 	(TX39_MEMCONFIG4_RFSHVAL0_MASK << TX39_MEMCONFIG4_RFSHVAL0_SHIFT)))
467 
468 /*
469  *	Memory Configuration 5 Register
470  */
471 /* Address remap region 2 */
472 #define TX39_MEMCONFIG5_STARTVAL2_SHIFT	9
473 #define TX39_MEMCONFIG5_STARTVAL2_MASK	0x007fffff
474 #define TX39_MEMCONFIG5_STARTVAL2(cr)					\
475 	(((cr) >> TX39_MEMCONFIG5_STARTVAL2_SHIFT) &			\
476 	TX39_MEMCONFIG5_STARTVAL2_MASK)
477 #define TX39_MEMCONFIG5_STARTVAL2_SET(cr, val)				\
478 	((cr) | (((val) << TX39_MEMCONFIG5_STARTVAL2_SHIFT) &		\
479 	(TX39_MEMCONFIG5_STARTVAL2_MASK << TX39_MEMCONFIG5_STARTVAL2_SHIFT)))
480 
481 #define TX39_MEMCONFIG5_MASK2_SHIFT	0
482 #define TX39_MEMCONFIG5_MASK2_MASK	0xf
483 #define TX39_MEMCONFIG5_MASK2(cr)					\
484 	(((cr) >> TX39_MEMCONFIG5_MASK2_SHIFT) &			\
485 	TX39_MEMCONFIG5_MASK2_MASK)
486 #define TX39_MEMCONFIG5_MASK2_SET(cr, val)				\
487 	((cr) | (((val) << TX39_MEMCONFIG5_MASK2_SHIFT) &		\
488 	(TX39_MEMCONFIG5_MASK2_MASK << TX39_MEMCONFIG5_MASK2_SHIFT)))
489 
490 /*
491  *	Memory Configuration 6 Register
492  */
493 /* Address remap region 1 */
494 #define TX39_MEMCONFIG6_STARTVAL1_SHIFT	9
495 #define TX39_MEMCONFIG6_STARTVAL1_MASK	0x007fffff
496 #define TX39_MEMCONFIG6_STARTVAL1(cr)					\
497 	(((cr) >> TX39_MEMCONFIG6_STARTVAL1_SHIFT) &			\
498 	TX39_MEMCONFIG6_STARTVAL1_MASK)
499 #define TX39_MEMCONFIG6_STARTVAL1_SET(cr, val)				\
500 	((cr) | (((val) << TX39_MEMCONFIG6_STARTVAL1_SHIFT) &		\
501 	(TX39_MEMCONFIG6_STARTVAL1_MASK << TX39_MEMCONFIG6_STARTVAL1_SHIFT)))
502 
503 #define TX39_MEMCONFIG6_MASK1_SHIFT	0
504 #define TX39_MEMCONFIG6_MASK1_MASK	0xf
505 #define TX39_MEMCONFIG6_MASK1(cr)					\
506 	(((cr) >> TX39_MEMCONFIG6_MASK1_SHIFT) &			\
507 	TX39_MEMCONFIG6_MASK1_MASK)
508 #define TX39_MEMCONFIG6_MASK1_SET(cr, val)				\
509 	((cr) | (((val) << TX39_MEMCONFIG6_MASK1_SHIFT) &		\
510 	(TX39_MEMCONFIG6_MASK1_MASK << TX39_MEMCONFIG6_MASK1_SHIFT)))
511 
512 /*
513  *	Memory Configuration 7 Register
514  */
515 /* Address remap region 2 */
516 #define TX39_MEMCONFIG7_RMAPADD2_SHIFT	9
517 #define TX39_MEMCONFIG7_RMAPADD2_MASK	0x007fffff
518 #define TX39_MEMCONFIG7_RMAPADD2(cr)					\
519 	(((cr) >> TX39_MEMCONFIG7_RMAPADD2_SHIFT) &			\
520 	TX39_MEMCONFIG7_RMAPADD2_MASK)
521 #define TX39_MEMCONFIG7_RMAPADD2_SET(cr, val)				\
522 	((cr) | (((val) << TX39_MEMCONFIG7_RMAPADD2_SHIFT) &		\
523 	(TX39_MEMCONFIG7_RMAPADD2_MASK << TX39_MEMCONFIG7_RMAPADD2_SHIFT)))
524 
525 /*
526  *	Memory Configuration 8 Register
527  */
528 /* Address remap region 1 */
529 #define TX39_MEMCONFIG8_RMAPADD1_SHIFT	9
530 #define TX39_MEMCONFIG8_RMAPADD1_MASK	0x007fffff
531 #define TX39_MEMCONFIG8_RMAPADD1(cr)					\
532 	(((cr) >> TX39_MEMCONFIG8_RMAPADD1_SHIFT) &			\
533 	TX39_MEMCONFIG8_RMAPADD1_MASK)
534 #define TX39_MEMCONFIG8_RMAPADD1_SET(cr, val)				\
535 	((cr) | (((val) << TX39_MEMCONFIG8_RMAPADD1_SHIFT) &		\
536 	(TX39_MEMCONFIG8_RMAPADD1_MASK << TX39_MEMCONFIG8_RMAPADD1_SHIFT)))
537