Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*  *********************************************************************
0003     *  SB1250 Board Support Package
0004     *
0005     *  Memory Controller constants      File: sb1250_mc.h
0006     *
0007     *  This module contains constants and macros useful for
0008     *  programming the memory controller.
0009     *
0010     *  SB1250 specification level:  User's manual 1/02/02
0011     *
0012     *********************************************************************
0013     *
0014     *  Copyright 2000, 2001, 2002, 2003
0015     *  Broadcom Corporation. All rights reserved.
0016     *
0017     ********************************************************************* */
0018 
0019 
0020 #ifndef _SB1250_MC_H
0021 #define _SB1250_MC_H
0022 
0023 #include <asm/sibyte/sb1250_defs.h>
0024 
0025 /*
0026  * Memory Channel Config Register (table 6-14)
0027  */
0028 
0029 #define S_MC_RESERVED0          0
0030 #define M_MC_RESERVED0          _SB_MAKEMASK(8, S_MC_RESERVED0)
0031 
0032 #define S_MC_CHANNEL_SEL        8
0033 #define M_MC_CHANNEL_SEL        _SB_MAKEMASK(8, S_MC_CHANNEL_SEL)
0034 #define V_MC_CHANNEL_SEL(x)     _SB_MAKEVALUE(x, S_MC_CHANNEL_SEL)
0035 #define G_MC_CHANNEL_SEL(x)     _SB_GETVALUE(x, S_MC_CHANNEL_SEL, M_MC_CHANNEL_SEL)
0036 
0037 #define S_MC_BANK0_MAP          16
0038 #define M_MC_BANK0_MAP          _SB_MAKEMASK(4, S_MC_BANK0_MAP)
0039 #define V_MC_BANK0_MAP(x)       _SB_MAKEVALUE(x, S_MC_BANK0_MAP)
0040 #define G_MC_BANK0_MAP(x)       _SB_GETVALUE(x, S_MC_BANK0_MAP, M_MC_BANK0_MAP)
0041 
0042 #define K_MC_BANK0_MAP_DEFAULT      0x00
0043 #define V_MC_BANK0_MAP_DEFAULT      V_MC_BANK0_MAP(K_MC_BANK0_MAP_DEFAULT)
0044 
0045 #define S_MC_BANK1_MAP          20
0046 #define M_MC_BANK1_MAP          _SB_MAKEMASK(4, S_MC_BANK1_MAP)
0047 #define V_MC_BANK1_MAP(x)       _SB_MAKEVALUE(x, S_MC_BANK1_MAP)
0048 #define G_MC_BANK1_MAP(x)       _SB_GETVALUE(x, S_MC_BANK1_MAP, M_MC_BANK1_MAP)
0049 
0050 #define K_MC_BANK1_MAP_DEFAULT      0x08
0051 #define V_MC_BANK1_MAP_DEFAULT      V_MC_BANK1_MAP(K_MC_BANK1_MAP_DEFAULT)
0052 
0053 #define S_MC_BANK2_MAP          24
0054 #define M_MC_BANK2_MAP          _SB_MAKEMASK(4, S_MC_BANK2_MAP)
0055 #define V_MC_BANK2_MAP(x)       _SB_MAKEVALUE(x, S_MC_BANK2_MAP)
0056 #define G_MC_BANK2_MAP(x)       _SB_GETVALUE(x, S_MC_BANK2_MAP, M_MC_BANK2_MAP)
0057 
0058 #define K_MC_BANK2_MAP_DEFAULT      0x09
0059 #define V_MC_BANK2_MAP_DEFAULT      V_MC_BANK2_MAP(K_MC_BANK2_MAP_DEFAULT)
0060 
0061 #define S_MC_BANK3_MAP          28
0062 #define M_MC_BANK3_MAP          _SB_MAKEMASK(4, S_MC_BANK3_MAP)
0063 #define V_MC_BANK3_MAP(x)       _SB_MAKEVALUE(x, S_MC_BANK3_MAP)
0064 #define G_MC_BANK3_MAP(x)       _SB_GETVALUE(x, S_MC_BANK3_MAP, M_MC_BANK3_MAP)
0065 
0066 #define K_MC_BANK3_MAP_DEFAULT      0x0C
0067 #define V_MC_BANK3_MAP_DEFAULT      V_MC_BANK3_MAP(K_MC_BANK3_MAP_DEFAULT)
0068 
0069 #define M_MC_RESERVED1          _SB_MAKEMASK(8, 32)
0070 
0071 #define S_MC_QUEUE_SIZE         40
0072 #define M_MC_QUEUE_SIZE         _SB_MAKEMASK(4, S_MC_QUEUE_SIZE)
0073 #define V_MC_QUEUE_SIZE(x)      _SB_MAKEVALUE(x, S_MC_QUEUE_SIZE)
0074 #define G_MC_QUEUE_SIZE(x)      _SB_GETVALUE(x, S_MC_QUEUE_SIZE, M_MC_QUEUE_SIZE)
0075 #define V_MC_QUEUE_SIZE_DEFAULT     V_MC_QUEUE_SIZE(0x0A)
0076 
0077 #define S_MC_AGE_LIMIT          44
0078 #define M_MC_AGE_LIMIT          _SB_MAKEMASK(4, S_MC_AGE_LIMIT)
0079 #define V_MC_AGE_LIMIT(x)       _SB_MAKEVALUE(x, S_MC_AGE_LIMIT)
0080 #define G_MC_AGE_LIMIT(x)       _SB_GETVALUE(x, S_MC_AGE_LIMIT, M_MC_AGE_LIMIT)
0081 #define V_MC_AGE_LIMIT_DEFAULT      V_MC_AGE_LIMIT(8)
0082 
0083 #define S_MC_WR_LIMIT           48
0084 #define M_MC_WR_LIMIT           _SB_MAKEMASK(4, S_MC_WR_LIMIT)
0085 #define V_MC_WR_LIMIT(x)        _SB_MAKEVALUE(x, S_MC_WR_LIMIT)
0086 #define G_MC_WR_LIMIT(x)        _SB_GETVALUE(x, S_MC_WR_LIMIT, M_MC_WR_LIMIT)
0087 #define V_MC_WR_LIMIT_DEFAULT       V_MC_WR_LIMIT(5)
0088 
0089 #define M_MC_IOB1HIGHPRIORITY       _SB_MAKEMASK1(52)
0090 
0091 #define M_MC_RESERVED2          _SB_MAKEMASK(3, 53)
0092 
0093 #define S_MC_CS_MODE            56
0094 #define M_MC_CS_MODE            _SB_MAKEMASK(4, S_MC_CS_MODE)
0095 #define V_MC_CS_MODE(x)         _SB_MAKEVALUE(x, S_MC_CS_MODE)
0096 #define G_MC_CS_MODE(x)         _SB_GETVALUE(x, S_MC_CS_MODE, M_MC_CS_MODE)
0097 
0098 #define K_MC_CS_MODE_MSB_CS     0
0099 #define K_MC_CS_MODE_INTLV_CS       15
0100 #define K_MC_CS_MODE_MIXED_CS_10    12
0101 #define K_MC_CS_MODE_MIXED_CS_30    6
0102 #define K_MC_CS_MODE_MIXED_CS_32    3
0103 
0104 #define V_MC_CS_MODE_MSB_CS     V_MC_CS_MODE(K_MC_CS_MODE_MSB_CS)
0105 #define V_MC_CS_MODE_INTLV_CS       V_MC_CS_MODE(K_MC_CS_MODE_INTLV_CS)
0106 #define V_MC_CS_MODE_MIXED_CS_10    V_MC_CS_MODE(K_MC_CS_MODE_MIXED_CS_10)
0107 #define V_MC_CS_MODE_MIXED_CS_30    V_MC_CS_MODE(K_MC_CS_MODE_MIXED_CS_30)
0108 #define V_MC_CS_MODE_MIXED_CS_32    V_MC_CS_MODE(K_MC_CS_MODE_MIXED_CS_32)
0109 
0110 #define M_MC_ECC_DISABLE        _SB_MAKEMASK1(60)
0111 #define M_MC_BERR_DISABLE       _SB_MAKEMASK1(61)
0112 #define M_MC_FORCE_SEQ          _SB_MAKEMASK1(62)
0113 #define M_MC_DEBUG          _SB_MAKEMASK1(63)
0114 
0115 #define V_MC_CONFIG_DEFAULT V_MC_WR_LIMIT_DEFAULT | V_MC_AGE_LIMIT_DEFAULT | \
0116                 V_MC_BANK0_MAP_DEFAULT | V_MC_BANK1_MAP_DEFAULT | \
0117                 V_MC_BANK2_MAP_DEFAULT | V_MC_BANK3_MAP_DEFAULT | V_MC_CHANNEL_SEL(0) | \
0118                 M_MC_IOB1HIGHPRIORITY | V_MC_QUEUE_SIZE_DEFAULT
0119 
0120 
0121 /*
0122  * Memory clock config register (Table 6-15)
0123  *
0124  * Note: this field has been updated to be consistent with the errata to 0.2
0125  */
0126 
0127 #define S_MC_CLK_RATIO          0
0128 #define M_MC_CLK_RATIO          _SB_MAKEMASK(4, S_MC_CLK_RATIO)
0129 #define V_MC_CLK_RATIO(x)       _SB_MAKEVALUE(x, S_MC_CLK_RATIO)
0130 #define G_MC_CLK_RATIO(x)       _SB_GETVALUE(x, S_MC_CLK_RATIO, M_MC_CLK_RATIO)
0131 
0132 #define K_MC_CLK_RATIO_2X       4
0133 #define K_MC_CLK_RATIO_25X      5
0134 #define K_MC_CLK_RATIO_3X       6
0135 #define K_MC_CLK_RATIO_35X      7
0136 #define K_MC_CLK_RATIO_4X       8
0137 #define K_MC_CLK_RATIO_45X      9
0138 
0139 #define V_MC_CLK_RATIO_2X       V_MC_CLK_RATIO(K_MC_CLK_RATIO_2X)
0140 #define V_MC_CLK_RATIO_25X      V_MC_CLK_RATIO(K_MC_CLK_RATIO_25X)
0141 #define V_MC_CLK_RATIO_3X       V_MC_CLK_RATIO(K_MC_CLK_RATIO_3X)
0142 #define V_MC_CLK_RATIO_35X      V_MC_CLK_RATIO(K_MC_CLK_RATIO_35X)
0143 #define V_MC_CLK_RATIO_4X       V_MC_CLK_RATIO(K_MC_CLK_RATIO_4X)
0144 #define V_MC_CLK_RATIO_45X      V_MC_CLK_RATIO(K_MC_CLK_RATIO_45X)
0145 #define V_MC_CLK_RATIO_DEFAULT      V_MC_CLK_RATIO_25X
0146 
0147 #define S_MC_REF_RATE            8
0148 #define M_MC_REF_RATE            _SB_MAKEMASK(8, S_MC_REF_RATE)
0149 #define V_MC_REF_RATE(x)         _SB_MAKEVALUE(x, S_MC_REF_RATE)
0150 #define G_MC_REF_RATE(x)         _SB_GETVALUE(x, S_MC_REF_RATE, M_MC_REF_RATE)
0151 
0152 #define K_MC_REF_RATE_100MHz         0x62
0153 #define K_MC_REF_RATE_133MHz         0x81
0154 #define K_MC_REF_RATE_200MHz         0xC4
0155 
0156 #define V_MC_REF_RATE_100MHz         V_MC_REF_RATE(K_MC_REF_RATE_100MHz)
0157 #define V_MC_REF_RATE_133MHz         V_MC_REF_RATE(K_MC_REF_RATE_133MHz)
0158 #define V_MC_REF_RATE_200MHz         V_MC_REF_RATE(K_MC_REF_RATE_200MHz)
0159 #define V_MC_REF_RATE_DEFAULT        V_MC_REF_RATE_100MHz
0160 
0161 #define S_MC_CLOCK_DRIVE         16
0162 #define M_MC_CLOCK_DRIVE         _SB_MAKEMASK(4, S_MC_CLOCK_DRIVE)
0163 #define V_MC_CLOCK_DRIVE(x)      _SB_MAKEVALUE(x, S_MC_CLOCK_DRIVE)
0164 #define G_MC_CLOCK_DRIVE(x)      _SB_GETVALUE(x, S_MC_CLOCK_DRIVE, M_MC_CLOCK_DRIVE)
0165 #define V_MC_CLOCK_DRIVE_DEFAULT     V_MC_CLOCK_DRIVE(0xF)
0166 
0167 #define S_MC_DATA_DRIVE          20
0168 #define M_MC_DATA_DRIVE          _SB_MAKEMASK(4, S_MC_DATA_DRIVE)
0169 #define V_MC_DATA_DRIVE(x)       _SB_MAKEVALUE(x, S_MC_DATA_DRIVE)
0170 #define G_MC_DATA_DRIVE(x)       _SB_GETVALUE(x, S_MC_DATA_DRIVE, M_MC_DATA_DRIVE)
0171 #define V_MC_DATA_DRIVE_DEFAULT      V_MC_DATA_DRIVE(0x0)
0172 
0173 #define S_MC_ADDR_DRIVE          24
0174 #define M_MC_ADDR_DRIVE          _SB_MAKEMASK(4, S_MC_ADDR_DRIVE)
0175 #define V_MC_ADDR_DRIVE(x)       _SB_MAKEVALUE(x, S_MC_ADDR_DRIVE)
0176 #define G_MC_ADDR_DRIVE(x)       _SB_GETVALUE(x, S_MC_ADDR_DRIVE, M_MC_ADDR_DRIVE)
0177 #define V_MC_ADDR_DRIVE_DEFAULT      V_MC_ADDR_DRIVE(0x0)
0178 
0179 #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)
0180 #define M_MC_REF_DISABLE         _SB_MAKEMASK1(30)
0181 #endif /* 1250 PASS3 || 112x PASS1 */
0182 
0183 #define M_MC_DLL_BYPASS          _SB_MAKEMASK1(31)
0184 
0185 #define S_MC_DQI_SKEW           32
0186 #define M_MC_DQI_SKEW           _SB_MAKEMASK(8, S_MC_DQI_SKEW)
0187 #define V_MC_DQI_SKEW(x)        _SB_MAKEVALUE(x, S_MC_DQI_SKEW)
0188 #define G_MC_DQI_SKEW(x)        _SB_GETVALUE(x, S_MC_DQI_SKEW, M_MC_DQI_SKEW)
0189 #define V_MC_DQI_SKEW_DEFAULT       V_MC_DQI_SKEW(0)
0190 
0191 #define S_MC_DQO_SKEW           40
0192 #define M_MC_DQO_SKEW           _SB_MAKEMASK(8, S_MC_DQO_SKEW)
0193 #define V_MC_DQO_SKEW(x)        _SB_MAKEVALUE(x, S_MC_DQO_SKEW)
0194 #define G_MC_DQO_SKEW(x)        _SB_GETVALUE(x, S_MC_DQO_SKEW, M_MC_DQO_SKEW)
0195 #define V_MC_DQO_SKEW_DEFAULT       V_MC_DQO_SKEW(0)
0196 
0197 #define S_MC_ADDR_SKEW           48
0198 #define M_MC_ADDR_SKEW           _SB_MAKEMASK(8, S_MC_ADDR_SKEW)
0199 #define V_MC_ADDR_SKEW(x)        _SB_MAKEVALUE(x, S_MC_ADDR_SKEW)
0200 #define G_MC_ADDR_SKEW(x)        _SB_GETVALUE(x, S_MC_ADDR_SKEW, M_MC_ADDR_SKEW)
0201 #define V_MC_ADDR_SKEW_DEFAULT       V_MC_ADDR_SKEW(0x0F)
0202 
0203 #define S_MC_DLL_DEFAULT         56
0204 #define M_MC_DLL_DEFAULT         _SB_MAKEMASK(8, S_MC_DLL_DEFAULT)
0205 #define V_MC_DLL_DEFAULT(x)      _SB_MAKEVALUE(x, S_MC_DLL_DEFAULT)
0206 #define G_MC_DLL_DEFAULT(x)      _SB_GETVALUE(x, S_MC_DLL_DEFAULT, M_MC_DLL_DEFAULT)
0207 #define V_MC_DLL_DEFAULT_DEFAULT     V_MC_DLL_DEFAULT(0x10)
0208 
0209 #define V_MC_CLKCONFIG_DEFAULT       V_MC_DLL_DEFAULT_DEFAULT |  \
0210                      V_MC_ADDR_SKEW_DEFAULT | \
0211                      V_MC_DQO_SKEW_DEFAULT | \
0212                      V_MC_DQI_SKEW_DEFAULT | \
0213                      V_MC_ADDR_DRIVE_DEFAULT | \
0214                      V_MC_DATA_DRIVE_DEFAULT | \
0215                      V_MC_CLOCK_DRIVE_DEFAULT | \
0216                      V_MC_REF_RATE_DEFAULT
0217 
0218 
0219 
0220 /*
0221  * DRAM Command Register (Table 6-13)
0222  */
0223 
0224 #define S_MC_COMMAND            0
0225 #define M_MC_COMMAND            _SB_MAKEMASK(4, S_MC_COMMAND)
0226 #define V_MC_COMMAND(x)         _SB_MAKEVALUE(x, S_MC_COMMAND)
0227 #define G_MC_COMMAND(x)         _SB_GETVALUE(x, S_MC_COMMAND, M_MC_COMMAND)
0228 
0229 #define K_MC_COMMAND_EMRS       0
0230 #define K_MC_COMMAND_MRS        1
0231 #define K_MC_COMMAND_PRE        2
0232 #define K_MC_COMMAND_AR         3
0233 #define K_MC_COMMAND_SETRFSH        4
0234 #define K_MC_COMMAND_CLRRFSH        5
0235 #define K_MC_COMMAND_SETPWRDN       6
0236 #define K_MC_COMMAND_CLRPWRDN       7
0237 
0238 #define V_MC_COMMAND_EMRS       V_MC_COMMAND(K_MC_COMMAND_EMRS)
0239 #define V_MC_COMMAND_MRS        V_MC_COMMAND(K_MC_COMMAND_MRS)
0240 #define V_MC_COMMAND_PRE        V_MC_COMMAND(K_MC_COMMAND_PRE)
0241 #define V_MC_COMMAND_AR         V_MC_COMMAND(K_MC_COMMAND_AR)
0242 #define V_MC_COMMAND_SETRFSH        V_MC_COMMAND(K_MC_COMMAND_SETRFSH)
0243 #define V_MC_COMMAND_CLRRFSH        V_MC_COMMAND(K_MC_COMMAND_CLRRFSH)
0244 #define V_MC_COMMAND_SETPWRDN       V_MC_COMMAND(K_MC_COMMAND_SETPWRDN)
0245 #define V_MC_COMMAND_CLRPWRDN       V_MC_COMMAND(K_MC_COMMAND_CLRPWRDN)
0246 
0247 #define M_MC_CS0            _SB_MAKEMASK1(4)
0248 #define M_MC_CS1            _SB_MAKEMASK1(5)
0249 #define M_MC_CS2            _SB_MAKEMASK1(6)
0250 #define M_MC_CS3            _SB_MAKEMASK1(7)
0251 
0252 /*
0253  * DRAM Mode Register (Table 6-14)
0254  */
0255 
0256 #define S_MC_EMODE          0
0257 #define M_MC_EMODE          _SB_MAKEMASK(15, S_MC_EMODE)
0258 #define V_MC_EMODE(x)           _SB_MAKEVALUE(x, S_MC_EMODE)
0259 #define G_MC_EMODE(x)           _SB_GETVALUE(x, S_MC_EMODE, M_MC_EMODE)
0260 #define V_MC_EMODE_DEFAULT      V_MC_EMODE(0)
0261 
0262 #define S_MC_MODE           16
0263 #define M_MC_MODE           _SB_MAKEMASK(15, S_MC_MODE)
0264 #define V_MC_MODE(x)            _SB_MAKEVALUE(x, S_MC_MODE)
0265 #define G_MC_MODE(x)            _SB_GETVALUE(x, S_MC_MODE, M_MC_MODE)
0266 #define V_MC_MODE_DEFAULT       V_MC_MODE(0x22)
0267 
0268 #define S_MC_DRAM_TYPE          32
0269 #define M_MC_DRAM_TYPE          _SB_MAKEMASK(3, S_MC_DRAM_TYPE)
0270 #define V_MC_DRAM_TYPE(x)       _SB_MAKEVALUE(x, S_MC_DRAM_TYPE)
0271 #define G_MC_DRAM_TYPE(x)       _SB_GETVALUE(x, S_MC_DRAM_TYPE, M_MC_DRAM_TYPE)
0272 
0273 #define K_MC_DRAM_TYPE_JEDEC        0
0274 #define K_MC_DRAM_TYPE_FCRAM        1
0275 #define K_MC_DRAM_TYPE_SGRAM        2
0276 
0277 #define V_MC_DRAM_TYPE_JEDEC        V_MC_DRAM_TYPE(K_MC_DRAM_TYPE_JEDEC)
0278 #define V_MC_DRAM_TYPE_FCRAM        V_MC_DRAM_TYPE(K_MC_DRAM_TYPE_FCRAM)
0279 #define V_MC_DRAM_TYPE_SGRAM        V_MC_DRAM_TYPE(K_MC_DRAM_TYPE_SGRAM)
0280 
0281 #define M_MC_EXTERNALDECODE     _SB_MAKEMASK1(35)
0282 
0283 #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)
0284 #define M_MC_PRE_ON_A8          _SB_MAKEMASK1(36)
0285 #define M_MC_RAM_WITH_A13       _SB_MAKEMASK1(37)
0286 #endif /* 1250 PASS3 || 112x PASS1 */
0287 
0288 
0289 
0290 /*
0291  * SDRAM Timing Register  (Table 6-15)
0292  */
0293 
0294 #define M_MC_w2rIDLE_TWOCYCLES    _SB_MAKEMASK1(60)
0295 #define M_MC_r2wIDLE_TWOCYCLES    _SB_MAKEMASK1(61)
0296 #define M_MC_r2rIDLE_TWOCYCLES    _SB_MAKEMASK1(62)
0297 
0298 #define S_MC_tFIFO        56
0299 #define M_MC_tFIFO        _SB_MAKEMASK(4, S_MC_tFIFO)
0300 #define V_MC_tFIFO(x)         _SB_MAKEVALUE(x, S_MC_tFIFO)
0301 #define G_MC_tFIFO(x)         _SB_GETVALUE(x, S_MC_tFIFO, M_MC_tFIFO)
0302 #define K_MC_tFIFO_DEFAULT    1
0303 #define V_MC_tFIFO_DEFAULT    V_MC_tFIFO(K_MC_tFIFO_DEFAULT)
0304 
0305 #define S_MC_tRFC         52
0306 #define M_MC_tRFC         _SB_MAKEMASK(4, S_MC_tRFC)
0307 #define V_MC_tRFC(x)          _SB_MAKEVALUE(x, S_MC_tRFC)
0308 #define G_MC_tRFC(x)          _SB_GETVALUE(x, S_MC_tRFC, M_MC_tRFC)
0309 #define K_MC_tRFC_DEFAULT     12
0310 #define V_MC_tRFC_DEFAULT     V_MC_tRFC(K_MC_tRFC_DEFAULT)
0311 
0312 #if SIBYTE_HDR_FEATURE(1250, PASS3)
0313 #define M_MC_tRFC_PLUS16      _SB_MAKEMASK1(51) /* 1250C3 and later.  */
0314 #endif
0315 
0316 #define S_MC_tCwCr        40
0317 #define M_MC_tCwCr        _SB_MAKEMASK(4, S_MC_tCwCr)
0318 #define V_MC_tCwCr(x)         _SB_MAKEVALUE(x, S_MC_tCwCr)
0319 #define G_MC_tCwCr(x)         _SB_GETVALUE(x, S_MC_tCwCr, M_MC_tCwCr)
0320 #define K_MC_tCwCr_DEFAULT    4
0321 #define V_MC_tCwCr_DEFAULT    V_MC_tCwCr(K_MC_tCwCr_DEFAULT)
0322 
0323 #define S_MC_tRCr         28
0324 #define M_MC_tRCr         _SB_MAKEMASK(4, S_MC_tRCr)
0325 #define V_MC_tRCr(x)          _SB_MAKEVALUE(x, S_MC_tRCr)
0326 #define G_MC_tRCr(x)          _SB_GETVALUE(x, S_MC_tRCr, M_MC_tRCr)
0327 #define K_MC_tRCr_DEFAULT     9
0328 #define V_MC_tRCr_DEFAULT     V_MC_tRCr(K_MC_tRCr_DEFAULT)
0329 
0330 #define S_MC_tRCw         24
0331 #define M_MC_tRCw         _SB_MAKEMASK(4, S_MC_tRCw)
0332 #define V_MC_tRCw(x)          _SB_MAKEVALUE(x, S_MC_tRCw)
0333 #define G_MC_tRCw(x)          _SB_GETVALUE(x, S_MC_tRCw, M_MC_tRCw)
0334 #define K_MC_tRCw_DEFAULT     10
0335 #define V_MC_tRCw_DEFAULT     V_MC_tRCw(K_MC_tRCw_DEFAULT)
0336 
0337 #define S_MC_tRRD         20
0338 #define M_MC_tRRD         _SB_MAKEMASK(4, S_MC_tRRD)
0339 #define V_MC_tRRD(x)          _SB_MAKEVALUE(x, S_MC_tRRD)
0340 #define G_MC_tRRD(x)          _SB_GETVALUE(x, S_MC_tRRD, M_MC_tRRD)
0341 #define K_MC_tRRD_DEFAULT     2
0342 #define V_MC_tRRD_DEFAULT     V_MC_tRRD(K_MC_tRRD_DEFAULT)
0343 
0344 #define S_MC_tRP          16
0345 #define M_MC_tRP          _SB_MAKEMASK(4, S_MC_tRP)
0346 #define V_MC_tRP(x)       _SB_MAKEVALUE(x, S_MC_tRP)
0347 #define G_MC_tRP(x)       _SB_GETVALUE(x, S_MC_tRP, M_MC_tRP)
0348 #define K_MC_tRP_DEFAULT      4
0349 #define V_MC_tRP_DEFAULT      V_MC_tRP(K_MC_tRP_DEFAULT)
0350 
0351 #define S_MC_tCwD         8
0352 #define M_MC_tCwD         _SB_MAKEMASK(4, S_MC_tCwD)
0353 #define V_MC_tCwD(x)          _SB_MAKEVALUE(x, S_MC_tCwD)
0354 #define G_MC_tCwD(x)          _SB_GETVALUE(x, S_MC_tCwD, M_MC_tCwD)
0355 #define K_MC_tCwD_DEFAULT     1
0356 #define V_MC_tCwD_DEFAULT     V_MC_tCwD(K_MC_tCwD_DEFAULT)
0357 
0358 #define M_tCrDh           _SB_MAKEMASK1(7)
0359 #define M_MC_tCrDh        M_tCrDh
0360 
0361 #define S_MC_tCrD         4
0362 #define M_MC_tCrD         _SB_MAKEMASK(3, S_MC_tCrD)
0363 #define V_MC_tCrD(x)          _SB_MAKEVALUE(x, S_MC_tCrD)
0364 #define G_MC_tCrD(x)          _SB_GETVALUE(x, S_MC_tCrD, M_MC_tCrD)
0365 #define K_MC_tCrD_DEFAULT     2
0366 #define V_MC_tCrD_DEFAULT     V_MC_tCrD(K_MC_tCrD_DEFAULT)
0367 
0368 #define S_MC_tRCD         0
0369 #define M_MC_tRCD         _SB_MAKEMASK(4, S_MC_tRCD)
0370 #define V_MC_tRCD(x)          _SB_MAKEVALUE(x, S_MC_tRCD)
0371 #define G_MC_tRCD(x)          _SB_GETVALUE(x, S_MC_tRCD, M_MC_tRCD)
0372 #define K_MC_tRCD_DEFAULT     3
0373 #define V_MC_tRCD_DEFAULT     V_MC_tRCD(K_MC_tRCD_DEFAULT)
0374 
0375 #define V_MC_TIMING_DEFAULT V_MC_tFIFO(K_MC_tFIFO_DEFAULT) | \
0376                 V_MC_tRFC(K_MC_tRFC_DEFAULT) | \
0377                 V_MC_tCwCr(K_MC_tCwCr_DEFAULT) | \
0378                 V_MC_tRCr(K_MC_tRCr_DEFAULT) | \
0379                 V_MC_tRCw(K_MC_tRCw_DEFAULT) | \
0380                 V_MC_tRRD(K_MC_tRRD_DEFAULT) | \
0381                 V_MC_tRP(K_MC_tRP_DEFAULT) | \
0382                 V_MC_tCwD(K_MC_tCwD_DEFAULT) | \
0383                 V_MC_tCrD(K_MC_tCrD_DEFAULT) | \
0384                 V_MC_tRCD(K_MC_tRCD_DEFAULT) | \
0385                 M_MC_r2rIDLE_TWOCYCLES
0386 
0387 /*
0388  * Errata says these are not the default
0389  *               M_MC_w2rIDLE_TWOCYCLES | \
0390  *               M_MC_r2wIDLE_TWOCYCLES | \
0391  */
0392 
0393 
0394 /*
0395  * Chip Select Start Address Register (Table 6-17)
0396  */
0397 
0398 #define S_MC_CS0_START          0
0399 #define M_MC_CS0_START          _SB_MAKEMASK(16, S_MC_CS0_START)
0400 #define V_MC_CS0_START(x)       _SB_MAKEVALUE(x, S_MC_CS0_START)
0401 #define G_MC_CS0_START(x)       _SB_GETVALUE(x, S_MC_CS0_START, M_MC_CS0_START)
0402 
0403 #define S_MC_CS1_START          16
0404 #define M_MC_CS1_START          _SB_MAKEMASK(16, S_MC_CS1_START)
0405 #define V_MC_CS1_START(x)       _SB_MAKEVALUE(x, S_MC_CS1_START)
0406 #define G_MC_CS1_START(x)       _SB_GETVALUE(x, S_MC_CS1_START, M_MC_CS1_START)
0407 
0408 #define S_MC_CS2_START          32
0409 #define M_MC_CS2_START          _SB_MAKEMASK(16, S_MC_CS2_START)
0410 #define V_MC_CS2_START(x)       _SB_MAKEVALUE(x, S_MC_CS2_START)
0411 #define G_MC_CS2_START(x)       _SB_GETVALUE(x, S_MC_CS2_START, M_MC_CS2_START)
0412 
0413 #define S_MC_CS3_START          48
0414 #define M_MC_CS3_START          _SB_MAKEMASK(16, S_MC_CS3_START)
0415 #define V_MC_CS3_START(x)       _SB_MAKEVALUE(x, S_MC_CS3_START)
0416 #define G_MC_CS3_START(x)       _SB_GETVALUE(x, S_MC_CS3_START, M_MC_CS3_START)
0417 
0418 /*
0419  * Chip Select End Address Register (Table 6-18)
0420  */
0421 
0422 #define S_MC_CS0_END            0
0423 #define M_MC_CS0_END            _SB_MAKEMASK(16, S_MC_CS0_END)
0424 #define V_MC_CS0_END(x)         _SB_MAKEVALUE(x, S_MC_CS0_END)
0425 #define G_MC_CS0_END(x)         _SB_GETVALUE(x, S_MC_CS0_END, M_MC_CS0_END)
0426 
0427 #define S_MC_CS1_END            16
0428 #define M_MC_CS1_END            _SB_MAKEMASK(16, S_MC_CS1_END)
0429 #define V_MC_CS1_END(x)         _SB_MAKEVALUE(x, S_MC_CS1_END)
0430 #define G_MC_CS1_END(x)         _SB_GETVALUE(x, S_MC_CS1_END, M_MC_CS1_END)
0431 
0432 #define S_MC_CS2_END            32
0433 #define M_MC_CS2_END            _SB_MAKEMASK(16, S_MC_CS2_END)
0434 #define V_MC_CS2_END(x)         _SB_MAKEVALUE(x, S_MC_CS2_END)
0435 #define G_MC_CS2_END(x)         _SB_GETVALUE(x, S_MC_CS2_END, M_MC_CS2_END)
0436 
0437 #define S_MC_CS3_END            48
0438 #define M_MC_CS3_END            _SB_MAKEMASK(16, S_MC_CS3_END)
0439 #define V_MC_CS3_END(x)         _SB_MAKEVALUE(x, S_MC_CS3_END)
0440 #define G_MC_CS3_END(x)         _SB_GETVALUE(x, S_MC_CS3_END, M_MC_CS3_END)
0441 
0442 /*
0443  * Chip Select Interleave Register (Table 6-19)
0444  */
0445 
0446 #define S_MC_INTLV_RESERVED     0
0447 #define M_MC_INTLV_RESERVED     _SB_MAKEMASK(5, S_MC_INTLV_RESERVED)
0448 
0449 #define S_MC_INTERLEAVE         7
0450 #define M_MC_INTERLEAVE         _SB_MAKEMASK(18, S_MC_INTERLEAVE)
0451 #define V_MC_INTERLEAVE(x)      _SB_MAKEVALUE(x, S_MC_INTERLEAVE)
0452 
0453 #define S_MC_INTLV_MBZ          25
0454 #define M_MC_INTLV_MBZ          _SB_MAKEMASK(39, S_MC_INTLV_MBZ)
0455 
0456 /*
0457  * Row Address Bits Register (Table 6-20)
0458  */
0459 
0460 #define S_MC_RAS_RESERVED       0
0461 #define M_MC_RAS_RESERVED       _SB_MAKEMASK(5, S_MC_RAS_RESERVED)
0462 
0463 #define S_MC_RAS_SELECT         12
0464 #define M_MC_RAS_SELECT         _SB_MAKEMASK(25, S_MC_RAS_SELECT)
0465 #define V_MC_RAS_SELECT(x)      _SB_MAKEVALUE(x, S_MC_RAS_SELECT)
0466 
0467 #define S_MC_RAS_MBZ            37
0468 #define M_MC_RAS_MBZ            _SB_MAKEMASK(27, S_MC_RAS_MBZ)
0469 
0470 
0471 /*
0472  * Column Address Bits Register (Table 6-21)
0473  */
0474 
0475 #define S_MC_CAS_RESERVED       0
0476 #define M_MC_CAS_RESERVED       _SB_MAKEMASK(5, S_MC_CAS_RESERVED)
0477 
0478 #define S_MC_CAS_SELECT         5
0479 #define M_MC_CAS_SELECT         _SB_MAKEMASK(18, S_MC_CAS_SELECT)
0480 #define V_MC_CAS_SELECT(x)      _SB_MAKEVALUE(x, S_MC_CAS_SELECT)
0481 
0482 #define S_MC_CAS_MBZ            23
0483 #define M_MC_CAS_MBZ            _SB_MAKEMASK(41, S_MC_CAS_MBZ)
0484 
0485 
0486 /*
0487  * Bank Address Bits Register (Table 6-22)
0488  */
0489 
0490 #define S_MC_BA_RESERVED        0
0491 #define M_MC_BA_RESERVED        _SB_MAKEMASK(5, S_MC_BA_RESERVED)
0492 
0493 #define S_MC_BA_SELECT          5
0494 #define M_MC_BA_SELECT          _SB_MAKEMASK(20, S_MC_BA_SELECT)
0495 #define V_MC_BA_SELECT(x)       _SB_MAKEVALUE(x, S_MC_BA_SELECT)
0496 
0497 #define S_MC_BA_MBZ         25
0498 #define M_MC_BA_MBZ         _SB_MAKEMASK(39, S_MC_BA_MBZ)
0499 
0500 /*
0501  * Chip Select Attribute Register (Table 6-23)
0502  */
0503 
0504 #define K_MC_CS_ATTR_CLOSED     0
0505 #define K_MC_CS_ATTR_CASCHECK       1
0506 #define K_MC_CS_ATTR_HINT       2
0507 #define K_MC_CS_ATTR_OPEN       3
0508 
0509 #define S_MC_CS0_PAGE           0
0510 #define M_MC_CS0_PAGE           _SB_MAKEMASK(2, S_MC_CS0_PAGE)
0511 #define V_MC_CS0_PAGE(x)        _SB_MAKEVALUE(x, S_MC_CS0_PAGE)
0512 #define G_MC_CS0_PAGE(x)        _SB_GETVALUE(x, S_MC_CS0_PAGE, M_MC_CS0_PAGE)
0513 
0514 #define S_MC_CS1_PAGE           16
0515 #define M_MC_CS1_PAGE           _SB_MAKEMASK(2, S_MC_CS1_PAGE)
0516 #define V_MC_CS1_PAGE(x)        _SB_MAKEVALUE(x, S_MC_CS1_PAGE)
0517 #define G_MC_CS1_PAGE(x)        _SB_GETVALUE(x, S_MC_CS1_PAGE, M_MC_CS1_PAGE)
0518 
0519 #define S_MC_CS2_PAGE           32
0520 #define M_MC_CS2_PAGE           _SB_MAKEMASK(2, S_MC_CS2_PAGE)
0521 #define V_MC_CS2_PAGE(x)        _SB_MAKEVALUE(x, S_MC_CS2_PAGE)
0522 #define G_MC_CS2_PAGE(x)        _SB_GETVALUE(x, S_MC_CS2_PAGE, M_MC_CS2_PAGE)
0523 
0524 #define S_MC_CS3_PAGE           48
0525 #define M_MC_CS3_PAGE           _SB_MAKEMASK(2, S_MC_CS3_PAGE)
0526 #define V_MC_CS3_PAGE(x)        _SB_MAKEVALUE(x, S_MC_CS3_PAGE)
0527 #define G_MC_CS3_PAGE(x)        _SB_GETVALUE(x, S_MC_CS3_PAGE, M_MC_CS3_PAGE)
0528 
0529 /*
0530  * ECC Test ECC Register (Table 6-25)
0531  */
0532 
0533 #define S_MC_ECC_INVERT         0
0534 #define M_MC_ECC_INVERT         _SB_MAKEMASK(8, S_MC_ECC_INVERT)
0535 
0536 
0537 #endif