Home | History | Annotate | Line # | Download | only in tx
      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