1 1.3 simonb /* $NetBSD: octeon_ipdreg.h,v 1.3 2020/06/22 03:05:07 simonb Exp $ */ 2 1.1 hikaru 3 1.1 hikaru /* 4 1.1 hikaru * Copyright (c) 2007 Internet Initiative Japan, Inc. 5 1.1 hikaru * All rights reserved. 6 1.1 hikaru * 7 1.1 hikaru * Redistribution and use in source and binary forms, with or without 8 1.1 hikaru * modification, are permitted provided that the following conditions 9 1.1 hikaru * are met: 10 1.1 hikaru * 1. Redistributions of source code must retain the above copyright 11 1.1 hikaru * notice, this list of conditions and the following disclaimer. 12 1.1 hikaru * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 hikaru * notice, this list of conditions and the following disclaimer in the 14 1.1 hikaru * documentation and/or other materials provided with the distribution. 15 1.1 hikaru * 16 1.1 hikaru * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17 1.1 hikaru * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 1.1 hikaru * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 1.1 hikaru * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20 1.1 hikaru * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 1.1 hikaru * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 1.1 hikaru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 1.1 hikaru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 1.1 hikaru * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 1.1 hikaru * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 1.1 hikaru * SUCH DAMAGE. 27 1.1 hikaru */ 28 1.1 hikaru 29 1.1 hikaru /* 30 1.1 hikaru * IPD Registers 31 1.1 hikaru */ 32 1.1 hikaru 33 1.1 hikaru #ifndef _OCTEON_IPDREG_H_ 34 1.1 hikaru #define _OCTEON_IPDREG_H_ 35 1.1 hikaru 36 1.1 hikaru #define IPD_1ST_MBUFF_SKIP 0x00014f0000000000ULL 37 1.1 hikaru #define IPD_NOT_1ST_MBUFF_SKIP 0x00014f0000000008ULL 38 1.1 hikaru #define IPD_PACKET_MBUFF_SIZE 0x00014f0000000010ULL 39 1.1 hikaru #define IPD_CTL_STATUS 0x00014f0000000018ULL 40 1.1 hikaru #define IPD_WQE_FPA_QUEUE 0x00014f0000000020ULL 41 1.1 hikaru #define IPD_PORT0_BP_PAGE_CNT 0x00014f0000000028ULL 42 1.1 hikaru #define IPD_PORT1_BP_PAGE_CNT 0x00014f0000000030ULL 43 1.1 hikaru #define IPD_PORT2_BP_PAGE_CNT 0x00014f0000000038ULL 44 1.1 hikaru #define IPD_PORT32_BP_PAGE_CNT 0x00014f0000000128ULL 45 1.1 hikaru #define IPD_SUB_PORT_BP_PAGE_CNT 0x00014f0000000148ULL 46 1.1 hikaru #define IPD_1ST_NEXT_PTR_BACK 0x00014f0000000150ULL 47 1.1 hikaru #define IPD_2ND_NEXT_PTR_BACK 0x00014f0000000158ULL 48 1.1 hikaru #define IPD_INT_ENB 0x00014f0000000160ULL 49 1.1 hikaru #define IPD_INT_SUM 0x00014f0000000168ULL 50 1.1 hikaru #define IPD_SUB_PORT_FCS 0x00014f0000000170ULL 51 1.1 hikaru #define IPD_QOS0_RED_MARKS 0x00014f0000000178ULL 52 1.1 hikaru #define IPD_QOS1_RED_MARKS 0x00014f0000000180ULL 53 1.1 hikaru #define IPD_QOS2_RED_MARKS 0x00014f0000000188ULL 54 1.1 hikaru #define IPD_QOS3_RED_MARKS 0x00014f0000000190ULL 55 1.1 hikaru #define IPD_QOS4_RED_MARKS 0x00014f0000000198ULL 56 1.1 hikaru #define IPD_QOS5_RED_MARKS 0x00014f00000001a0ULL 57 1.1 hikaru #define IPD_QOS6_RED_MARKS 0x00014f00000001a8ULL 58 1.1 hikaru #define IPD_QOS7_RED_MARKS 0x00014f00000001b0ULL 59 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR0 0x00014f00000001b8ULL 60 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR1 0x00014f00000001c0ULL 61 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR2 0x00014f00000001c8ULL 62 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR32 0x00014f00000002b8ULL 63 1.1 hikaru #define IPD_RED_PORT_ENABLE 0x00014f00000002d8ULL 64 1.1 hikaru #define IPD_RED_QUE0_PARAM 0x00014f00000002e0ULL 65 1.1 hikaru #define IPD_RED_QUE1_PARAM 0x00014f00000002e8ULL 66 1.1 hikaru #define IPD_RED_QUE2_PARAM 0x00014f00000002f0ULL 67 1.1 hikaru #define IPD_RED_QUE3_PARAM 0x00014f00000002f8ULL 68 1.1 hikaru #define IPD_RED_QUE4_PARAM 0x00014f0000000300ULL 69 1.1 hikaru #define IPD_RED_QUE5_PARAM 0x00014f0000000308ULL 70 1.1 hikaru #define IPD_RED_QUE6_PARAM 0x00014f0000000310ULL 71 1.1 hikaru #define IPD_RED_QUE7_PARAM 0x00014f0000000318ULL 72 1.1 hikaru #define IPD_PTR_COUNT 0x00014f0000000320ULL 73 1.1 hikaru #define IPD_BP_PRT_RED_END 0x00014f0000000328ULL 74 1.1 hikaru #define IPD_QUE0_FREE_PAGE_CNT 0x00014f0000000330ULL 75 1.1 hikaru #define IPD_CLK_COUNT 0x00014f0000000338ULL 76 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL 0x00014f0000000340ULL 77 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL 0x00014f0000000348ULL 78 1.1 hikaru #define IPD_PRC_PORT_PTR_FIFO_CTL 0x00014f0000000350ULL 79 1.1 hikaru #define IPD_PKT_PTR_VALID 0x00014f0000000358ULL 80 1.1 hikaru #define IPD_WQE_PTR_VALID 0x00014f0000000360ULL 81 1.1 hikaru #define IPD_BIST_STATUS 0x00014f00000007f8ULL 82 1.1 hikaru 83 1.1 hikaru #define IPD_BASE 0x00014f0000000000ULL 84 1.1 hikaru #define IPD_SIZE 0x800ULL 85 1.1 hikaru 86 1.1 hikaru #define IPD_1ST_MBUFF_SKIP_OFFSET 0x0ULL 87 1.1 hikaru #define IPD_NOT_1ST_MBUFF_SKIP_OFFSET 0x8ULL 88 1.1 hikaru #define IPD_PACKET_MBUFF_SIZE_OFFSET 0x10ULL 89 1.1 hikaru #define IPD_CTL_STATUS_OFFSET 0x18ULL 90 1.1 hikaru #define IPD_WQE_FPA_QUEUE_OFFSET 0x20ULL 91 1.1 hikaru #define IPD_PORT0_BP_PAGE_CNT_OFFSET 0x28ULL 92 1.1 hikaru #define IPD_PORT1_BP_PAGE_CNT_OFFSET 0x30ULL 93 1.1 hikaru #define IPD_PORT2_BP_PAGE_CNT_OFFSET 0x38ULL 94 1.1 hikaru #define IPD_PORT32_BP_PAGE_CNT_OFFSET 0x128ULL 95 1.1 hikaru #define IPD_SUB_PORT_BP_PAGE_CNT_OFFSET 0x148ULL 96 1.1 hikaru #define IPD_1ST_NEXT_PTR_BACK_OFFSET 0x150ULL 97 1.1 hikaru #define IPD_2ND_NEXT_PTR_BACK_OFFSET 0x158ULL 98 1.1 hikaru #define IPD_INT_ENB_OFFSET 0x160ULL 99 1.1 hikaru #define IPD_INT_SUM_OFFSET 0x168ULL 100 1.1 hikaru #define IPD_SUB_PORT_FCS_OFFSET 0x170ULL 101 1.1 hikaru #define IPD_QOS0_RED_MARKS_OFFSET 0x178ULL 102 1.1 hikaru #define IPD_QOS1_RED_MARKS_OFFSET 0x180ULL 103 1.1 hikaru #define IPD_QOS2_RED_MARKS_OFFSET 0x188ULL 104 1.1 hikaru #define IPD_QOS3_RED_MARKS_OFFSET 0x190ULL 105 1.1 hikaru #define IPD_QOS4_RED_MARKS_OFFSET 0x198ULL 106 1.1 hikaru #define IPD_QOS5_RED_MARKS_OFFSET 0x1a0ULL 107 1.1 hikaru #define IPD_QOS6_RED_MARKS_OFFSET 0x1a8ULL 108 1.1 hikaru #define IPD_QOS7_RED_MARKS_OFFSET 0x1b0ULL 109 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR0_OFFSET 0x1b8ULL 110 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR1_OFFSET 0x1c0ULL 111 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR2_OFFSET 0x1c8ULL 112 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIR32_OFFSET 0x2b8ULL 113 1.1 hikaru #define IPD_RED_PORT_ENABLE_OFFSET 0x2d8ULL 114 1.1 hikaru #define IPD_RED_QUE0_PARAM_OFFSET 0x2e0ULL 115 1.1 hikaru #define IPD_RED_QUE1_PARAM_OFFSET 0x2e8ULL 116 1.1 hikaru #define IPD_RED_QUE2_PARAM_OFFSET 0x2f0ULL 117 1.1 hikaru #define IPD_RED_QUE3_PARAM_OFFSET 0x2f8ULL 118 1.1 hikaru #define IPD_RED_QUE4_PARAM_OFFSET 0x300ULL 119 1.1 hikaru #define IPD_RED_QUE5_PARAM_OFFSET 0x308ULL 120 1.1 hikaru #define IPD_RED_QUE6_PARAM_OFFSET 0x310ULL 121 1.1 hikaru #define IPD_RED_QUE7_PARAM_OFFSET 0x318ULL 122 1.1 hikaru #define IPD_PTR_COUNT_OFFSET 0x320ULL 123 1.1 hikaru #define IPD_BP_PRT_RED_END_OFFSET 0x328ULL 124 1.1 hikaru #define IPD_QUE0_FREE_PAGE_CNT_OFFSET 0x330ULL 125 1.1 hikaru #define IPD_CLK_COUNT_OFFSET 0x338ULL 126 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_OFFSET 0x340ULL 127 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL_OFFSET 0x348ULL 128 1.1 hikaru #define IPD_PRC_PORT_PTR_FIFO_CTL_OFFSET 0x350ULL 129 1.1 hikaru #define IPD_PKT_PTR_VALID_OFFSET 0x358ULL 130 1.1 hikaru #define IPD_WQE_PTR_VALID_OFFSET 0x360ULL 131 1.1 hikaru #define IPD_BIST_STATUS_OFFSET 0x7f8ULL 132 1.1 hikaru 133 1.1 hikaru /* ----- */ 134 1.1 hikaru /* 135 1.1 hikaru * Work Queue Entry Format (for input packet) 136 1.1 hikaru */ 137 1.1 hikaru 138 1.1 hikaru /* 139 1.1 hikaru * word 2 140 1.1 hikaru * Work-Queue Entry format; Word2 Cases 141 1.1 hikaru */ 142 1.1 hikaru /* RAWFULL */ 143 1.1 hikaru #define IPD_WQE_WORD2_RAW_BUFS UINT64_C(0xff00000000000000) 144 1.1 hikaru #define IPD_WQE_WORD2_RAW_WORD UINT64_C(0x00ffffffffffffff) 145 1.1 hikaru 146 1.1 hikaru /* is IP */ 147 1.1 hikaru #define IPD_WQE_WORD2_IP_BUFS UINT64_C(0xff00000000000000) 148 1.1 hikaru #define IPD_WQE_WORD2_IP_IPOFF UINT64_C(0x00ff000000000000) 149 1.1 hikaru #define IPD_WQE_WORD2_IP_VV UINT64_C(0x0000800000000000) 150 1.1 hikaru #define IPD_WQE_WORD2_IP_VS UINT64_C(0x0000400000000000) 151 1.1 hikaru #define IPD_WQE_WORD2_IP_45 UINT64_C(0x0000200000000000) 152 1.1 hikaru #define IPD_WQE_WORD2_IP_VC UINT64_C(0x0000100000000000) 153 1.1 hikaru #define IPD_WQE_WORD2_IP_VLANID UINT64_C(0x00000fff00000000) 154 1.1 hikaru #define IPD_WQE_WORD2_IP_31_20 UINT64_C(0x00000000fff00000) 155 1.1 hikaru #define IPD_WQE_WORD2_IP_CO UINT64_C(0x0000000000080000) 156 1.1 hikaru #define IPD_WQE_WORD2_IP_TU UINT64_C(0x0000000000040000) 157 1.1 hikaru #define IPD_WQE_WORD2_IP_SE UINT64_C(0x0000000000020000) 158 1.1 hikaru #define IPD_WQE_WORD2_IP_V6 UINT64_C(0x0000000000010000) 159 1.1 hikaru #define IPD_WQE_WORD2_IP_15 UINT64_C(0x0000000000008000) 160 1.1 hikaru #define IPD_WQE_WORD2_IP_LE UINT64_C(0x0000000000004000) 161 1.1 hikaru #define IPD_WQE_WORD2_IP_FR UINT64_C(0x0000000000002000) 162 1.1 hikaru #define IPD_WQE_WORD2_IP_IE UINT64_C(0x0000000000001000) 163 1.1 hikaru #define IPD_WQE_WORD2_IP_B UINT64_C(0x0000000000000800) 164 1.1 hikaru #define IPD_WQE_WORD2_IP_M UINT64_C(0x0000000000000400) 165 1.1 hikaru #define IPD_WQE_WORD2_IP_NI UINT64_C(0x0000000000000200) 166 1.1 hikaru #define IPD_WQE_WORD2_IP_RE UINT64_C(0x0000000000000100) 167 1.1 hikaru #define IPD_WQE_WORD2_IP_OPCODE UINT64_C(0x00000000000000ff) 168 1.1 hikaru 169 1.1 hikaru /* All other */ 170 1.1 hikaru #define IPD_WQE_WORD2_OTH_BUFS UINT64_C(0xff00000000000000) 171 1.1 hikaru #define IPD_WQE_WORD2_OTH_55_48 UINT64_C(0x00ff000000000000) 172 1.1 hikaru #define IPD_WQE_WORD2_OTH_VV UINT64_C(0x0000800000000000) 173 1.1 hikaru #define IPD_WQE_WORD2_OTH_VS UINT64_C(0x0000400000000000) 174 1.1 hikaru #define IPD_WQE_WORD2_OTH_45 UINT64_C(0x0000200000000000) 175 1.1 hikaru #define IPD_WQE_WORD2_OTH_VC UINT64_C(0x0000100000000000) 176 1.1 hikaru #define IPD_WQE_WORD2_OTH_VLANID UINT64_C(0x00000fff00000000) 177 1.1 hikaru #define IPD_WQE_WORD2_OTH_31_14 UINT64_C(0x00000000ffffc000) 178 1.1 hikaru #define IPD_WQE_WORD2_OTH_IR UINT64_C(0x0000000000002000) 179 1.1 hikaru #define IPD_WQE_WORD2_OTH_IA UINT64_C(0x0000000000001000) 180 1.1 hikaru #define IPD_WQE_WORD2_OTH_B UINT64_C(0x0000000000000800) 181 1.1 hikaru #define IPD_WQE_WORD2_OTH_M UINT64_C(0x0000000000000400) 182 1.1 hikaru #define IPD_WQE_WORD2_OTH_NI UINT64_C(0x0000000000000200) 183 1.1 hikaru #define IPD_WQE_WORD2_OTH_RE UINT64_C(0x0000000000000100) 184 1.1 hikaru #define IPD_WQE_WORD2_OTH_OPCODE UINT64_C(0x00000000000000ff) 185 1.1 hikaru 186 1.1 hikaru /* 187 1.1 hikaru * word 3 188 1.1 hikaru */ 189 1.1 hikaru #define IPD_WQE_WORD3_63 UINT64_C(0x8000000000000000) 190 1.1 hikaru #define IPD_WQE_WORD3_BACK UINT64_C(0x7800000000000000) 191 1.1 hikaru #define IPD_WQE_WORD3_58_56 UINT64_C(0x0700000000000000) 192 1.1 hikaru #define IPD_WQE_WORD3_SIZE UINT64_C(0x00ffff0000000000) 193 1.1 hikaru #define IPD_WQE_WORD3_ADDR UINT64_C(0x000000ffffffffff) 194 1.1 hikaru 195 1.1 hikaru /* 196 1.1 hikaru * IPD_1ST_MBUFF_SKIP 197 1.1 hikaru */ 198 1.1 hikaru #define IPD_1ST_MBUFF_SKIP_63_6 UINT64_C(0xffffffffffffffc0) 199 1.1 hikaru #define IPD_1ST_MBUFF_SKIP_SZ UINT64_C(0x000000000000003f) 200 1.1 hikaru 201 1.1 hikaru /* 202 1.1 hikaru * IPD_NOT_1ST_MBUFF_SKIP 203 1.1 hikaru */ 204 1.1 hikaru #define IPD_NOT_1ST_MBUFF_SKIP_63_6 UINT64_C(0xffffffffffffffc0) 205 1.1 hikaru #define IPD_NOT_1ST_MBUFF_SKIP_SZ UINT64_C(0x000000000000003f) 206 1.1 hikaru 207 1.1 hikaru /* 208 1.1 hikaru * IPD_PACKET_MBUFF_SIZE 209 1.1 hikaru */ 210 1.1 hikaru #define IPD_PACKET_MBUFF_SIZE_63_12 UINT64_C(0xfffffffffffff000) 211 1.1 hikaru #define IPD_PACKET_MBUFF_SIZE_MB_SIZE UINT64_C(0x0000000000000fff) 212 1.1 hikaru 213 1.1 hikaru /* 214 1.1 hikaru * IPD_CTL_STATUS 215 1.1 hikaru */ 216 1.1 hikaru #define IPD_CTL_STATUS_63_10 UINT64_C(0xfffffffffffffc00) 217 1.1 hikaru #define IPD_CTL_STATUS_LEN_M8 UINT64_C(0x0000000000000200) 218 1.1 hikaru #define IPD_CTL_STATUS_RESET UINT64_C(0x0000000000000100) 219 1.1 hikaru #define IPD_CTL_STATUS_ADDPKT UINT64_C(0x0000000000000080) 220 1.1 hikaru #define IPD_CTL_STATUS_NADDBUF UINT64_C(0x0000000000000040) 221 1.1 hikaru #define IPD_CTL_STATUS_PKT_LEND UINT64_C(0x0000000000000020) 222 1.1 hikaru #define IPD_CTL_STATUS_WQE_LEND UINT64_C(0x0000000000000010) 223 1.1 hikaru #define IPD_CTL_STATUS_PBP_EN UINT64_C(0x0000000000000008) 224 1.1 hikaru #define IPD_CTL_STATUS_OPC_MODE UINT64_C(0x0000000000000006) 225 1.2 simonb #define IPD_CTL_STATUS_OPC_MODE_NONE 0 226 1.2 simonb #define IPD_CTL_STATUS_OPC_MODE_ALL 1 227 1.2 simonb #define IPD_CTL_STATUS_OPC_MODE_ONE 2 228 1.2 simonb #define IPD_CTL_STATUS_OPC_MODE_TWO 3 229 1.1 hikaru #define IPD_CTL_STATUS_IPD_EN UINT64_C(0x0000000000000001) 230 1.1 hikaru 231 1.1 hikaru /* 232 1.1 hikaru * IPD_WQE_FPA_QUEUE 233 1.1 hikaru */ 234 1.1 hikaru #define IPD_WQE_FPA_QUEUE_63_3 UINT64_C(0xfffffffffffffff8) 235 1.1 hikaru #define IPD_WQE_FPA_QUEUE_WQE_QUE UINT64_C(0x0000000000000007) 236 1.1 hikaru 237 1.1 hikaru /* 238 1.1 hikaru * IPD_PORTN_BP_PAGE_CNT 239 1.1 hikaru */ 240 1.1 hikaru #define IPD_PORTN_BP_PAGE_CNT_63_18 UINT64_C(0xfffffffffffc0000) 241 1.1 hikaru #define IPD_PORTN_BP_PAGE_CNT_BP_ENB UINT64_C(0x0000000000020000) 242 1.1 hikaru #define IPD_PORTN_BP_PAGE_CNT_PAGE_CNT UINT64_C(0x000000000001ffff) 243 1.1 hikaru 244 1.1 hikaru /* 245 1.1 hikaru * IPD_SUB_PORT_BP_PAGE_CNT 246 1.1 hikaru */ 247 1.1 hikaru #define IPD_SUB_PORT_BP_PAGE_CNT_63_18 UINT64_C(0xffffffff80000000) 248 1.1 hikaru #define IPD_SUB_PORT_BP_PAGE_CNT_PORT UINT64_C(0x000000007e000000) 249 1.1 hikaru #define IPD_SUB_PORT_BP_PAGE_CNT_PAGE_CNT UINT64_C(0x0000000001ffffff) 250 1.1 hikaru 251 1.1 hikaru /* 252 1.1 hikaru * IPD_1ST_NEXT_PTR_BACK 253 1.1 hikaru */ 254 1.1 hikaru #define IPD_1ST_NEXT_PTR_BACK_63_4 UINT64_C(0xfffffffffffffff0) 255 1.1 hikaru #define IPD_1ST_NEXT_PTR_BACK_BACK UINT64_C(0x000000000000000f) 256 1.1 hikaru 257 1.1 hikaru /* 258 1.1 hikaru * IPD_2ND_NEXT_PTR_BACK 259 1.1 hikaru */ 260 1.1 hikaru #define IPD_2ND_NEXT_PTR_BACK_63_4 UINT64_C(0xfffffffffffffff0) 261 1.1 hikaru #define IPD_2ND_NEXT_PTR_BACK_BACK UINT64_C(0x000000000000000f) 262 1.1 hikaru 263 1.1 hikaru /* 264 1.1 hikaru * IPD_INT_ENB 265 1.1 hikaru */ 266 1.1 hikaru #define IPD_INT_ENB_63_4 UINT64_C(0xffffffffffffffe0) 267 1.1 hikaru #define IPD_INT_ENB_BP_SUB UINT64_C(0x0000000000000010) 268 1.1 hikaru #define IPD_INT_ENB_PRC_PAR3 UINT64_C(0x0000000000000008) 269 1.1 hikaru #define IPD_INT_ENB_PRC_PAR2 UINT64_C(0x0000000000000004) 270 1.1 hikaru #define IPD_INT_ENB_PRC_PAR1 UINT64_C(0x0000000000000002) 271 1.1 hikaru #define IPD_INT_ENB_PRC_PAR0 UINT64_C(0x0000000000000001) 272 1.1 hikaru 273 1.1 hikaru /* 274 1.1 hikaru * IPD_INT_SUM 275 1.1 hikaru */ 276 1.1 hikaru #define IPD_INT_SUM_63_4 UINT64_C(0xffffffffffffffe0) 277 1.1 hikaru #define IPD_INT_SUM_BP_SUB UINT64_C(0x0000000000000010) 278 1.1 hikaru #define IPD_INT_SUM_PRC_PAR3 UINT64_C(0x0000000000000008) 279 1.1 hikaru #define IPD_INT_SUM_PRC_PAR2 UINT64_C(0x0000000000000004) 280 1.1 hikaru #define IPD_INT_SUM_PRC_PAR1 UINT64_C(0x0000000000000002) 281 1.1 hikaru #define IPD_INT_SUM_PRC_PAR0 UINT64_C(0x0000000000000001) 282 1.1 hikaru 283 1.1 hikaru /* 284 1.1 hikaru * IPD_SUB_PORT_FCS 285 1.1 hikaru */ 286 1.1 hikaru #define IPD_SUB_PORT_FCS_63_3 UINT64_C(0xfffffffffffffff8) 287 1.1 hikaru #define IPD_SUB_PORT_FCS_PORT_BIT UINT64_C(0x0000000000000007) 288 1.1 hikaru 289 1.1 hikaru /* 290 1.1 hikaru * IPD_QOSN_RED_MARKS 291 1.1 hikaru */ 292 1.1 hikaru #define IPD_QOSN_READ_MARKS_DROP UINT64_C(0xffffffff00000000) 293 1.1 hikaru #define IPD_QOSN_READ_MARKS_PASS UINT64_C(0x00000000ffffffff) 294 1.1 hikaru 295 1.1 hikaru /* 296 1.1 hikaru * IPD_PORT_BP_COUNTERS_PAIRN 297 1.1 hikaru */ 298 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIRN_63_25 UINT64_C(0xfffffffffe000000) 299 1.1 hikaru #define IPD_PORT_BP_COUNTERS_PAIRN_CNT_VAL UINT64_C(0x0000000001ffffff) 300 1.1 hikaru 301 1.1 hikaru /* 302 1.1 hikaru * IPD_RED_PORT_ENABLE 303 1.1 hikaru */ 304 1.1 hikaru #define IPD_RED_PORT_ENABLE_PRB_DLY UINT64_C(0xfffc000000000000) 305 1.1 hikaru #define IPD_RED_PORT_ENABLE_AVG_DLY UINT64_C(0x0003fff000000000) 306 1.1 hikaru #define IPD_RED_PORT_ENABLE_PRT_ENB UINT64_C(0x0000000fffffffff) 307 1.1 hikaru 308 1.1 hikaru /* 309 1.1 hikaru * IPD_RED_QUEN_PARAM 310 1.1 hikaru */ 311 1.1 hikaru #define IPD_RED_QUEN_PARAM_63_49 UINT64_C(0xfffe000000000000) 312 1.1 hikaru #define IPD_RED_QUEN_PARAM_USE_PCNT UINT64_C(0x0001000000000000) 313 1.1 hikaru #define IPD_RED_QUEN_PARAM_NEW_CON UINT64_C(0x0000ff0000000000) 314 1.1 hikaru #define IPD_RED_QUEN_PARAM_AVG_CON UINT64_C(0x000000ff00000000) 315 1.1 hikaru #define IPD_RED_QUEN_PARAM_PRB_CON UINT64_C(0x00000000ffffffff) 316 1.1 hikaru 317 1.1 hikaru /* 318 1.1 hikaru * IPD_PTR_COUNT 319 1.1 hikaru */ 320 1.1 hikaru #define IPD_PTR_COUNT_63_19 UINT64_C(0xfffffffffff80000) 321 1.1 hikaru #define IPD_PTR_COUNT_PKTV_CNT UINT64_C(0x0000000000040000) 322 1.1 hikaru #define IPD_PTR_COUNT_WQEV_CNT UINT64_C(0x0000000000020000) 323 1.1 hikaru #define IPD_PTR_COUNT_PFIF_CNT UINT64_C(0x000000000001c000) 324 1.1 hikaru #define IPD_PTR_COUNT_PKT_PCNT UINT64_C(0x0000000000003f80) 325 1.1 hikaru #define IPD_PTR_COUNT_WQE_PCNT UINT64_C(0x000000000000007f) 326 1.1 hikaru 327 1.1 hikaru /* 328 1.1 hikaru * IPD_BP_PRT_RED_END 329 1.1 hikaru */ 330 1.1 hikaru #define IPD_BP_PRT_RED_END_63_36 UINT64_C(0xfffffff000000000) 331 1.1 hikaru #define IPD_BP_PRT_RED_END_PRT_ENB UINT64_C(0x0000000fffffffff) 332 1.1 hikaru 333 1.1 hikaru /* 334 1.1 hikaru * IPD_QUE0_FREE_PAGE_CNT 335 1.1 hikaru */ 336 1.1 hikaru #define IPD_QUE0_FREE_PAGE_CNT_63_32 UINT64_C(0xffffffff00000000) 337 1.1 hikaru #define IPD_QUE0_FREE_PAGE_CNT_Q0_PCNT UINT64_C(0x00000000ffffffff) 338 1.1 hikaru 339 1.1 hikaru /* 340 1.1 hikaru * IPD_CLK_COUNT 341 1.1 hikaru */ 342 1.1 hikaru #define IPD_CLK_COUNT_CLK_CNT UINT64_C(0xffffffffffffffff) 343 1.1 hikaru 344 1.1 hikaru /* 345 1.1 hikaru * IPD_PWP_PTR_FIFO_CTL 346 1.1 hikaru */ 347 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_63_61 UINT64_C(0xe000000000000000) 348 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_MAX_CNTS UINT64_C(0x1fc0000000000000) 349 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_WRADDR UINT64_C(0x003fc00000000000) 350 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_PRADDR UINT64_C(0x00003fc000000000) 351 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_PTR UINT64_C(0x0000003ffffffe00) 352 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_CENA UINT64_C(0x0000000000000100) 353 1.1 hikaru #define IPD_PWP_PTR_FIFO_CTL_RADDR UINT64_C(0x00000000000000ff) 354 1.1 hikaru 355 1.1 hikaru /* 356 1.1 hikaru * IPD_PRC_HOLD_PTR_FIFO_CTL 357 1.1 hikaru */ 358 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL_63_39 UINT64_C(0xffffff8000000000) 359 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL_MAX_PTR UINT64_C(0x0000007000000000) 360 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL_PRADDR UINT64_C(0x0000000e00000000) 361 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL_PTR UINT64_C(0x00000001fffffff0) 362 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL_CENA UINT64_C(0x0000000000000008) 363 1.1 hikaru #define IPD_PRC_HOLD_PTR_FIFO_CTL_RADDR UINT64_C(0x0000000000000007) 364 1.1 hikaru 365 1.1 hikaru /* 366 1.1 hikaru * IPD_PRC_PORT_PTR_FIFO_CTL 367 1.1 hikaru */ 368 1.1 hikaru #define IPD_PRC_PORT_PTR_FIFO_CTL_63_44 UINT64_C(0xfffff00000000000) 369 1.1 hikaru #define IPD_PRC_PORT_PTR_FIFO_CTL_MAX_PTR UINT64_C(0x00000fe000000000) 370 1.1 hikaru #define IPD_PRC_PORT_PTR_FIFO_CTL_PTR UINT64_C(0x0000001fffffff00) 371 1.1 hikaru #define IPD_PRC_PORT_PTR_FIFO_CTL_CENA UINT64_C(0x0000000000000080) 372 1.1 hikaru #define IPD_PRC_PORT_PTR_FIFO_CTL_RADDR UINT64_C(0x000000000000007f) 373 1.1 hikaru 374 1.1 hikaru /* 375 1.1 hikaru * IPD_PKT_PTR_VALID 376 1.1 hikaru */ 377 1.1 hikaru #define IPD_PKT_PTR_VALID_63_29 UINT64_C(0xffffffffe0000000) 378 1.1 hikaru #define IPD_PKT_PTR_VALID_PTR UINT64_C(0x000000001fffffff) 379 1.1 hikaru 380 1.1 hikaru /* 381 1.1 hikaru * IPD_WQE_PTR_VALID 382 1.1 hikaru */ 383 1.1 hikaru #define IPD_WQE_PTR_VALID_63_29 UINT64_C(0xffffffffe0000000) 384 1.1 hikaru #define IPD_WQE_PTR_VALID_PTR UINT64_C(0x000000001fffffff) 385 1.1 hikaru 386 1.1 hikaru /* 387 1.1 hikaru * IPD_BIST_STATUS 388 1.1 hikaru */ 389 1.1 hikaru #define IPD_BIST_STATUS_63_29 UINT64_C(0xffffffffffff0000) 390 1.1 hikaru #define IPD_BIST_STATUS_PWQ_WQED UINT64_C(0x0000000000008000) 391 1.1 hikaru #define IPD_BIST_STATUS_PWQ_WP1 UINT64_C(0x0000000000004000) 392 1.1 hikaru #define IPD_BIST_STATUS_PWQ_POW UINT64_C(0x0000000000002000) 393 1.1 hikaru #define IPD_BIST_STATUS_IPQ_PBE1 UINT64_C(0x0000000000001000) 394 1.1 hikaru #define IPD_BIST_STATUS_IPQ_PBE0 UINT64_C(0x0000000000000800) 395 1.1 hikaru #define IPD_BIST_STATUS_PBM3 UINT64_C(0x0000000000000400) 396 1.1 hikaru #define IPD_BIST_STATUS_PBM2 UINT64_C(0x0000000000000200) 397 1.1 hikaru #define IPD_BIST_STATUS_PBM1 UINT64_C(0x0000000000000100) 398 1.1 hikaru #define IPD_BIST_STATUS_PBM0 UINT64_C(0x0000000000000080) 399 1.1 hikaru #define IPD_BIST_STATUS_PBM_WORD UINT64_C(0x0000000000000040) 400 1.1 hikaru #define IPD_BIST_STATUS_PWQ1 UINT64_C(0x0000000000000020) 401 1.1 hikaru #define IPD_BIST_STATUS_PWQ0 UINT64_C(0x0000000000000010) 402 1.1 hikaru #define IPD_BIST_STATUS_PRC_OFF UINT64_C(0x0000000000000008) 403 1.1 hikaru #define IPD_BIST_STATUS_IPD_OLD UINT64_C(0x0000000000000004) 404 1.1 hikaru #define IPD_BIST_STATUS_IPD_NEW UINT64_C(0x0000000000000002) 405 1.1 hikaru #define IPD_BIST_STATUS_PWP UINT64_C(0x0000000000000001) 406 1.1 hikaru 407 1.1 hikaru /* 408 1.1 hikaru * word2[Opcode] 409 1.1 hikaru */ 410 1.1 hikaru /* L3 (IP) error */ 411 1.1 hikaru #define IPD_WQE_L3_NOT_IP 1 412 1.1 hikaru #define IPD_WQE_L3_V4_CSUM_ERR 2 413 1.1 hikaru #define IPD_WQE_L3_HEADER_MALFORMED 3 414 1.1 hikaru #define IPD_WQE_L3_MELFORMED 4 415 1.1 hikaru #define IPD_WQE_L3_TTL_HOP 5 416 1.1 hikaru #define IPD_WQE_L3_IP_OPT 6 417 1.1 hikaru 418 1.1 hikaru /* L4 (UDP/TCP) error */ 419 1.1 hikaru #define IPD_WQE_L4_MALFORMED 1 420 1.1 hikaru #define IPD_WQE_L4_CSUM_ERR 2 421 1.1 hikaru #define IPD_WQE_L4_UDP_LEN_ERR 3 422 1.1 hikaru #define IPD_WQE_L4_BAD_PORT 4 423 1.1 hikaru #define IPD_WQE_L4_FIN_ONLY 8 424 1.1 hikaru #define IPD_WQE_L4_NO_FLAGS 9 425 1.1 hikaru #define IPD_WQE_L4_FIN_RST 10 426 1.1 hikaru #define IPD_WQE_L4_SYN_URG 11 427 1.1 hikaru #define IPD_WQE_L4_SYN_RST 12 428 1.1 hikaru #define IPD_WQE_L4_SYN_FIN 13 429 1.1 hikaru 430 1.1 hikaru #endif /* _OCTEON_IPDREG_H_ */ 431