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