1 /* 2 * THIS FILE IS AUTOMATICALLY GENERATED 3 * DONT EDIT THIS FILE 4 */ 5 6 /* $OpenBSD: cn30xxpkoreg.h,v 1.1 2011/06/16 11:22:30 syuu Exp $ */ 7 8 /* 9 * Copyright (c) 2007 Internet Initiative Japan, Inc. 10 * All rights reserved. 11 * 12 * Redistribution and use in source and binary forms, with or without 13 * modification, are permitted provided that the following conditions 14 * are met: 15 * 1. Redistributions of source code must retain the above copyright 16 * notice, this list of conditions and the following disclaimer. 17 * 2. Redistributions in binary form must reproduce the above copyright 18 * notice, this list of conditions and the following disclaimer in the 19 * documentation and/or other materials provided with the distribution. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34 /* 35 * Cavium Networks OCTEON CN30XX Hardware Reference Manual 36 * CN30XX-HM-1.0 37 * 8.9 PKO Registers 38 */ 39 40 #ifndef _CN30XXPKOREG_H_ 41 #define _CN30XXPKOREG_H_ 42 43 #define PKO_REG_FLAGS 0x0001180050000000ULL 44 #define PKO_REG_READ_IDX 0x0001180050000008ULL 45 #define PKO_REG_CMD_BUF 0x0001180050000010ULL 46 #define PKO_REG_GMX_PORT_MODE 0x0001180050000018ULL 47 #define PKO_REG_QUEUE_MODE 0x0001180050000048ULL 48 #define PKO_REG_BIST_RESULT 0x0001180050000050ULL 49 #define PKO_REG_ERROR 0x0001180050000058ULL 50 #define PKO_REG_INT_MASK 0x0001180050000090ULL 51 #define PKO_REG_DEBUG0 0x0001180050000098ULL 52 #define PKO_MEM_QUEUE_PTRS 0x0001180050001000ULL 53 #define PKO_MEM_QUEUE_QOS 0x0001180050001008ULL 54 #define PKO_MEM_COUNT0 0x0001180050001080ULL 55 #define PKO_MEM_COUNT1 0x0001180050001088ULL 56 #define PKO_DEBUG0 0x0001180050001100ULL 57 #define PKO_DEBUG1 0x0001180050001108ULL 58 #define PKO_DEBUG2 0x0001180050001110ULL 59 #define PKO_DEBUG3 0x0001180050001118ULL 60 #define PKO_DEBUG4 0x0001180050001120ULL 61 #define PKO_DEBUG5 0x0001180050001128ULL 62 #define PKO_DEBUG6 0x0001180050001130ULL 63 #define PKO_DEBUG7 0x0001180050001138ULL 64 #define PKO_DEBUG8 0x0001180050001140ULL 65 #define PKO_DEBUG9 0x0001180050001148ULL 66 #define PKO_DEBUG10 0x0001180050001150ULL 67 #define PKO_DEBUG11 0x0001180050001158ULL 68 #define PKO_DEBUG12 0x0001180050001160ULL 69 #define PKO_DEBUG13 0x0001180050001168ULL 70 #define PKO_DEBUG14 0x0001180050001170ULL 71 72 #define PKO_BASE 0x0001180050000000ULL 73 #define PKO_SIZE 0x01178ULL 74 75 #define PKO_REG_FLAGS_OFFSET 0x00000ULL 76 #define PKO_REG_READ_IDX_OFFSET 0x00008ULL 77 #define PKO_REG_CMD_BUF_OFFSET 0x00010ULL 78 #define PKO_REG_GMX_PORT_MODE_OFFSET 0x00018ULL 79 #define PKO_REG_QUEUE_MODE_OFFSET 0x00048ULL 80 #define PKO_REG_BIST_RESULT_OFFSET 0x00080ULL 81 #define PKO_REG_ERROR_OFFSET 0x00088ULL 82 #define PKO_REG_INT_MASK_OFFSET 0x00090ULL 83 #define PKO_REG_DEBUG0_OFFSET 0x00098ULL 84 #define PKO_MEM_QUEUE_PTRS_OFFSET 0x01000ULL 85 #define PKO_MEM_QUEUE_QOS_OFFSET 0x01008ULL 86 #define PKO_MEM_COUNT0_OFFSET 0x01080ULL 87 #define PKO_MEM_COUNT1_OFFSET 0x01088ULL 88 #define PKO_MEM_DEBUG0_OFFSET 0x01100ULL 89 #define PKO_MEM_DEBUG1_OFFSET 0x01108ULL 90 #define PKO_MEM_DEBUG2_OFFSET 0x01110ULL 91 #define PKO_MEM_DEBUG3_OFFSET 0x01118ULL 92 #define PKO_MEM_DEBUG4_OFFSET 0x01120ULL 93 #define PKO_MEM_DEBUG5_OFFSET 0x01128ULL 94 #define PKO_MEM_DEBUG6_OFFSET 0x01130ULL 95 #define PKO_MEM_DEBUG7_OFFSET 0x01138ULL 96 #define PKO_MEM_DEBUG8_OFFSET 0x01140ULL 97 #define PKO_MEM_DEBUG9_OFFSET 0x01148ULL 98 #define PKO_MEM_DEBUG10_OFFSET 0x01150ULL 99 #define PKO_MEM_DEBUG11_OFFSET 0x01158ULL 100 #define PKO_MEM_DEBUG12_OFFSET 0x01160ULL 101 #define PKO_MEM_DEBUG13_OFFSET 0x01168ULL 102 #define PKO_MEM_DEBUG14_OFFSET 0x01170ULL 103 104 /* 105 * PKO_REG_FLAGS 106 */ 107 #define PKO_REG_FLAGS_63_7 0xfffffffffffffff0ULL 108 #define PKO_REG_FLAGS_RESET 0x0000000000000008ULL 109 #define PKO_REG_FLAGS_STORE_BE 0x0000000000000004ULL 110 #define PKO_REG_FLAGS_ENA_DWB 0x0000000000000002ULL 111 #define PKO_REG_FLAGS_ENA_PKO 0x0000000000000001ULL 112 113 /* 114 * PKO_REG_READ_IDX 115 */ 116 #define PKO_REG_READ_IDX_63_16 0xffffffffffff0000ULL 117 #define PKO_REG_READ_IDX_INC 0x000000000000ff00ULL 118 #define PKO_REG_READ_IDX_IDX 0x00000000000000ffULL 119 120 /* 121 * PKO_REG_CMD_BUF 122 */ 123 #define PKO_REG_CMD_BUF_63_23 0xffffffffff800000ULL 124 #define PKO_REG_CMD_BUF_POOL 0x0000000000700000ULL 125 #define PKO_REG_CMD_BUF_19_13 0x00000000000fe000ULL 126 #define PKO_REG_CMD_BUF_SIZE 0x0000000000001fffULL 127 128 /* 129 * PKO_REG_GMX_PORT_MODE 130 */ 131 #define PKO_REG_GMX_PORT_MODE_63_6 0xffffffffffffffc0ULL 132 #define PKO_REG_GMX_PORT_MODE_MODE1 0x0000000000000038ULL 133 #define PKO_REG_GMX_PORT_MODE_MODE0 0x0000000000000007ULL 134 135 /* 136 * PKO_REG_QUEUE_MODE 137 */ 138 #define PKO_REG_QUEUE_MODE_63_6 0xfffffffffffffffcULL 139 #define PKO_REG_QUEUE_MODE_MODE 0x000000000000000eULL 140 141 /* 142 * PKO_REG_BIST_RESULT 143 */ 144 #define PKO_REG_BIST_RESULT_63_27 0xfffffffff8000000ULL 145 #define PKO_REG_BIST_RESULT_PSB2 0x0000000007c00000ULL 146 #define PKO_REG_BIST_RESULT_COUNT 0x0000000000200000ULL 147 #define PKO_REG_BIST_RESULT_RIF 0x0000000000100000ULL 148 #define PKO_REG_BIST_RESULT_WIF 0x0000000000080000ULL 149 #define PKO_REG_BIST_RESULT_NCB 0x0000000000040000ULL 150 #define PKO_REG_BIST_RESULT_OUT 0x0000000000020000ULL 151 #define PKO_REG_BIST_RESULT_CRC 0x0000000000010000ULL 152 #define PKO_REG_BIST_RESULT_CHK 0x0000000000008000ULL 153 #define PKO_REG_BIST_RESULT_QSB 0x0000000000006000ULL 154 #define PKO_REG_BIST_RESULT_QCB 0x0000000000001800ULL 155 #define PKO_REG_BIST_RESULT_PDB 0x0000000000000780ULL 156 #define PKO_REG_BIST_RESULT_PSB 0x000000000000007fULL 157 158 /* 159 * PKO_REG_ERROR 160 */ 161 #define PKO_REG_ERROR_63_2 0xfffffffffffffffcULL 162 #define PKO_REG_ERROR_DOORBELL 0x0000000000000002ULL 163 #define PKO_REG_ERROR_PARITY 0x0000000000000001ULL 164 165 /* 166 * PKO_REG_INT_MASK 167 */ 168 #define PKO_REG_INT_MASK_63_2 0xfffffffffffffffcULL 169 #define PKO_REG_INT_MASK_DOORBELL 0x0000000000000002ULL 170 #define PKO_REG_INT_MASK_PARITY 0x0000000000000001ULL 171 172 /* 173 * PKO_REG_DEBUG0 174 */ 175 #define PKO_REG_DEBUG0_63_17 0xfffffffffffe0000ULL 176 #define PKO_REG_DEBUG0_ASSERTS 0x000000000001ffffULL 177 178 /* 179 * PKO_MEM_QUEUE_PTRS 180 */ 181 #define PKO_MEM_QUEUE_PTRS_S_TAIL 0x8000000000000000ULL 182 #define PKO_MEM_QUEUE_PTRS_STATIC_P 0x4000000000000000ULL 183 #define PKO_MEM_QUEUE_PTRS_STATIC_Q 0x2000000000000000ULL 184 #define PKO_MEM_QUEUE_PTRS_QOS_MASK 0x1fe0000000000000ULL 185 #define PKO_MEM_QUEUE_PTRS_BUF_PTR 0x001ffffffffe0000ULL 186 #define PKO_MEM_QUEUE_PTRS_TAIL 0x0000000000010000ULL 187 #define PKO_MEM_QUEUE_PTRS_IDX 0x000000000000e000ULL 188 #define PKO_MEM_QUEUE_PTRS_PID 0x0000000000001f80ULL 189 #define PKO_MEM_QUEUE_PTRS_QID 0x000000000000007fULL 190 191 /* 192 * PKO_MEM_QUEUE_QOS 193 */ 194 #define PKO_MEM_QUEUE_QOS_63_61 0xe000000000000000ULL 195 #define PKO_MEM_QUEUE_QOS_QOS_MASK 0x1fe0000000000000ULL 196 #define PKO_MEM_QUEUE_QOS_52_13 0x001fffffffffe000ULL 197 #define PKO_MEM_QUEUE_QOS_PID 0x0000000000001f80ULL 198 #define PKO_MEM_QUEUE_QOS_QID 0x000000000000007fULL 199 200 /* 201 * PKO_MEM_COUNT0 202 */ 203 #define PKO_MEM_COUNT0_63_32 0xffffffff00000000ULL 204 #define PKO_MEM_COUNT0_COUNT 0x00000000ffffffffULL 205 206 /* 207 * PKO_MEM_COUNT1 208 */ 209 #define PKO_MEM_COUNT1_63_48 0xffff000000000000ULL 210 #define PKO_MEM_COUNT1_COUNT 0x0000ffffffffffffULL 211 212 /* 213 * PKO_MEM_DEBUG0 214 */ 215 #define PKO_MEM_DEBUG0_FAU 0xfffffff000000000ULL 216 #define PKO_MEM_DEBUG0_CMD 0x0000000fffc00000ULL 217 #define PKO_MEM_DEBUG0_SEGS 0x00000000003f0000ULL 218 #define PKO_MEM_DEBUG0_SIZE 0x000000000000ffffULL 219 220 /* 221 * PKO_MEM_DEBUG1 222 */ 223 #define PKO_MEM_DEBUG1_I 0x8000000000000000ULL 224 #define PKO_MEM_DEBUG1_BACK 0x7800000000000000ULL 225 #define PKO_MEM_DEBUG1_POOL 0x0700000000000000ULL 226 #define PKO_MEM_DEBUG1_SIZE 0x00ffff0000000000ULL 227 #define PKO_MEM_DEBUG1_PTR 0x000000ffffffffffULL 228 229 /* 230 * PKO_MEM_DEBUG2 231 */ 232 #define PKO_MEM_DEBUG2_I 0x8000000000000000ULL 233 #define PKO_MEM_DEBUG2_BACK 0x7800000000000000ULL 234 #define PKO_MEM_DEBUG2_POOL 0x0700000000000000ULL 235 #define PKO_MEM_DEBUG2_SIZE 0x00ffff0000000000ULL 236 #define PKO_MEM_DEBUG2_PTR 0x000000ffffffffffULL 237 238 /* 239 * PKO_MEM_DEBUG3 240 */ 241 #define PKO_MEM_DEBUG3_I 0x8000000000000000ULL 242 #define PKO_MEM_DEBUG3_BACK 0x7800000000000000ULL 243 #define PKO_MEM_DEBUG3_POOL 0x0700000000000000ULL 244 #define PKO_MEM_DEBUG3_SIZE 0x00ffff0000000000ULL 245 #define PKO_MEM_DEBUG3_PTR 0x000000ffffffffffULL 246 247 /* 248 * PKO_MEM_DEBUG4 249 */ 250 #define PKO_MEM_DEBUG4_DATA 0xffffffffffffffffULL 251 252 /* 253 * PKO_MEM_DEBUG5 254 */ 255 #define PKO_MEM_DEBUG5_DWRI_MOD 0x8000000000000000ULL 256 #define PKO_MEM_DEBUG5_DWRI_SOP 0x4000000000000000ULL 257 #define PKO_MEM_DEBUG5_DWRI_LEN 0x2000000000000000ULL 258 #define PKO_MEM_DEBUG5_DWRI_CNT 0x1fff000000000000ULL 259 #define PKO_MEM_DEBUG5_CMND_SIZ 0x0000ffff00000000ULL 260 #define PKO_MEM_DEBUG5_UID 0x0000000080000000ULL 261 #define PKO_MEM_DEBUG5_XFER_WOR 0x0000000040000000ULL 262 #define PKO_MEM_DEBUG5_XFER_DWR 0x0000000020000000ULL 263 #define PKO_MEM_DEBUG5_CBUF_FRE 0x0000000010000000ULL 264 #define PKO_MEM_DEBUG5_27 0x0000000008000000ULL 265 #define PKO_MEM_DEBUG5_CHK_MODE 0x0000000004000000ULL 266 #define PKO_MEM_DEBUG5_ACTIVE 0x0000000002000000ULL 267 #define PKO_MEM_DEBUG5_QOS 0x0000000001c00000ULL 268 #define PKO_MEM_DEBUG5_QCB_RIDX 0x00000000003e0000ULL 269 #define PKO_MEM_DEBUG5_QID_OFF 0x000000000001c000ULL 270 #define PKO_MEM_DEBUG5_QID_BASE 0x0000000000003f80ULL 271 #define PKO_MEM_DEBUG5_WAIT 0x0000000000000040ULL 272 #define PKO_MEM_DEBUG5_MINOR 0x0000000000000030ULL 273 #define PKO_MEM_DEBUG5_MAJOR 0x000000000000000fULL 274 275 /* 276 * PKO_MEM_DEBUG6 277 */ 278 #define PKO_MEM_DEBUG6_63_11 0xfffffffffffff800ULL 279 #define PKO_MEM_DEBUG6_QID_OFFM 0x0000000000000700ULL 280 #define PKO_MEM_DEBUG6_STATIC_P 0x0000000000000080ULL 281 #define PKO_MEM_DEBUG6_WORK_MIN 0x0000000000000070ULL 282 #define PKO_MEM_DEBUG6_DWRI_CHK 0x0000000000000008ULL 283 #define PKO_MEM_DEBUG6_DWRI_UID 0x0000000000000004ULL 284 #define PKO_MEM_DEBUG6_DWRI_MOD 0x0000000000000003ULL 285 286 /* 287 * PKO_MEM_DEBUG7 288 */ 289 #define PKO_MEM_DEBUG7_63_58 0xfc00000000000000ULL 290 #define PKO_MEM_DEBUG7_DWB 0x03fe000000000000ULL 291 #define PKO_MEM_DEBUG7_START 0x0001ffffffff0000ULL 292 #define PKO_MEM_DEBUG7_SIZE 0x000000000000ffffULL 293 294 /* 295 * PKO_MEM_DEBUG8 296 */ 297 #define PKO_MEM_DEBUG8_QOS 0xf800000000000000ULL 298 #define PKO_MEM_DEBUG8_TAIL 0x0400000000000000ULL 299 #define PKO_MEM_DEBUG8_BUF_SIZ 0x03ffe00000000000ULL 300 #define PKO_MEM_DEBUG8_BUF_PTR 0x00001ffffffff000ULL 301 #define PKO_MEM_DEBUG8_QCB_WIDX 0x0000000000000fc0ULL 302 #define PKO_MEM_DEBUG8_QCB_RIDX 0x000000000000003fULL 303 304 /* 305 * PKO_MEM_DEBUG9 306 */ 307 #define PKO_MEM_DEBUG9_63_28 0xfffffffff0000000ULL 308 #define PKO_MEM_DEBUG9_DOORBELL 0x000000000fffff00ULL 309 #define PKO_MEM_DEBUG9_7_5 0x00000000000000e0ULL 310 #define PKO_MEM_DEBUG9_S_TAIL 0x0000000000000010ULL 311 #define PKO_MEM_DEBUG9_STATIC_Q 0x0000000000000008ULL 312 #define PKO_MEM_DEBUG9_QOOS 0x0000000000000007ULL 313 314 /* 315 * PKO_MEM_DEBUG10 316 */ 317 #define PKO_MEM_DEBUG10_FAU 0xfffffff000000000ULL 318 #define PKO_MEM_DEBUG10_CMD 0x0000000fffc00000ULL 319 #define PKO_MEM_DEBUG10_SEGS 0x00000000003f0000ULL 320 #define PKO_MEM_DEBUG10_SIZE 0x000000000000ffffULL 321 322 /* 323 * PKO_MEM_DEBUG11 324 */ 325 #define PKO_MEM_DEBUG11_I 0x8000000000000000ULL 326 #define PKO_MEM_DEBUG11_BACK 0x7800000000000000ULL 327 #define PKO_MEM_DEBUG11_POOL 0x0700000000000000ULL 328 #define PKO_MEM_DEBUG11_SIZE 0x00ffff0000000000ULL 329 #define PKO_MEM_DEBUG11_PTR 0x000000ffffffffffULL 330 331 /* 332 * PKO_MEM_DEBUG12 333 */ 334 #define PKO_MEM_DEBUG12_DATA 0xffffffffffffffffULL 335 336 /* 337 * PKO_MEM_DEBUG13 338 */ 339 #define PKO_MEM_DEBUG13_63_51 0xfff8000000000000ULL 340 #define PKO_MEM_DEBUG13_WIDX 0x0007fffc00000000ULL 341 #define PKO_MEM_DEBUG13_RIDX2 0x00000003fffe0000ULL 342 #define PKO_MEM_DEBUG13_WIDX2 0x000000000001ffffULL 343 344 /* 345 * PKO_MEM_DEBUG14 346 */ 347 #define PKO_MEM_DEBUG13_63_17 0xfffffffffffe0000ULL 348 #define PKO_MEM_DEBUG13_RIDX 0x000000000001ffffULL 349 350 /* 351 * PKO_CMD_WORD0 352 */ 353 #define PKO_CMD_WORD0_SZ1 0xc000000000000000ULL 354 #define PKO_CMD_WORD0_SZ0 0x3000000000000000ULL 355 #define PKO_CMD_WORD0_S1 0x0800000000000000ULL 356 #define PKO_CMD_WORD0_REG1 0x07ff000000000000ULL 357 #define PKO_CMD_WORD0_S0 0x0000800000000000ULL 358 #define PKO_CMD_WORD0_REG0 0x00007ff000000000ULL 359 #define PKO_CMD_WORD0_LE 0x0000000800000000ULL 360 #define PKO_CMD_WORD0_N2 0x0000000400000000ULL 361 #define PKO_CMD_WORD0_Q 0x0000000200000000ULL 362 #define PKO_CMD_WORD0_R 0x0000000100000000ULL 363 #define PKO_CMD_WORD0_G 0x0000000080000000ULL 364 #define PKO_CMD_WORD0_IPOFFP1 0x000000007f000000ULL 365 #define PKO_CMD_WORD0_II 0x0000000000800000ULL 366 #define PKO_CMD_WORD0_DF 0x0000000000400000ULL 367 #define PKO_CMD_WORD0_SEGS 0x00000000003f0000ULL 368 #define PKO_CMD_WORD0_TOTALBYTES 0x000000000000ffffULL 369 370 /* 371 * PKO_CMD_WORD1 372 */ 373 #define PKO_CMD_WORD1_I 0x8000000000000000ULL 374 #define PKO_CMD_WORD1_BACK 0x7800000000000000ULL 375 #define PKO_CMD_WORD1_POOL 0x0700000000000000ULL 376 #define PKO_CMD_WORD1_SIZE 0x00ffff0000000000ULL 377 #define PKO_CMD_WORD1_ADDR 0x000000ffffffffffULL 378 379 /* 380 * PKO_CMD_WORD2 381 */ 382 #define PKO_CMD_WORD2_63_36 0xfffffff000000000ULL 383 #define PKO_CMD_WORD2_PTR 0x0000000fffffffffULL 384 385 /* 386 * DOORBELL_WRITE 387 */ 388 #define PKO_DOORBELL_WRITE_IO_BIT 0x0001000000000000ULL 389 #define PKO_DOORBELL_WRITE_MAJOR_DID 0x0000f80000000000ULL 390 #define PKO_DOORBELL_WRITE_SUB_DID 0x0000070000000000ULL 391 #define PKO_DOORBELL_WRITE_39_16 0x000000ffffff0000ULL 392 #define PKO_DOORBELL_WRITE_PID 0x000000000003f000ULL 393 #define PKO_DOORBELL_WRITE_QID 0x0000000000000ff8ULL 394 #define PKO_DOORBELL_WRITE_2_0 0x0000000000000007ULL 395 396 #define PKO_DOORBELL_WRITE_WDC 0x00000000000fffffULL 397 398 /* ---- operations */ 399 400 #define CN30XXPKO_MAJORDID 0x0a 401 #define CN30XXPKO_SUBDID 0x02 402 403 #endif /* _CN30XXPKOREG_H_ */ 404 405