1 /***********************license start*************** 2 * Author: Cavium Networks 3 * 4 * Contact: support@caviumnetworks.com 5 * This file is part of the OCTEON SDK 6 * 7 * Copyright (c) 2003-2008 Cavium Networks 8 * 9 * This file is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License, Version 2, as 11 * published by the Free Software Foundation. 12 * 13 * This file is distributed in the hope that it will be useful, but 14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16 * NONINFRINGEMENT. See the GNU General Public License for more 17 * details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this file; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22 * or visit http://www.gnu.org/licenses/. 23 * 24 * This file may also be available under a different license from Cavium. 25 * Contact Cavium Networks for more information 26 ***********************license end**************************************/ 27 28 #ifndef __CVMX_L2D_DEFS_H__ 29 #define __CVMX_L2D_DEFS_H__ 30 31 #define CVMX_L2D_BST0 \ 32 CVMX_ADD_IO_SEG(0x0001180080000780ull) 33 #define CVMX_L2D_BST1 \ 34 CVMX_ADD_IO_SEG(0x0001180080000788ull) 35 #define CVMX_L2D_BST2 \ 36 CVMX_ADD_IO_SEG(0x0001180080000790ull) 37 #define CVMX_L2D_BST3 \ 38 CVMX_ADD_IO_SEG(0x0001180080000798ull) 39 #define CVMX_L2D_ERR \ 40 CVMX_ADD_IO_SEG(0x0001180080000010ull) 41 #define CVMX_L2D_FADR \ 42 CVMX_ADD_IO_SEG(0x0001180080000018ull) 43 #define CVMX_L2D_FSYN0 \ 44 CVMX_ADD_IO_SEG(0x0001180080000020ull) 45 #define CVMX_L2D_FSYN1 \ 46 CVMX_ADD_IO_SEG(0x0001180080000028ull) 47 #define CVMX_L2D_FUS0 \ 48 CVMX_ADD_IO_SEG(0x00011800800007A0ull) 49 #define CVMX_L2D_FUS1 \ 50 CVMX_ADD_IO_SEG(0x00011800800007A8ull) 51 #define CVMX_L2D_FUS2 \ 52 CVMX_ADD_IO_SEG(0x00011800800007B0ull) 53 #define CVMX_L2D_FUS3 \ 54 CVMX_ADD_IO_SEG(0x00011800800007B8ull) 55 56 union cvmx_l2d_bst0 { 57 uint64_t u64; 58 struct cvmx_l2d_bst0_s { 59 uint64_t reserved_35_63:29; 60 uint64_t ftl:1; 61 uint64_t q0stat:34; 62 } s; 63 struct cvmx_l2d_bst0_s cn30xx; 64 struct cvmx_l2d_bst0_s cn31xx; 65 struct cvmx_l2d_bst0_s cn38xx; 66 struct cvmx_l2d_bst0_s cn38xxp2; 67 struct cvmx_l2d_bst0_s cn50xx; 68 struct cvmx_l2d_bst0_s cn52xx; 69 struct cvmx_l2d_bst0_s cn52xxp1; 70 struct cvmx_l2d_bst0_s cn56xx; 71 struct cvmx_l2d_bst0_s cn56xxp1; 72 struct cvmx_l2d_bst0_s cn58xx; 73 struct cvmx_l2d_bst0_s cn58xxp1; 74 }; 75 76 union cvmx_l2d_bst1 { 77 uint64_t u64; 78 struct cvmx_l2d_bst1_s { 79 uint64_t reserved_34_63:30; 80 uint64_t q1stat:34; 81 } s; 82 struct cvmx_l2d_bst1_s cn30xx; 83 struct cvmx_l2d_bst1_s cn31xx; 84 struct cvmx_l2d_bst1_s cn38xx; 85 struct cvmx_l2d_bst1_s cn38xxp2; 86 struct cvmx_l2d_bst1_s cn50xx; 87 struct cvmx_l2d_bst1_s cn52xx; 88 struct cvmx_l2d_bst1_s cn52xxp1; 89 struct cvmx_l2d_bst1_s cn56xx; 90 struct cvmx_l2d_bst1_s cn56xxp1; 91 struct cvmx_l2d_bst1_s cn58xx; 92 struct cvmx_l2d_bst1_s cn58xxp1; 93 }; 94 95 union cvmx_l2d_bst2 { 96 uint64_t u64; 97 struct cvmx_l2d_bst2_s { 98 uint64_t reserved_34_63:30; 99 uint64_t q2stat:34; 100 } s; 101 struct cvmx_l2d_bst2_s cn30xx; 102 struct cvmx_l2d_bst2_s cn31xx; 103 struct cvmx_l2d_bst2_s cn38xx; 104 struct cvmx_l2d_bst2_s cn38xxp2; 105 struct cvmx_l2d_bst2_s cn50xx; 106 struct cvmx_l2d_bst2_s cn52xx; 107 struct cvmx_l2d_bst2_s cn52xxp1; 108 struct cvmx_l2d_bst2_s cn56xx; 109 struct cvmx_l2d_bst2_s cn56xxp1; 110 struct cvmx_l2d_bst2_s cn58xx; 111 struct cvmx_l2d_bst2_s cn58xxp1; 112 }; 113 114 union cvmx_l2d_bst3 { 115 uint64_t u64; 116 struct cvmx_l2d_bst3_s { 117 uint64_t reserved_34_63:30; 118 uint64_t q3stat:34; 119 } s; 120 struct cvmx_l2d_bst3_s cn30xx; 121 struct cvmx_l2d_bst3_s cn31xx; 122 struct cvmx_l2d_bst3_s cn38xx; 123 struct cvmx_l2d_bst3_s cn38xxp2; 124 struct cvmx_l2d_bst3_s cn50xx; 125 struct cvmx_l2d_bst3_s cn52xx; 126 struct cvmx_l2d_bst3_s cn52xxp1; 127 struct cvmx_l2d_bst3_s cn56xx; 128 struct cvmx_l2d_bst3_s cn56xxp1; 129 struct cvmx_l2d_bst3_s cn58xx; 130 struct cvmx_l2d_bst3_s cn58xxp1; 131 }; 132 133 union cvmx_l2d_err { 134 uint64_t u64; 135 struct cvmx_l2d_err_s { 136 uint64_t reserved_6_63:58; 137 uint64_t bmhclsel:1; 138 uint64_t ded_err:1; 139 uint64_t sec_err:1; 140 uint64_t ded_intena:1; 141 uint64_t sec_intena:1; 142 uint64_t ecc_ena:1; 143 } s; 144 struct cvmx_l2d_err_s cn30xx; 145 struct cvmx_l2d_err_s cn31xx; 146 struct cvmx_l2d_err_s cn38xx; 147 struct cvmx_l2d_err_s cn38xxp2; 148 struct cvmx_l2d_err_s cn50xx; 149 struct cvmx_l2d_err_s cn52xx; 150 struct cvmx_l2d_err_s cn52xxp1; 151 struct cvmx_l2d_err_s cn56xx; 152 struct cvmx_l2d_err_s cn56xxp1; 153 struct cvmx_l2d_err_s cn58xx; 154 struct cvmx_l2d_err_s cn58xxp1; 155 }; 156 157 union cvmx_l2d_fadr { 158 uint64_t u64; 159 struct cvmx_l2d_fadr_s { 160 uint64_t reserved_19_63:45; 161 uint64_t fadru:1; 162 uint64_t fowmsk:4; 163 uint64_t fset:3; 164 uint64_t fadr:11; 165 } s; 166 struct cvmx_l2d_fadr_cn30xx { 167 uint64_t reserved_18_63:46; 168 uint64_t fowmsk:4; 169 uint64_t reserved_13_13:1; 170 uint64_t fset:2; 171 uint64_t reserved_9_10:2; 172 uint64_t fadr:9; 173 } cn30xx; 174 struct cvmx_l2d_fadr_cn31xx { 175 uint64_t reserved_18_63:46; 176 uint64_t fowmsk:4; 177 uint64_t reserved_13_13:1; 178 uint64_t fset:2; 179 uint64_t reserved_10_10:1; 180 uint64_t fadr:10; 181 } cn31xx; 182 struct cvmx_l2d_fadr_cn38xx { 183 uint64_t reserved_18_63:46; 184 uint64_t fowmsk:4; 185 uint64_t fset:3; 186 uint64_t fadr:11; 187 } cn38xx; 188 struct cvmx_l2d_fadr_cn38xx cn38xxp2; 189 struct cvmx_l2d_fadr_cn50xx { 190 uint64_t reserved_18_63:46; 191 uint64_t fowmsk:4; 192 uint64_t fset:3; 193 uint64_t reserved_8_10:3; 194 uint64_t fadr:8; 195 } cn50xx; 196 struct cvmx_l2d_fadr_cn52xx { 197 uint64_t reserved_18_63:46; 198 uint64_t fowmsk:4; 199 uint64_t fset:3; 200 uint64_t reserved_10_10:1; 201 uint64_t fadr:10; 202 } cn52xx; 203 struct cvmx_l2d_fadr_cn52xx cn52xxp1; 204 struct cvmx_l2d_fadr_s cn56xx; 205 struct cvmx_l2d_fadr_s cn56xxp1; 206 struct cvmx_l2d_fadr_s cn58xx; 207 struct cvmx_l2d_fadr_s cn58xxp1; 208 }; 209 210 union cvmx_l2d_fsyn0 { 211 uint64_t u64; 212 struct cvmx_l2d_fsyn0_s { 213 uint64_t reserved_20_63:44; 214 uint64_t fsyn_ow1:10; 215 uint64_t fsyn_ow0:10; 216 } s; 217 struct cvmx_l2d_fsyn0_s cn30xx; 218 struct cvmx_l2d_fsyn0_s cn31xx; 219 struct cvmx_l2d_fsyn0_s cn38xx; 220 struct cvmx_l2d_fsyn0_s cn38xxp2; 221 struct cvmx_l2d_fsyn0_s cn50xx; 222 struct cvmx_l2d_fsyn0_s cn52xx; 223 struct cvmx_l2d_fsyn0_s cn52xxp1; 224 struct cvmx_l2d_fsyn0_s cn56xx; 225 struct cvmx_l2d_fsyn0_s cn56xxp1; 226 struct cvmx_l2d_fsyn0_s cn58xx; 227 struct cvmx_l2d_fsyn0_s cn58xxp1; 228 }; 229 230 union cvmx_l2d_fsyn1 { 231 uint64_t u64; 232 struct cvmx_l2d_fsyn1_s { 233 uint64_t reserved_20_63:44; 234 uint64_t fsyn_ow3:10; 235 uint64_t fsyn_ow2:10; 236 } s; 237 struct cvmx_l2d_fsyn1_s cn30xx; 238 struct cvmx_l2d_fsyn1_s cn31xx; 239 struct cvmx_l2d_fsyn1_s cn38xx; 240 struct cvmx_l2d_fsyn1_s cn38xxp2; 241 struct cvmx_l2d_fsyn1_s cn50xx; 242 struct cvmx_l2d_fsyn1_s cn52xx; 243 struct cvmx_l2d_fsyn1_s cn52xxp1; 244 struct cvmx_l2d_fsyn1_s cn56xx; 245 struct cvmx_l2d_fsyn1_s cn56xxp1; 246 struct cvmx_l2d_fsyn1_s cn58xx; 247 struct cvmx_l2d_fsyn1_s cn58xxp1; 248 }; 249 250 union cvmx_l2d_fus0 { 251 uint64_t u64; 252 struct cvmx_l2d_fus0_s { 253 uint64_t reserved_34_63:30; 254 uint64_t q0fus:34; 255 } s; 256 struct cvmx_l2d_fus0_s cn30xx; 257 struct cvmx_l2d_fus0_s cn31xx; 258 struct cvmx_l2d_fus0_s cn38xx; 259 struct cvmx_l2d_fus0_s cn38xxp2; 260 struct cvmx_l2d_fus0_s cn50xx; 261 struct cvmx_l2d_fus0_s cn52xx; 262 struct cvmx_l2d_fus0_s cn52xxp1; 263 struct cvmx_l2d_fus0_s cn56xx; 264 struct cvmx_l2d_fus0_s cn56xxp1; 265 struct cvmx_l2d_fus0_s cn58xx; 266 struct cvmx_l2d_fus0_s cn58xxp1; 267 }; 268 269 union cvmx_l2d_fus1 { 270 uint64_t u64; 271 struct cvmx_l2d_fus1_s { 272 uint64_t reserved_34_63:30; 273 uint64_t q1fus:34; 274 } s; 275 struct cvmx_l2d_fus1_s cn30xx; 276 struct cvmx_l2d_fus1_s cn31xx; 277 struct cvmx_l2d_fus1_s cn38xx; 278 struct cvmx_l2d_fus1_s cn38xxp2; 279 struct cvmx_l2d_fus1_s cn50xx; 280 struct cvmx_l2d_fus1_s cn52xx; 281 struct cvmx_l2d_fus1_s cn52xxp1; 282 struct cvmx_l2d_fus1_s cn56xx; 283 struct cvmx_l2d_fus1_s cn56xxp1; 284 struct cvmx_l2d_fus1_s cn58xx; 285 struct cvmx_l2d_fus1_s cn58xxp1; 286 }; 287 288 union cvmx_l2d_fus2 { 289 uint64_t u64; 290 struct cvmx_l2d_fus2_s { 291 uint64_t reserved_34_63:30; 292 uint64_t q2fus:34; 293 } s; 294 struct cvmx_l2d_fus2_s cn30xx; 295 struct cvmx_l2d_fus2_s cn31xx; 296 struct cvmx_l2d_fus2_s cn38xx; 297 struct cvmx_l2d_fus2_s cn38xxp2; 298 struct cvmx_l2d_fus2_s cn50xx; 299 struct cvmx_l2d_fus2_s cn52xx; 300 struct cvmx_l2d_fus2_s cn52xxp1; 301 struct cvmx_l2d_fus2_s cn56xx; 302 struct cvmx_l2d_fus2_s cn56xxp1; 303 struct cvmx_l2d_fus2_s cn58xx; 304 struct cvmx_l2d_fus2_s cn58xxp1; 305 }; 306 307 union cvmx_l2d_fus3 { 308 uint64_t u64; 309 struct cvmx_l2d_fus3_s { 310 uint64_t reserved_40_63:24; 311 uint64_t ema_ctl:3; 312 uint64_t reserved_34_36:3; 313 uint64_t q3fus:34; 314 } s; 315 struct cvmx_l2d_fus3_cn30xx { 316 uint64_t reserved_35_63:29; 317 uint64_t crip_64k:1; 318 uint64_t q3fus:34; 319 } cn30xx; 320 struct cvmx_l2d_fus3_cn31xx { 321 uint64_t reserved_35_63:29; 322 uint64_t crip_128k:1; 323 uint64_t q3fus:34; 324 } cn31xx; 325 struct cvmx_l2d_fus3_cn38xx { 326 uint64_t reserved_36_63:28; 327 uint64_t crip_256k:1; 328 uint64_t crip_512k:1; 329 uint64_t q3fus:34; 330 } cn38xx; 331 struct cvmx_l2d_fus3_cn38xx cn38xxp2; 332 struct cvmx_l2d_fus3_cn50xx { 333 uint64_t reserved_40_63:24; 334 uint64_t ema_ctl:3; 335 uint64_t reserved_36_36:1; 336 uint64_t crip_32k:1; 337 uint64_t crip_64k:1; 338 uint64_t q3fus:34; 339 } cn50xx; 340 struct cvmx_l2d_fus3_cn52xx { 341 uint64_t reserved_40_63:24; 342 uint64_t ema_ctl:3; 343 uint64_t reserved_36_36:1; 344 uint64_t crip_128k:1; 345 uint64_t crip_256k:1; 346 uint64_t q3fus:34; 347 } cn52xx; 348 struct cvmx_l2d_fus3_cn52xx cn52xxp1; 349 struct cvmx_l2d_fus3_cn56xx { 350 uint64_t reserved_40_63:24; 351 uint64_t ema_ctl:3; 352 uint64_t reserved_36_36:1; 353 uint64_t crip_512k:1; 354 uint64_t crip_1024k:1; 355 uint64_t q3fus:34; 356 } cn56xx; 357 struct cvmx_l2d_fus3_cn56xx cn56xxp1; 358 struct cvmx_l2d_fus3_cn58xx { 359 uint64_t reserved_39_63:25; 360 uint64_t ema_ctl:2; 361 uint64_t reserved_36_36:1; 362 uint64_t crip_512k:1; 363 uint64_t crip_1024k:1; 364 uint64_t q3fus:34; 365 } cn58xx; 366 struct cvmx_l2d_fus3_cn58xx cn58xxp1; 367 }; 368 369 #endif 370