![]() |
|
|||
File indexing completed on 2025-05-11 08:22:43
0001 /** 0002 * @file 0003 * 0004 * @ingroup RTEMSBSPsARMCycVContrib 0005 */ 0006 0007 /******************************************************************************* 0008 * * 0009 * Copyright 2013 Altera Corporation. All Rights Reserved. * 0010 * * 0011 * Redistribution and use in source and binary forms, with or without * 0012 * modification, are permitted provided that the following conditions are met: * 0013 * * 0014 * 1. Redistributions of source code must retain the above copyright notice, * 0015 * this list of conditions and the following disclaimer. * 0016 * * 0017 * 2. Redistributions in binary form must reproduce the above copyright notice, * 0018 * this list of conditions and the following disclaimer in the documentation * 0019 * and/or other materials provided with the distribution. * 0020 * * 0021 * 3. The name of the author may not be used to endorse or promote products * 0022 * derived from this software without specific prior written permission. * 0023 * * 0024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY EXPRESS OR * 0025 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * 0026 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO * 0027 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * 0028 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * 0029 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * 0030 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * 0031 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * 0032 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * 0033 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 0034 * * 0035 *******************************************************************************/ 0036 0037 /* Altera - ALT_SDR */ 0038 0039 #ifndef __ALTERA_ALT_SDR_H__ 0040 #define __ALTERA_ALT_SDR_H__ 0041 0042 #ifdef __cplusplus 0043 extern "C" 0044 { 0045 #endif /* __cplusplus */ 0046 0047 /* 0048 * Component : SDRAM Controller - ALT_SDR 0049 * SDRAM Controller 0050 * 0051 * Address map for the SDRAM Interface registers 0052 * 0053 */ 0054 /* 0055 * Register Group : SDRAM Controller Module - ALT_SDR_CTL 0056 * SDRAM Controller Module 0057 * 0058 * Address map for the SDRAM controller and multi-port front-end. 0059 * 0060 * All registers in this group reset to zero. 0061 * 0062 */ 0063 /* 0064 * Register : Controller Configuration Register - ctrlcfg 0065 * 0066 * The Controller Configuration Register determines the behavior of the controller. 0067 * 0068 * Register Layout 0069 * 0070 * Bits | Access | Reset | Description 0071 * :--------|:-------|:--------|:--------------------------- 0072 * [2:0] | RW | Unknown | DRAM Memory Type 0073 * [7:3] | RW | Unknown | DRAM Memory Burst Length 0074 * [9:8] | RW | Unknown | Address Interleaving Order 0075 * [10] | RW | Unknown | ECC Enable 0076 * [11] | RW | Unknown | ECC Auto-Correction Enable 0077 * [12] | RW | Unknown | TBD 0078 * [13] | RW | Unknown | Generate Single Bit Errors 0079 * [14] | RW | Unknown | Generate Double Bit Errors 0080 * [15] | RW | Unknown | Command Reorder Enable 0081 * [21:16] | RW | Unknown | Starvation Limit 0082 * [22] | RW | Unknown | DQS Tracking Enable 0083 * [23] | RW | Unknown | No DM Pins Present 0084 * [24] | RW | Unknown | Burst Interrupt Enable 0085 * [25] | RW | Unknown | Burst Terminate Enable 0086 * [31:26] | ??? | Unknown | *UNDEFINED* 0087 * 0088 */ 0089 /* 0090 * Field : DRAM Memory Type - memtype 0091 * 0092 * Selects memory type. Program this field with one of the following binary values, 0093 * "001" for DDR2 SDRAM, "010" for DDR3 SDRAM, "011" 0094 * for LPDDR1 SDRAM or "100" for LPDDR2 SDRAM. 0095 * 0096 * Field Access Macros: 0097 * 0098 */ 0099 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_MEMTYPE register field. */ 0100 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_LSB 0 0101 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_MEMTYPE register field. */ 0102 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_MSB 2 0103 /* The width in bits of the ALT_SDR_CTL_CTLCFG_MEMTYPE register field. */ 0104 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_WIDTH 3 0105 /* The mask used to set the ALT_SDR_CTL_CTLCFG_MEMTYPE register field value. */ 0106 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_SET_MSK 0x00000007 0107 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_MEMTYPE register field value. */ 0108 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_CLR_MSK 0xfffffff8 0109 /* The reset value of the ALT_SDR_CTL_CTLCFG_MEMTYPE register field is UNKNOWN. */ 0110 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_RESET 0x0 0111 /* Extracts the ALT_SDR_CTL_CTLCFG_MEMTYPE field value from a register. */ 0112 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_GET(value) (((value) & 0x00000007) >> 0) 0113 /* Produces a ALT_SDR_CTL_CTLCFG_MEMTYPE register field value suitable for setting the register. */ 0114 #define ALT_SDR_CTL_CTLCFG_MEMTYPE_SET(value) (((value) << 0) & 0x00000007) 0115 0116 /* 0117 * Field : DRAM Memory Burst Length - membl 0118 * 0119 * Configures burst length as a static decimal value. Legal values are valid for 0120 * JEDEC allowed DRAM values for the DRAM selected in cfg_type. For DDR3, this 0121 * should be programmed with 8 (binary "01000"), for DDR2 it can be 0122 * either 4 or 8 depending on the exact DRAM chip. LPDDR2 can be programmed with 0123 * 4, 8, or 16 and LPDDR can be programmed with 2, 4, or 8. You must also program 0124 * the membl field in the staticcfg register. 0125 * 0126 * Field Access Macros: 0127 * 0128 */ 0129 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_MEMBL register field. */ 0130 #define ALT_SDR_CTL_CTLCFG_MEMBL_LSB 3 0131 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_MEMBL register field. */ 0132 #define ALT_SDR_CTL_CTLCFG_MEMBL_MSB 7 0133 /* The width in bits of the ALT_SDR_CTL_CTLCFG_MEMBL register field. */ 0134 #define ALT_SDR_CTL_CTLCFG_MEMBL_WIDTH 5 0135 /* The mask used to set the ALT_SDR_CTL_CTLCFG_MEMBL register field value. */ 0136 #define ALT_SDR_CTL_CTLCFG_MEMBL_SET_MSK 0x000000f8 0137 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_MEMBL register field value. */ 0138 #define ALT_SDR_CTL_CTLCFG_MEMBL_CLR_MSK 0xffffff07 0139 /* The reset value of the ALT_SDR_CTL_CTLCFG_MEMBL register field is UNKNOWN. */ 0140 #define ALT_SDR_CTL_CTLCFG_MEMBL_RESET 0x0 0141 /* Extracts the ALT_SDR_CTL_CTLCFG_MEMBL field value from a register. */ 0142 #define ALT_SDR_CTL_CTLCFG_MEMBL_GET(value) (((value) & 0x000000f8) >> 3) 0143 /* Produces a ALT_SDR_CTL_CTLCFG_MEMBL register field value suitable for setting the register. */ 0144 #define ALT_SDR_CTL_CTLCFG_MEMBL_SET(value) (((value) << 3) & 0x000000f8) 0145 0146 /* 0147 * Field : Address Interleaving Order - addrorder 0148 * 0149 * Selects the order for address interleaving. Programming this field with 0150 * different values gives different mappings between the AXI or Avalon-MM address 0151 * and the SDRAM address. Program this field with the following binary values to 0152 * select the ordering. "00" - chip, row, bank, column, "01" - 0153 * chip, bank, row, column, "10"-row, chip, bank, column 0154 * 0155 * Field Access Macros: 0156 * 0157 */ 0158 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_ADDRORDER register field. */ 0159 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_LSB 8 0160 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_ADDRORDER register field. */ 0161 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_MSB 9 0162 /* The width in bits of the ALT_SDR_CTL_CTLCFG_ADDRORDER register field. */ 0163 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_WIDTH 2 0164 /* The mask used to set the ALT_SDR_CTL_CTLCFG_ADDRORDER register field value. */ 0165 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_SET_MSK 0x00000300 0166 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_ADDRORDER register field value. */ 0167 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_CLR_MSK 0xfffffcff 0168 /* The reset value of the ALT_SDR_CTL_CTLCFG_ADDRORDER register field is UNKNOWN. */ 0169 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_RESET 0x0 0170 /* Extracts the ALT_SDR_CTL_CTLCFG_ADDRORDER field value from a register. */ 0171 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_GET(value) (((value) & 0x00000300) >> 8) 0172 /* Produces a ALT_SDR_CTL_CTLCFG_ADDRORDER register field value suitable for setting the register. */ 0173 #define ALT_SDR_CTL_CTLCFG_ADDRORDER_SET(value) (((value) << 8) & 0x00000300) 0174 0175 /* 0176 * Field : ECC Enable - eccen 0177 * 0178 * Enable the generation and checking of ECC. This bit must only be set if the 0179 * memory connected to the SDRAM interface is 24 or 40 bits wide. If you set this, 0180 * you must clear the useeccasdata field in the staticcfg register. 0181 * 0182 * Field Access Macros: 0183 * 0184 */ 0185 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_ECCEN register field. */ 0186 #define ALT_SDR_CTL_CTLCFG_ECCEN_LSB 10 0187 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_ECCEN register field. */ 0188 #define ALT_SDR_CTL_CTLCFG_ECCEN_MSB 10 0189 /* The width in bits of the ALT_SDR_CTL_CTLCFG_ECCEN register field. */ 0190 #define ALT_SDR_CTL_CTLCFG_ECCEN_WIDTH 1 0191 /* The mask used to set the ALT_SDR_CTL_CTLCFG_ECCEN register field value. */ 0192 #define ALT_SDR_CTL_CTLCFG_ECCEN_SET_MSK 0x00000400 0193 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_ECCEN register field value. */ 0194 #define ALT_SDR_CTL_CTLCFG_ECCEN_CLR_MSK 0xfffffbff 0195 /* The reset value of the ALT_SDR_CTL_CTLCFG_ECCEN register field is UNKNOWN. */ 0196 #define ALT_SDR_CTL_CTLCFG_ECCEN_RESET 0x0 0197 /* Extracts the ALT_SDR_CTL_CTLCFG_ECCEN field value from a register. */ 0198 #define ALT_SDR_CTL_CTLCFG_ECCEN_GET(value) (((value) & 0x00000400) >> 10) 0199 /* Produces a ALT_SDR_CTL_CTLCFG_ECCEN register field value suitable for setting the register. */ 0200 #define ALT_SDR_CTL_CTLCFG_ECCEN_SET(value) (((value) << 10) & 0x00000400) 0201 0202 /* 0203 * Field : ECC Auto-Correction Enable - ecccorren 0204 * 0205 * Enable auto correction of the read data returned when single bit error is 0206 * detected. 0207 * 0208 * Field Access Macros: 0209 * 0210 */ 0211 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_ECCCORREN register field. */ 0212 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_LSB 11 0213 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_ECCCORREN register field. */ 0214 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_MSB 11 0215 /* The width in bits of the ALT_SDR_CTL_CTLCFG_ECCCORREN register field. */ 0216 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_WIDTH 1 0217 /* The mask used to set the ALT_SDR_CTL_CTLCFG_ECCCORREN register field value. */ 0218 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_SET_MSK 0x00000800 0219 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_ECCCORREN register field value. */ 0220 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_CLR_MSK 0xfffff7ff 0221 /* The reset value of the ALT_SDR_CTL_CTLCFG_ECCCORREN register field is UNKNOWN. */ 0222 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_RESET 0x0 0223 /* Extracts the ALT_SDR_CTL_CTLCFG_ECCCORREN field value from a register. */ 0224 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_GET(value) (((value) & 0x00000800) >> 11) 0225 /* Produces a ALT_SDR_CTL_CTLCFG_ECCCORREN register field value suitable for setting the register. */ 0226 #define ALT_SDR_CTL_CTLCFG_ECCCORREN_SET(value) (((value) << 11) & 0x00000800) 0227 0228 /* 0229 * Field : TBD - cfg_enable_ecc_code_overwrites 0230 * 0231 * Set to a one to enable ECC overwrites. ECC overwrites occur when a correctable 0232 * ECC error is seen and cause a new read/modify/write to be scheduled for that 0233 * location to clear the ECC error. 0234 * 0235 * Field Access Macros: 0236 * 0237 */ 0238 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS register field. */ 0239 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_LSB 12 0240 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS register field. */ 0241 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_MSB 12 0242 /* The width in bits of the ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS register field. */ 0243 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_WIDTH 1 0244 /* The mask used to set the ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS register field value. */ 0245 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_SET_MSK 0x00001000 0246 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS register field value. */ 0247 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_CLR_MSK 0xffffefff 0248 /* The reset value of the ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS register field is UNKNOWN. */ 0249 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_RESET 0x0 0250 /* Extracts the ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS field value from a register. */ 0251 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_GET(value) (((value) & 0x00001000) >> 12) 0252 /* Produces a ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS register field value suitable for setting the register. */ 0253 #define ALT_SDR_CTL_CTLCFG_CFG_EN_ECC_CODE_OVERWRS_SET(value) (((value) << 12) & 0x00001000) 0254 0255 /* 0256 * Field : Generate Single Bit Errors - gensbe 0257 * 0258 * Enable the deliberate insertion of single bit errors in data written to memory. 0259 * This should only be used for testing purposes. 0260 * 0261 * Field Access Macros: 0262 * 0263 */ 0264 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_GENSBE register field. */ 0265 #define ALT_SDR_CTL_CTLCFG_GENSBE_LSB 13 0266 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_GENSBE register field. */ 0267 #define ALT_SDR_CTL_CTLCFG_GENSBE_MSB 13 0268 /* The width in bits of the ALT_SDR_CTL_CTLCFG_GENSBE register field. */ 0269 #define ALT_SDR_CTL_CTLCFG_GENSBE_WIDTH 1 0270 /* The mask used to set the ALT_SDR_CTL_CTLCFG_GENSBE register field value. */ 0271 #define ALT_SDR_CTL_CTLCFG_GENSBE_SET_MSK 0x00002000 0272 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_GENSBE register field value. */ 0273 #define ALT_SDR_CTL_CTLCFG_GENSBE_CLR_MSK 0xffffdfff 0274 /* The reset value of the ALT_SDR_CTL_CTLCFG_GENSBE register field is UNKNOWN. */ 0275 #define ALT_SDR_CTL_CTLCFG_GENSBE_RESET 0x0 0276 /* Extracts the ALT_SDR_CTL_CTLCFG_GENSBE field value from a register. */ 0277 #define ALT_SDR_CTL_CTLCFG_GENSBE_GET(value) (((value) & 0x00002000) >> 13) 0278 /* Produces a ALT_SDR_CTL_CTLCFG_GENSBE register field value suitable for setting the register. */ 0279 #define ALT_SDR_CTL_CTLCFG_GENSBE_SET(value) (((value) << 13) & 0x00002000) 0280 0281 /* 0282 * Field : Generate Double Bit Errors - gendbe 0283 * 0284 * Enable the deliberate insertion of double bit errors in data written to memory. 0285 * This should only be used for testing purposes. 0286 * 0287 * Field Access Macros: 0288 * 0289 */ 0290 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_GENDBE register field. */ 0291 #define ALT_SDR_CTL_CTLCFG_GENDBE_LSB 14 0292 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_GENDBE register field. */ 0293 #define ALT_SDR_CTL_CTLCFG_GENDBE_MSB 14 0294 /* The width in bits of the ALT_SDR_CTL_CTLCFG_GENDBE register field. */ 0295 #define ALT_SDR_CTL_CTLCFG_GENDBE_WIDTH 1 0296 /* The mask used to set the ALT_SDR_CTL_CTLCFG_GENDBE register field value. */ 0297 #define ALT_SDR_CTL_CTLCFG_GENDBE_SET_MSK 0x00004000 0298 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_GENDBE register field value. */ 0299 #define ALT_SDR_CTL_CTLCFG_GENDBE_CLR_MSK 0xffffbfff 0300 /* The reset value of the ALT_SDR_CTL_CTLCFG_GENDBE register field is UNKNOWN. */ 0301 #define ALT_SDR_CTL_CTLCFG_GENDBE_RESET 0x0 0302 /* Extracts the ALT_SDR_CTL_CTLCFG_GENDBE field value from a register. */ 0303 #define ALT_SDR_CTL_CTLCFG_GENDBE_GET(value) (((value) & 0x00004000) >> 14) 0304 /* Produces a ALT_SDR_CTL_CTLCFG_GENDBE register field value suitable for setting the register. */ 0305 #define ALT_SDR_CTL_CTLCFG_GENDBE_SET(value) (((value) << 14) & 0x00004000) 0306 0307 /* 0308 * Field : Command Reorder Enable - reorderen 0309 * 0310 * This bit controls whether the controller can re-order operations to optimize 0311 * SDRAM bandwidth. It should generally be set to a one. 0312 * 0313 * Field Access Macros: 0314 * 0315 */ 0316 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_REORDEREN register field. */ 0317 #define ALT_SDR_CTL_CTLCFG_REORDEREN_LSB 15 0318 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_REORDEREN register field. */ 0319 #define ALT_SDR_CTL_CTLCFG_REORDEREN_MSB 15 0320 /* The width in bits of the ALT_SDR_CTL_CTLCFG_REORDEREN register field. */ 0321 #define ALT_SDR_CTL_CTLCFG_REORDEREN_WIDTH 1 0322 /* The mask used to set the ALT_SDR_CTL_CTLCFG_REORDEREN register field value. */ 0323 #define ALT_SDR_CTL_CTLCFG_REORDEREN_SET_MSK 0x00008000 0324 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_REORDEREN register field value. */ 0325 #define ALT_SDR_CTL_CTLCFG_REORDEREN_CLR_MSK 0xffff7fff 0326 /* The reset value of the ALT_SDR_CTL_CTLCFG_REORDEREN register field is UNKNOWN. */ 0327 #define ALT_SDR_CTL_CTLCFG_REORDEREN_RESET 0x0 0328 /* Extracts the ALT_SDR_CTL_CTLCFG_REORDEREN field value from a register. */ 0329 #define ALT_SDR_CTL_CTLCFG_REORDEREN_GET(value) (((value) & 0x00008000) >> 15) 0330 /* Produces a ALT_SDR_CTL_CTLCFG_REORDEREN register field value suitable for setting the register. */ 0331 #define ALT_SDR_CTL_CTLCFG_REORDEREN_SET(value) (((value) << 15) & 0x00008000) 0332 0333 /* 0334 * Field : Starvation Limit - starvelimit 0335 * 0336 * Specifies the number of DRAM burst transactions an individual transaction will 0337 * allow to reorder ahead of it before its priority is raised in the memory 0338 * controller. 0339 * 0340 * Field Access Macros: 0341 * 0342 */ 0343 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_STARVELIMIT register field. */ 0344 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_LSB 16 0345 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_STARVELIMIT register field. */ 0346 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_MSB 21 0347 /* The width in bits of the ALT_SDR_CTL_CTLCFG_STARVELIMIT register field. */ 0348 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_WIDTH 6 0349 /* The mask used to set the ALT_SDR_CTL_CTLCFG_STARVELIMIT register field value. */ 0350 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_SET_MSK 0x003f0000 0351 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_STARVELIMIT register field value. */ 0352 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_CLR_MSK 0xffc0ffff 0353 /* The reset value of the ALT_SDR_CTL_CTLCFG_STARVELIMIT register field is UNKNOWN. */ 0354 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_RESET 0x0 0355 /* Extracts the ALT_SDR_CTL_CTLCFG_STARVELIMIT field value from a register. */ 0356 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_GET(value) (((value) & 0x003f0000) >> 16) 0357 /* Produces a ALT_SDR_CTL_CTLCFG_STARVELIMIT register field value suitable for setting the register. */ 0358 #define ALT_SDR_CTL_CTLCFG_STARVELIMIT_SET(value) (((value) << 16) & 0x003f0000) 0359 0360 /* 0361 * Field : DQS Tracking Enable - dqstrken 0362 * 0363 * Enables DQS tracking in the PHY. 0364 * 0365 * Field Access Macros: 0366 * 0367 */ 0368 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_DQSTRKEN register field. */ 0369 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_LSB 22 0370 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_DQSTRKEN register field. */ 0371 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_MSB 22 0372 /* The width in bits of the ALT_SDR_CTL_CTLCFG_DQSTRKEN register field. */ 0373 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_WIDTH 1 0374 /* The mask used to set the ALT_SDR_CTL_CTLCFG_DQSTRKEN register field value. */ 0375 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_SET_MSK 0x00400000 0376 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_DQSTRKEN register field value. */ 0377 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_CLR_MSK 0xffbfffff 0378 /* The reset value of the ALT_SDR_CTL_CTLCFG_DQSTRKEN register field is UNKNOWN. */ 0379 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_RESET 0x0 0380 /* Extracts the ALT_SDR_CTL_CTLCFG_DQSTRKEN field value from a register. */ 0381 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_GET(value) (((value) & 0x00400000) >> 22) 0382 /* Produces a ALT_SDR_CTL_CTLCFG_DQSTRKEN register field value suitable for setting the register. */ 0383 #define ALT_SDR_CTL_CTLCFG_DQSTRKEN_SET(value) (((value) << 22) & 0x00400000) 0384 0385 /* 0386 * Field : No DM Pins Present - nodmpins 0387 * 0388 * Set to a one to enable DRAM operation if no DM pins are connected. 0389 * 0390 * Field Access Macros: 0391 * 0392 */ 0393 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_NODMPINS register field. */ 0394 #define ALT_SDR_CTL_CTLCFG_NODMPINS_LSB 23 0395 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_NODMPINS register field. */ 0396 #define ALT_SDR_CTL_CTLCFG_NODMPINS_MSB 23 0397 /* The width in bits of the ALT_SDR_CTL_CTLCFG_NODMPINS register field. */ 0398 #define ALT_SDR_CTL_CTLCFG_NODMPINS_WIDTH 1 0399 /* The mask used to set the ALT_SDR_CTL_CTLCFG_NODMPINS register field value. */ 0400 #define ALT_SDR_CTL_CTLCFG_NODMPINS_SET_MSK 0x00800000 0401 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_NODMPINS register field value. */ 0402 #define ALT_SDR_CTL_CTLCFG_NODMPINS_CLR_MSK 0xff7fffff 0403 /* The reset value of the ALT_SDR_CTL_CTLCFG_NODMPINS register field is UNKNOWN. */ 0404 #define ALT_SDR_CTL_CTLCFG_NODMPINS_RESET 0x0 0405 /* Extracts the ALT_SDR_CTL_CTLCFG_NODMPINS field value from a register. */ 0406 #define ALT_SDR_CTL_CTLCFG_NODMPINS_GET(value) (((value) & 0x00800000) >> 23) 0407 /* Produces a ALT_SDR_CTL_CTLCFG_NODMPINS register field value suitable for setting the register. */ 0408 #define ALT_SDR_CTL_CTLCFG_NODMPINS_SET(value) (((value) << 23) & 0x00800000) 0409 0410 /* 0411 * Field : Burst Interrupt Enable - burstintren 0412 * 0413 * Set to a one to enable the controller to issue burst interrupt commands. This 0414 * must only be set when the DRAM memory type is LPDDR2. 0415 * 0416 * Field Access Macros: 0417 * 0418 */ 0419 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_BURSTINTREN register field. */ 0420 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_LSB 24 0421 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_BURSTINTREN register field. */ 0422 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_MSB 24 0423 /* The width in bits of the ALT_SDR_CTL_CTLCFG_BURSTINTREN register field. */ 0424 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_WIDTH 1 0425 /* The mask used to set the ALT_SDR_CTL_CTLCFG_BURSTINTREN register field value. */ 0426 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_SET_MSK 0x01000000 0427 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_BURSTINTREN register field value. */ 0428 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_CLR_MSK 0xfeffffff 0429 /* The reset value of the ALT_SDR_CTL_CTLCFG_BURSTINTREN register field is UNKNOWN. */ 0430 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_RESET 0x0 0431 /* Extracts the ALT_SDR_CTL_CTLCFG_BURSTINTREN field value from a register. */ 0432 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_GET(value) (((value) & 0x01000000) >> 24) 0433 /* Produces a ALT_SDR_CTL_CTLCFG_BURSTINTREN register field value suitable for setting the register. */ 0434 #define ALT_SDR_CTL_CTLCFG_BURSTINTREN_SET(value) (((value) << 24) & 0x01000000) 0435 0436 /* 0437 * Field : Burst Terminate Enable - bursttermen 0438 * 0439 * Set to a one to enable the controller to issue burst terminate commands. This 0440 * must only be set when the DRAM memory type is LPDDR2. 0441 * 0442 * Field Access Macros: 0443 * 0444 */ 0445 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLCFG_BURSTTERMEN register field. */ 0446 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_LSB 25 0447 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLCFG_BURSTTERMEN register field. */ 0448 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_MSB 25 0449 /* The width in bits of the ALT_SDR_CTL_CTLCFG_BURSTTERMEN register field. */ 0450 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_WIDTH 1 0451 /* The mask used to set the ALT_SDR_CTL_CTLCFG_BURSTTERMEN register field value. */ 0452 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_SET_MSK 0x02000000 0453 /* The mask used to clear the ALT_SDR_CTL_CTLCFG_BURSTTERMEN register field value. */ 0454 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_CLR_MSK 0xfdffffff 0455 /* The reset value of the ALT_SDR_CTL_CTLCFG_BURSTTERMEN register field is UNKNOWN. */ 0456 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_RESET 0x0 0457 /* Extracts the ALT_SDR_CTL_CTLCFG_BURSTTERMEN field value from a register. */ 0458 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_GET(value) (((value) & 0x02000000) >> 25) 0459 /* Produces a ALT_SDR_CTL_CTLCFG_BURSTTERMEN register field value suitable for setting the register. */ 0460 #define ALT_SDR_CTL_CTLCFG_BURSTTERMEN_SET(value) (((value) << 25) & 0x02000000) 0461 0462 #ifndef __ASSEMBLY__ 0463 /* 0464 * WARNING: The C register and register group struct declarations are provided for 0465 * convenience and illustrative purposes. They should, however, be used with 0466 * caution as the C language standard provides no guarantees about the alignment or 0467 * atomicity of device memory accesses. The recommended practice for writing 0468 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 0469 * alt_write_word() functions. 0470 * 0471 * The struct declaration for register ALT_SDR_CTL_CTLCFG. 0472 */ 0473 struct ALT_SDR_CTL_CTLCFG_s 0474 { 0475 uint32_t memtype : 3; /* DRAM Memory Type */ 0476 uint32_t membl : 5; /* DRAM Memory Burst Length */ 0477 uint32_t addrorder : 2; /* Address Interleaving Order */ 0478 uint32_t eccen : 1; /* ECC Enable */ 0479 uint32_t ecccorren : 1; /* ECC Auto-Correction Enable */ 0480 uint32_t cfg_enable_ecc_code_overwrites : 1; /* TBD */ 0481 uint32_t gensbe : 1; /* Generate Single Bit Errors */ 0482 uint32_t gendbe : 1; /* Generate Double Bit Errors */ 0483 uint32_t reorderen : 1; /* Command Reorder Enable */ 0484 uint32_t starvelimit : 6; /* Starvation Limit */ 0485 uint32_t dqstrken : 1; /* DQS Tracking Enable */ 0486 uint32_t nodmpins : 1; /* No DM Pins Present */ 0487 uint32_t burstintren : 1; /* Burst Interrupt Enable */ 0488 uint32_t bursttermen : 1; /* Burst Terminate Enable */ 0489 uint32_t : 6; /* *UNDEFINED* */ 0490 }; 0491 0492 /* The typedef declaration for register ALT_SDR_CTL_CTLCFG. */ 0493 typedef volatile struct ALT_SDR_CTL_CTLCFG_s ALT_SDR_CTL_CTLCFG_t; 0494 #endif /* __ASSEMBLY__ */ 0495 0496 /* The byte offset of the ALT_SDR_CTL_CTLCFG register from the beginning of the component. */ 0497 #define ALT_SDR_CTL_CTLCFG_OFST 0x0 0498 0499 /* 0500 * Register : DRAM Timings 1 Register - dramtiming1 0501 * 0502 * This register implements JEDEC standardized timing parameters. It should be 0503 * programmed in clock cycles, for the value specified by the memory vendor. 0504 * 0505 * Register Layout 0506 * 0507 * Bits | Access | Reset | Description 0508 * :--------|:-------|:--------|:--------------------------- 0509 * [3:0] | RW | Unknown | CAS Write Latency 0510 * [8:4] | RW | Unknown | Additive Latency 0511 * [13:9] | RW | Unknown | CAS Read Latency 0512 * [17:14] | RW | Unknown | Activate to Activate Delay 0513 * [23:18] | RW | Unknown | Four Activate Window Time 0514 * [31:24] | RW | Unknown | Refresh Cycle Time 0515 * 0516 */ 0517 /* 0518 * Field : CAS Write Latency - tcwl 0519 * 0520 * Memory write latency. 0521 * 0522 * Field Access Macros: 0523 * 0524 */ 0525 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING1_TCWL register field. */ 0526 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_LSB 0 0527 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING1_TCWL register field. */ 0528 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_MSB 3 0529 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING1_TCWL register field. */ 0530 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_WIDTH 4 0531 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING1_TCWL register field value. */ 0532 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_SET_MSK 0x0000000f 0533 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING1_TCWL register field value. */ 0534 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_CLR_MSK 0xfffffff0 0535 /* The reset value of the ALT_SDR_CTL_DRAMTIMING1_TCWL register field is UNKNOWN. */ 0536 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_RESET 0x0 0537 /* Extracts the ALT_SDR_CTL_DRAMTIMING1_TCWL field value from a register. */ 0538 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_GET(value) (((value) & 0x0000000f) >> 0) 0539 /* Produces a ALT_SDR_CTL_DRAMTIMING1_TCWL register field value suitable for setting the register. */ 0540 #define ALT_SDR_CTL_DRAMTIMING1_TCWL_SET(value) (((value) << 0) & 0x0000000f) 0541 0542 /* 0543 * Field : Additive Latency - tal 0544 * 0545 * Memory additive latency. 0546 * 0547 * Field Access Macros: 0548 * 0549 */ 0550 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING1_TAL register field. */ 0551 #define ALT_SDR_CTL_DRAMTIMING1_TAL_LSB 4 0552 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING1_TAL register field. */ 0553 #define ALT_SDR_CTL_DRAMTIMING1_TAL_MSB 8 0554 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING1_TAL register field. */ 0555 #define ALT_SDR_CTL_DRAMTIMING1_TAL_WIDTH 5 0556 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING1_TAL register field value. */ 0557 #define ALT_SDR_CTL_DRAMTIMING1_TAL_SET_MSK 0x000001f0 0558 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING1_TAL register field value. */ 0559 #define ALT_SDR_CTL_DRAMTIMING1_TAL_CLR_MSK 0xfffffe0f 0560 /* The reset value of the ALT_SDR_CTL_DRAMTIMING1_TAL register field is UNKNOWN. */ 0561 #define ALT_SDR_CTL_DRAMTIMING1_TAL_RESET 0x0 0562 /* Extracts the ALT_SDR_CTL_DRAMTIMING1_TAL field value from a register. */ 0563 #define ALT_SDR_CTL_DRAMTIMING1_TAL_GET(value) (((value) & 0x000001f0) >> 4) 0564 /* Produces a ALT_SDR_CTL_DRAMTIMING1_TAL register field value suitable for setting the register. */ 0565 #define ALT_SDR_CTL_DRAMTIMING1_TAL_SET(value) (((value) << 4) & 0x000001f0) 0566 0567 /* 0568 * Field : CAS Read Latency - tcl 0569 * 0570 * Memory read latency. 0571 * 0572 * Field Access Macros: 0573 * 0574 */ 0575 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING1_TCL register field. */ 0576 #define ALT_SDR_CTL_DRAMTIMING1_TCL_LSB 9 0577 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING1_TCL register field. */ 0578 #define ALT_SDR_CTL_DRAMTIMING1_TCL_MSB 13 0579 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING1_TCL register field. */ 0580 #define ALT_SDR_CTL_DRAMTIMING1_TCL_WIDTH 5 0581 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING1_TCL register field value. */ 0582 #define ALT_SDR_CTL_DRAMTIMING1_TCL_SET_MSK 0x00003e00 0583 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING1_TCL register field value. */ 0584 #define ALT_SDR_CTL_DRAMTIMING1_TCL_CLR_MSK 0xffffc1ff 0585 /* The reset value of the ALT_SDR_CTL_DRAMTIMING1_TCL register field is UNKNOWN. */ 0586 #define ALT_SDR_CTL_DRAMTIMING1_TCL_RESET 0x0 0587 /* Extracts the ALT_SDR_CTL_DRAMTIMING1_TCL field value from a register. */ 0588 #define ALT_SDR_CTL_DRAMTIMING1_TCL_GET(value) (((value) & 0x00003e00) >> 9) 0589 /* Produces a ALT_SDR_CTL_DRAMTIMING1_TCL register field value suitable for setting the register. */ 0590 #define ALT_SDR_CTL_DRAMTIMING1_TCL_SET(value) (((value) << 9) & 0x00003e00) 0591 0592 /* 0593 * Field : Activate to Activate Delay - trrd 0594 * 0595 * The activate to activate, different banks timing parameter. 0596 * 0597 * Field Access Macros: 0598 * 0599 */ 0600 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING1_TRRD register field. */ 0601 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_LSB 14 0602 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING1_TRRD register field. */ 0603 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_MSB 17 0604 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING1_TRRD register field. */ 0605 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_WIDTH 4 0606 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING1_TRRD register field value. */ 0607 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_SET_MSK 0x0003c000 0608 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING1_TRRD register field value. */ 0609 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_CLR_MSK 0xfffc3fff 0610 /* The reset value of the ALT_SDR_CTL_DRAMTIMING1_TRRD register field is UNKNOWN. */ 0611 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_RESET 0x0 0612 /* Extracts the ALT_SDR_CTL_DRAMTIMING1_TRRD field value from a register. */ 0613 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_GET(value) (((value) & 0x0003c000) >> 14) 0614 /* Produces a ALT_SDR_CTL_DRAMTIMING1_TRRD register field value suitable for setting the register. */ 0615 #define ALT_SDR_CTL_DRAMTIMING1_TRRD_SET(value) (((value) << 14) & 0x0003c000) 0616 0617 /* 0618 * Field : Four Activate Window Time - tfaw 0619 * 0620 * The four-activate window timing parameter. 0621 * 0622 * Field Access Macros: 0623 * 0624 */ 0625 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING1_TFAW register field. */ 0626 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_LSB 18 0627 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING1_TFAW register field. */ 0628 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_MSB 23 0629 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING1_TFAW register field. */ 0630 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_WIDTH 6 0631 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING1_TFAW register field value. */ 0632 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_SET_MSK 0x00fc0000 0633 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING1_TFAW register field value. */ 0634 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_CLR_MSK 0xff03ffff 0635 /* The reset value of the ALT_SDR_CTL_DRAMTIMING1_TFAW register field is UNKNOWN. */ 0636 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_RESET 0x0 0637 /* Extracts the ALT_SDR_CTL_DRAMTIMING1_TFAW field value from a register. */ 0638 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_GET(value) (((value) & 0x00fc0000) >> 18) 0639 /* Produces a ALT_SDR_CTL_DRAMTIMING1_TFAW register field value suitable for setting the register. */ 0640 #define ALT_SDR_CTL_DRAMTIMING1_TFAW_SET(value) (((value) << 18) & 0x00fc0000) 0641 0642 /* 0643 * Field : Refresh Cycle Time - trfc 0644 * 0645 * The refresh cycle timing parameter. 0646 * 0647 * Field Access Macros: 0648 * 0649 */ 0650 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING1_TRFC register field. */ 0651 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_LSB 24 0652 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING1_TRFC register field. */ 0653 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_MSB 31 0654 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING1_TRFC register field. */ 0655 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_WIDTH 8 0656 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING1_TRFC register field value. */ 0657 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_SET_MSK 0xff000000 0658 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING1_TRFC register field value. */ 0659 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_CLR_MSK 0x00ffffff 0660 /* The reset value of the ALT_SDR_CTL_DRAMTIMING1_TRFC register field is UNKNOWN. */ 0661 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_RESET 0x0 0662 /* Extracts the ALT_SDR_CTL_DRAMTIMING1_TRFC field value from a register. */ 0663 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_GET(value) (((value) & 0xff000000) >> 24) 0664 /* Produces a ALT_SDR_CTL_DRAMTIMING1_TRFC register field value suitable for setting the register. */ 0665 #define ALT_SDR_CTL_DRAMTIMING1_TRFC_SET(value) (((value) << 24) & 0xff000000) 0666 0667 #ifndef __ASSEMBLY__ 0668 /* 0669 * WARNING: The C register and register group struct declarations are provided for 0670 * convenience and illustrative purposes. They should, however, be used with 0671 * caution as the C language standard provides no guarantees about the alignment or 0672 * atomicity of device memory accesses. The recommended practice for writing 0673 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 0674 * alt_write_word() functions. 0675 * 0676 * The struct declaration for register ALT_SDR_CTL_DRAMTIMING1. 0677 */ 0678 struct ALT_SDR_CTL_DRAMTIMING1_s 0679 { 0680 uint32_t tcwl : 4; /* CAS Write Latency */ 0681 uint32_t tal : 5; /* Additive Latency */ 0682 uint32_t tcl : 5; /* CAS Read Latency */ 0683 uint32_t trrd : 4; /* Activate to Activate Delay */ 0684 uint32_t tfaw : 6; /* Four Activate Window Time */ 0685 uint32_t trfc : 8; /* Refresh Cycle Time */ 0686 }; 0687 0688 /* The typedef declaration for register ALT_SDR_CTL_DRAMTIMING1. */ 0689 typedef volatile struct ALT_SDR_CTL_DRAMTIMING1_s ALT_SDR_CTL_DRAMTIMING1_t; 0690 #endif /* __ASSEMBLY__ */ 0691 0692 /* The byte offset of the ALT_SDR_CTL_DRAMTIMING1 register from the beginning of the component. */ 0693 #define ALT_SDR_CTL_DRAMTIMING1_OFST 0x4 0694 0695 /* 0696 * Register : DRAM Timings 2 Register - dramtiming2 0697 * 0698 * This register implements JEDEC standardized timing parameters. It should be 0699 * programmed in clock cycles, for the value specified by the memory vendor. 0700 * 0701 * Register Layout 0702 * 0703 * Bits | Access | Reset | Description 0704 * :--------|:-------|:--------|:-------------------------------- 0705 * [12:0] | RW | Unknown | Refresh Interval 0706 * [16:13] | RW | Unknown | Activate to Read or Write Delay 0707 * [20:17] | RW | Unknown | Row Precharge Time 0708 * [24:21] | RW | Unknown | Write Recovery Time 0709 * [28:25] | RW | Unknown | Write to Read Time 0710 * [31:29] | ??? | 0x0 | *UNDEFINED* 0711 * 0712 */ 0713 /* 0714 * Field : Refresh Interval - trefi 0715 * 0716 * The refresh interval timing parameter. 0717 * 0718 * Field Access Macros: 0719 * 0720 */ 0721 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING2_TREFI register field. */ 0722 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_LSB 0 0723 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING2_TREFI register field. */ 0724 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_MSB 12 0725 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING2_TREFI register field. */ 0726 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_WIDTH 13 0727 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING2_TREFI register field value. */ 0728 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_SET_MSK 0x00001fff 0729 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING2_TREFI register field value. */ 0730 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_CLR_MSK 0xffffe000 0731 /* The reset value of the ALT_SDR_CTL_DRAMTIMING2_TREFI register field is UNKNOWN. */ 0732 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_RESET 0x0 0733 /* Extracts the ALT_SDR_CTL_DRAMTIMING2_TREFI field value from a register. */ 0734 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_GET(value) (((value) & 0x00001fff) >> 0) 0735 /* Produces a ALT_SDR_CTL_DRAMTIMING2_TREFI register field value suitable for setting the register. */ 0736 #define ALT_SDR_CTL_DRAMTIMING2_TREFI_SET(value) (((value) << 0) & 0x00001fff) 0737 0738 /* 0739 * Field : Activate to Read or Write Delay - trcd 0740 * 0741 * The activate to read/write timing parameter. 0742 * 0743 * Field Access Macros: 0744 * 0745 */ 0746 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING2_TRCD register field. */ 0747 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_LSB 13 0748 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING2_TRCD register field. */ 0749 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_MSB 16 0750 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING2_TRCD register field. */ 0751 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_WIDTH 4 0752 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING2_TRCD register field value. */ 0753 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_SET_MSK 0x0001e000 0754 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING2_TRCD register field value. */ 0755 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_CLR_MSK 0xfffe1fff 0756 /* The reset value of the ALT_SDR_CTL_DRAMTIMING2_TRCD register field is UNKNOWN. */ 0757 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_RESET 0x0 0758 /* Extracts the ALT_SDR_CTL_DRAMTIMING2_TRCD field value from a register. */ 0759 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_GET(value) (((value) & 0x0001e000) >> 13) 0760 /* Produces a ALT_SDR_CTL_DRAMTIMING2_TRCD register field value suitable for setting the register. */ 0761 #define ALT_SDR_CTL_DRAMTIMING2_TRCD_SET(value) (((value) << 13) & 0x0001e000) 0762 0763 /* 0764 * Field : Row Precharge Time - trp 0765 * 0766 * The precharge to activate timing parameter. 0767 * 0768 * Field Access Macros: 0769 * 0770 */ 0771 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING2_TRP register field. */ 0772 #define ALT_SDR_CTL_DRAMTIMING2_TRP_LSB 17 0773 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING2_TRP register field. */ 0774 #define ALT_SDR_CTL_DRAMTIMING2_TRP_MSB 20 0775 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING2_TRP register field. */ 0776 #define ALT_SDR_CTL_DRAMTIMING2_TRP_WIDTH 4 0777 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING2_TRP register field value. */ 0778 #define ALT_SDR_CTL_DRAMTIMING2_TRP_SET_MSK 0x001e0000 0779 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING2_TRP register field value. */ 0780 #define ALT_SDR_CTL_DRAMTIMING2_TRP_CLR_MSK 0xffe1ffff 0781 /* The reset value of the ALT_SDR_CTL_DRAMTIMING2_TRP register field is UNKNOWN. */ 0782 #define ALT_SDR_CTL_DRAMTIMING2_TRP_RESET 0x0 0783 /* Extracts the ALT_SDR_CTL_DRAMTIMING2_TRP field value from a register. */ 0784 #define ALT_SDR_CTL_DRAMTIMING2_TRP_GET(value) (((value) & 0x001e0000) >> 17) 0785 /* Produces a ALT_SDR_CTL_DRAMTIMING2_TRP register field value suitable for setting the register. */ 0786 #define ALT_SDR_CTL_DRAMTIMING2_TRP_SET(value) (((value) << 17) & 0x001e0000) 0787 0788 /* 0789 * Field : Write Recovery Time - twr 0790 * 0791 * The write recovery timing. 0792 * 0793 * Field Access Macros: 0794 * 0795 */ 0796 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING2_TWR register field. */ 0797 #define ALT_SDR_CTL_DRAMTIMING2_TWR_LSB 21 0798 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING2_TWR register field. */ 0799 #define ALT_SDR_CTL_DRAMTIMING2_TWR_MSB 24 0800 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING2_TWR register field. */ 0801 #define ALT_SDR_CTL_DRAMTIMING2_TWR_WIDTH 4 0802 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING2_TWR register field value. */ 0803 #define ALT_SDR_CTL_DRAMTIMING2_TWR_SET_MSK 0x01e00000 0804 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING2_TWR register field value. */ 0805 #define ALT_SDR_CTL_DRAMTIMING2_TWR_CLR_MSK 0xfe1fffff 0806 /* The reset value of the ALT_SDR_CTL_DRAMTIMING2_TWR register field is UNKNOWN. */ 0807 #define ALT_SDR_CTL_DRAMTIMING2_TWR_RESET 0x0 0808 /* Extracts the ALT_SDR_CTL_DRAMTIMING2_TWR field value from a register. */ 0809 #define ALT_SDR_CTL_DRAMTIMING2_TWR_GET(value) (((value) & 0x01e00000) >> 21) 0810 /* Produces a ALT_SDR_CTL_DRAMTIMING2_TWR register field value suitable for setting the register. */ 0811 #define ALT_SDR_CTL_DRAMTIMING2_TWR_SET(value) (((value) << 21) & 0x01e00000) 0812 0813 /* 0814 * Field : Write to Read Time - twtr 0815 * 0816 * The write to read timing parameter. 0817 * 0818 * Field Access Macros: 0819 * 0820 */ 0821 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING2_TWTR register field. */ 0822 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_LSB 25 0823 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING2_TWTR register field. */ 0824 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_MSB 28 0825 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING2_TWTR register field. */ 0826 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_WIDTH 4 0827 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING2_TWTR register field value. */ 0828 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_SET_MSK 0x1e000000 0829 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING2_TWTR register field value. */ 0830 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_CLR_MSK 0xe1ffffff 0831 /* The reset value of the ALT_SDR_CTL_DRAMTIMING2_TWTR register field is UNKNOWN. */ 0832 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_RESET 0x0 0833 /* Extracts the ALT_SDR_CTL_DRAMTIMING2_TWTR field value from a register. */ 0834 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_GET(value) (((value) & 0x1e000000) >> 25) 0835 /* Produces a ALT_SDR_CTL_DRAMTIMING2_TWTR register field value suitable for setting the register. */ 0836 #define ALT_SDR_CTL_DRAMTIMING2_TWTR_SET(value) (((value) << 25) & 0x1e000000) 0837 0838 #ifndef __ASSEMBLY__ 0839 /* 0840 * WARNING: The C register and register group struct declarations are provided for 0841 * convenience and illustrative purposes. They should, however, be used with 0842 * caution as the C language standard provides no guarantees about the alignment or 0843 * atomicity of device memory accesses. The recommended practice for writing 0844 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 0845 * alt_write_word() functions. 0846 * 0847 * The struct declaration for register ALT_SDR_CTL_DRAMTIMING2. 0848 */ 0849 struct ALT_SDR_CTL_DRAMTIMING2_s 0850 { 0851 uint32_t trefi : 13; /* Refresh Interval */ 0852 uint32_t trcd : 4; /* Activate to Read or Write Delay */ 0853 uint32_t trp : 4; /* Row Precharge Time */ 0854 uint32_t twr : 4; /* Write Recovery Time */ 0855 uint32_t twtr : 4; /* Write to Read Time */ 0856 uint32_t : 3; /* *UNDEFINED* */ 0857 }; 0858 0859 /* The typedef declaration for register ALT_SDR_CTL_DRAMTIMING2. */ 0860 typedef volatile struct ALT_SDR_CTL_DRAMTIMING2_s ALT_SDR_CTL_DRAMTIMING2_t; 0861 #endif /* __ASSEMBLY__ */ 0862 0863 /* The byte offset of the ALT_SDR_CTL_DRAMTIMING2 register from the beginning of the component. */ 0864 #define ALT_SDR_CTL_DRAMTIMING2_OFST 0x8 0865 0866 /* 0867 * Register : DRAM Timings 3 Register - dramtiming3 0868 * 0869 * This register implements JEDEC standardized timing parameters. It should be 0870 * programmed in clock cycles, for the value specified by the memory vendor. 0871 * 0872 * Register Layout 0873 * 0874 * Bits | Access | Reset | Description 0875 * :--------|:-------|:--------|:-------------------------------- 0876 * [3:0] | RW | Unknown | Read to Precharge Time 0877 * [8:4] | RW | Unknown | Activate to Precharge Time 0878 * [14:9] | RW | Unknown | Row Cycle Time 0879 * [18:15] | RW | Unknown | Mode Register Programming Delay 0880 * [22:19] | RW | Unknown | CAS to CAS Delay 0881 * [31:23] | ??? | 0x0 | *UNDEFINED* 0882 * 0883 */ 0884 /* 0885 * Field : Read to Precharge Time - trtp 0886 * 0887 * The read to precharge timing parameter. 0888 * 0889 * Field Access Macros: 0890 * 0891 */ 0892 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING3_TRTP register field. */ 0893 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_LSB 0 0894 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING3_TRTP register field. */ 0895 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_MSB 3 0896 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING3_TRTP register field. */ 0897 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_WIDTH 4 0898 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING3_TRTP register field value. */ 0899 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_SET_MSK 0x0000000f 0900 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING3_TRTP register field value. */ 0901 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_CLR_MSK 0xfffffff0 0902 /* The reset value of the ALT_SDR_CTL_DRAMTIMING3_TRTP register field is UNKNOWN. */ 0903 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_RESET 0x0 0904 /* Extracts the ALT_SDR_CTL_DRAMTIMING3_TRTP field value from a register. */ 0905 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_GET(value) (((value) & 0x0000000f) >> 0) 0906 /* Produces a ALT_SDR_CTL_DRAMTIMING3_TRTP register field value suitable for setting the register. */ 0907 #define ALT_SDR_CTL_DRAMTIMING3_TRTP_SET(value) (((value) << 0) & 0x0000000f) 0908 0909 /* 0910 * Field : Activate to Precharge Time - tras 0911 * 0912 * The activate to precharge timing parameter. 0913 * 0914 * Field Access Macros: 0915 * 0916 */ 0917 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING3_TRAS register field. */ 0918 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_LSB 4 0919 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING3_TRAS register field. */ 0920 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_MSB 8 0921 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING3_TRAS register field. */ 0922 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_WIDTH 5 0923 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING3_TRAS register field value. */ 0924 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_SET_MSK 0x000001f0 0925 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING3_TRAS register field value. */ 0926 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_CLR_MSK 0xfffffe0f 0927 /* The reset value of the ALT_SDR_CTL_DRAMTIMING3_TRAS register field is UNKNOWN. */ 0928 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_RESET 0x0 0929 /* Extracts the ALT_SDR_CTL_DRAMTIMING3_TRAS field value from a register. */ 0930 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_GET(value) (((value) & 0x000001f0) >> 4) 0931 /* Produces a ALT_SDR_CTL_DRAMTIMING3_TRAS register field value suitable for setting the register. */ 0932 #define ALT_SDR_CTL_DRAMTIMING3_TRAS_SET(value) (((value) << 4) & 0x000001f0) 0933 0934 /* 0935 * Field : Row Cycle Time - trc 0936 * 0937 * The activate to activate timing parameter. 0938 * 0939 * Field Access Macros: 0940 * 0941 */ 0942 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING3_TRC register field. */ 0943 #define ALT_SDR_CTL_DRAMTIMING3_TRC_LSB 9 0944 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING3_TRC register field. */ 0945 #define ALT_SDR_CTL_DRAMTIMING3_TRC_MSB 14 0946 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING3_TRC register field. */ 0947 #define ALT_SDR_CTL_DRAMTIMING3_TRC_WIDTH 6 0948 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING3_TRC register field value. */ 0949 #define ALT_SDR_CTL_DRAMTIMING3_TRC_SET_MSK 0x00007e00 0950 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING3_TRC register field value. */ 0951 #define ALT_SDR_CTL_DRAMTIMING3_TRC_CLR_MSK 0xffff81ff 0952 /* The reset value of the ALT_SDR_CTL_DRAMTIMING3_TRC register field is UNKNOWN. */ 0953 #define ALT_SDR_CTL_DRAMTIMING3_TRC_RESET 0x0 0954 /* Extracts the ALT_SDR_CTL_DRAMTIMING3_TRC field value from a register. */ 0955 #define ALT_SDR_CTL_DRAMTIMING3_TRC_GET(value) (((value) & 0x00007e00) >> 9) 0956 /* Produces a ALT_SDR_CTL_DRAMTIMING3_TRC register field value suitable for setting the register. */ 0957 #define ALT_SDR_CTL_DRAMTIMING3_TRC_SET(value) (((value) << 9) & 0x00007e00) 0958 0959 /* 0960 * Field : Mode Register Programming Delay - tmrd 0961 * 0962 * Mode register timing parameter. 0963 * 0964 * Field Access Macros: 0965 * 0966 */ 0967 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING3_TMRD register field. */ 0968 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_LSB 15 0969 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING3_TMRD register field. */ 0970 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_MSB 18 0971 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING3_TMRD register field. */ 0972 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_WIDTH 4 0973 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING3_TMRD register field value. */ 0974 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_SET_MSK 0x00078000 0975 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING3_TMRD register field value. */ 0976 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_CLR_MSK 0xfff87fff 0977 /* The reset value of the ALT_SDR_CTL_DRAMTIMING3_TMRD register field is UNKNOWN. */ 0978 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_RESET 0x0 0979 /* Extracts the ALT_SDR_CTL_DRAMTIMING3_TMRD field value from a register. */ 0980 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_GET(value) (((value) & 0x00078000) >> 15) 0981 /* Produces a ALT_SDR_CTL_DRAMTIMING3_TMRD register field value suitable for setting the register. */ 0982 #define ALT_SDR_CTL_DRAMTIMING3_TMRD_SET(value) (((value) << 15) & 0x00078000) 0983 0984 /* 0985 * Field : CAS to CAS Delay - tccd 0986 * 0987 * The CAS to CAS delay time. 0988 * 0989 * Field Access Macros: 0990 * 0991 */ 0992 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING3_TCCD register field. */ 0993 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_LSB 19 0994 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING3_TCCD register field. */ 0995 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_MSB 22 0996 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING3_TCCD register field. */ 0997 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_WIDTH 4 0998 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING3_TCCD register field value. */ 0999 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_SET_MSK 0x00780000 1000 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING3_TCCD register field value. */ 1001 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_CLR_MSK 0xff87ffff 1002 /* The reset value of the ALT_SDR_CTL_DRAMTIMING3_TCCD register field is UNKNOWN. */ 1003 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_RESET 0x0 1004 /* Extracts the ALT_SDR_CTL_DRAMTIMING3_TCCD field value from a register. */ 1005 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_GET(value) (((value) & 0x00780000) >> 19) 1006 /* Produces a ALT_SDR_CTL_DRAMTIMING3_TCCD register field value suitable for setting the register. */ 1007 #define ALT_SDR_CTL_DRAMTIMING3_TCCD_SET(value) (((value) << 19) & 0x00780000) 1008 1009 #ifndef __ASSEMBLY__ 1010 /* 1011 * WARNING: The C register and register group struct declarations are provided for 1012 * convenience and illustrative purposes. They should, however, be used with 1013 * caution as the C language standard provides no guarantees about the alignment or 1014 * atomicity of device memory accesses. The recommended practice for writing 1015 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1016 * alt_write_word() functions. 1017 * 1018 * The struct declaration for register ALT_SDR_CTL_DRAMTIMING3. 1019 */ 1020 struct ALT_SDR_CTL_DRAMTIMING3_s 1021 { 1022 uint32_t trtp : 4; /* Read to Precharge Time */ 1023 uint32_t tras : 5; /* Activate to Precharge Time */ 1024 uint32_t trc : 6; /* Row Cycle Time */ 1025 uint32_t tmrd : 4; /* Mode Register Programming Delay */ 1026 uint32_t tccd : 4; /* CAS to CAS Delay */ 1027 uint32_t : 9; /* *UNDEFINED* */ 1028 }; 1029 1030 /* The typedef declaration for register ALT_SDR_CTL_DRAMTIMING3. */ 1031 typedef volatile struct ALT_SDR_CTL_DRAMTIMING3_s ALT_SDR_CTL_DRAMTIMING3_t; 1032 #endif /* __ASSEMBLY__ */ 1033 1034 /* The byte offset of the ALT_SDR_CTL_DRAMTIMING3 register from the beginning of the component. */ 1035 #define ALT_SDR_CTL_DRAMTIMING3_OFST 0xc 1036 1037 /* 1038 * Register : DRAM Timings 4 Register - dramtiming4 1039 * 1040 * This register implements JEDEC standardized timing parameters. It should be 1041 * programmed in clock cycles, for the value specified by the memory vendor. 1042 * 1043 * Register Layout 1044 * 1045 * Bits | Access | Reset | Description 1046 * :--------|:-------|:--------|:------------------------------- 1047 * [9:0] | RW | Unknown | Self-refresh Exit 1048 * [19:10] | RW | Unknown | Power Down Exit 1049 * [23:20] | RW | Unknown | Minimum Low Power State Cycles 1050 * [31:24] | ??? | 0x0 | *UNDEFINED* 1051 * 1052 */ 1053 /* 1054 * Field : Self-refresh Exit - selfrfshexit 1055 * 1056 * The self refresh exit cycles, tXS. 1057 * 1058 * Field Access Macros: 1059 * 1060 */ 1061 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT register field. */ 1062 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_LSB 0 1063 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT register field. */ 1064 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_MSB 9 1065 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT register field. */ 1066 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_WIDTH 10 1067 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT register field value. */ 1068 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_SET_MSK 0x000003ff 1069 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT register field value. */ 1070 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_CLR_MSK 0xfffffc00 1071 /* The reset value of the ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT register field is UNKNOWN. */ 1072 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_RESET 0x0 1073 /* Extracts the ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT field value from a register. */ 1074 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_GET(value) (((value) & 0x000003ff) >> 0) 1075 /* Produces a ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT register field value suitable for setting the register. */ 1076 #define ALT_SDR_CTL_DRAMTIMING4_SELFRFSHEXIT_SET(value) (((value) << 0) & 0x000003ff) 1077 1078 /* 1079 * Field : Power Down Exit - pwrdownexit 1080 * 1081 * The power down exit cycles, tXPDLL. 1082 * 1083 * Field Access Macros: 1084 * 1085 */ 1086 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT register field. */ 1087 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_LSB 10 1088 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT register field. */ 1089 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_MSB 19 1090 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT register field. */ 1091 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_WIDTH 10 1092 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT register field value. */ 1093 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_SET_MSK 0x000ffc00 1094 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT register field value. */ 1095 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_CLR_MSK 0xfff003ff 1096 /* The reset value of the ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT register field is UNKNOWN. */ 1097 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_RESET 0x0 1098 /* Extracts the ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT field value from a register. */ 1099 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_GET(value) (((value) & 0x000ffc00) >> 10) 1100 /* Produces a ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT register field value suitable for setting the register. */ 1101 #define ALT_SDR_CTL_DRAMTIMING4_PWRDOWNEXIT_SET(value) (((value) << 10) & 0x000ffc00) 1102 1103 /* 1104 * Field : Minimum Low Power State Cycles - minpwrsavecycles 1105 * 1106 * The minimum number of cycles to stay in a low power state. This applies to both 1107 * power down and self-refresh and should be set to the greater of tPD and tCKESR. 1108 * 1109 * Field Access Macros: 1110 * 1111 */ 1112 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES register field. */ 1113 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_LSB 20 1114 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES register field. */ 1115 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_MSB 23 1116 /* The width in bits of the ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES register field. */ 1117 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_WIDTH 4 1118 /* The mask used to set the ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES register field value. */ 1119 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_SET_MSK 0x00f00000 1120 /* The mask used to clear the ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES register field value. */ 1121 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_CLR_MSK 0xff0fffff 1122 /* The reset value of the ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES register field is UNKNOWN. */ 1123 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_RESET 0x0 1124 /* Extracts the ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES field value from a register. */ 1125 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_GET(value) (((value) & 0x00f00000) >> 20) 1126 /* Produces a ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES register field value suitable for setting the register. */ 1127 #define ALT_SDR_CTL_DRAMTIMING4_MINPWRSAVECYCLES_SET(value) (((value) << 20) & 0x00f00000) 1128 1129 #ifndef __ASSEMBLY__ 1130 /* 1131 * WARNING: The C register and register group struct declarations are provided for 1132 * convenience and illustrative purposes. They should, however, be used with 1133 * caution as the C language standard provides no guarantees about the alignment or 1134 * atomicity of device memory accesses. The recommended practice for writing 1135 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1136 * alt_write_word() functions. 1137 * 1138 * The struct declaration for register ALT_SDR_CTL_DRAMTIMING4. 1139 */ 1140 struct ALT_SDR_CTL_DRAMTIMING4_s 1141 { 1142 uint32_t selfrfshexit : 10; /* Self-refresh Exit */ 1143 uint32_t pwrdownexit : 10; /* Power Down Exit */ 1144 uint32_t minpwrsavecycles : 4; /* Minimum Low Power State Cycles */ 1145 uint32_t : 8; /* *UNDEFINED* */ 1146 }; 1147 1148 /* The typedef declaration for register ALT_SDR_CTL_DRAMTIMING4. */ 1149 typedef volatile struct ALT_SDR_CTL_DRAMTIMING4_s ALT_SDR_CTL_DRAMTIMING4_t; 1150 #endif /* __ASSEMBLY__ */ 1151 1152 /* The byte offset of the ALT_SDR_CTL_DRAMTIMING4 register from the beginning of the component. */ 1153 #define ALT_SDR_CTL_DRAMTIMING4_OFST 0x10 1154 1155 /* 1156 * Register : Lower Power Timing Register - lowpwrtiming 1157 * 1158 * This register controls the behavior of the low power logic in the controller. 1159 * 1160 * Register Layout 1161 * 1162 * Bits | Access | Reset | Description 1163 * :--------|:-------|:--------|:--------------------------- 1164 * [15:0] | RW | Unknown | Auto-power Down Cycles 1165 * [19:16] | RW | Unknown | Clock Disable Delay Cycles 1166 * [31:20] | ??? | 0x0 | *UNDEFINED* 1167 * 1168 */ 1169 /* 1170 * Field : Auto-power Down Cycles - autopdcycles 1171 * 1172 * The number of idle clock cycles after which the controller should place the 1173 * memory into power-down mode. 1174 * 1175 * Field Access Macros: 1176 * 1177 */ 1178 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES register field. */ 1179 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_LSB 0 1180 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES register field. */ 1181 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_MSB 15 1182 /* The width in bits of the ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES register field. */ 1183 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_WIDTH 16 1184 /* The mask used to set the ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES register field value. */ 1185 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_SET_MSK 0x0000ffff 1186 /* The mask used to clear the ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES register field value. */ 1187 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_CLR_MSK 0xffff0000 1188 /* The reset value of the ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES register field is UNKNOWN. */ 1189 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_RESET 0x0 1190 /* Extracts the ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES field value from a register. */ 1191 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_GET(value) (((value) & 0x0000ffff) >> 0) 1192 /* Produces a ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES register field value suitable for setting the register. */ 1193 #define ALT_SDR_CTL_LOWPWRTIMING_AUTOPDCYCLES_SET(value) (((value) << 0) & 0x0000ffff) 1194 1195 /* 1196 * Field : Clock Disable Delay Cycles - clkdisablecycles 1197 * 1198 * Set to a the number of clocks after the execution of an self-refresh to stop the 1199 * clock. This register is generally set based on PHY design latency and should 1200 * generally not be changed. 1201 * 1202 * Field Access Macros: 1203 * 1204 */ 1205 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES register field. */ 1206 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_LSB 16 1207 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES register field. */ 1208 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_MSB 19 1209 /* The width in bits of the ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES register field. */ 1210 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_WIDTH 4 1211 /* The mask used to set the ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES register field value. */ 1212 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_SET_MSK 0x000f0000 1213 /* The mask used to clear the ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES register field value. */ 1214 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_CLR_MSK 0xfff0ffff 1215 /* The reset value of the ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES register field is UNKNOWN. */ 1216 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_RESET 0x0 1217 /* Extracts the ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES field value from a register. */ 1218 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_GET(value) (((value) & 0x000f0000) >> 16) 1219 /* Produces a ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES register field value suitable for setting the register. */ 1220 #define ALT_SDR_CTL_LOWPWRTIMING_CLKDISCYCLES_SET(value) (((value) << 16) & 0x000f0000) 1221 1222 #ifndef __ASSEMBLY__ 1223 /* 1224 * WARNING: The C register and register group struct declarations are provided for 1225 * convenience and illustrative purposes. They should, however, be used with 1226 * caution as the C language standard provides no guarantees about the alignment or 1227 * atomicity of device memory accesses. The recommended practice for writing 1228 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1229 * alt_write_word() functions. 1230 * 1231 * The struct declaration for register ALT_SDR_CTL_LOWPWRTIMING. 1232 */ 1233 struct ALT_SDR_CTL_LOWPWRTIMING_s 1234 { 1235 uint32_t autopdcycles : 16; /* Auto-power Down Cycles */ 1236 uint32_t clkdisablecycles : 4; /* Clock Disable Delay Cycles */ 1237 uint32_t : 12; /* *UNDEFINED* */ 1238 }; 1239 1240 /* The typedef declaration for register ALT_SDR_CTL_LOWPWRTIMING. */ 1241 typedef volatile struct ALT_SDR_CTL_LOWPWRTIMING_s ALT_SDR_CTL_LOWPWRTIMING_t; 1242 #endif /* __ASSEMBLY__ */ 1243 1244 /* The byte offset of the ALT_SDR_CTL_LOWPWRTIMING register from the beginning of the component. */ 1245 #define ALT_SDR_CTL_LOWPWRTIMING_OFST 0x14 1246 1247 /* 1248 * Register : ODT Control Register - dramodt 1249 * 1250 * This register controls which ODT pin is asserted during reads or writes. Bits 1251 * [1:0] control which ODT pin is asserted during to accesses to chip select 0, 1252 * bits [3:2] which ODT pin is asserted during accesses to chip select 1. For 1253 * example, a value of "1001" will cause ODT[0] to be asserted for 1254 * accesses to CS[0], and ODT[1] to be asserted for access to CS[1] pin. Set this 1255 * to "0001" if there is only one chip select available. 1256 * 1257 * Register Layout 1258 * 1259 * Bits | Access | Reset | Description 1260 * :-------|:-------|:--------|:------------------ 1261 * [3:0] | RW | Unknown | Write ODT Control 1262 * [7:4] | RW | Unknown | Read ODT Control 1263 * [31:8] | ??? | 0x0 | *UNDEFINED* 1264 * 1265 */ 1266 /* 1267 * Field : Write ODT Control - cfg_write_odt_chip 1268 * 1269 * This register controls which ODT pin is asserted during writes. 1270 * 1271 * Field Access Macros: 1272 * 1273 */ 1274 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP register field. */ 1275 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_LSB 0 1276 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP register field. */ 1277 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_MSB 3 1278 /* The width in bits of the ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP register field. */ 1279 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_WIDTH 4 1280 /* The mask used to set the ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP register field value. */ 1281 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_SET_MSK 0x0000000f 1282 /* The mask used to clear the ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP register field value. */ 1283 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_CLR_MSK 0xfffffff0 1284 /* The reset value of the ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP register field is UNKNOWN. */ 1285 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_RESET 0x0 1286 /* Extracts the ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP field value from a register. */ 1287 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_GET(value) (((value) & 0x0000000f) >> 0) 1288 /* Produces a ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP register field value suitable for setting the register. */ 1289 #define ALT_SDR_CTL_DRAMODT_CFG_WR_ODT_CHIP_SET(value) (((value) << 0) & 0x0000000f) 1290 1291 /* 1292 * Field : Read ODT Control - cfg_read_odt_chip 1293 * 1294 * This register controls which ODT pin is asserted during reads. 1295 * 1296 * Field Access Macros: 1297 * 1298 */ 1299 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP register field. */ 1300 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_LSB 4 1301 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP register field. */ 1302 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_MSB 7 1303 /* The width in bits of the ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP register field. */ 1304 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_WIDTH 4 1305 /* The mask used to set the ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP register field value. */ 1306 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_SET_MSK 0x000000f0 1307 /* The mask used to clear the ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP register field value. */ 1308 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_CLR_MSK 0xffffff0f 1309 /* The reset value of the ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP register field is UNKNOWN. */ 1310 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_RESET 0x0 1311 /* Extracts the ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP field value from a register. */ 1312 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_GET(value) (((value) & 0x000000f0) >> 4) 1313 /* Produces a ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP register field value suitable for setting the register. */ 1314 #define ALT_SDR_CTL_DRAMODT_CFG_RD_ODT_CHIP_SET(value) (((value) << 4) & 0x000000f0) 1315 1316 #ifndef __ASSEMBLY__ 1317 /* 1318 * WARNING: The C register and register group struct declarations are provided for 1319 * convenience and illustrative purposes. They should, however, be used with 1320 * caution as the C language standard provides no guarantees about the alignment or 1321 * atomicity of device memory accesses. The recommended practice for writing 1322 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1323 * alt_write_word() functions. 1324 * 1325 * The struct declaration for register ALT_SDR_CTL_DRAMODT. 1326 */ 1327 struct ALT_SDR_CTL_DRAMODT_s 1328 { 1329 uint32_t cfg_write_odt_chip : 4; /* Write ODT Control */ 1330 uint32_t cfg_read_odt_chip : 4; /* Read ODT Control */ 1331 uint32_t : 24; /* *UNDEFINED* */ 1332 }; 1333 1334 /* The typedef declaration for register ALT_SDR_CTL_DRAMODT. */ 1335 typedef volatile struct ALT_SDR_CTL_DRAMODT_s ALT_SDR_CTL_DRAMODT_t; 1336 #endif /* __ASSEMBLY__ */ 1337 1338 /* The byte offset of the ALT_SDR_CTL_DRAMODT register from the beginning of the component. */ 1339 #define ALT_SDR_CTL_DRAMODT_OFST 0x18 1340 1341 /* 1342 * Register : DRAM Address Widths Register - dramaddrw 1343 * 1344 * This register configures the width of the various address fields of the DRAM. 1345 * The values specified in this register must match the memory devices being used. 1346 * 1347 * Register Layout 1348 * 1349 * Bits | Access | Reset | Description 1350 * :--------|:-------|:--------|:------------------------- 1351 * [4:0] | RW | Unknown | DRAM Column Address Bits 1352 * [9:5] | RW | Unknown | DRAM Row Address Bits 1353 * [12:10] | RW | Unknown | DRAM Bank Address Bits 1354 * [15:13] | RW | Unknown | DRAM Chip Address Bits 1355 * [31:16] | ??? | 0x0 | *UNDEFINED* 1356 * 1357 */ 1358 /* 1359 * Field : DRAM Column Address Bits - colbits 1360 * 1361 * The number of column address bits for the memory devices in your memory 1362 * interface. 1363 * 1364 * Field Access Macros: 1365 * 1366 */ 1367 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMADDRW_COLBITS register field. */ 1368 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_LSB 0 1369 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMADDRW_COLBITS register field. */ 1370 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_MSB 4 1371 /* The width in bits of the ALT_SDR_CTL_DRAMADDRW_COLBITS register field. */ 1372 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_WIDTH 5 1373 /* The mask used to set the ALT_SDR_CTL_DRAMADDRW_COLBITS register field value. */ 1374 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_SET_MSK 0x0000001f 1375 /* The mask used to clear the ALT_SDR_CTL_DRAMADDRW_COLBITS register field value. */ 1376 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_CLR_MSK 0xffffffe0 1377 /* The reset value of the ALT_SDR_CTL_DRAMADDRW_COLBITS register field is UNKNOWN. */ 1378 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_RESET 0x0 1379 /* Extracts the ALT_SDR_CTL_DRAMADDRW_COLBITS field value from a register. */ 1380 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_GET(value) (((value) & 0x0000001f) >> 0) 1381 /* Produces a ALT_SDR_CTL_DRAMADDRW_COLBITS register field value suitable for setting the register. */ 1382 #define ALT_SDR_CTL_DRAMADDRW_COLBITS_SET(value) (((value) << 0) & 0x0000001f) 1383 1384 /* 1385 * Field : DRAM Row Address Bits - rowbits 1386 * 1387 * The number of row address bits for the memory devices in your memory interface. 1388 * 1389 * Field Access Macros: 1390 * 1391 */ 1392 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMADDRW_ROWBITS register field. */ 1393 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_LSB 5 1394 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMADDRW_ROWBITS register field. */ 1395 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_MSB 9 1396 /* The width in bits of the ALT_SDR_CTL_DRAMADDRW_ROWBITS register field. */ 1397 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_WIDTH 5 1398 /* The mask used to set the ALT_SDR_CTL_DRAMADDRW_ROWBITS register field value. */ 1399 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_SET_MSK 0x000003e0 1400 /* The mask used to clear the ALT_SDR_CTL_DRAMADDRW_ROWBITS register field value. */ 1401 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_CLR_MSK 0xfffffc1f 1402 /* The reset value of the ALT_SDR_CTL_DRAMADDRW_ROWBITS register field is UNKNOWN. */ 1403 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_RESET 0x0 1404 /* Extracts the ALT_SDR_CTL_DRAMADDRW_ROWBITS field value from a register. */ 1405 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_GET(value) (((value) & 0x000003e0) >> 5) 1406 /* Produces a ALT_SDR_CTL_DRAMADDRW_ROWBITS register field value suitable for setting the register. */ 1407 #define ALT_SDR_CTL_DRAMADDRW_ROWBITS_SET(value) (((value) << 5) & 0x000003e0) 1408 1409 /* 1410 * Field : DRAM Bank Address Bits - bankbits 1411 * 1412 * The number of bank address bits for the memory devices in your memory interface. 1413 * 1414 * Field Access Macros: 1415 * 1416 */ 1417 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMADDRW_BANKBITS register field. */ 1418 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_LSB 10 1419 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMADDRW_BANKBITS register field. */ 1420 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_MSB 12 1421 /* The width in bits of the ALT_SDR_CTL_DRAMADDRW_BANKBITS register field. */ 1422 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_WIDTH 3 1423 /* The mask used to set the ALT_SDR_CTL_DRAMADDRW_BANKBITS register field value. */ 1424 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_SET_MSK 0x00001c00 1425 /* The mask used to clear the ALT_SDR_CTL_DRAMADDRW_BANKBITS register field value. */ 1426 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_CLR_MSK 0xffffe3ff 1427 /* The reset value of the ALT_SDR_CTL_DRAMADDRW_BANKBITS register field is UNKNOWN. */ 1428 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_RESET 0x0 1429 /* Extracts the ALT_SDR_CTL_DRAMADDRW_BANKBITS field value from a register. */ 1430 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_GET(value) (((value) & 0x00001c00) >> 10) 1431 /* Produces a ALT_SDR_CTL_DRAMADDRW_BANKBITS register field value suitable for setting the register. */ 1432 #define ALT_SDR_CTL_DRAMADDRW_BANKBITS_SET(value) (((value) << 10) & 0x00001c00) 1433 1434 /* 1435 * Field : DRAM Chip Address Bits - csbits 1436 * 1437 * The number of chip select address bits for the memory devices in your memory 1438 * interface. 1439 * 1440 * Field Access Macros: 1441 * 1442 */ 1443 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMADDRW_CSBITS register field. */ 1444 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_LSB 13 1445 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMADDRW_CSBITS register field. */ 1446 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_MSB 15 1447 /* The width in bits of the ALT_SDR_CTL_DRAMADDRW_CSBITS register field. */ 1448 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_WIDTH 3 1449 /* The mask used to set the ALT_SDR_CTL_DRAMADDRW_CSBITS register field value. */ 1450 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_SET_MSK 0x0000e000 1451 /* The mask used to clear the ALT_SDR_CTL_DRAMADDRW_CSBITS register field value. */ 1452 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_CLR_MSK 0xffff1fff 1453 /* The reset value of the ALT_SDR_CTL_DRAMADDRW_CSBITS register field is UNKNOWN. */ 1454 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_RESET 0x0 1455 /* Extracts the ALT_SDR_CTL_DRAMADDRW_CSBITS field value from a register. */ 1456 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_GET(value) (((value) & 0x0000e000) >> 13) 1457 /* Produces a ALT_SDR_CTL_DRAMADDRW_CSBITS register field value suitable for setting the register. */ 1458 #define ALT_SDR_CTL_DRAMADDRW_CSBITS_SET(value) (((value) << 13) & 0x0000e000) 1459 1460 #ifndef __ASSEMBLY__ 1461 /* 1462 * WARNING: The C register and register group struct declarations are provided for 1463 * convenience and illustrative purposes. They should, however, be used with 1464 * caution as the C language standard provides no guarantees about the alignment or 1465 * atomicity of device memory accesses. The recommended practice for writing 1466 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1467 * alt_write_word() functions. 1468 * 1469 * The struct declaration for register ALT_SDR_CTL_DRAMADDRW. 1470 */ 1471 struct ALT_SDR_CTL_DRAMADDRW_s 1472 { 1473 uint32_t colbits : 5; /* DRAM Column Address Bits */ 1474 uint32_t rowbits : 5; /* DRAM Row Address Bits */ 1475 uint32_t bankbits : 3; /* DRAM Bank Address Bits */ 1476 uint32_t csbits : 3; /* DRAM Chip Address Bits */ 1477 uint32_t : 16; /* *UNDEFINED* */ 1478 }; 1479 1480 /* The typedef declaration for register ALT_SDR_CTL_DRAMADDRW. */ 1481 typedef volatile struct ALT_SDR_CTL_DRAMADDRW_s ALT_SDR_CTL_DRAMADDRW_t; 1482 #endif /* __ASSEMBLY__ */ 1483 1484 /* The byte offset of the ALT_SDR_CTL_DRAMADDRW register from the beginning of the component. */ 1485 #define ALT_SDR_CTL_DRAMADDRW_OFST 0x2c 1486 1487 /* 1488 * Register : DRAM Interface Data Width Register - dramifwidth 1489 * 1490 * 1491 * Register Layout 1492 * 1493 * Bits | Access | Reset | Description 1494 * :-------|:-------|:--------|:-------------------------- 1495 * [7:0] | RW | Unknown | DRAM Interface Data Width 1496 * [31:8] | ??? | 0x0 | *UNDEFINED* 1497 * 1498 */ 1499 /* 1500 * Field : DRAM Interface Data Width - ifwidth 1501 * 1502 * This register controls the interface width of the SDRAM interface, including any 1503 * bits used for ECC. For example, for a 32-bit interface with ECC, program this 1504 * register with 0x28. You must also program the ctrlwidth register. 1505 * 1506 * Field Access Macros: 1507 * 1508 */ 1509 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH register field. */ 1510 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_LSB 0 1511 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH register field. */ 1512 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_MSB 7 1513 /* The width in bits of the ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH register field. */ 1514 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_WIDTH 8 1515 /* The mask used to set the ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH register field value. */ 1516 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_SET_MSK 0x000000ff 1517 /* The mask used to clear the ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH register field value. */ 1518 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_CLR_MSK 0xffffff00 1519 /* The reset value of the ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH register field is UNKNOWN. */ 1520 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_RESET 0x0 1521 /* Extracts the ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH field value from a register. */ 1522 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_GET(value) (((value) & 0x000000ff) >> 0) 1523 /* Produces a ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH register field value suitable for setting the register. */ 1524 #define ALT_SDR_CTL_DRAMIFWIDTH_IFWIDTH_SET(value) (((value) << 0) & 0x000000ff) 1525 1526 #ifndef __ASSEMBLY__ 1527 /* 1528 * WARNING: The C register and register group struct declarations are provided for 1529 * convenience and illustrative purposes. They should, however, be used with 1530 * caution as the C language standard provides no guarantees about the alignment or 1531 * atomicity of device memory accesses. The recommended practice for writing 1532 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1533 * alt_write_word() functions. 1534 * 1535 * The struct declaration for register ALT_SDR_CTL_DRAMIFWIDTH. 1536 */ 1537 struct ALT_SDR_CTL_DRAMIFWIDTH_s 1538 { 1539 uint32_t ifwidth : 8; /* DRAM Interface Data Width */ 1540 uint32_t : 24; /* *UNDEFINED* */ 1541 }; 1542 1543 /* The typedef declaration for register ALT_SDR_CTL_DRAMIFWIDTH. */ 1544 typedef volatile struct ALT_SDR_CTL_DRAMIFWIDTH_s ALT_SDR_CTL_DRAMIFWIDTH_t; 1545 #endif /* __ASSEMBLY__ */ 1546 1547 /* The byte offset of the ALT_SDR_CTL_DRAMIFWIDTH register from the beginning of the component. */ 1548 #define ALT_SDR_CTL_DRAMIFWIDTH_OFST 0x30 1549 1550 /* 1551 * Register : DRAM Devices Data Width Register - dramdevwidth 1552 * 1553 * 1554 * Register Layout 1555 * 1556 * Bits | Access | Reset | Description 1557 * :-------|:-------|:--------|:------------------------ 1558 * [3:0] | RW | Unknown | DRAM Devices Data Width 1559 * [31:4] | ??? | 0x0 | *UNDEFINED* 1560 * 1561 */ 1562 /* 1563 * Field : DRAM Devices Data Width - devwidth 1564 * 1565 * This register specifies the width of the physical DRAM chips, for example 8 or 1566 * 16. 1567 * 1568 * Field Access Macros: 1569 * 1570 */ 1571 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH register field. */ 1572 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_LSB 0 1573 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH register field. */ 1574 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_MSB 3 1575 /* The width in bits of the ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH register field. */ 1576 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_WIDTH 4 1577 /* The mask used to set the ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH register field value. */ 1578 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_SET_MSK 0x0000000f 1579 /* The mask used to clear the ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH register field value. */ 1580 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_CLR_MSK 0xfffffff0 1581 /* The reset value of the ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH register field is UNKNOWN. */ 1582 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_RESET 0x0 1583 /* Extracts the ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH field value from a register. */ 1584 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_GET(value) (((value) & 0x0000000f) >> 0) 1585 /* Produces a ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH register field value suitable for setting the register. */ 1586 #define ALT_SDR_CTL_DRAMDEVWIDTH_DEVWIDTH_SET(value) (((value) << 0) & 0x0000000f) 1587 1588 #ifndef __ASSEMBLY__ 1589 /* 1590 * WARNING: The C register and register group struct declarations are provided for 1591 * convenience and illustrative purposes. They should, however, be used with 1592 * caution as the C language standard provides no guarantees about the alignment or 1593 * atomicity of device memory accesses. The recommended practice for writing 1594 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1595 * alt_write_word() functions. 1596 * 1597 * The struct declaration for register ALT_SDR_CTL_DRAMDEVWIDTH. 1598 */ 1599 struct ALT_SDR_CTL_DRAMDEVWIDTH_s 1600 { 1601 uint32_t devwidth : 4; /* DRAM Devices Data Width */ 1602 uint32_t : 28; /* *UNDEFINED* */ 1603 }; 1604 1605 /* The typedef declaration for register ALT_SDR_CTL_DRAMDEVWIDTH. */ 1606 typedef volatile struct ALT_SDR_CTL_DRAMDEVWIDTH_s ALT_SDR_CTL_DRAMDEVWIDTH_t; 1607 #endif /* __ASSEMBLY__ */ 1608 1609 /* The byte offset of the ALT_SDR_CTL_DRAMDEVWIDTH register from the beginning of the component. */ 1610 #define ALT_SDR_CTL_DRAMDEVWIDTH_OFST 0x34 1611 1612 /* 1613 * Register : DRAM Status Register - dramsts 1614 * 1615 * This register provides the status of the calibration and ECC logic. 1616 * 1617 * Register Layout 1618 * 1619 * Bits | Access | Reset | Description 1620 * :-------|:-------|:--------|:---------------------------- 1621 * [0] | RW | Unknown | PHY Calibration Successful 1622 * [1] | RW | Unknown | PHY Calibration Failed 1623 * [2] | RW | Unknown | Single Bit Error Seen 1624 * [3] | RW | Unknown | Double Bit Error Seen 1625 * [4] | RW | Unknown | ECC Auto-Correction Dropped 1626 * [31:5] | ??? | 0x0 | *UNDEFINED* 1627 * 1628 */ 1629 /* 1630 * Field : PHY Calibration Successful - calsuccess 1631 * 1632 * This bit will be set to 1 if the PHY was able to successfully calibrate. 1633 * 1634 * Field Access Macros: 1635 * 1636 */ 1637 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMSTS_CALSUCCESS register field. */ 1638 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_LSB 0 1639 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMSTS_CALSUCCESS register field. */ 1640 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_MSB 0 1641 /* The width in bits of the ALT_SDR_CTL_DRAMSTS_CALSUCCESS register field. */ 1642 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_WIDTH 1 1643 /* The mask used to set the ALT_SDR_CTL_DRAMSTS_CALSUCCESS register field value. */ 1644 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_SET_MSK 0x00000001 1645 /* The mask used to clear the ALT_SDR_CTL_DRAMSTS_CALSUCCESS register field value. */ 1646 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_CLR_MSK 0xfffffffe 1647 /* The reset value of the ALT_SDR_CTL_DRAMSTS_CALSUCCESS register field is UNKNOWN. */ 1648 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_RESET 0x0 1649 /* Extracts the ALT_SDR_CTL_DRAMSTS_CALSUCCESS field value from a register. */ 1650 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_GET(value) (((value) & 0x00000001) >> 0) 1651 /* Produces a ALT_SDR_CTL_DRAMSTS_CALSUCCESS register field value suitable for setting the register. */ 1652 #define ALT_SDR_CTL_DRAMSTS_CALSUCCESS_SET(value) (((value) << 0) & 0x00000001) 1653 1654 /* 1655 * Field : PHY Calibration Failed - calfail 1656 * 1657 * This bit will be set to 1 if the PHY was unable to calibrate. 1658 * 1659 * Field Access Macros: 1660 * 1661 */ 1662 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMSTS_CALFAIL register field. */ 1663 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_LSB 1 1664 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMSTS_CALFAIL register field. */ 1665 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_MSB 1 1666 /* The width in bits of the ALT_SDR_CTL_DRAMSTS_CALFAIL register field. */ 1667 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_WIDTH 1 1668 /* The mask used to set the ALT_SDR_CTL_DRAMSTS_CALFAIL register field value. */ 1669 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_SET_MSK 0x00000002 1670 /* The mask used to clear the ALT_SDR_CTL_DRAMSTS_CALFAIL register field value. */ 1671 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_CLR_MSK 0xfffffffd 1672 /* The reset value of the ALT_SDR_CTL_DRAMSTS_CALFAIL register field is UNKNOWN. */ 1673 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_RESET 0x0 1674 /* Extracts the ALT_SDR_CTL_DRAMSTS_CALFAIL field value from a register. */ 1675 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_GET(value) (((value) & 0x00000002) >> 1) 1676 /* Produces a ALT_SDR_CTL_DRAMSTS_CALFAIL register field value suitable for setting the register. */ 1677 #define ALT_SDR_CTL_DRAMSTS_CALFAIL_SET(value) (((value) << 1) & 0x00000002) 1678 1679 /* 1680 * Field : Single Bit Error Seen - sbeerr 1681 * 1682 * This bit will be set to 1 if there have been any ECC single bit errors detected. 1683 * 1684 * Field Access Macros: 1685 * 1686 */ 1687 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMSTS_SBEERR register field. */ 1688 #define ALT_SDR_CTL_DRAMSTS_SBEERR_LSB 2 1689 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMSTS_SBEERR register field. */ 1690 #define ALT_SDR_CTL_DRAMSTS_SBEERR_MSB 2 1691 /* The width in bits of the ALT_SDR_CTL_DRAMSTS_SBEERR register field. */ 1692 #define ALT_SDR_CTL_DRAMSTS_SBEERR_WIDTH 1 1693 /* The mask used to set the ALT_SDR_CTL_DRAMSTS_SBEERR register field value. */ 1694 #define ALT_SDR_CTL_DRAMSTS_SBEERR_SET_MSK 0x00000004 1695 /* The mask used to clear the ALT_SDR_CTL_DRAMSTS_SBEERR register field value. */ 1696 #define ALT_SDR_CTL_DRAMSTS_SBEERR_CLR_MSK 0xfffffffb 1697 /* The reset value of the ALT_SDR_CTL_DRAMSTS_SBEERR register field is UNKNOWN. */ 1698 #define ALT_SDR_CTL_DRAMSTS_SBEERR_RESET 0x0 1699 /* Extracts the ALT_SDR_CTL_DRAMSTS_SBEERR field value from a register. */ 1700 #define ALT_SDR_CTL_DRAMSTS_SBEERR_GET(value) (((value) & 0x00000004) >> 2) 1701 /* Produces a ALT_SDR_CTL_DRAMSTS_SBEERR register field value suitable for setting the register. */ 1702 #define ALT_SDR_CTL_DRAMSTS_SBEERR_SET(value) (((value) << 2) & 0x00000004) 1703 1704 /* 1705 * Field : Double Bit Error Seen - dbeerr 1706 * 1707 * This bit will be set to 1 if there have been any ECC double bit errors detected. 1708 * 1709 * Field Access Macros: 1710 * 1711 */ 1712 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMSTS_DBEERR register field. */ 1713 #define ALT_SDR_CTL_DRAMSTS_DBEERR_LSB 3 1714 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMSTS_DBEERR register field. */ 1715 #define ALT_SDR_CTL_DRAMSTS_DBEERR_MSB 3 1716 /* The width in bits of the ALT_SDR_CTL_DRAMSTS_DBEERR register field. */ 1717 #define ALT_SDR_CTL_DRAMSTS_DBEERR_WIDTH 1 1718 /* The mask used to set the ALT_SDR_CTL_DRAMSTS_DBEERR register field value. */ 1719 #define ALT_SDR_CTL_DRAMSTS_DBEERR_SET_MSK 0x00000008 1720 /* The mask used to clear the ALT_SDR_CTL_DRAMSTS_DBEERR register field value. */ 1721 #define ALT_SDR_CTL_DRAMSTS_DBEERR_CLR_MSK 0xfffffff7 1722 /* The reset value of the ALT_SDR_CTL_DRAMSTS_DBEERR register field is UNKNOWN. */ 1723 #define ALT_SDR_CTL_DRAMSTS_DBEERR_RESET 0x0 1724 /* Extracts the ALT_SDR_CTL_DRAMSTS_DBEERR field value from a register. */ 1725 #define ALT_SDR_CTL_DRAMSTS_DBEERR_GET(value) (((value) & 0x00000008) >> 3) 1726 /* Produces a ALT_SDR_CTL_DRAMSTS_DBEERR register field value suitable for setting the register. */ 1727 #define ALT_SDR_CTL_DRAMSTS_DBEERR_SET(value) (((value) << 3) & 0x00000008) 1728 1729 /* 1730 * Field : ECC Auto-Correction Dropped - corrdrop 1731 * 1732 * This bit will be set to 1 if there any auto-corrections have been dropped. 1733 * 1734 * Field Access Macros: 1735 * 1736 */ 1737 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMSTS_CORRDROP register field. */ 1738 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_LSB 4 1739 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMSTS_CORRDROP register field. */ 1740 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_MSB 4 1741 /* The width in bits of the ALT_SDR_CTL_DRAMSTS_CORRDROP register field. */ 1742 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_WIDTH 1 1743 /* The mask used to set the ALT_SDR_CTL_DRAMSTS_CORRDROP register field value. */ 1744 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_SET_MSK 0x00000010 1745 /* The mask used to clear the ALT_SDR_CTL_DRAMSTS_CORRDROP register field value. */ 1746 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_CLR_MSK 0xffffffef 1747 /* The reset value of the ALT_SDR_CTL_DRAMSTS_CORRDROP register field is UNKNOWN. */ 1748 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_RESET 0x0 1749 /* Extracts the ALT_SDR_CTL_DRAMSTS_CORRDROP field value from a register. */ 1750 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_GET(value) (((value) & 0x00000010) >> 4) 1751 /* Produces a ALT_SDR_CTL_DRAMSTS_CORRDROP register field value suitable for setting the register. */ 1752 #define ALT_SDR_CTL_DRAMSTS_CORRDROP_SET(value) (((value) << 4) & 0x00000010) 1753 1754 #ifndef __ASSEMBLY__ 1755 /* 1756 * WARNING: The C register and register group struct declarations are provided for 1757 * convenience and illustrative purposes. They should, however, be used with 1758 * caution as the C language standard provides no guarantees about the alignment or 1759 * atomicity of device memory accesses. The recommended practice for writing 1760 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1761 * alt_write_word() functions. 1762 * 1763 * The struct declaration for register ALT_SDR_CTL_DRAMSTS. 1764 */ 1765 struct ALT_SDR_CTL_DRAMSTS_s 1766 { 1767 uint32_t calsuccess : 1; /* PHY Calibration Successful */ 1768 uint32_t calfail : 1; /* PHY Calibration Failed */ 1769 uint32_t sbeerr : 1; /* Single Bit Error Seen */ 1770 uint32_t dbeerr : 1; /* Double Bit Error Seen */ 1771 uint32_t corrdrop : 1; /* ECC Auto-Correction Dropped */ 1772 uint32_t : 27; /* *UNDEFINED* */ 1773 }; 1774 1775 /* The typedef declaration for register ALT_SDR_CTL_DRAMSTS. */ 1776 typedef volatile struct ALT_SDR_CTL_DRAMSTS_s ALT_SDR_CTL_DRAMSTS_t; 1777 #endif /* __ASSEMBLY__ */ 1778 1779 /* The byte offset of the ALT_SDR_CTL_DRAMSTS register from the beginning of the component. */ 1780 #define ALT_SDR_CTL_DRAMSTS_OFST 0x38 1781 1782 /* 1783 * Register : ECC Interrupt Register - dramintr 1784 * 1785 * 1786 * Register Layout 1787 * 1788 * Bits | Access | Reset | Description 1789 * :-------|:-------|:--------|:--------------------------------------- 1790 * [0] | RW | Unknown | Interrupt Enable 1791 * [1] | RW | Unknown | Mask Single Bit Error Interrupt 1792 * [2] | RW | Unknown | Mask Double Bit Error Interrupt 1793 * [3] | RW | Unknown | Mask Dropped Auto-correction Interrupt 1794 * [4] | RW | Unknown | Clear Interrupt Signal 1795 * [31:5] | ??? | 0x0 | *UNDEFINED* 1796 * 1797 */ 1798 /* 1799 * Field : Interrupt Enable - intren 1800 * 1801 * Enable the interrupt output. 1802 * 1803 * Field Access Macros: 1804 * 1805 */ 1806 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMINTR_INTREN register field. */ 1807 #define ALT_SDR_CTL_DRAMINTR_INTREN_LSB 0 1808 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMINTR_INTREN register field. */ 1809 #define ALT_SDR_CTL_DRAMINTR_INTREN_MSB 0 1810 /* The width in bits of the ALT_SDR_CTL_DRAMINTR_INTREN register field. */ 1811 #define ALT_SDR_CTL_DRAMINTR_INTREN_WIDTH 1 1812 /* The mask used to set the ALT_SDR_CTL_DRAMINTR_INTREN register field value. */ 1813 #define ALT_SDR_CTL_DRAMINTR_INTREN_SET_MSK 0x00000001 1814 /* The mask used to clear the ALT_SDR_CTL_DRAMINTR_INTREN register field value. */ 1815 #define ALT_SDR_CTL_DRAMINTR_INTREN_CLR_MSK 0xfffffffe 1816 /* The reset value of the ALT_SDR_CTL_DRAMINTR_INTREN register field is UNKNOWN. */ 1817 #define ALT_SDR_CTL_DRAMINTR_INTREN_RESET 0x0 1818 /* Extracts the ALT_SDR_CTL_DRAMINTR_INTREN field value from a register. */ 1819 #define ALT_SDR_CTL_DRAMINTR_INTREN_GET(value) (((value) & 0x00000001) >> 0) 1820 /* Produces a ALT_SDR_CTL_DRAMINTR_INTREN register field value suitable for setting the register. */ 1821 #define ALT_SDR_CTL_DRAMINTR_INTREN_SET(value) (((value) << 0) & 0x00000001) 1822 1823 /* 1824 * Field : Mask Single Bit Error Interrupt - sbemask 1825 * 1826 * Mask the single bit error interrupt. 1827 * 1828 * Field Access Macros: 1829 * 1830 */ 1831 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMINTR_SBEMSK register field. */ 1832 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_LSB 1 1833 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMINTR_SBEMSK register field. */ 1834 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_MSB 1 1835 /* The width in bits of the ALT_SDR_CTL_DRAMINTR_SBEMSK register field. */ 1836 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_WIDTH 1 1837 /* The mask used to set the ALT_SDR_CTL_DRAMINTR_SBEMSK register field value. */ 1838 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_SET_MSK 0x00000002 1839 /* The mask used to clear the ALT_SDR_CTL_DRAMINTR_SBEMSK register field value. */ 1840 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_CLR_MSK 0xfffffffd 1841 /* The reset value of the ALT_SDR_CTL_DRAMINTR_SBEMSK register field is UNKNOWN. */ 1842 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_RESET 0x0 1843 /* Extracts the ALT_SDR_CTL_DRAMINTR_SBEMSK field value from a register. */ 1844 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_GET(value) (((value) & 0x00000002) >> 1) 1845 /* Produces a ALT_SDR_CTL_DRAMINTR_SBEMSK register field value suitable for setting the register. */ 1846 #define ALT_SDR_CTL_DRAMINTR_SBEMSK_SET(value) (((value) << 1) & 0x00000002) 1847 1848 /* 1849 * Field : Mask Double Bit Error Interrupt - dbemask 1850 * 1851 * Mask the double bit error interrupt. 1852 * 1853 * Field Access Macros: 1854 * 1855 */ 1856 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMINTR_DBEMSK register field. */ 1857 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_LSB 2 1858 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMINTR_DBEMSK register field. */ 1859 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_MSB 2 1860 /* The width in bits of the ALT_SDR_CTL_DRAMINTR_DBEMSK register field. */ 1861 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_WIDTH 1 1862 /* The mask used to set the ALT_SDR_CTL_DRAMINTR_DBEMSK register field value. */ 1863 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_SET_MSK 0x00000004 1864 /* The mask used to clear the ALT_SDR_CTL_DRAMINTR_DBEMSK register field value. */ 1865 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_CLR_MSK 0xfffffffb 1866 /* The reset value of the ALT_SDR_CTL_DRAMINTR_DBEMSK register field is UNKNOWN. */ 1867 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_RESET 0x0 1868 /* Extracts the ALT_SDR_CTL_DRAMINTR_DBEMSK field value from a register. */ 1869 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_GET(value) (((value) & 0x00000004) >> 2) 1870 /* Produces a ALT_SDR_CTL_DRAMINTR_DBEMSK register field value suitable for setting the register. */ 1871 #define ALT_SDR_CTL_DRAMINTR_DBEMSK_SET(value) (((value) << 2) & 0x00000004) 1872 1873 /* 1874 * Field : Mask Dropped Auto-correction Interrupt - corrdropmask 1875 * 1876 * Set this bit to a one to mask interrupts for an ECC correction write back 1877 * needing to be dropped. This indicates a burst of memory errors in a short 1878 * period of time. 1879 * 1880 * Field Access Macros: 1881 * 1882 */ 1883 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMINTR_CORRDROPMSK register field. */ 1884 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_LSB 3 1885 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMINTR_CORRDROPMSK register field. */ 1886 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_MSB 3 1887 /* The width in bits of the ALT_SDR_CTL_DRAMINTR_CORRDROPMSK register field. */ 1888 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_WIDTH 1 1889 /* The mask used to set the ALT_SDR_CTL_DRAMINTR_CORRDROPMSK register field value. */ 1890 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_SET_MSK 0x00000008 1891 /* The mask used to clear the ALT_SDR_CTL_DRAMINTR_CORRDROPMSK register field value. */ 1892 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_CLR_MSK 0xfffffff7 1893 /* The reset value of the ALT_SDR_CTL_DRAMINTR_CORRDROPMSK register field is UNKNOWN. */ 1894 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_RESET 0x0 1895 /* Extracts the ALT_SDR_CTL_DRAMINTR_CORRDROPMSK field value from a register. */ 1896 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_GET(value) (((value) & 0x00000008) >> 3) 1897 /* Produces a ALT_SDR_CTL_DRAMINTR_CORRDROPMSK register field value suitable for setting the register. */ 1898 #define ALT_SDR_CTL_DRAMINTR_CORRDROPMSK_SET(value) (((value) << 3) & 0x00000008) 1899 1900 /* 1901 * Field : Clear Interrupt Signal - intrclr 1902 * 1903 * Writing to this self-clearing bit clears the interrupt signal. Writing to this 1904 * bit also clears the error count and error address registers. 1905 * 1906 * Field Access Macros: 1907 * 1908 */ 1909 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DRAMINTR_INTRCLR register field. */ 1910 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_LSB 4 1911 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DRAMINTR_INTRCLR register field. */ 1912 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_MSB 4 1913 /* The width in bits of the ALT_SDR_CTL_DRAMINTR_INTRCLR register field. */ 1914 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_WIDTH 1 1915 /* The mask used to set the ALT_SDR_CTL_DRAMINTR_INTRCLR register field value. */ 1916 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_SET_MSK 0x00000010 1917 /* The mask used to clear the ALT_SDR_CTL_DRAMINTR_INTRCLR register field value. */ 1918 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_CLR_MSK 0xffffffef 1919 /* The reset value of the ALT_SDR_CTL_DRAMINTR_INTRCLR register field is UNKNOWN. */ 1920 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_RESET 0x0 1921 /* Extracts the ALT_SDR_CTL_DRAMINTR_INTRCLR field value from a register. */ 1922 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_GET(value) (((value) & 0x00000010) >> 4) 1923 /* Produces a ALT_SDR_CTL_DRAMINTR_INTRCLR register field value suitable for setting the register. */ 1924 #define ALT_SDR_CTL_DRAMINTR_INTRCLR_SET(value) (((value) << 4) & 0x00000010) 1925 1926 #ifndef __ASSEMBLY__ 1927 /* 1928 * WARNING: The C register and register group struct declarations are provided for 1929 * convenience and illustrative purposes. They should, however, be used with 1930 * caution as the C language standard provides no guarantees about the alignment or 1931 * atomicity of device memory accesses. The recommended practice for writing 1932 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1933 * alt_write_word() functions. 1934 * 1935 * The struct declaration for register ALT_SDR_CTL_DRAMINTR. 1936 */ 1937 struct ALT_SDR_CTL_DRAMINTR_s 1938 { 1939 uint32_t intren : 1; /* Interrupt Enable */ 1940 uint32_t sbemask : 1; /* Mask Single Bit Error Interrupt */ 1941 uint32_t dbemask : 1; /* Mask Double Bit Error Interrupt */ 1942 uint32_t corrdropmask : 1; /* Mask Dropped Auto-correction Interrupt */ 1943 uint32_t intrclr : 1; /* Clear Interrupt Signal */ 1944 uint32_t : 27; /* *UNDEFINED* */ 1945 }; 1946 1947 /* The typedef declaration for register ALT_SDR_CTL_DRAMINTR. */ 1948 typedef volatile struct ALT_SDR_CTL_DRAMINTR_s ALT_SDR_CTL_DRAMINTR_t; 1949 #endif /* __ASSEMBLY__ */ 1950 1951 /* The byte offset of the ALT_SDR_CTL_DRAMINTR register from the beginning of the component. */ 1952 #define ALT_SDR_CTL_DRAMINTR_OFST 0x3c 1953 1954 /* 1955 * Register : ECC Single Bit Error Count Register - sbecount 1956 * 1957 * 1958 * Register Layout 1959 * 1960 * Bits | Access | Reset | Description 1961 * :-------|:-------|:--------|:----------------------- 1962 * [7:0] | RW | Unknown | Single Bit Error Count 1963 * [31:8] | ??? | 0x0 | *UNDEFINED* 1964 * 1965 */ 1966 /* 1967 * Field : Single Bit Error Count - count 1968 * 1969 * Reports the number of single bit errors that have occurred since the status 1970 * register counters were last cleared. 1971 * 1972 * Field Access Macros: 1973 * 1974 */ 1975 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_SBECOUNT_COUNT register field. */ 1976 #define ALT_SDR_CTL_SBECOUNT_COUNT_LSB 0 1977 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_SBECOUNT_COUNT register field. */ 1978 #define ALT_SDR_CTL_SBECOUNT_COUNT_MSB 7 1979 /* The width in bits of the ALT_SDR_CTL_SBECOUNT_COUNT register field. */ 1980 #define ALT_SDR_CTL_SBECOUNT_COUNT_WIDTH 8 1981 /* The mask used to set the ALT_SDR_CTL_SBECOUNT_COUNT register field value. */ 1982 #define ALT_SDR_CTL_SBECOUNT_COUNT_SET_MSK 0x000000ff 1983 /* The mask used to clear the ALT_SDR_CTL_SBECOUNT_COUNT register field value. */ 1984 #define ALT_SDR_CTL_SBECOUNT_COUNT_CLR_MSK 0xffffff00 1985 /* The reset value of the ALT_SDR_CTL_SBECOUNT_COUNT register field is UNKNOWN. */ 1986 #define ALT_SDR_CTL_SBECOUNT_COUNT_RESET 0x0 1987 /* Extracts the ALT_SDR_CTL_SBECOUNT_COUNT field value from a register. */ 1988 #define ALT_SDR_CTL_SBECOUNT_COUNT_GET(value) (((value) & 0x000000ff) >> 0) 1989 /* Produces a ALT_SDR_CTL_SBECOUNT_COUNT register field value suitable for setting the register. */ 1990 #define ALT_SDR_CTL_SBECOUNT_COUNT_SET(value) (((value) << 0) & 0x000000ff) 1991 1992 #ifndef __ASSEMBLY__ 1993 /* 1994 * WARNING: The C register and register group struct declarations are provided for 1995 * convenience and illustrative purposes. They should, however, be used with 1996 * caution as the C language standard provides no guarantees about the alignment or 1997 * atomicity of device memory accesses. The recommended practice for writing 1998 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 1999 * alt_write_word() functions. 2000 * 2001 * The struct declaration for register ALT_SDR_CTL_SBECOUNT. 2002 */ 2003 struct ALT_SDR_CTL_SBECOUNT_s 2004 { 2005 uint32_t count : 8; /* Single Bit Error Count */ 2006 uint32_t : 24; /* *UNDEFINED* */ 2007 }; 2008 2009 /* The typedef declaration for register ALT_SDR_CTL_SBECOUNT. */ 2010 typedef volatile struct ALT_SDR_CTL_SBECOUNT_s ALT_SDR_CTL_SBECOUNT_t; 2011 #endif /* __ASSEMBLY__ */ 2012 2013 /* The byte offset of the ALT_SDR_CTL_SBECOUNT register from the beginning of the component. */ 2014 #define ALT_SDR_CTL_SBECOUNT_OFST 0x40 2015 2016 /* 2017 * Register : ECC Double Bit Error Count Register - dbecount 2018 * 2019 * 2020 * Register Layout 2021 * 2022 * Bits | Access | Reset | Description 2023 * :-------|:-------|:--------|:----------------------- 2024 * [7:0] | RW | Unknown | Double Bit Error Count 2025 * [31:8] | ??? | 0x0 | *UNDEFINED* 2026 * 2027 */ 2028 /* 2029 * Field : Double Bit Error Count - count 2030 * 2031 * Reports the number of double bit errors that have occurred since the status 2032 * register counters were last cleared. 2033 * 2034 * Field Access Macros: 2035 * 2036 */ 2037 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DBECOUNT_COUNT register field. */ 2038 #define ALT_SDR_CTL_DBECOUNT_COUNT_LSB 0 2039 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DBECOUNT_COUNT register field. */ 2040 #define ALT_SDR_CTL_DBECOUNT_COUNT_MSB 7 2041 /* The width in bits of the ALT_SDR_CTL_DBECOUNT_COUNT register field. */ 2042 #define ALT_SDR_CTL_DBECOUNT_COUNT_WIDTH 8 2043 /* The mask used to set the ALT_SDR_CTL_DBECOUNT_COUNT register field value. */ 2044 #define ALT_SDR_CTL_DBECOUNT_COUNT_SET_MSK 0x000000ff 2045 /* The mask used to clear the ALT_SDR_CTL_DBECOUNT_COUNT register field value. */ 2046 #define ALT_SDR_CTL_DBECOUNT_COUNT_CLR_MSK 0xffffff00 2047 /* The reset value of the ALT_SDR_CTL_DBECOUNT_COUNT register field is UNKNOWN. */ 2048 #define ALT_SDR_CTL_DBECOUNT_COUNT_RESET 0x0 2049 /* Extracts the ALT_SDR_CTL_DBECOUNT_COUNT field value from a register. */ 2050 #define ALT_SDR_CTL_DBECOUNT_COUNT_GET(value) (((value) & 0x000000ff) >> 0) 2051 /* Produces a ALT_SDR_CTL_DBECOUNT_COUNT register field value suitable for setting the register. */ 2052 #define ALT_SDR_CTL_DBECOUNT_COUNT_SET(value) (((value) << 0) & 0x000000ff) 2053 2054 #ifndef __ASSEMBLY__ 2055 /* 2056 * WARNING: The C register and register group struct declarations are provided for 2057 * convenience and illustrative purposes. They should, however, be used with 2058 * caution as the C language standard provides no guarantees about the alignment or 2059 * atomicity of device memory accesses. The recommended practice for writing 2060 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2061 * alt_write_word() functions. 2062 * 2063 * The struct declaration for register ALT_SDR_CTL_DBECOUNT. 2064 */ 2065 struct ALT_SDR_CTL_DBECOUNT_s 2066 { 2067 uint32_t count : 8; /* Double Bit Error Count */ 2068 uint32_t : 24; /* *UNDEFINED* */ 2069 }; 2070 2071 /* The typedef declaration for register ALT_SDR_CTL_DBECOUNT. */ 2072 typedef volatile struct ALT_SDR_CTL_DBECOUNT_s ALT_SDR_CTL_DBECOUNT_t; 2073 #endif /* __ASSEMBLY__ */ 2074 2075 /* The byte offset of the ALT_SDR_CTL_DBECOUNT register from the beginning of the component. */ 2076 #define ALT_SDR_CTL_DBECOUNT_OFST 0x44 2077 2078 /* 2079 * Register : ECC Error Address Register - erraddr 2080 * 2081 * 2082 * Register Layout 2083 * 2084 * Bits | Access | Reset | Description 2085 * :-------|:-------|:--------|:------------------ 2086 * [31:0] | RW | Unknown | ECC Error Address 2087 * 2088 */ 2089 /* 2090 * Field : ECC Error Address - addr 2091 * 2092 * The address of the most recent ECC error. 2093 * 2094 * Field Access Macros: 2095 * 2096 */ 2097 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_ERRADDR_ADDR register field. */ 2098 #define ALT_SDR_CTL_ERRADDR_ADDR_LSB 0 2099 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_ERRADDR_ADDR register field. */ 2100 #define ALT_SDR_CTL_ERRADDR_ADDR_MSB 31 2101 /* The width in bits of the ALT_SDR_CTL_ERRADDR_ADDR register field. */ 2102 #define ALT_SDR_CTL_ERRADDR_ADDR_WIDTH 32 2103 /* The mask used to set the ALT_SDR_CTL_ERRADDR_ADDR register field value. */ 2104 #define ALT_SDR_CTL_ERRADDR_ADDR_SET_MSK 0xffffffff 2105 /* The mask used to clear the ALT_SDR_CTL_ERRADDR_ADDR register field value. */ 2106 #define ALT_SDR_CTL_ERRADDR_ADDR_CLR_MSK 0x00000000 2107 /* The reset value of the ALT_SDR_CTL_ERRADDR_ADDR register field is UNKNOWN. */ 2108 #define ALT_SDR_CTL_ERRADDR_ADDR_RESET 0x0 2109 /* Extracts the ALT_SDR_CTL_ERRADDR_ADDR field value from a register. */ 2110 #define ALT_SDR_CTL_ERRADDR_ADDR_GET(value) (((value) & 0xffffffff) >> 0) 2111 /* Produces a ALT_SDR_CTL_ERRADDR_ADDR register field value suitable for setting the register. */ 2112 #define ALT_SDR_CTL_ERRADDR_ADDR_SET(value) (((value) << 0) & 0xffffffff) 2113 2114 #ifndef __ASSEMBLY__ 2115 /* 2116 * WARNING: The C register and register group struct declarations are provided for 2117 * convenience and illustrative purposes. They should, however, be used with 2118 * caution as the C language standard provides no guarantees about the alignment or 2119 * atomicity of device memory accesses. The recommended practice for writing 2120 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2121 * alt_write_word() functions. 2122 * 2123 * The struct declaration for register ALT_SDR_CTL_ERRADDR. 2124 */ 2125 struct ALT_SDR_CTL_ERRADDR_s 2126 { 2127 uint32_t addr : 32; /* ECC Error Address */ 2128 }; 2129 2130 /* The typedef declaration for register ALT_SDR_CTL_ERRADDR. */ 2131 typedef volatile struct ALT_SDR_CTL_ERRADDR_s ALT_SDR_CTL_ERRADDR_t; 2132 #endif /* __ASSEMBLY__ */ 2133 2134 /* The byte offset of the ALT_SDR_CTL_ERRADDR register from the beginning of the component. */ 2135 #define ALT_SDR_CTL_ERRADDR_OFST 0x48 2136 2137 /* 2138 * Register : ECC Auto-correction Dropped Count Register - dropcount 2139 * 2140 * 2141 * Register Layout 2142 * 2143 * Bits | Access | Reset | Description 2144 * :-------|:-------|:--------|:------------------------------ 2145 * [7:0] | RW | Unknown | Dropped Auto-correction Count 2146 * [31:8] | ??? | 0x0 | *UNDEFINED* 2147 * 2148 */ 2149 /* 2150 * Field : Dropped Auto-correction Count - corrdropcount 2151 * 2152 * This gives the count of the number of ECC write back transactions dropped due to 2153 * the internal FIFO overflowing. 2154 * 2155 * Field Access Macros: 2156 * 2157 */ 2158 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT register field. */ 2159 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_LSB 0 2160 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT register field. */ 2161 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_MSB 7 2162 /* The width in bits of the ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT register field. */ 2163 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_WIDTH 8 2164 /* The mask used to set the ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT register field value. */ 2165 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_SET_MSK 0x000000ff 2166 /* The mask used to clear the ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT register field value. */ 2167 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_CLR_MSK 0xffffff00 2168 /* The reset value of the ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT register field is UNKNOWN. */ 2169 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_RESET 0x0 2170 /* Extracts the ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT field value from a register. */ 2171 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_GET(value) (((value) & 0x000000ff) >> 0) 2172 /* Produces a ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT register field value suitable for setting the register. */ 2173 #define ALT_SDR_CTL_DROPCOUNT_CORRDROPCOUNT_SET(value) (((value) << 0) & 0x000000ff) 2174 2175 #ifndef __ASSEMBLY__ 2176 /* 2177 * WARNING: The C register and register group struct declarations are provided for 2178 * convenience and illustrative purposes. They should, however, be used with 2179 * caution as the C language standard provides no guarantees about the alignment or 2180 * atomicity of device memory accesses. The recommended practice for writing 2181 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2182 * alt_write_word() functions. 2183 * 2184 * The struct declaration for register ALT_SDR_CTL_DROPCOUNT. 2185 */ 2186 struct ALT_SDR_CTL_DROPCOUNT_s 2187 { 2188 uint32_t corrdropcount : 8; /* Dropped Auto-correction Count */ 2189 uint32_t : 24; /* *UNDEFINED* */ 2190 }; 2191 2192 /* The typedef declaration for register ALT_SDR_CTL_DROPCOUNT. */ 2193 typedef volatile struct ALT_SDR_CTL_DROPCOUNT_s ALT_SDR_CTL_DROPCOUNT_t; 2194 #endif /* __ASSEMBLY__ */ 2195 2196 /* The byte offset of the ALT_SDR_CTL_DROPCOUNT register from the beginning of the component. */ 2197 #define ALT_SDR_CTL_DROPCOUNT_OFST 0x4c 2198 2199 /* 2200 * Register : ECC Auto-correction Dropped Address Register - dropaddr 2201 * 2202 * 2203 * Register Layout 2204 * 2205 * Bits | Access | Reset | Description 2206 * :-------|:-------|:--------|:-------------------------------- 2207 * [31:0] | RW | Unknown | Dropped Auto-correction Address 2208 * 2209 */ 2210 /* 2211 * Field : Dropped Auto-correction Address - corrdropaddr 2212 * 2213 * This register gives the last address which was dropped. 2214 * 2215 * Field Access Macros: 2216 * 2217 */ 2218 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_DROPADDR_CORRDROPADDR register field. */ 2219 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_LSB 0 2220 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_DROPADDR_CORRDROPADDR register field. */ 2221 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_MSB 31 2222 /* The width in bits of the ALT_SDR_CTL_DROPADDR_CORRDROPADDR register field. */ 2223 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_WIDTH 32 2224 /* The mask used to set the ALT_SDR_CTL_DROPADDR_CORRDROPADDR register field value. */ 2225 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_SET_MSK 0xffffffff 2226 /* The mask used to clear the ALT_SDR_CTL_DROPADDR_CORRDROPADDR register field value. */ 2227 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_CLR_MSK 0x00000000 2228 /* The reset value of the ALT_SDR_CTL_DROPADDR_CORRDROPADDR register field is UNKNOWN. */ 2229 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_RESET 0x0 2230 /* Extracts the ALT_SDR_CTL_DROPADDR_CORRDROPADDR field value from a register. */ 2231 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_GET(value) (((value) & 0xffffffff) >> 0) 2232 /* Produces a ALT_SDR_CTL_DROPADDR_CORRDROPADDR register field value suitable for setting the register. */ 2233 #define ALT_SDR_CTL_DROPADDR_CORRDROPADDR_SET(value) (((value) << 0) & 0xffffffff) 2234 2235 #ifndef __ASSEMBLY__ 2236 /* 2237 * WARNING: The C register and register group struct declarations are provided for 2238 * convenience and illustrative purposes. They should, however, be used with 2239 * caution as the C language standard provides no guarantees about the alignment or 2240 * atomicity of device memory accesses. The recommended practice for writing 2241 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2242 * alt_write_word() functions. 2243 * 2244 * The struct declaration for register ALT_SDR_CTL_DROPADDR. 2245 */ 2246 struct ALT_SDR_CTL_DROPADDR_s 2247 { 2248 uint32_t corrdropaddr : 32; /* Dropped Auto-correction Address */ 2249 }; 2250 2251 /* The typedef declaration for register ALT_SDR_CTL_DROPADDR. */ 2252 typedef volatile struct ALT_SDR_CTL_DROPADDR_s ALT_SDR_CTL_DROPADDR_t; 2253 #endif /* __ASSEMBLY__ */ 2254 2255 /* The byte offset of the ALT_SDR_CTL_DROPADDR register from the beginning of the component. */ 2256 #define ALT_SDR_CTL_DROPADDR_OFST 0x50 2257 2258 /* 2259 * Register : Low Power Control Register - lowpwreq 2260 * 2261 * This register instructs the controller to put the DRAM into a power down state. 2262 * Note that some commands are only valid for certain memory types. 2263 * 2264 * Register Layout 2265 * 2266 * Bits | Access | Reset | Description 2267 * :-------|:-------|:--------|:--------------------------------- 2268 * [0] | RW | Unknown | Deep Power Down Request 2269 * [2:1] | RW | Unknown | Deep Power Down Chip Select Mask 2270 * [3] | RW | Unknown | Self-refresh Request 2271 * [5:4] | RW | Unknown | Self-refresh Chip Select Mask 2272 * [31:6] | ??? | 0x0 | *UNDEFINED* 2273 * 2274 */ 2275 /* 2276 * Field : Deep Power Down Request - deeppwrdnreq 2277 * 2278 * Write a one to this bit to request a deep power down. This bit should only be 2279 * written with LPDDR2 DRAMs, DDR3 DRAMs do not support deep power down. 2280 * 2281 * Field Access Macros: 2282 * 2283 */ 2284 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ register field. */ 2285 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_LSB 0 2286 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ register field. */ 2287 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_MSB 0 2288 /* The width in bits of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ register field. */ 2289 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_WIDTH 1 2290 /* The mask used to set the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ register field value. */ 2291 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_SET_MSK 0x00000001 2292 /* The mask used to clear the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ register field value. */ 2293 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_CLR_MSK 0xfffffffe 2294 /* The reset value of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ register field is UNKNOWN. */ 2295 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_RESET 0x0 2296 /* Extracts the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ field value from a register. */ 2297 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_GET(value) (((value) & 0x00000001) >> 0) 2298 /* Produces a ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ register field value suitable for setting the register. */ 2299 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNREQ_SET(value) (((value) << 0) & 0x00000001) 2300 2301 /* 2302 * Field : Deep Power Down Chip Select Mask - deeppwrdnmask 2303 * 2304 * Write ones to this register to select which DRAM chip selects will be powered 2305 * down. Typical usage is to set both of these bits when deeppwrdnreq is set but 2306 * the controller does support putting a single chip into deep power down and 2307 * keeping the other chip running. 2308 * 2309 * Field Access Macros: 2310 * 2311 */ 2312 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK register field. */ 2313 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_LSB 1 2314 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK register field. */ 2315 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_MSB 2 2316 /* The width in bits of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK register field. */ 2317 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_WIDTH 2 2318 /* The mask used to set the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK register field value. */ 2319 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_SET_MSK 0x00000006 2320 /* The mask used to clear the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK register field value. */ 2321 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_CLR_MSK 0xfffffff9 2322 /* The reset value of the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK register field is UNKNOWN. */ 2323 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_RESET 0x0 2324 /* Extracts the ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK field value from a register. */ 2325 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_GET(value) (((value) & 0x00000006) >> 1) 2326 /* Produces a ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK register field value suitable for setting the register. */ 2327 #define ALT_SDR_CTL_LOWPWREQ_DEEPPWRDNMSK_SET(value) (((value) << 1) & 0x00000006) 2328 2329 /* 2330 * Field : Self-refresh Request - selfrshreq 2331 * 2332 * Write a one to this bit to request the RAM be put into a self refresh state. 2333 * This bit is treated as a static value so the RAM will remain in self-refresh as 2334 * long as this register bit is set to a one. This power down mode can be selected 2335 * for all DRAMs supported by the controller. 2336 * 2337 * Field Access Macros: 2338 * 2339 */ 2340 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ register field. */ 2341 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_LSB 3 2342 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ register field. */ 2343 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_MSB 3 2344 /* The width in bits of the ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ register field. */ 2345 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_WIDTH 1 2346 /* The mask used to set the ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ register field value. */ 2347 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_SET_MSK 0x00000008 2348 /* The mask used to clear the ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ register field value. */ 2349 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_CLR_MSK 0xfffffff7 2350 /* The reset value of the ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ register field is UNKNOWN. */ 2351 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_RESET 0x0 2352 /* Extracts the ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ field value from a register. */ 2353 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_GET(value) (((value) & 0x00000008) >> 3) 2354 /* Produces a ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ register field value suitable for setting the register. */ 2355 #define ALT_SDR_CTL_LOWPWREQ_SELFRSHREQ_SET(value) (((value) << 3) & 0x00000008) 2356 2357 /* 2358 * Field : Self-refresh Chip Select Mask - selfrfshmask 2359 * 2360 * Write a one to each bit of this field to have a self refresh request apply to 2361 * both chips. 2362 * 2363 * Field Access Macros: 2364 * 2365 */ 2366 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK register field. */ 2367 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_LSB 4 2368 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK register field. */ 2369 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_MSB 5 2370 /* The width in bits of the ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK register field. */ 2371 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_WIDTH 2 2372 /* The mask used to set the ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK register field value. */ 2373 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_SET_MSK 0x00000030 2374 /* The mask used to clear the ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK register field value. */ 2375 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_CLR_MSK 0xffffffcf 2376 /* The reset value of the ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK register field is UNKNOWN. */ 2377 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_RESET 0x0 2378 /* Extracts the ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK field value from a register. */ 2379 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_GET(value) (((value) & 0x00000030) >> 4) 2380 /* Produces a ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK register field value suitable for setting the register. */ 2381 #define ALT_SDR_CTL_LOWPWREQ_SELFRFSHMSK_SET(value) (((value) << 4) & 0x00000030) 2382 2383 #ifndef __ASSEMBLY__ 2384 /* 2385 * WARNING: The C register and register group struct declarations are provided for 2386 * convenience and illustrative purposes. They should, however, be used with 2387 * caution as the C language standard provides no guarantees about the alignment or 2388 * atomicity of device memory accesses. The recommended practice for writing 2389 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2390 * alt_write_word() functions. 2391 * 2392 * The struct declaration for register ALT_SDR_CTL_LOWPWREQ. 2393 */ 2394 struct ALT_SDR_CTL_LOWPWREQ_s 2395 { 2396 uint32_t deeppwrdnreq : 1; /* Deep Power Down Request */ 2397 uint32_t deeppwrdnmask : 2; /* Deep Power Down Chip Select Mask */ 2398 uint32_t selfrshreq : 1; /* Self-refresh Request */ 2399 uint32_t selfrfshmask : 2; /* Self-refresh Chip Select Mask */ 2400 uint32_t : 26; /* *UNDEFINED* */ 2401 }; 2402 2403 /* The typedef declaration for register ALT_SDR_CTL_LOWPWREQ. */ 2404 typedef volatile struct ALT_SDR_CTL_LOWPWREQ_s ALT_SDR_CTL_LOWPWREQ_t; 2405 #endif /* __ASSEMBLY__ */ 2406 2407 /* The byte offset of the ALT_SDR_CTL_LOWPWREQ register from the beginning of the component. */ 2408 #define ALT_SDR_CTL_LOWPWREQ_OFST 0x54 2409 2410 /* 2411 * Register : Low Power Acknowledge Register - lowpwrack 2412 * 2413 * This register gives the status of the power down commands requested by the Low 2414 * Power Control register. 2415 * 2416 * Register Layout 2417 * 2418 * Bits | Access | Reset | Description 2419 * :-------|:-------|:--------|:---------------------------- 2420 * [0] | RW | Unknown | Deep Power Down Acknowledge 2421 * [1] | RW | Unknown | Self-refresh Acknowledge 2422 * [31:2] | ??? | 0x0 | *UNDEFINED* 2423 * 2424 */ 2425 /* 2426 * Field : Deep Power Down Acknowledge - deeppwrdnack 2427 * 2428 * This bit is set to a one after a deep power down has been executed 2429 * 2430 * Field Access Macros: 2431 * 2432 */ 2433 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK register field. */ 2434 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_LSB 0 2435 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK register field. */ 2436 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_MSB 0 2437 /* The width in bits of the ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK register field. */ 2438 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_WIDTH 1 2439 /* The mask used to set the ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK register field value. */ 2440 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_SET_MSK 0x00000001 2441 /* The mask used to clear the ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK register field value. */ 2442 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_CLR_MSK 0xfffffffe 2443 /* The reset value of the ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK register field is UNKNOWN. */ 2444 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_RESET 0x0 2445 /* Extracts the ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK field value from a register. */ 2446 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_GET(value) (((value) & 0x00000001) >> 0) 2447 /* Produces a ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK register field value suitable for setting the register. */ 2448 #define ALT_SDR_CTL_LOWPWRACK_DEEPPWRDNACK_SET(value) (((value) << 0) & 0x00000001) 2449 2450 /* 2451 * Field : Self-refresh Acknowledge - selfrfshack 2452 * 2453 * This bit is a one to indicate that the controller is in a self-refresh state. 2454 * 2455 * Field Access Macros: 2456 * 2457 */ 2458 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK register field. */ 2459 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_LSB 1 2460 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK register field. */ 2461 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_MSB 1 2462 /* The width in bits of the ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK register field. */ 2463 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_WIDTH 1 2464 /* The mask used to set the ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK register field value. */ 2465 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_SET_MSK 0x00000002 2466 /* The mask used to clear the ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK register field value. */ 2467 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_CLR_MSK 0xfffffffd 2468 /* The reset value of the ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK register field is UNKNOWN. */ 2469 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_RESET 0x0 2470 /* Extracts the ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK field value from a register. */ 2471 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_GET(value) (((value) & 0x00000002) >> 1) 2472 /* Produces a ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK register field value suitable for setting the register. */ 2473 #define ALT_SDR_CTL_LOWPWRACK_SELFRFSHACK_SET(value) (((value) << 1) & 0x00000002) 2474 2475 #ifndef __ASSEMBLY__ 2476 /* 2477 * WARNING: The C register and register group struct declarations are provided for 2478 * convenience and illustrative purposes. They should, however, be used with 2479 * caution as the C language standard provides no guarantees about the alignment or 2480 * atomicity of device memory accesses. The recommended practice for writing 2481 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2482 * alt_write_word() functions. 2483 * 2484 * The struct declaration for register ALT_SDR_CTL_LOWPWRACK. 2485 */ 2486 struct ALT_SDR_CTL_LOWPWRACK_s 2487 { 2488 uint32_t deeppwrdnack : 1; /* Deep Power Down Acknowledge */ 2489 uint32_t selfrfshack : 1; /* Self-refresh Acknowledge */ 2490 uint32_t : 30; /* *UNDEFINED* */ 2491 }; 2492 2493 /* The typedef declaration for register ALT_SDR_CTL_LOWPWRACK. */ 2494 typedef volatile struct ALT_SDR_CTL_LOWPWRACK_s ALT_SDR_CTL_LOWPWRACK_t; 2495 #endif /* __ASSEMBLY__ */ 2496 2497 /* The byte offset of the ALT_SDR_CTL_LOWPWRACK register from the beginning of the component. */ 2498 #define ALT_SDR_CTL_LOWPWRACK_OFST 0x58 2499 2500 /* 2501 * Register : Static Configuration Register - staticcfg 2502 * 2503 * This register controls configuration values which cannot be updated while 2504 * transactions are flowing. 2505 * 2506 * You should write once to this register with the membl and eccen fields set to 2507 * your desired configuration, and then write to the register again with membl and 2508 * eccen and the applycfg bit set. The applycfg bit is write only. 2509 * 2510 * Register Layout 2511 * 2512 * Bits | Access | Reset | Description 2513 * :-------|:-------|:--------|:---------------------------- 2514 * [1:0] | RW | Unknown | Memory Burst Length 2515 * [2] | RW | Unknown | Use ECC Bits As Data 2516 * [3] | RW | Unknown | Apply Configuration Changes 2517 * [31:4] | ??? | 0x0 | *UNDEFINED* 2518 * 2519 */ 2520 /* 2521 * Field : Memory Burst Length - membl 2522 * 2523 * This field specifies the DRAM burst length. Write the following values to set 2524 * the a burst length appropriate for the specific DRAM being used. "00" 2525 * for burst length 2, "01" for burst length 4, "10" for burst 2526 * length 8. If you set this, you must also set the membl field in the ctrlcfg 2527 * register. 2528 * 2529 * Field Access Macros: 2530 * 2531 */ 2532 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_STATICCFG_MEMBL register field. */ 2533 #define ALT_SDR_CTL_STATICCFG_MEMBL_LSB 0 2534 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_STATICCFG_MEMBL register field. */ 2535 #define ALT_SDR_CTL_STATICCFG_MEMBL_MSB 1 2536 /* The width in bits of the ALT_SDR_CTL_STATICCFG_MEMBL register field. */ 2537 #define ALT_SDR_CTL_STATICCFG_MEMBL_WIDTH 2 2538 /* The mask used to set the ALT_SDR_CTL_STATICCFG_MEMBL register field value. */ 2539 #define ALT_SDR_CTL_STATICCFG_MEMBL_SET_MSK 0x00000003 2540 /* The mask used to clear the ALT_SDR_CTL_STATICCFG_MEMBL register field value. */ 2541 #define ALT_SDR_CTL_STATICCFG_MEMBL_CLR_MSK 0xfffffffc 2542 /* The reset value of the ALT_SDR_CTL_STATICCFG_MEMBL register field is UNKNOWN. */ 2543 #define ALT_SDR_CTL_STATICCFG_MEMBL_RESET 0x0 2544 /* Extracts the ALT_SDR_CTL_STATICCFG_MEMBL field value from a register. */ 2545 #define ALT_SDR_CTL_STATICCFG_MEMBL_GET(value) (((value) & 0x00000003) >> 0) 2546 /* Produces a ALT_SDR_CTL_STATICCFG_MEMBL register field value suitable for setting the register. */ 2547 #define ALT_SDR_CTL_STATICCFG_MEMBL_SET(value) (((value) << 0) & 0x00000003) 2548 2549 /* 2550 * Field : Use ECC Bits As Data - useeccasdata 2551 * 2552 * This field allows the FPGA ports to directly access the extra data bits that are 2553 * normally used to hold the ECC code. The interface width must be set to 24 or 40 2554 * in the dramifwidth register. If you set this, you must clear the eccen field in 2555 * the ctrlcfg register. 2556 * 2557 * Field Access Macros: 2558 * 2559 */ 2560 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_STATICCFG_USEECCASDATA register field. */ 2561 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_LSB 2 2562 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_STATICCFG_USEECCASDATA register field. */ 2563 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_MSB 2 2564 /* The width in bits of the ALT_SDR_CTL_STATICCFG_USEECCASDATA register field. */ 2565 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_WIDTH 1 2566 /* The mask used to set the ALT_SDR_CTL_STATICCFG_USEECCASDATA register field value. */ 2567 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_SET_MSK 0x00000004 2568 /* The mask used to clear the ALT_SDR_CTL_STATICCFG_USEECCASDATA register field value. */ 2569 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_CLR_MSK 0xfffffffb 2570 /* The reset value of the ALT_SDR_CTL_STATICCFG_USEECCASDATA register field is UNKNOWN. */ 2571 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_RESET 0x0 2572 /* Extracts the ALT_SDR_CTL_STATICCFG_USEECCASDATA field value from a register. */ 2573 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_GET(value) (((value) & 0x00000004) >> 2) 2574 /* Produces a ALT_SDR_CTL_STATICCFG_USEECCASDATA register field value suitable for setting the register. */ 2575 #define ALT_SDR_CTL_STATICCFG_USEECCASDATA_SET(value) (((value) << 2) & 0x00000004) 2576 2577 /* 2578 * Field : Apply Configuration Changes - applycfg 2579 * 2580 * Write with this bit set to apply all the settings loaded in SDR registers to the 2581 * memory interface. This bit is write-only and always returns 0 if read. 2582 * 2583 * Field Access Macros: 2584 * 2585 */ 2586 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_STATICCFG_APPLYCFG register field. */ 2587 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_LSB 3 2588 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_STATICCFG_APPLYCFG register field. */ 2589 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_MSB 3 2590 /* The width in bits of the ALT_SDR_CTL_STATICCFG_APPLYCFG register field. */ 2591 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_WIDTH 1 2592 /* The mask used to set the ALT_SDR_CTL_STATICCFG_APPLYCFG register field value. */ 2593 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_SET_MSK 0x00000008 2594 /* The mask used to clear the ALT_SDR_CTL_STATICCFG_APPLYCFG register field value. */ 2595 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_CLR_MSK 0xfffffff7 2596 /* The reset value of the ALT_SDR_CTL_STATICCFG_APPLYCFG register field is UNKNOWN. */ 2597 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_RESET 0x0 2598 /* Extracts the ALT_SDR_CTL_STATICCFG_APPLYCFG field value from a register. */ 2599 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_GET(value) (((value) & 0x00000008) >> 3) 2600 /* Produces a ALT_SDR_CTL_STATICCFG_APPLYCFG register field value suitable for setting the register. */ 2601 #define ALT_SDR_CTL_STATICCFG_APPLYCFG_SET(value) (((value) << 3) & 0x00000008) 2602 2603 #ifndef __ASSEMBLY__ 2604 /* 2605 * WARNING: The C register and register group struct declarations are provided for 2606 * convenience and illustrative purposes. They should, however, be used with 2607 * caution as the C language standard provides no guarantees about the alignment or 2608 * atomicity of device memory accesses. The recommended practice for writing 2609 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2610 * alt_write_word() functions. 2611 * 2612 * The struct declaration for register ALT_SDR_CTL_STATICCFG. 2613 */ 2614 struct ALT_SDR_CTL_STATICCFG_s 2615 { 2616 uint32_t membl : 2; /* Memory Burst Length */ 2617 uint32_t useeccasdata : 1; /* Use ECC Bits As Data */ 2618 uint32_t applycfg : 1; /* Apply Configuration Changes */ 2619 uint32_t : 28; /* *UNDEFINED* */ 2620 }; 2621 2622 /* The typedef declaration for register ALT_SDR_CTL_STATICCFG. */ 2623 typedef volatile struct ALT_SDR_CTL_STATICCFG_s ALT_SDR_CTL_STATICCFG_t; 2624 #endif /* __ASSEMBLY__ */ 2625 2626 /* The byte offset of the ALT_SDR_CTL_STATICCFG register from the beginning of the component. */ 2627 #define ALT_SDR_CTL_STATICCFG_OFST 0x5c 2628 2629 /* 2630 * Register : Memory Controller Width Register - ctrlwidth 2631 * 2632 * This register controls the width of the physical DRAM interface. 2633 * 2634 * Register Layout 2635 * 2636 * Bits | Access | Reset | Description 2637 * :-------|:-------|:--------|:--------------------------- 2638 * [1:0] | RW | Unknown | Controller Interface Width 2639 * [31:2] | ??? | 0x0 | *UNDEFINED* 2640 * 2641 */ 2642 /* 2643 * Field : Controller Interface Width - ctrlwidth 2644 * 2645 * Specifies controller DRAM interface width, with the following encoding. 2646 * "00" for 8-bit, "01" for 16-bit (no ECC) or 24-bit (ECC 2647 * enabled), "10" for 32-bit (no ECC) or 40-bit (ECC enabled). You must 2648 * also program the dramifwidth register. 2649 * 2650 * Field Access Macros: 2651 * 2652 */ 2653 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_CTLWIDTH_CTLWIDTH register field. */ 2654 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_LSB 0 2655 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_CTLWIDTH_CTLWIDTH register field. */ 2656 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_MSB 1 2657 /* The width in bits of the ALT_SDR_CTL_CTLWIDTH_CTLWIDTH register field. */ 2658 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_WIDTH 2 2659 /* The mask used to set the ALT_SDR_CTL_CTLWIDTH_CTLWIDTH register field value. */ 2660 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_SET_MSK 0x00000003 2661 /* The mask used to clear the ALT_SDR_CTL_CTLWIDTH_CTLWIDTH register field value. */ 2662 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_CLR_MSK 0xfffffffc 2663 /* The reset value of the ALT_SDR_CTL_CTLWIDTH_CTLWIDTH register field is UNKNOWN. */ 2664 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_RESET 0x0 2665 /* Extracts the ALT_SDR_CTL_CTLWIDTH_CTLWIDTH field value from a register. */ 2666 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_GET(value) (((value) & 0x00000003) >> 0) 2667 /* Produces a ALT_SDR_CTL_CTLWIDTH_CTLWIDTH register field value suitable for setting the register. */ 2668 #define ALT_SDR_CTL_CTLWIDTH_CTLWIDTH_SET(value) (((value) << 0) & 0x00000003) 2669 2670 #ifndef __ASSEMBLY__ 2671 /* 2672 * WARNING: The C register and register group struct declarations are provided for 2673 * convenience and illustrative purposes. They should, however, be used with 2674 * caution as the C language standard provides no guarantees about the alignment or 2675 * atomicity of device memory accesses. The recommended practice for writing 2676 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2677 * alt_write_word() functions. 2678 * 2679 * The struct declaration for register ALT_SDR_CTL_CTLWIDTH. 2680 */ 2681 struct ALT_SDR_CTL_CTLWIDTH_s 2682 { 2683 uint32_t ctrlwidth : 2; /* Controller Interface Width */ 2684 uint32_t : 30; /* *UNDEFINED* */ 2685 }; 2686 2687 /* The typedef declaration for register ALT_SDR_CTL_CTLWIDTH. */ 2688 typedef volatile struct ALT_SDR_CTL_CTLWIDTH_s ALT_SDR_CTL_CTLWIDTH_t; 2689 #endif /* __ASSEMBLY__ */ 2690 2691 /* The byte offset of the ALT_SDR_CTL_CTLWIDTH register from the beginning of the component. */ 2692 #define ALT_SDR_CTL_CTLWIDTH_OFST 0x60 2693 2694 /* 2695 * Register : Port Configuration Register - portcfg 2696 * 2697 * This register should be set to a zero in any bit which corresponds to a port 2698 * which does mostly sequential memory accesses. For ports with highly random 2699 * accesses, the bit should be set to a one. 2700 * 2701 * Register Layout 2702 * 2703 * Bits | Access | Reset | Description 2704 * :--------|:-------|:--------|:---------------------- 2705 * [9:0] | ??? | Unknown | *UNDEFINED* 2706 * [19:10] | RW | Unknown | Auto-precharge Enable 2707 * [31:20] | ??? | 0x0 | *UNDEFINED* 2708 * 2709 */ 2710 /* 2711 * Field : Auto-precharge Enable - autopchen 2712 * 2713 * One bit per control port. Set bit N to a 1 to have the controller request an 2714 * automatic precharge following bus command completion (close the row 2715 * automatically). Set to a zero to request that the controller attempt to keep a 2716 * row open. For random dominated operations this register should be set to a 1 2717 * for all active ports. 2718 * 2719 * Field Access Macros: 2720 * 2721 */ 2722 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PORTCFG_AUTOPCHEN register field. */ 2723 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_LSB 10 2724 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PORTCFG_AUTOPCHEN register field. */ 2725 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_MSB 19 2726 /* The width in bits of the ALT_SDR_CTL_PORTCFG_AUTOPCHEN register field. */ 2727 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_WIDTH 10 2728 /* The mask used to set the ALT_SDR_CTL_PORTCFG_AUTOPCHEN register field value. */ 2729 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_SET_MSK 0x000ffc00 2730 /* The mask used to clear the ALT_SDR_CTL_PORTCFG_AUTOPCHEN register field value. */ 2731 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_CLR_MSK 0xfff003ff 2732 /* The reset value of the ALT_SDR_CTL_PORTCFG_AUTOPCHEN register field is UNKNOWN. */ 2733 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_RESET 0x0 2734 /* Extracts the ALT_SDR_CTL_PORTCFG_AUTOPCHEN field value from a register. */ 2735 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_GET(value) (((value) & 0x000ffc00) >> 10) 2736 /* Produces a ALT_SDR_CTL_PORTCFG_AUTOPCHEN register field value suitable for setting the register. */ 2737 #define ALT_SDR_CTL_PORTCFG_AUTOPCHEN_SET(value) (((value) << 10) & 0x000ffc00) 2738 2739 #ifndef __ASSEMBLY__ 2740 /* 2741 * WARNING: The C register and register group struct declarations are provided for 2742 * convenience and illustrative purposes. They should, however, be used with 2743 * caution as the C language standard provides no guarantees about the alignment or 2744 * atomicity of device memory accesses. The recommended practice for writing 2745 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2746 * alt_write_word() functions. 2747 * 2748 * The struct declaration for register ALT_SDR_CTL_PORTCFG. 2749 */ 2750 struct ALT_SDR_CTL_PORTCFG_s 2751 { 2752 uint32_t : 10; /* *UNDEFINED* */ 2753 uint32_t autopchen : 10; /* Auto-precharge Enable */ 2754 uint32_t : 12; /* *UNDEFINED* */ 2755 }; 2756 2757 /* The typedef declaration for register ALT_SDR_CTL_PORTCFG. */ 2758 typedef volatile struct ALT_SDR_CTL_PORTCFG_s ALT_SDR_CTL_PORTCFG_t; 2759 #endif /* __ASSEMBLY__ */ 2760 2761 /* The byte offset of the ALT_SDR_CTL_PORTCFG register from the beginning of the component. */ 2762 #define ALT_SDR_CTL_PORTCFG_OFST 0x7c 2763 2764 /* 2765 * Register : FPGA Ports Reset Control Register - fpgaportrst 2766 * 2767 * This register implements functionality to allow the CPU to control when the MPFE 2768 * will enable the ports to the FPGA fabric. 2769 * 2770 * Register Layout 2771 * 2772 * Bits | Access | Reset | Description 2773 * :--------|:-------|:--------|:------------------- 2774 * [13:0] | RW | Unknown | Port Reset Control 2775 * [31:14] | ??? | 0x0 | *UNDEFINED* 2776 * 2777 */ 2778 /* 2779 * Field : Port Reset Control - portrstn 2780 * 2781 * This register should be written to with a 1 to enable the selected FPGA port to 2782 * exit reset. Writing a bit to a zero will stretch the port reset until the 2783 * register is written. Read data ports are connected to bits 3:0, with read data 2784 * port 0 at bit 0 to read data port 3 at bit 3. Write data ports 0 to 3 are mapped 2785 * to 4 to 7, with write data port 0 connected to bit 4 to write data port 3 at bit 2786 * 7. Command ports are connected to bits 8 to 13, with command port 0 at bit 8 to 2787 * command port 5 at bit 13. Expected usage would be to set all the bits at the 2788 * same time but setting some bits to a zero and others to a one is supported. 2789 * 2790 * Field Access Macros: 2791 * 2792 */ 2793 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_FPGAPORTRST_PORTRSTN register field. */ 2794 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_LSB 0 2795 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_FPGAPORTRST_PORTRSTN register field. */ 2796 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_MSB 13 2797 /* The width in bits of the ALT_SDR_CTL_FPGAPORTRST_PORTRSTN register field. */ 2798 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_WIDTH 14 2799 /* The mask used to set the ALT_SDR_CTL_FPGAPORTRST_PORTRSTN register field value. */ 2800 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_SET_MSK 0x00003fff 2801 /* The mask used to clear the ALT_SDR_CTL_FPGAPORTRST_PORTRSTN register field value. */ 2802 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_CLR_MSK 0xffffc000 2803 /* The reset value of the ALT_SDR_CTL_FPGAPORTRST_PORTRSTN register field is UNKNOWN. */ 2804 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_RESET 0x0 2805 /* Extracts the ALT_SDR_CTL_FPGAPORTRST_PORTRSTN field value from a register. */ 2806 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_GET(value) (((value) & 0x00003fff) >> 0) 2807 /* Produces a ALT_SDR_CTL_FPGAPORTRST_PORTRSTN register field value suitable for setting the register. */ 2808 #define ALT_SDR_CTL_FPGAPORTRST_PORTRSTN_SET(value) (((value) << 0) & 0x00003fff) 2809 2810 #ifndef __ASSEMBLY__ 2811 /* 2812 * WARNING: The C register and register group struct declarations are provided for 2813 * convenience and illustrative purposes. They should, however, be used with 2814 * caution as the C language standard provides no guarantees about the alignment or 2815 * atomicity of device memory accesses. The recommended practice for writing 2816 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2817 * alt_write_word() functions. 2818 * 2819 * The struct declaration for register ALT_SDR_CTL_FPGAPORTRST. 2820 */ 2821 struct ALT_SDR_CTL_FPGAPORTRST_s 2822 { 2823 uint32_t portrstn : 14; /* Port Reset Control */ 2824 uint32_t : 18; /* *UNDEFINED* */ 2825 }; 2826 2827 /* The typedef declaration for register ALT_SDR_CTL_FPGAPORTRST. */ 2828 typedef volatile struct ALT_SDR_CTL_FPGAPORTRST_s ALT_SDR_CTL_FPGAPORTRST_t; 2829 #endif /* __ASSEMBLY__ */ 2830 2831 /* The byte offset of the ALT_SDR_CTL_FPGAPORTRST register from the beginning of the component. */ 2832 #define ALT_SDR_CTL_FPGAPORTRST_OFST 0x80 2833 2834 /* 2835 * Register : Memory Protection Port Default Register - protportdefault 2836 * 2837 * This register controls the default protection assignment for a port. Ports 2838 * which have explicit rules which define regions which are illegal to access 2839 * should set the bits to pass by default. Ports which have explicit rules which 2840 * define legal areas should set the bit to force all transactions to fail. 2841 * Leaving this register to all zeros should be used for systems which do not 2842 * desire any protection from the memory controller. 2843 * 2844 * Register Layout 2845 * 2846 * Bits | Access | Reset | Description 2847 * :--------|:-------|:--------|:-------------------- 2848 * [9:0] | RW | Unknown | Port Default Action 2849 * [31:10] | ??? | 0x0 | *UNDEFINED* 2850 * 2851 */ 2852 /* 2853 * Field : Port Default Action - portdefault 2854 * 2855 * Determines the default action for a transactions from a port. Set a bit to a 2856 * zero to indicate that all accesses from the port should pass by default, set a 2857 * bit to a one if the default protection is to fail the access. 2858 * 2859 * Field Access Macros: 2860 * 2861 */ 2862 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT register field. */ 2863 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_LSB 0 2864 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT register field. */ 2865 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_MSB 9 2866 /* The width in bits of the ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT register field. */ 2867 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_WIDTH 10 2868 /* The mask used to set the ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT register field value. */ 2869 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_SET_MSK 0x000003ff 2870 /* The mask used to clear the ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT register field value. */ 2871 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_CLR_MSK 0xfffffc00 2872 /* The reset value of the ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT register field is UNKNOWN. */ 2873 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_RESET 0x0 2874 /* Extracts the ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT field value from a register. */ 2875 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_GET(value) (((value) & 0x000003ff) >> 0) 2876 /* Produces a ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT register field value suitable for setting the register. */ 2877 #define ALT_SDR_CTL_PROTPORTDEFAULT_PORTDEFAULT_SET(value) (((value) << 0) & 0x000003ff) 2878 2879 #ifndef __ASSEMBLY__ 2880 /* 2881 * WARNING: The C register and register group struct declarations are provided for 2882 * convenience and illustrative purposes. They should, however, be used with 2883 * caution as the C language standard provides no guarantees about the alignment or 2884 * atomicity of device memory accesses. The recommended practice for writing 2885 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2886 * alt_write_word() functions. 2887 * 2888 * The struct declaration for register ALT_SDR_CTL_PROTPORTDEFAULT. 2889 */ 2890 struct ALT_SDR_CTL_PROTPORTDEFAULT_s 2891 { 2892 uint32_t portdefault : 10; /* Port Default Action */ 2893 uint32_t : 22; /* *UNDEFINED* */ 2894 }; 2895 2896 /* The typedef declaration for register ALT_SDR_CTL_PROTPORTDEFAULT. */ 2897 typedef volatile struct ALT_SDR_CTL_PROTPORTDEFAULT_s ALT_SDR_CTL_PROTPORTDEFAULT_t; 2898 #endif /* __ASSEMBLY__ */ 2899 2900 /* The byte offset of the ALT_SDR_CTL_PROTPORTDEFAULT register from the beginning of the component. */ 2901 #define ALT_SDR_CTL_PROTPORTDEFAULT_OFST 0x8c 2902 2903 /* 2904 * Register : Memory Protection Address Register - protruleaddr 2905 * 2906 * This register is used to control the memory protection for port 0 transactions. 2907 * Address ranges can either be used to allow access to memory regions or disallow 2908 * access to memory regions. If trustzone is being used, access can be enabled for 2909 * protected transactions or disabled for unprotected transactions. The default 2910 * state of this register is to allow all access. Address values used for 2911 * protection are only physical addresses. 2912 * 2913 * Register Layout 2914 * 2915 * Bits | Access | Reset | Description 2916 * :--------|:-------|:--------|:------------- 2917 * [11:0] | RW | Unknown | Low Address 2918 * [23:12] | RW | Unknown | High Address 2919 * [31:24] | ??? | 0x0 | *UNDEFINED* 2920 * 2921 */ 2922 /* 2923 * Field : Low Address - lowaddr 2924 * 2925 * Lower 12 bits of the address for a check. Address is compared to be less than 2926 * or equal to the address of a transaction. Note that since AXI transactions 2927 * cannot cross a 4K byte boundary, the transaction start and transaction end 2928 * address must also fall within the same 1MByte block pointed to by this address 2929 * pointer. 2930 * 2931 * Field Access Macros: 2932 * 2933 */ 2934 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEADDR_LOWADDR register field. */ 2935 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_LSB 0 2936 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEADDR_LOWADDR register field. */ 2937 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_MSB 11 2938 /* The width in bits of the ALT_SDR_CTL_PROTRULEADDR_LOWADDR register field. */ 2939 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_WIDTH 12 2940 /* The mask used to set the ALT_SDR_CTL_PROTRULEADDR_LOWADDR register field value. */ 2941 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_SET_MSK 0x00000fff 2942 /* The mask used to clear the ALT_SDR_CTL_PROTRULEADDR_LOWADDR register field value. */ 2943 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_CLR_MSK 0xfffff000 2944 /* The reset value of the ALT_SDR_CTL_PROTRULEADDR_LOWADDR register field is UNKNOWN. */ 2945 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_RESET 0x0 2946 /* Extracts the ALT_SDR_CTL_PROTRULEADDR_LOWADDR field value from a register. */ 2947 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_GET(value) (((value) & 0x00000fff) >> 0) 2948 /* Produces a ALT_SDR_CTL_PROTRULEADDR_LOWADDR register field value suitable for setting the register. */ 2949 #define ALT_SDR_CTL_PROTRULEADDR_LOWADDR_SET(value) (((value) << 0) & 0x00000fff) 2950 2951 /* 2952 * Field : High Address - highaddr 2953 * 2954 * Upper 12 bits of the address for a check. Address is compared to be greater 2955 * than or equal to the address of a transaction. Note that since AXI transactions 2956 * cannot cross a 4K byte boundary, the transaction start and transaction end 2957 * address must also fall within the same 1MByte block pointed to by this address 2958 * pointer. 2959 * 2960 * Field Access Macros: 2961 * 2962 */ 2963 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEADDR_HIGHADDR register field. */ 2964 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_LSB 12 2965 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEADDR_HIGHADDR register field. */ 2966 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_MSB 23 2967 /* The width in bits of the ALT_SDR_CTL_PROTRULEADDR_HIGHADDR register field. */ 2968 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_WIDTH 12 2969 /* The mask used to set the ALT_SDR_CTL_PROTRULEADDR_HIGHADDR register field value. */ 2970 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_SET_MSK 0x00fff000 2971 /* The mask used to clear the ALT_SDR_CTL_PROTRULEADDR_HIGHADDR register field value. */ 2972 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_CLR_MSK 0xff000fff 2973 /* The reset value of the ALT_SDR_CTL_PROTRULEADDR_HIGHADDR register field is UNKNOWN. */ 2974 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_RESET 0x0 2975 /* Extracts the ALT_SDR_CTL_PROTRULEADDR_HIGHADDR field value from a register. */ 2976 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_GET(value) (((value) & 0x00fff000) >> 12) 2977 /* Produces a ALT_SDR_CTL_PROTRULEADDR_HIGHADDR register field value suitable for setting the register. */ 2978 #define ALT_SDR_CTL_PROTRULEADDR_HIGHADDR_SET(value) (((value) << 12) & 0x00fff000) 2979 2980 #ifndef __ASSEMBLY__ 2981 /* 2982 * WARNING: The C register and register group struct declarations are provided for 2983 * convenience and illustrative purposes. They should, however, be used with 2984 * caution as the C language standard provides no guarantees about the alignment or 2985 * atomicity of device memory accesses. The recommended practice for writing 2986 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 2987 * alt_write_word() functions. 2988 * 2989 * The struct declaration for register ALT_SDR_CTL_PROTRULEADDR. 2990 */ 2991 struct ALT_SDR_CTL_PROTRULEADDR_s 2992 { 2993 uint32_t lowaddr : 12; /* Low Address */ 2994 uint32_t highaddr : 12; /* High Address */ 2995 uint32_t : 8; /* *UNDEFINED* */ 2996 }; 2997 2998 /* The typedef declaration for register ALT_SDR_CTL_PROTRULEADDR. */ 2999 typedef volatile struct ALT_SDR_CTL_PROTRULEADDR_s ALT_SDR_CTL_PROTRULEADDR_t; 3000 #endif /* __ASSEMBLY__ */ 3001 3002 /* The byte offset of the ALT_SDR_CTL_PROTRULEADDR register from the beginning of the component. */ 3003 #define ALT_SDR_CTL_PROTRULEADDR_OFST 0x90 3004 3005 /* 3006 * Register : Memory Protection ID Register - protruleid 3007 * 3008 * 3009 * Register Layout 3010 * 3011 * Bits | Access | Reset | Description 3012 * :--------|:-------|:--------|:------------ 3013 * [11:0] | RW | Unknown | Low ID 3014 * [23:12] | RW | Unknown | High ID 3015 * [31:24] | ??? | 0x0 | *UNDEFINED* 3016 * 3017 */ 3018 /* 3019 * Field : Low ID - lowid 3020 * 3021 * AxID for the protection rule. Incoming AxID needs to be greater than or equal 3022 * to this value. For all AxIDs from a port, AxID high should be programmed to all 3023 * ones. 3024 * 3025 * Field Access Macros: 3026 * 3027 */ 3028 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEID_LOWID register field. */ 3029 #define ALT_SDR_CTL_PROTRULEID_LOWID_LSB 0 3030 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEID_LOWID register field. */ 3031 #define ALT_SDR_CTL_PROTRULEID_LOWID_MSB 11 3032 /* The width in bits of the ALT_SDR_CTL_PROTRULEID_LOWID register field. */ 3033 #define ALT_SDR_CTL_PROTRULEID_LOWID_WIDTH 12 3034 /* The mask used to set the ALT_SDR_CTL_PROTRULEID_LOWID register field value. */ 3035 #define ALT_SDR_CTL_PROTRULEID_LOWID_SET_MSK 0x00000fff 3036 /* The mask used to clear the ALT_SDR_CTL_PROTRULEID_LOWID register field value. */ 3037 #define ALT_SDR_CTL_PROTRULEID_LOWID_CLR_MSK 0xfffff000 3038 /* The reset value of the ALT_SDR_CTL_PROTRULEID_LOWID register field is UNKNOWN. */ 3039 #define ALT_SDR_CTL_PROTRULEID_LOWID_RESET 0x0 3040 /* Extracts the ALT_SDR_CTL_PROTRULEID_LOWID field value from a register. */ 3041 #define ALT_SDR_CTL_PROTRULEID_LOWID_GET(value) (((value) & 0x00000fff) >> 0) 3042 /* Produces a ALT_SDR_CTL_PROTRULEID_LOWID register field value suitable for setting the register. */ 3043 #define ALT_SDR_CTL_PROTRULEID_LOWID_SET(value) (((value) << 0) & 0x00000fff) 3044 3045 /* 3046 * Field : High ID - highid 3047 * 3048 * AxID for the protection rule. Incoming AxID needs to be less than or equal to 3049 * this value. For all AxIDs from a port, AxID high should be programmed to all 3050 * ones. 3051 * 3052 * Field Access Macros: 3053 * 3054 */ 3055 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEID_HIGHID register field. */ 3056 #define ALT_SDR_CTL_PROTRULEID_HIGHID_LSB 12 3057 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEID_HIGHID register field. */ 3058 #define ALT_SDR_CTL_PROTRULEID_HIGHID_MSB 23 3059 /* The width in bits of the ALT_SDR_CTL_PROTRULEID_HIGHID register field. */ 3060 #define ALT_SDR_CTL_PROTRULEID_HIGHID_WIDTH 12 3061 /* The mask used to set the ALT_SDR_CTL_PROTRULEID_HIGHID register field value. */ 3062 #define ALT_SDR_CTL_PROTRULEID_HIGHID_SET_MSK 0x00fff000 3063 /* The mask used to clear the ALT_SDR_CTL_PROTRULEID_HIGHID register field value. */ 3064 #define ALT_SDR_CTL_PROTRULEID_HIGHID_CLR_MSK 0xff000fff 3065 /* The reset value of the ALT_SDR_CTL_PROTRULEID_HIGHID register field is UNKNOWN. */ 3066 #define ALT_SDR_CTL_PROTRULEID_HIGHID_RESET 0x0 3067 /* Extracts the ALT_SDR_CTL_PROTRULEID_HIGHID field value from a register. */ 3068 #define ALT_SDR_CTL_PROTRULEID_HIGHID_GET(value) (((value) & 0x00fff000) >> 12) 3069 /* Produces a ALT_SDR_CTL_PROTRULEID_HIGHID register field value suitable for setting the register. */ 3070 #define ALT_SDR_CTL_PROTRULEID_HIGHID_SET(value) (((value) << 12) & 0x00fff000) 3071 3072 #ifndef __ASSEMBLY__ 3073 /* 3074 * WARNING: The C register and register group struct declarations are provided for 3075 * convenience and illustrative purposes. They should, however, be used with 3076 * caution as the C language standard provides no guarantees about the alignment or 3077 * atomicity of device memory accesses. The recommended practice for writing 3078 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3079 * alt_write_word() functions. 3080 * 3081 * The struct declaration for register ALT_SDR_CTL_PROTRULEID. 3082 */ 3083 struct ALT_SDR_CTL_PROTRULEID_s 3084 { 3085 uint32_t lowid : 12; /* Low ID */ 3086 uint32_t highid : 12; /* High ID */ 3087 uint32_t : 8; /* *UNDEFINED* */ 3088 }; 3089 3090 /* The typedef declaration for register ALT_SDR_CTL_PROTRULEID. */ 3091 typedef volatile struct ALT_SDR_CTL_PROTRULEID_s ALT_SDR_CTL_PROTRULEID_t; 3092 #endif /* __ASSEMBLY__ */ 3093 3094 /* The byte offset of the ALT_SDR_CTL_PROTRULEID register from the beginning of the component. */ 3095 #define ALT_SDR_CTL_PROTRULEID_OFST 0x94 3096 3097 /* 3098 * Register : Memory Protection Rule Data Register - protruledata 3099 * 3100 * 3101 * Register Layout 3102 * 3103 * Bits | Access | Reset | Description 3104 * :--------|:-------|:--------|:---------------------- 3105 * [1:0] | RW | Unknown | Security Bit Behavior 3106 * [2] | RW | Unknown | Valid Rule 3107 * [12:3] | RW | Unknown | Port Mask 3108 * [13] | RW | Unknown | Rule Results 3109 * [31:14] | ??? | 0x0 | *UNDEFINED* 3110 * 3111 */ 3112 /* 3113 * Field : Security Bit Behavior - security 3114 * 3115 * A value of 2'b00 will make the rule apply to secure transactions. 3116 * 3117 * A value of 2'b01 will make the rule apply to non-secure transactions. 3118 * 3119 * A value of 2'b10 or 2'b11 will make the rule apply to secure and non-secure 3120 * transactions. 3121 * 3122 * Field Access Macros: 3123 * 3124 */ 3125 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEDATA_SECURITY register field. */ 3126 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_LSB 0 3127 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEDATA_SECURITY register field. */ 3128 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_MSB 1 3129 /* The width in bits of the ALT_SDR_CTL_PROTRULEDATA_SECURITY register field. */ 3130 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_WIDTH 2 3131 /* The mask used to set the ALT_SDR_CTL_PROTRULEDATA_SECURITY register field value. */ 3132 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_SET_MSK 0x00000003 3133 /* The mask used to clear the ALT_SDR_CTL_PROTRULEDATA_SECURITY register field value. */ 3134 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_CLR_MSK 0xfffffffc 3135 /* The reset value of the ALT_SDR_CTL_PROTRULEDATA_SECURITY register field is UNKNOWN. */ 3136 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_RESET 0x0 3137 /* Extracts the ALT_SDR_CTL_PROTRULEDATA_SECURITY field value from a register. */ 3138 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_GET(value) (((value) & 0x00000003) >> 0) 3139 /* Produces a ALT_SDR_CTL_PROTRULEDATA_SECURITY register field value suitable for setting the register. */ 3140 #define ALT_SDR_CTL_PROTRULEDATA_SECURITY_SET(value) (((value) << 0) & 0x00000003) 3141 3142 /* 3143 * Field : Valid Rule - validrule 3144 * 3145 * Set to bit to a one to make a rule valid, set to a zero to invalidate a rule. 3146 * 3147 * Field Access Macros: 3148 * 3149 */ 3150 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEDATA_VALIDRULE register field. */ 3151 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_LSB 2 3152 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEDATA_VALIDRULE register field. */ 3153 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_MSB 2 3154 /* The width in bits of the ALT_SDR_CTL_PROTRULEDATA_VALIDRULE register field. */ 3155 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_WIDTH 1 3156 /* The mask used to set the ALT_SDR_CTL_PROTRULEDATA_VALIDRULE register field value. */ 3157 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_SET_MSK 0x00000004 3158 /* The mask used to clear the ALT_SDR_CTL_PROTRULEDATA_VALIDRULE register field value. */ 3159 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_CLR_MSK 0xfffffffb 3160 /* The reset value of the ALT_SDR_CTL_PROTRULEDATA_VALIDRULE register field is UNKNOWN. */ 3161 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_RESET 0x0 3162 /* Extracts the ALT_SDR_CTL_PROTRULEDATA_VALIDRULE field value from a register. */ 3163 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_GET(value) (((value) & 0x00000004) >> 2) 3164 /* Produces a ALT_SDR_CTL_PROTRULEDATA_VALIDRULE register field value suitable for setting the register. */ 3165 #define ALT_SDR_CTL_PROTRULEDATA_VALIDRULE_SET(value) (((value) << 2) & 0x00000004) 3166 3167 /* 3168 * Field : Port Mask - portmask 3169 * 3170 * Set bit x to a one to have this rule apply to port x, set bit x to a zero to 3171 * have the rule not apply to a port. Note that port 0-port 5 are the FPGA 3172 * fabric ports, port 6 is L3 read, port 7 is CPU read, port 8 is L3 write, port 9 3173 * is CPU write. 3174 * 3175 * Field Access Macros: 3176 * 3177 */ 3178 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEDATA_PORTMSK register field. */ 3179 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_LSB 3 3180 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEDATA_PORTMSK register field. */ 3181 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_MSB 12 3182 /* The width in bits of the ALT_SDR_CTL_PROTRULEDATA_PORTMSK register field. */ 3183 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_WIDTH 10 3184 /* The mask used to set the ALT_SDR_CTL_PROTRULEDATA_PORTMSK register field value. */ 3185 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_SET_MSK 0x00001ff8 3186 /* The mask used to clear the ALT_SDR_CTL_PROTRULEDATA_PORTMSK register field value. */ 3187 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_CLR_MSK 0xffffe007 3188 /* The reset value of the ALT_SDR_CTL_PROTRULEDATA_PORTMSK register field is UNKNOWN. */ 3189 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_RESET 0x0 3190 /* Extracts the ALT_SDR_CTL_PROTRULEDATA_PORTMSK field value from a register. */ 3191 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_GET(value) (((value) & 0x00001ff8) >> 3) 3192 /* Produces a ALT_SDR_CTL_PROTRULEDATA_PORTMSK register field value suitable for setting the register. */ 3193 #define ALT_SDR_CTL_PROTRULEDATA_PORTMSK_SET(value) (((value) << 3) & 0x00001ff8) 3194 3195 /* 3196 * Field : Rule Results - ruleresult 3197 * 3198 * Set this bit to a one to force a protection failure, zero to allow the access 3199 * the succeed 3200 * 3201 * Field Access Macros: 3202 * 3203 */ 3204 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULEDATA_RULERESULT register field. */ 3205 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_LSB 13 3206 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULEDATA_RULERESULT register field. */ 3207 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_MSB 13 3208 /* The width in bits of the ALT_SDR_CTL_PROTRULEDATA_RULERESULT register field. */ 3209 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_WIDTH 1 3210 /* The mask used to set the ALT_SDR_CTL_PROTRULEDATA_RULERESULT register field value. */ 3211 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_SET_MSK 0x00002000 3212 /* The mask used to clear the ALT_SDR_CTL_PROTRULEDATA_RULERESULT register field value. */ 3213 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_CLR_MSK 0xffffdfff 3214 /* The reset value of the ALT_SDR_CTL_PROTRULEDATA_RULERESULT register field is UNKNOWN. */ 3215 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_RESET 0x0 3216 /* Extracts the ALT_SDR_CTL_PROTRULEDATA_RULERESULT field value from a register. */ 3217 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_GET(value) (((value) & 0x00002000) >> 13) 3218 /* Produces a ALT_SDR_CTL_PROTRULEDATA_RULERESULT register field value suitable for setting the register. */ 3219 #define ALT_SDR_CTL_PROTRULEDATA_RULERESULT_SET(value) (((value) << 13) & 0x00002000) 3220 3221 #ifndef __ASSEMBLY__ 3222 /* 3223 * WARNING: The C register and register group struct declarations are provided for 3224 * convenience and illustrative purposes. They should, however, be used with 3225 * caution as the C language standard provides no guarantees about the alignment or 3226 * atomicity of device memory accesses. The recommended practice for writing 3227 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3228 * alt_write_word() functions. 3229 * 3230 * The struct declaration for register ALT_SDR_CTL_PROTRULEDATA. 3231 */ 3232 struct ALT_SDR_CTL_PROTRULEDATA_s 3233 { 3234 uint32_t security : 2; /* Security Bit Behavior */ 3235 uint32_t validrule : 1; /* Valid Rule */ 3236 uint32_t portmask : 10; /* Port Mask */ 3237 uint32_t ruleresult : 1; /* Rule Results */ 3238 uint32_t : 18; /* *UNDEFINED* */ 3239 }; 3240 3241 /* The typedef declaration for register ALT_SDR_CTL_PROTRULEDATA. */ 3242 typedef volatile struct ALT_SDR_CTL_PROTRULEDATA_s ALT_SDR_CTL_PROTRULEDATA_t; 3243 #endif /* __ASSEMBLY__ */ 3244 3245 /* The byte offset of the ALT_SDR_CTL_PROTRULEDATA register from the beginning of the component. */ 3246 #define ALT_SDR_CTL_PROTRULEDATA_OFST 0x98 3247 3248 /* 3249 * Register : Memory Protection Rule Read-Write Register - protrulerdwr 3250 * 3251 * This register is used to perform read and write operations to the internal 3252 * protection table. 3253 * 3254 * Register Layout 3255 * 3256 * Bits | Access | Reset | Description 3257 * :-------|:-------|:--------|:------------ 3258 * [4:0] | RW | Unknown | Rule Offset 3259 * [5] | RW | Unknown | Rule Write 3260 * [6] | RW | Unknown | Rule Read 3261 * [31:7] | ??? | 0x0 | *UNDEFINED* 3262 * 3263 */ 3264 /* 3265 * Field : Rule Offset - ruleoffset 3266 * 3267 * This field defines which of the 20 rules in the protection table you want to 3268 * read or write. 3269 * 3270 * Field Access Macros: 3271 * 3272 */ 3273 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET register field. */ 3274 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_LSB 0 3275 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET register field. */ 3276 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_MSB 4 3277 /* The width in bits of the ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET register field. */ 3278 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_WIDTH 5 3279 /* The mask used to set the ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET register field value. */ 3280 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_SET_MSK 0x0000001f 3281 /* The mask used to clear the ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET register field value. */ 3282 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_CLR_MSK 0xffffffe0 3283 /* The reset value of the ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET register field is UNKNOWN. */ 3284 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_RESET 0x0 3285 /* Extracts the ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET field value from a register. */ 3286 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_GET(value) (((value) & 0x0000001f) >> 0) 3287 /* Produces a ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET register field value suitable for setting the register. */ 3288 #define ALT_SDR_CTL_PROTRULERDWR_RULEOFFSET_SET(value) (((value) << 0) & 0x0000001f) 3289 3290 /* 3291 * Field : Rule Write - writerule 3292 * 3293 * Write to this bit to have the memory_prot_data register to the table at the 3294 * offset specified by port_offset. Bit automatically clears after a single cycle 3295 * and the write operation is complete. 3296 * 3297 * Field Access Macros: 3298 * 3299 */ 3300 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULERDWR_WRRULE register field. */ 3301 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_LSB 5 3302 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULERDWR_WRRULE register field. */ 3303 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_MSB 5 3304 /* The width in bits of the ALT_SDR_CTL_PROTRULERDWR_WRRULE register field. */ 3305 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_WIDTH 1 3306 /* The mask used to set the ALT_SDR_CTL_PROTRULERDWR_WRRULE register field value. */ 3307 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_SET_MSK 0x00000020 3308 /* The mask used to clear the ALT_SDR_CTL_PROTRULERDWR_WRRULE register field value. */ 3309 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_CLR_MSK 0xffffffdf 3310 /* The reset value of the ALT_SDR_CTL_PROTRULERDWR_WRRULE register field is UNKNOWN. */ 3311 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_RESET 0x0 3312 /* Extracts the ALT_SDR_CTL_PROTRULERDWR_WRRULE field value from a register. */ 3313 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_GET(value) (((value) & 0x00000020) >> 5) 3314 /* Produces a ALT_SDR_CTL_PROTRULERDWR_WRRULE register field value suitable for setting the register. */ 3315 #define ALT_SDR_CTL_PROTRULERDWR_WRRULE_SET(value) (((value) << 5) & 0x00000020) 3316 3317 /* 3318 * Field : Rule Read - readrule 3319 * 3320 * Write to this bit to have the memory_prot_data register loaded with the value 3321 * from the internal protection table at offset. Table value will be loaded before 3322 * a rdy is returned so read data from the register will be correct for any follow- 3323 * on reads to the memory_prot_data register. 3324 * 3325 * Field Access Macros: 3326 * 3327 */ 3328 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_PROTRULERDWR_RDRULE register field. */ 3329 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_LSB 6 3330 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_PROTRULERDWR_RDRULE register field. */ 3331 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_MSB 6 3332 /* The width in bits of the ALT_SDR_CTL_PROTRULERDWR_RDRULE register field. */ 3333 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_WIDTH 1 3334 /* The mask used to set the ALT_SDR_CTL_PROTRULERDWR_RDRULE register field value. */ 3335 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_SET_MSK 0x00000040 3336 /* The mask used to clear the ALT_SDR_CTL_PROTRULERDWR_RDRULE register field value. */ 3337 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_CLR_MSK 0xffffffbf 3338 /* The reset value of the ALT_SDR_CTL_PROTRULERDWR_RDRULE register field is UNKNOWN. */ 3339 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_RESET 0x0 3340 /* Extracts the ALT_SDR_CTL_PROTRULERDWR_RDRULE field value from a register. */ 3341 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_GET(value) (((value) & 0x00000040) >> 6) 3342 /* Produces a ALT_SDR_CTL_PROTRULERDWR_RDRULE register field value suitable for setting the register. */ 3343 #define ALT_SDR_CTL_PROTRULERDWR_RDRULE_SET(value) (((value) << 6) & 0x00000040) 3344 3345 #ifndef __ASSEMBLY__ 3346 /* 3347 * WARNING: The C register and register group struct declarations are provided for 3348 * convenience and illustrative purposes. They should, however, be used with 3349 * caution as the C language standard provides no guarantees about the alignment or 3350 * atomicity of device memory accesses. The recommended practice for writing 3351 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3352 * alt_write_word() functions. 3353 * 3354 * The struct declaration for register ALT_SDR_CTL_PROTRULERDWR. 3355 */ 3356 struct ALT_SDR_CTL_PROTRULERDWR_s 3357 { 3358 uint32_t ruleoffset : 5; /* Rule Offset */ 3359 uint32_t writerule : 1; /* Rule Write */ 3360 uint32_t readrule : 1; /* Rule Read */ 3361 uint32_t : 25; /* *UNDEFINED* */ 3362 }; 3363 3364 /* The typedef declaration for register ALT_SDR_CTL_PROTRULERDWR. */ 3365 typedef volatile struct ALT_SDR_CTL_PROTRULERDWR_s ALT_SDR_CTL_PROTRULERDWR_t; 3366 #endif /* __ASSEMBLY__ */ 3367 3368 /* The byte offset of the ALT_SDR_CTL_PROTRULERDWR register from the beginning of the component. */ 3369 #define ALT_SDR_CTL_PROTRULERDWR_OFST 0x9c 3370 3371 /* 3372 * Register : QOS Control Register - qoslowpri 3373 * 3374 * This register controls the mapping of AXI4 QOS received from the FPGA fabric to 3375 * the internal priority used for traffic prioritization. 3376 * 3377 * Register Layout 3378 * 3379 * Bits | Access | Reset | Description 3380 * :--------|:-------|:--------|:----------------------- 3381 * [19:0] | RW | Unknown | Low Priority QoS Value 3382 * [31:20] | ??? | 0x0 | *UNDEFINED* 3383 * 3384 */ 3385 /* 3386 * Field : Low Priority QoS Value - lowpriorityval 3387 * 3388 * This 20 bit field is a 2 bit field for each of the 10 ports. The field used for 3389 * each port in this register controls the priority used for a port 3390 * 3391 * Field Access Macros: 3392 * 3393 */ 3394 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL register field. */ 3395 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_LSB 0 3396 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL register field. */ 3397 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_MSB 19 3398 /* The width in bits of the ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL register field. */ 3399 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_WIDTH 20 3400 /* The mask used to set the ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL register field value. */ 3401 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_SET_MSK 0x000fffff 3402 /* The mask used to clear the ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL register field value. */ 3403 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_CLR_MSK 0xfff00000 3404 /* The reset value of the ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL register field is UNKNOWN. */ 3405 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_RESET 0x0 3406 /* Extracts the ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL field value from a register. */ 3407 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_GET(value) (((value) & 0x000fffff) >> 0) 3408 /* Produces a ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL register field value suitable for setting the register. */ 3409 #define ALT_SDR_CTL_QOSLOWPRI_LOWPRIORITYVAL_SET(value) (((value) << 0) & 0x000fffff) 3410 3411 #ifndef __ASSEMBLY__ 3412 /* 3413 * WARNING: The C register and register group struct declarations are provided for 3414 * convenience and illustrative purposes. They should, however, be used with 3415 * caution as the C language standard provides no guarantees about the alignment or 3416 * atomicity of device memory accesses. The recommended practice for writing 3417 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3418 * alt_write_word() functions. 3419 * 3420 * The struct declaration for register ALT_SDR_CTL_QOSLOWPRI. 3421 */ 3422 struct ALT_SDR_CTL_QOSLOWPRI_s 3423 { 3424 uint32_t lowpriorityval : 20; /* Low Priority QoS Value */ 3425 uint32_t : 12; /* *UNDEFINED* */ 3426 }; 3427 3428 /* The typedef declaration for register ALT_SDR_CTL_QOSLOWPRI. */ 3429 typedef volatile struct ALT_SDR_CTL_QOSLOWPRI_s ALT_SDR_CTL_QOSLOWPRI_t; 3430 #endif /* __ASSEMBLY__ */ 3431 3432 /* The byte offset of the ALT_SDR_CTL_QOSLOWPRI register from the beginning of the component. */ 3433 #define ALT_SDR_CTL_QOSLOWPRI_OFST 0xa0 3434 3435 /* 3436 * Register : qoshighpri Register - qoshighpri 3437 * 3438 * 3439 * Register Layout 3440 * 3441 * Bits | Access | Reset | Description 3442 * :--------|:-------|:--------|:------------------------ 3443 * [19:0] | RW | Unknown | High Priority QoS Value 3444 * [31:20] | ??? | 0x0 | *UNDEFINED* 3445 * 3446 */ 3447 /* 3448 * Field : High Priority QoS Value - highpriorityval 3449 * 3450 * This 20 bit field is a 2 bit field for each of the 10 ports. The field used for 3451 * each port in this register controls the priority used for a port 3452 * 3453 * Field Access Macros: 3454 * 3455 */ 3456 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL register field. */ 3457 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_LSB 0 3458 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL register field. */ 3459 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_MSB 19 3460 /* The width in bits of the ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL register field. */ 3461 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_WIDTH 20 3462 /* The mask used to set the ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL register field value. */ 3463 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_SET_MSK 0x000fffff 3464 /* The mask used to clear the ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL register field value. */ 3465 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_CLR_MSK 0xfff00000 3466 /* The reset value of the ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL register field is UNKNOWN. */ 3467 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_RESET 0x0 3468 /* Extracts the ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL field value from a register. */ 3469 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_GET(value) (((value) & 0x000fffff) >> 0) 3470 /* Produces a ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL register field value suitable for setting the register. */ 3471 #define ALT_SDR_CTL_QOSHIGHPRI_HIGHPRIORITYVAL_SET(value) (((value) << 0) & 0x000fffff) 3472 3473 #ifndef __ASSEMBLY__ 3474 /* 3475 * WARNING: The C register and register group struct declarations are provided for 3476 * convenience and illustrative purposes. They should, however, be used with 3477 * caution as the C language standard provides no guarantees about the alignment or 3478 * atomicity of device memory accesses. The recommended practice for writing 3479 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3480 * alt_write_word() functions. 3481 * 3482 * The struct declaration for register ALT_SDR_CTL_QOSHIGHPRI. 3483 */ 3484 struct ALT_SDR_CTL_QOSHIGHPRI_s 3485 { 3486 uint32_t highpriorityval : 20; /* High Priority QoS Value */ 3487 uint32_t : 12; /* *UNDEFINED* */ 3488 }; 3489 3490 /* The typedef declaration for register ALT_SDR_CTL_QOSHIGHPRI. */ 3491 typedef volatile struct ALT_SDR_CTL_QOSHIGHPRI_s ALT_SDR_CTL_QOSHIGHPRI_t; 3492 #endif /* __ASSEMBLY__ */ 3493 3494 /* The byte offset of the ALT_SDR_CTL_QOSHIGHPRI register from the beginning of the component. */ 3495 #define ALT_SDR_CTL_QOSHIGHPRI_OFST 0xa4 3496 3497 /* 3498 * Register : qospriorityen Register - qospriorityen 3499 * 3500 * 3501 * Register Layout 3502 * 3503 * Bits | Access | Reset | Description 3504 * :--------|:-------|:--------|:-------------------- 3505 * [9:0] | RW | Unknown | Per-Port QoS Enable 3506 * [31:10] | ??? | 0x0 | *UNDEFINED* 3507 * 3508 */ 3509 /* 3510 * Field : Per-Port QoS Enable - priorityen 3511 * 3512 * This 10 bit field is set to a one to enable QOS usage for a port. 3513 * 3514 * Field Access Macros: 3515 * 3516 */ 3517 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN register field. */ 3518 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_LSB 0 3519 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN register field. */ 3520 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_MSB 9 3521 /* The width in bits of the ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN register field. */ 3522 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_WIDTH 10 3523 /* The mask used to set the ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN register field value. */ 3524 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_SET_MSK 0x000003ff 3525 /* The mask used to clear the ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN register field value. */ 3526 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_CLR_MSK 0xfffffc00 3527 /* The reset value of the ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN register field is UNKNOWN. */ 3528 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_RESET 0x0 3529 /* Extracts the ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN field value from a register. */ 3530 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_GET(value) (((value) & 0x000003ff) >> 0) 3531 /* Produces a ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN register field value suitable for setting the register. */ 3532 #define ALT_SDR_CTL_QOSPRIORITYEN_PRIORITYEN_SET(value) (((value) << 0) & 0x000003ff) 3533 3534 #ifndef __ASSEMBLY__ 3535 /* 3536 * WARNING: The C register and register group struct declarations are provided for 3537 * convenience and illustrative purposes. They should, however, be used with 3538 * caution as the C language standard provides no guarantees about the alignment or 3539 * atomicity of device memory accesses. The recommended practice for writing 3540 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3541 * alt_write_word() functions. 3542 * 3543 * The struct declaration for register ALT_SDR_CTL_QOSPRIORITYEN. 3544 */ 3545 struct ALT_SDR_CTL_QOSPRIORITYEN_s 3546 { 3547 uint32_t priorityen : 10; /* Per-Port QoS Enable */ 3548 uint32_t : 22; /* *UNDEFINED* */ 3549 }; 3550 3551 /* The typedef declaration for register ALT_SDR_CTL_QOSPRIORITYEN. */ 3552 typedef volatile struct ALT_SDR_CTL_QOSPRIORITYEN_s ALT_SDR_CTL_QOSPRIORITYEN_t; 3553 #endif /* __ASSEMBLY__ */ 3554 3555 /* The byte offset of the ALT_SDR_CTL_QOSPRIORITYEN register from the beginning of the component. */ 3556 #define ALT_SDR_CTL_QOSPRIORITYEN_OFST 0xa8 3557 3558 /* 3559 * Register : Scheduler priority Register - mppriority 3560 * 3561 * This register is used to configure the DRAM burst operation scheduling. 3562 * 3563 * Register Layout 3564 * 3565 * Bits | Access | Reset | Description 3566 * :--------|:-------|:--------|:--------------------- 3567 * [29:0] | RW | Unknown | Port User Priorities 3568 * [31:30] | ??? | 0x0 | *UNDEFINED* 3569 * 3570 */ 3571 /* 3572 * Field : Port User Priorities - userpriority 3573 * 3574 * Set absolute user priority of the port. Each port is represented by a 3 bit 3575 * value, 000=lowest priority, 111=highest priority. Port 0 is bits 2:0. Port 3576 * number offset corresponds to the control port assignment. 3577 * 3578 * Field Access Macros: 3579 * 3580 */ 3581 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_MPPRIORITY_USERPRIORITY register field. */ 3582 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_LSB 0 3583 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_MPPRIORITY_USERPRIORITY register field. */ 3584 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_MSB 29 3585 /* The width in bits of the ALT_SDR_CTL_MPPRIORITY_USERPRIORITY register field. */ 3586 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_WIDTH 30 3587 /* The mask used to set the ALT_SDR_CTL_MPPRIORITY_USERPRIORITY register field value. */ 3588 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_SET_MSK 0x3fffffff 3589 /* The mask used to clear the ALT_SDR_CTL_MPPRIORITY_USERPRIORITY register field value. */ 3590 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_CLR_MSK 0xc0000000 3591 /* The reset value of the ALT_SDR_CTL_MPPRIORITY_USERPRIORITY register field is UNKNOWN. */ 3592 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_RESET 0x0 3593 /* Extracts the ALT_SDR_CTL_MPPRIORITY_USERPRIORITY field value from a register. */ 3594 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_GET(value) (((value) & 0x3fffffff) >> 0) 3595 /* Produces a ALT_SDR_CTL_MPPRIORITY_USERPRIORITY register field value suitable for setting the register. */ 3596 #define ALT_SDR_CTL_MPPRIORITY_USERPRIORITY_SET(value) (((value) << 0) & 0x3fffffff) 3597 3598 #ifndef __ASSEMBLY__ 3599 /* 3600 * WARNING: The C register and register group struct declarations are provided for 3601 * convenience and illustrative purposes. They should, however, be used with 3602 * caution as the C language standard provides no guarantees about the alignment or 3603 * atomicity of device memory accesses. The recommended practice for writing 3604 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3605 * alt_write_word() functions. 3606 * 3607 * The struct declaration for register ALT_SDR_CTL_MPPRIORITY. 3608 */ 3609 struct ALT_SDR_CTL_MPPRIORITY_s 3610 { 3611 uint32_t userpriority : 30; /* Port User Priorities */ 3612 uint32_t : 2; /* *UNDEFINED* */ 3613 }; 3614 3615 /* The typedef declaration for register ALT_SDR_CTL_MPPRIORITY. */ 3616 typedef volatile struct ALT_SDR_CTL_MPPRIORITY_s ALT_SDR_CTL_MPPRIORITY_t; 3617 #endif /* __ASSEMBLY__ */ 3618 3619 /* The byte offset of the ALT_SDR_CTL_MPPRIORITY register from the beginning of the component. */ 3620 #define ALT_SDR_CTL_MPPRIORITY_OFST 0xac 3621 3622 /* 3623 * Register : Controller Command Pool Priority Remap Register - remappriority 3624 * 3625 * This register controls the priority for transactions in the controller command 3626 * pool. 3627 * 3628 * Register Layout 3629 * 3630 * Bits | Access | Reset | Description 3631 * :-------|:-------|:--------|:--------------- 3632 * [7:0] | RW | Unknown | Priority Remap 3633 * [31:8] | ??? | 0x0 | *UNDEFINED* 3634 * 3635 */ 3636 /* 3637 * Field : Priority Remap - priorityremap 3638 * 3639 * Set bit N of this register to the value to a one to enable the controller 3640 * command pool priority bit of a transaction from MPFE priority N 3641 * 3642 * Field Access Macros: 3643 * 3644 */ 3645 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP register field. */ 3646 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_LSB 0 3647 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP register field. */ 3648 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_MSB 7 3649 /* The width in bits of the ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP register field. */ 3650 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_WIDTH 8 3651 /* The mask used to set the ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP register field value. */ 3652 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_SET_MSK 0x000000ff 3653 /* The mask used to clear the ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP register field value. */ 3654 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_CLR_MSK 0xffffff00 3655 /* The reset value of the ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP register field is UNKNOWN. */ 3656 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_RESET 0x0 3657 /* Extracts the ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP field value from a register. */ 3658 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_GET(value) (((value) & 0x000000ff) >> 0) 3659 /* Produces a ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP register field value suitable for setting the register. */ 3660 #define ALT_SDR_CTL_REMAPPRIORITY_PRIORITYREMAP_SET(value) (((value) << 0) & 0x000000ff) 3661 3662 #ifndef __ASSEMBLY__ 3663 /* 3664 * WARNING: The C register and register group struct declarations are provided for 3665 * convenience and illustrative purposes. They should, however, be used with 3666 * caution as the C language standard provides no guarantees about the alignment or 3667 * atomicity of device memory accesses. The recommended practice for writing 3668 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3669 * alt_write_word() functions. 3670 * 3671 * The struct declaration for register ALT_SDR_CTL_REMAPPRIORITY. 3672 */ 3673 struct ALT_SDR_CTL_REMAPPRIORITY_s 3674 { 3675 uint32_t priorityremap : 8; /* Priority Remap */ 3676 uint32_t : 24; /* *UNDEFINED* */ 3677 }; 3678 3679 /* The typedef declaration for register ALT_SDR_CTL_REMAPPRIORITY. */ 3680 typedef volatile struct ALT_SDR_CTL_REMAPPRIORITY_s ALT_SDR_CTL_REMAPPRIORITY_t; 3681 #endif /* __ASSEMBLY__ */ 3682 3683 /* The byte offset of the ALT_SDR_CTL_REMAPPRIORITY register from the beginning of the component. */ 3684 #define ALT_SDR_CTL_REMAPPRIORITY_OFST 0xe0 3685 3686 /* 3687 * Register Group : Port Sum of Weight Register - ALT_SDR_CTL_MPWT 3688 * Port Sum of Weight Register 3689 * 3690 * This register is used to configure the DRAM burst operation scheduling. 3691 * 3692 */ 3693 /* 3694 * Register : Port Sum of Weight Register[1/4] - mpweight_0_4 3695 * 3696 * This register is used to configure the DRAM burst operation scheduling. 3697 * 3698 * Register Layout 3699 * 3700 * Bits | Access | Reset | Description 3701 * :-------|:-------|:--------|:-------------------------- 3702 * [31:0] | RW | Unknown | Port Static Weights[31:0] 3703 * 3704 */ 3705 /* 3706 * Field : Port Static Weights[31:0] - staticweight_31_0 3707 * 3708 * Set static weight of the port. Each port is programmed with a 5 bit value. 3709 * Port 0 is bits 4:0, port 1 is bits 9:5, up to port 9 being bits 49:45 3710 * 3711 * Field Access Macros: 3712 * 3713 */ 3714 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 register field. */ 3715 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_LSB 0 3716 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 register field. */ 3717 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_MSB 31 3718 /* The width in bits of the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 register field. */ 3719 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_WIDTH 32 3720 /* The mask used to set the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 register field value. */ 3721 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_SET_MSK 0xffffffff 3722 /* The mask used to clear the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 register field value. */ 3723 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_CLR_MSK 0x00000000 3724 /* The reset value of the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 register field is UNKNOWN. */ 3725 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_RESET 0x0 3726 /* Extracts the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 field value from a register. */ 3727 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_GET(value) (((value) & 0xffffffff) >> 0) 3728 /* Produces a ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0 register field value suitable for setting the register. */ 3729 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_STATICWEIGHT_31_0_SET(value) (((value) << 0) & 0xffffffff) 3730 3731 #ifndef __ASSEMBLY__ 3732 /* 3733 * WARNING: The C register and register group struct declarations are provided for 3734 * convenience and illustrative purposes. They should, however, be used with 3735 * caution as the C language standard provides no guarantees about the alignment or 3736 * atomicity of device memory accesses. The recommended practice for writing 3737 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3738 * alt_write_word() functions. 3739 * 3740 * The struct declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_0_4. 3741 */ 3742 struct ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_s 3743 { 3744 uint32_t staticweight_31_0 : 32; /* Port Static Weights[31:0] */ 3745 }; 3746 3747 /* The typedef declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_0_4. */ 3748 typedef volatile struct ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_s ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_t; 3749 #endif /* __ASSEMBLY__ */ 3750 3751 /* The byte offset of the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4 register from the beginning of the component. */ 3752 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_OFST 0x0 3753 /* The address of the ALT_SDR_CTL_MPWT_MPWEIGHT_0_4 register. */ 3754 #define ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_OFST)) 3755 3756 /* 3757 * Register : Port Sum of Weight Register[2/4] - mpweight_1_4 3758 * 3759 * This register is used to configure the DRAM burst operation scheduling. 3760 * 3761 * Register Layout 3762 * 3763 * Bits | Access | Reset | Description 3764 * :--------|:-------|:--------|:--------------------------- 3765 * [17:0] | RW | Unknown | Port Static Weights[49:32] 3766 * [31:18] | RW | Unknown | Port Sum of Weights[13:0] 3767 * 3768 */ 3769 /* 3770 * Field : Port Static Weights[49:32] - staticweight_49_32 3771 * 3772 * Set static weight of the port. Each port is programmed with a 5 bit value. 3773 * Port 0 is bits 4:0, port 1 is bits 9:5, up to port 9 being bits 49:45 3774 * 3775 * Field Access Macros: 3776 * 3777 */ 3778 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 register field. */ 3779 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_LSB 0 3780 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 register field. */ 3781 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_MSB 17 3782 /* The width in bits of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 register field. */ 3783 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_WIDTH 18 3784 /* The mask used to set the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 register field value. */ 3785 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_SET_MSK 0x0003ffff 3786 /* The mask used to clear the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 register field value. */ 3787 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_CLR_MSK 0xfffc0000 3788 /* The reset value of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 register field is UNKNOWN. */ 3789 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_RESET 0x0 3790 /* Extracts the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 field value from a register. */ 3791 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_GET(value) (((value) & 0x0003ffff) >> 0) 3792 /* Produces a ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32 register field value suitable for setting the register. */ 3793 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_STATICWEIGHT_49_32_SET(value) (((value) << 0) & 0x0003ffff) 3794 3795 /* 3796 * Field : Port Sum of Weights[13:0] - sumofweights_13_0 3797 * 3798 * Set the sum of static weights for particular user priority. This register is 3799 * used as part of the deficit round robin implementation. It should be set to the 3800 * sum of the weights for the ports 3801 * 3802 * Field Access Macros: 3803 * 3804 */ 3805 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 register field. */ 3806 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_LSB 18 3807 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 register field. */ 3808 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_MSB 31 3809 /* The width in bits of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 register field. */ 3810 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_WIDTH 14 3811 /* The mask used to set the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 register field value. */ 3812 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_SET_MSK 0xfffc0000 3813 /* The mask used to clear the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 register field value. */ 3814 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_CLR_MSK 0x0003ffff 3815 /* The reset value of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 register field is UNKNOWN. */ 3816 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_RESET 0x0 3817 /* Extracts the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 field value from a register. */ 3818 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_GET(value) (((value) & 0xfffc0000) >> 18) 3819 /* Produces a ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0 register field value suitable for setting the register. */ 3820 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_SUMOFWEIGHTS_13_0_SET(value) (((value) << 18) & 0xfffc0000) 3821 3822 #ifndef __ASSEMBLY__ 3823 /* 3824 * WARNING: The C register and register group struct declarations are provided for 3825 * convenience and illustrative purposes. They should, however, be used with 3826 * caution as the C language standard provides no guarantees about the alignment or 3827 * atomicity of device memory accesses. The recommended practice for writing 3828 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3829 * alt_write_word() functions. 3830 * 3831 * The struct declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_1_4. 3832 */ 3833 struct ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_s 3834 { 3835 uint32_t staticweight_49_32 : 18; /* Port Static Weights[49:32] */ 3836 uint32_t sumofweights_13_0 : 14; /* Port Sum of Weights[13:0] */ 3837 }; 3838 3839 /* The typedef declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_1_4. */ 3840 typedef volatile struct ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_s ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_t; 3841 #endif /* __ASSEMBLY__ */ 3842 3843 /* The byte offset of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4 register from the beginning of the component. */ 3844 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_OFST 0x4 3845 /* The address of the ALT_SDR_CTL_MPWT_MPWEIGHT_1_4 register. */ 3846 #define ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_OFST)) 3847 3848 /* 3849 * Register : Port Sum of Weight Register[3/4] - mpweight_2_4 3850 * 3851 * This register is used to configure the DRAM burst operation scheduling. 3852 * 3853 * Register Layout 3854 * 3855 * Bits | Access | Reset | Description 3856 * :-------|:-------|:--------|:--------------------------- 3857 * [31:0] | RW | Unknown | Port Sum of Weights[45:14] 3858 * 3859 */ 3860 /* 3861 * Field : Port Sum of Weights[45:14] - sumofweights_45_14 3862 * 3863 * Set the sum of static weights for particular user priority. This register is 3864 * used as part of the deficit round robin implementation. It should be set to the 3865 * sum of the weights for the ports 3866 * 3867 * Field Access Macros: 3868 * 3869 */ 3870 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 register field. */ 3871 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_LSB 0 3872 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 register field. */ 3873 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_MSB 31 3874 /* The width in bits of the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 register field. */ 3875 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_WIDTH 32 3876 /* The mask used to set the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 register field value. */ 3877 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_SET_MSK 0xffffffff 3878 /* The mask used to clear the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 register field value. */ 3879 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_CLR_MSK 0x00000000 3880 /* The reset value of the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 register field is UNKNOWN. */ 3881 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_RESET 0x0 3882 /* Extracts the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 field value from a register. */ 3883 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_GET(value) (((value) & 0xffffffff) >> 0) 3884 /* Produces a ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14 register field value suitable for setting the register. */ 3885 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_SUMOFWEIGHTS_45_14_SET(value) (((value) << 0) & 0xffffffff) 3886 3887 #ifndef __ASSEMBLY__ 3888 /* 3889 * WARNING: The C register and register group struct declarations are provided for 3890 * convenience and illustrative purposes. They should, however, be used with 3891 * caution as the C language standard provides no guarantees about the alignment or 3892 * atomicity of device memory accesses. The recommended practice for writing 3893 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3894 * alt_write_word() functions. 3895 * 3896 * The struct declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_2_4. 3897 */ 3898 struct ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_s 3899 { 3900 uint32_t sumofweights_45_14 : 32; /* Port Sum of Weights[45:14] */ 3901 }; 3902 3903 /* The typedef declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_2_4. */ 3904 typedef volatile struct ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_s ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_t; 3905 #endif /* __ASSEMBLY__ */ 3906 3907 /* The byte offset of the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4 register from the beginning of the component. */ 3908 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_OFST 0x8 3909 /* The address of the ALT_SDR_CTL_MPWT_MPWEIGHT_2_4 register. */ 3910 #define ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_OFST)) 3911 3912 /* 3913 * Register : Port Sum of Weight Register[4/4] - mpweight_3_4 3914 * 3915 * This register is used to configure the DRAM burst operation scheduling. 3916 * 3917 * Register Layout 3918 * 3919 * Bits | Access | Reset | Description 3920 * :--------|:-------|:--------|:--------------------------- 3921 * [17:0] | RW | Unknown | Port Sum of Weights[63:46] 3922 * [31:18] | ??? | 0x0 | *UNDEFINED* 3923 * 3924 */ 3925 /* 3926 * Field : Port Sum of Weights[63:46] - sumofweights_63_46 3927 * 3928 * Set the sum of static weights for particular user priority. This register is 3929 * used as part of the deficit round robin implementation. It should be set to the 3930 * sum of the weights for the ports 3931 * 3932 * Field Access Macros: 3933 * 3934 */ 3935 /* The Least Significant Bit (LSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 register field. */ 3936 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_LSB 0 3937 /* The Most Significant Bit (MSB) position of the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 register field. */ 3938 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_MSB 17 3939 /* The width in bits of the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 register field. */ 3940 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_WIDTH 18 3941 /* The mask used to set the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 register field value. */ 3942 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_SET_MSK 0x0003ffff 3943 /* The mask used to clear the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 register field value. */ 3944 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_CLR_MSK 0xfffc0000 3945 /* The reset value of the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 register field is UNKNOWN. */ 3946 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_RESET 0x0 3947 /* Extracts the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 field value from a register. */ 3948 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_GET(value) (((value) & 0x0003ffff) >> 0) 3949 /* Produces a ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46 register field value suitable for setting the register. */ 3950 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_SUMOFWEIGHTS_63_46_SET(value) (((value) << 0) & 0x0003ffff) 3951 3952 #ifndef __ASSEMBLY__ 3953 /* 3954 * WARNING: The C register and register group struct declarations are provided for 3955 * convenience and illustrative purposes. They should, however, be used with 3956 * caution as the C language standard provides no guarantees about the alignment or 3957 * atomicity of device memory accesses. The recommended practice for writing 3958 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3959 * alt_write_word() functions. 3960 * 3961 * The struct declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_3_4. 3962 */ 3963 struct ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_s 3964 { 3965 uint32_t sumofweights_63_46 : 18; /* Port Sum of Weights[63:46] */ 3966 uint32_t : 14; /* *UNDEFINED* */ 3967 }; 3968 3969 /* The typedef declaration for register ALT_SDR_CTL_MPWT_MPWEIGHT_3_4. */ 3970 typedef volatile struct ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_s ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_t; 3971 #endif /* __ASSEMBLY__ */ 3972 3973 /* The byte offset of the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4 register from the beginning of the component. */ 3974 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_OFST 0xc 3975 /* The address of the ALT_SDR_CTL_MPWT_MPWEIGHT_3_4 register. */ 3976 #define ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_ADDR(base) ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_OFST)) 3977 3978 #ifndef __ASSEMBLY__ 3979 /* 3980 * WARNING: The C register and register group struct declarations are provided for 3981 * convenience and illustrative purposes. They should, however, be used with 3982 * caution as the C language standard provides no guarantees about the alignment or 3983 * atomicity of device memory accesses. The recommended practice for writing 3984 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 3985 * alt_write_word() functions. 3986 * 3987 * The struct declaration for register group ALT_SDR_CTL_MPWT. 3988 */ 3989 struct ALT_SDR_CTL_MPWT_s 3990 { 3991 volatile ALT_SDR_CTL_MPWT_MPWEIGHT_0_4_t mpweight_0_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_0_4 */ 3992 volatile ALT_SDR_CTL_MPWT_MPWEIGHT_1_4_t mpweight_1_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_1_4 */ 3993 volatile ALT_SDR_CTL_MPWT_MPWEIGHT_2_4_t mpweight_2_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_2_4 */ 3994 volatile ALT_SDR_CTL_MPWT_MPWEIGHT_3_4_t mpweight_3_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_3_4 */ 3995 }; 3996 3997 /* The typedef declaration for register group ALT_SDR_CTL_MPWT. */ 3998 typedef volatile struct ALT_SDR_CTL_MPWT_s ALT_SDR_CTL_MPWT_t; 3999 /* The struct declaration for the raw register contents of register group ALT_SDR_CTL_MPWT. */ 4000 struct ALT_SDR_CTL_MPWT_raw_s 4001 { 4002 volatile uint32_t mpweight_0_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_0_4 */ 4003 volatile uint32_t mpweight_1_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_1_4 */ 4004 volatile uint32_t mpweight_2_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_2_4 */ 4005 volatile uint32_t mpweight_3_4; /* ALT_SDR_CTL_MPWT_MPWEIGHT_3_4 */ 4006 }; 4007 4008 /* The typedef declaration for the raw register contents of register group ALT_SDR_CTL_MPWT. */ 4009 typedef volatile struct ALT_SDR_CTL_MPWT_raw_s ALT_SDR_CTL_MPWT_raw_t; 4010 #endif /* __ASSEMBLY__ */ 4011 4012 4013 #ifndef __ASSEMBLY__ 4014 /* 4015 * WARNING: The C register and register group struct declarations are provided for 4016 * convenience and illustrative purposes. They should, however, be used with 4017 * caution as the C language standard provides no guarantees about the alignment or 4018 * atomicity of device memory accesses. The recommended practice for writing 4019 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 4020 * alt_write_word() functions. 4021 * 4022 * The struct declaration for register group ALT_SDR_CTL. 4023 */ 4024 struct ALT_SDR_CTL_s 4025 { 4026 volatile ALT_SDR_CTL_CTLCFG_t ctrlcfg; /* ALT_SDR_CTL_CTLCFG */ 4027 volatile ALT_SDR_CTL_DRAMTIMING1_t dramtiming1; /* ALT_SDR_CTL_DRAMTIMING1 */ 4028 volatile ALT_SDR_CTL_DRAMTIMING2_t dramtiming2; /* ALT_SDR_CTL_DRAMTIMING2 */ 4029 volatile ALT_SDR_CTL_DRAMTIMING3_t dramtiming3; /* ALT_SDR_CTL_DRAMTIMING3 */ 4030 volatile ALT_SDR_CTL_DRAMTIMING4_t dramtiming4; /* ALT_SDR_CTL_DRAMTIMING4 */ 4031 volatile ALT_SDR_CTL_LOWPWRTIMING_t lowpwrtiming; /* ALT_SDR_CTL_LOWPWRTIMING */ 4032 volatile ALT_SDR_CTL_DRAMODT_t dramodt; /* ALT_SDR_CTL_DRAMODT */ 4033 volatile uint32_t _pad_0x1c_0x2b[4]; /* *UNDEFINED* */ 4034 volatile ALT_SDR_CTL_DRAMADDRW_t dramaddrw; /* ALT_SDR_CTL_DRAMADDRW */ 4035 volatile ALT_SDR_CTL_DRAMIFWIDTH_t dramifwidth; /* ALT_SDR_CTL_DRAMIFWIDTH */ 4036 volatile ALT_SDR_CTL_DRAMDEVWIDTH_t dramdevwidth; /* ALT_SDR_CTL_DRAMDEVWIDTH */ 4037 volatile ALT_SDR_CTL_DRAMSTS_t dramsts; /* ALT_SDR_CTL_DRAMSTS */ 4038 volatile ALT_SDR_CTL_DRAMINTR_t dramintr; /* ALT_SDR_CTL_DRAMINTR */ 4039 volatile ALT_SDR_CTL_SBECOUNT_t sbecount; /* ALT_SDR_CTL_SBECOUNT */ 4040 volatile ALT_SDR_CTL_DBECOUNT_t dbecount; /* ALT_SDR_CTL_DBECOUNT */ 4041 volatile ALT_SDR_CTL_ERRADDR_t erraddr; /* ALT_SDR_CTL_ERRADDR */ 4042 volatile ALT_SDR_CTL_DROPCOUNT_t dropcount; /* ALT_SDR_CTL_DROPCOUNT */ 4043 volatile ALT_SDR_CTL_DROPADDR_t dropaddr; /* ALT_SDR_CTL_DROPADDR */ 4044 volatile ALT_SDR_CTL_LOWPWREQ_t lowpwreq; /* ALT_SDR_CTL_LOWPWREQ */ 4045 volatile ALT_SDR_CTL_LOWPWRACK_t lowpwrack; /* ALT_SDR_CTL_LOWPWRACK */ 4046 volatile ALT_SDR_CTL_STATICCFG_t staticcfg; /* ALT_SDR_CTL_STATICCFG */ 4047 volatile ALT_SDR_CTL_CTLWIDTH_t ctrlwidth; /* ALT_SDR_CTL_CTLWIDTH */ 4048 volatile uint32_t _pad_0x64_0x7b[6]; /* *UNDEFINED* */ 4049 volatile ALT_SDR_CTL_PORTCFG_t portcfg; /* ALT_SDR_CTL_PORTCFG */ 4050 volatile ALT_SDR_CTL_FPGAPORTRST_t fpgaportrst; /* ALT_SDR_CTL_FPGAPORTRST */ 4051 volatile uint32_t _pad_0x84_0x8b[2]; /* *UNDEFINED* */ 4052 volatile ALT_SDR_CTL_PROTPORTDEFAULT_t protportdefault; /* ALT_SDR_CTL_PROTPORTDEFAULT */ 4053 volatile ALT_SDR_CTL_PROTRULEADDR_t protruleaddr; /* ALT_SDR_CTL_PROTRULEADDR */ 4054 volatile ALT_SDR_CTL_PROTRULEID_t protruleid; /* ALT_SDR_CTL_PROTRULEID */ 4055 volatile ALT_SDR_CTL_PROTRULEDATA_t protruledata; /* ALT_SDR_CTL_PROTRULEDATA */ 4056 volatile ALT_SDR_CTL_PROTRULERDWR_t protrulerdwr; /* ALT_SDR_CTL_PROTRULERDWR */ 4057 volatile ALT_SDR_CTL_QOSLOWPRI_t qoslowpri; /* ALT_SDR_CTL_QOSLOWPRI */ 4058 volatile ALT_SDR_CTL_QOSHIGHPRI_t qoshighpri; /* ALT_SDR_CTL_QOSHIGHPRI */ 4059 volatile ALT_SDR_CTL_QOSPRIORITYEN_t qospriorityen; /* ALT_SDR_CTL_QOSPRIORITYEN */ 4060 volatile ALT_SDR_CTL_MPPRIORITY_t mppriority; /* ALT_SDR_CTL_MPPRIORITY */ 4061 volatile ALT_SDR_CTL_MPWT_t ctrlgrp_mpweight; /* ALT_SDR_CTL_MPWT */ 4062 volatile uint32_t _pad_0xc0_0xdf[8]; /* *UNDEFINED* */ 4063 volatile ALT_SDR_CTL_REMAPPRIORITY_t remappriority; /* ALT_SDR_CTL_REMAPPRIORITY */ 4064 volatile uint32_t _pad_0xe4_0x1000[967]; /* *UNDEFINED* */ 4065 }; 4066 4067 /* The typedef declaration for register group ALT_SDR_CTL. */ 4068 typedef volatile struct ALT_SDR_CTL_s ALT_SDR_CTL_t; 4069 /* The struct declaration for the raw register contents of register group ALT_SDR_CTL. */ 4070 struct ALT_SDR_CTL_raw_s 4071 { 4072 volatile uint32_t ctrlcfg; /* ALT_SDR_CTL_CTLCFG */ 4073 volatile uint32_t dramtiming1; /* ALT_SDR_CTL_DRAMTIMING1 */ 4074 volatile uint32_t dramtiming2; /* ALT_SDR_CTL_DRAMTIMING2 */ 4075 volatile uint32_t dramtiming3; /* ALT_SDR_CTL_DRAMTIMING3 */ 4076 volatile uint32_t dramtiming4; /* ALT_SDR_CTL_DRAMTIMING4 */ 4077 volatile uint32_t lowpwrtiming; /* ALT_SDR_CTL_LOWPWRTIMING */ 4078 volatile uint32_t dramodt; /* ALT_SDR_CTL_DRAMODT */ 4079 volatile uint32_t _pad_0x1c_0x2b[4]; /* *UNDEFINED* */ 4080 volatile uint32_t dramaddrw; /* ALT_SDR_CTL_DRAMADDRW */ 4081 volatile uint32_t dramifwidth; /* ALT_SDR_CTL_DRAMIFWIDTH */ 4082 volatile uint32_t dramdevwidth; /* ALT_SDR_CTL_DRAMDEVWIDTH */ 4083 volatile uint32_t dramsts; /* ALT_SDR_CTL_DRAMSTS */ 4084 volatile uint32_t dramintr; /* ALT_SDR_CTL_DRAMINTR */ 4085 volatile uint32_t sbecount; /* ALT_SDR_CTL_SBECOUNT */ 4086 volatile uint32_t dbecount; /* ALT_SDR_CTL_DBECOUNT */ 4087 volatile uint32_t erraddr; /* ALT_SDR_CTL_ERRADDR */ 4088 volatile uint32_t dropcount; /* ALT_SDR_CTL_DROPCOUNT */ 4089 volatile uint32_t dropaddr; /* ALT_SDR_CTL_DROPADDR */ 4090 volatile uint32_t lowpwreq; /* ALT_SDR_CTL_LOWPWREQ */ 4091 volatile uint32_t lowpwrack; /* ALT_SDR_CTL_LOWPWRACK */ 4092 volatile uint32_t staticcfg; /* ALT_SDR_CTL_STATICCFG */ 4093 volatile uint32_t ctrlwidth; /* ALT_SDR_CTL_CTLWIDTH */ 4094 volatile uint32_t _pad_0x64_0x7b[6]; /* *UNDEFINED* */ 4095 volatile uint32_t portcfg; /* ALT_SDR_CTL_PORTCFG */ 4096 volatile uint32_t fpgaportrst; /* ALT_SDR_CTL_FPGAPORTRST */ 4097 volatile uint32_t _pad_0x84_0x8b[2]; /* *UNDEFINED* */ 4098 volatile uint32_t protportdefault; /* ALT_SDR_CTL_PROTPORTDEFAULT */ 4099 volatile uint32_t protruleaddr; /* ALT_SDR_CTL_PROTRULEADDR */ 4100 volatile uint32_t protruleid; /* ALT_SDR_CTL_PROTRULEID */ 4101 volatile uint32_t protruledata; /* ALT_SDR_CTL_PROTRULEDATA */ 4102 volatile uint32_t protrulerdwr; /* ALT_SDR_CTL_PROTRULERDWR */ 4103 volatile uint32_t qoslowpri; /* ALT_SDR_CTL_QOSLOWPRI */ 4104 volatile uint32_t qoshighpri; /* ALT_SDR_CTL_QOSHIGHPRI */ 4105 volatile uint32_t qospriorityen; /* ALT_SDR_CTL_QOSPRIORITYEN */ 4106 volatile uint32_t mppriority; /* ALT_SDR_CTL_MPPRIORITY */ 4107 volatile ALT_SDR_CTL_MPWT_raw_t ctrlgrp_mpweight; /* ALT_SDR_CTL_MPWT */ 4108 volatile uint32_t _pad_0xc0_0xdf[8]; /* *UNDEFINED* */ 4109 volatile uint32_t remappriority; /* ALT_SDR_CTL_REMAPPRIORITY */ 4110 volatile uint32_t _pad_0xe4_0x1000[967]; /* *UNDEFINED* */ 4111 }; 4112 4113 /* The typedef declaration for the raw register contents of register group ALT_SDR_CTL. */ 4114 typedef volatile struct ALT_SDR_CTL_raw_s ALT_SDR_CTL_raw_t; 4115 #endif /* __ASSEMBLY__ */ 4116 4117 4118 #ifndef __ASSEMBLY__ 4119 /* 4120 * WARNING: The C register and register group struct declarations are provided for 4121 * convenience and illustrative purposes. They should, however, be used with 4122 * caution as the C language standard provides no guarantees about the alignment or 4123 * atomicity of device memory accesses. The recommended practice for writing 4124 * hardware drivers is to use the SoCAL access macros and alt_read_word() and 4125 * alt_write_word() functions. 4126 * 4127 * The struct declaration for register group ALT_SDR. 4128 */ 4129 struct ALT_SDR_s 4130 { 4131 volatile uint32_t _pad_0x0_0x4fff[5120]; /* *UNDEFINED* */ 4132 volatile ALT_SDR_CTL_t ctrlgrp; /* ALT_SDR_CTL */ 4133 volatile uint32_t _pad_0x6000_0x20000[26624]; /* *UNDEFINED* */ 4134 }; 4135 4136 /* The typedef declaration for register group ALT_SDR. */ 4137 typedef volatile struct ALT_SDR_s ALT_SDR_t; 4138 /* The struct declaration for the raw register contents of register group ALT_SDR. */ 4139 struct ALT_SDR_raw_s 4140 { 4141 volatile uint32_t _pad_0x0_0x4fff[5120]; /* *UNDEFINED* */ 4142 volatile ALT_SDR_CTL_raw_t ctrlgrp; /* ALT_SDR_CTL */ 4143 volatile uint32_t _pad_0x6000_0x20000[26624]; /* *UNDEFINED* */ 4144 }; 4145 4146 /* The typedef declaration for the raw register contents of register group ALT_SDR. */ 4147 typedef volatile struct ALT_SDR_raw_s ALT_SDR_raw_t; 4148 #endif /* __ASSEMBLY__ */ 4149 4150 4151 #ifdef __cplusplus 4152 } 4153 #endif /* __cplusplus */ 4154 #endif /* __ALTERA_ALT_SDR_H__ */ 4155
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |