linux/arch/mips/include/asm/octeon/cvmx-l2d-defs.h
<<
>>
Prefs
   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
  56union 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
  76union 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
  95union 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
 114union 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
 133union 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
 157union 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
 210union 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
 230union 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
 250union 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
 269union 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
 288union 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
 307union 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