1eef4f27bSRobert Mustacchi /* 2eef4f27bSRobert Mustacchi * Copyright 2014-2017 Cavium, Inc. 3eef4f27bSRobert Mustacchi * The contents of this file are subject to the terms of the Common Development 4eef4f27bSRobert Mustacchi * and Distribution License, v.1, (the "License"). 5eef4f27bSRobert Mustacchi * 6eef4f27bSRobert Mustacchi * You may not use this file except in compliance with the License. 7eef4f27bSRobert Mustacchi * 8eef4f27bSRobert Mustacchi * You can obtain a copy of the License at available 9eef4f27bSRobert Mustacchi * at http://opensource.org/licenses/CDDL-1.0 10eef4f27bSRobert Mustacchi * 11eef4f27bSRobert Mustacchi * See the License for the specific language governing permissions and 12eef4f27bSRobert Mustacchi * limitations under the License. 13eef4f27bSRobert Mustacchi */ 14eef4f27bSRobert Mustacchi 15eef4f27bSRobert Mustacchi #ifndef _l2_ftq_h_ 16eef4f27bSRobert Mustacchi #define _l2_ftq_h_ 17eef4f27bSRobert Mustacchi 18eef4f27bSRobert Mustacchi #include "l2_defs.h" 19eef4f27bSRobert Mustacchi 20eef4f27bSRobert Mustacchi // This is to avoid compiling error for drivers compilation 21eef4f27bSRobert Mustacchi #if !defined (TARGET_CHIP) 22eef4f27bSRobert Mustacchi #define TARGET_CHIP 5709 23eef4f27bSRobert Mustacchi #endif 24eef4f27bSRobert Mustacchi 25eef4f27bSRobert Mustacchi 26eef4f27bSRobert Mustacchi 27eef4f27bSRobert Mustacchi 28eef4f27bSRobert Mustacchi /* 29eef4f27bSRobert Mustacchi * rxp cmd enqueue definition 30eef4f27bSRobert Mustacchi * offset: 0000 31eef4f27bSRobert Mustacchi */ 32eef4f27bSRobert Mustacchi 33eef4f27bSRobert Mustacchi 34eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 35eef4f27bSRobert Mustacchi typedef struct rxpcq_l 36eef4f27bSRobert Mustacchi { 37eef4f27bSRobert Mustacchi u32_t cid; 38eef4f27bSRobert Mustacchi union{ 39eef4f27bSRobert Mustacchi u32_t host_opaque; 40eef4f27bSRobert Mustacchi u32_t generic1; 41eef4f27bSRobert Mustacchi }u1; 42eef4f27bSRobert Mustacchi union{ 43eef4f27bSRobert Mustacchi struct { 44eef4f27bSRobert Mustacchi u16_t status; 45eef4f27bSRobert Mustacchi u8_t opcode; 46*55fea89dSDan Cross u8_t flags; 47eef4f27bSRobert Mustacchi }s1; 48eef4f27bSRobert Mustacchi u32_t generic2; 49eef4f27bSRobert Mustacchi }u2; 50eef4f27bSRobert Mustacchi } rxpcq_l_t; 51eef4f27bSRobert Mustacchi 52eef4f27bSRobert Mustacchi typedef rxpcq_l_t rxpcq_t; 53eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 54eef4f27bSRobert Mustacchi typedef struct rxpcq_b 55eef4f27bSRobert Mustacchi { 56eef4f27bSRobert Mustacchi u32_t cid; 57eef4f27bSRobert Mustacchi union{ 58eef4f27bSRobert Mustacchi u32_t host_opaque; 59eef4f27bSRobert Mustacchi u32_t generic1; 60eef4f27bSRobert Mustacchi } u1; 61eef4f27bSRobert Mustacchi union{ 62eef4f27bSRobert Mustacchi struct { 63*55fea89dSDan Cross u8_t flags; 64eef4f27bSRobert Mustacchi u8_t opcode; 65eef4f27bSRobert Mustacchi u16_t status; 66eef4f27bSRobert Mustacchi } s1; 67eef4f27bSRobert Mustacchi u32_t generic2; 68eef4f27bSRobert Mustacchi } u2; 69eef4f27bSRobert Mustacchi } rxpcq_b_t; 70eef4f27bSRobert Mustacchi 71eef4f27bSRobert Mustacchi typedef rxpcq_b_t rxpcq_t; 72eef4f27bSRobert Mustacchi #endif 73eef4f27bSRobert Mustacchi 74eef4f27bSRobert Mustacchi 75eef4f27bSRobert Mustacchi /* 76eef4f27bSRobert Mustacchi * rxp enqueue definition 77eef4f27bSRobert Mustacchi * offset: 0000 78eef4f27bSRobert Mustacchi */ 79eef4f27bSRobert Mustacchi typedef struct rxpq_b 80eef4f27bSRobert Mustacchi { 81eef4f27bSRobert Mustacchi u32_t bits_errors; 82eef4f27bSRobert Mustacchi u32_t bits_status; 83*55fea89dSDan Cross 84eef4f27bSRobert Mustacchi u8_t bit_mcast_hash_idx; 85eef4f27bSRobert Mustacchi u8_t bits_acpi_pat; 86eef4f27bSRobert Mustacchi u8_t knum; 87eef4f27bSRobert Mustacchi u8_t unused1; 88*55fea89dSDan Cross 89eef4f27bSRobert Mustacchi u16_t rule_tag; 90eef4f27bSRobert Mustacchi u16_t pkt_len; 91*55fea89dSDan Cross 92eef4f27bSRobert Mustacchi u16_t vlan_tag; 93eef4f27bSRobert Mustacchi u8_t ip_hdr_offset; 94eef4f27bSRobert Mustacchi u8_t rx_qid; 95*55fea89dSDan Cross 96eef4f27bSRobert Mustacchi u16_t ip_xsum; 97eef4f27bSRobert Mustacchi // this field has been extended to 2-byte in Xinan 98eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5706) 99eef4f27bSRobert Mustacchi u8_t tcp_udp_hdr_offset; 100*55fea89dSDan Cross u8_t unused2; 101eef4f27bSRobert Mustacchi #else 102eef4f27bSRobert Mustacchi u16_t tcp_udp_hdr_offset; 103*55fea89dSDan Cross #endif 104eef4f27bSRobert Mustacchi u16_t tcp_udp_xsum; 105eef4f27bSRobert Mustacchi u16_t tcp_payload_len; 106*55fea89dSDan Cross 107eef4f27bSRobert Mustacchi u16_t pseud_xsum; 108eef4f27bSRobert Mustacchi u16_t l2_payload_raw_xsum; 109eef4f27bSRobert Mustacchi // this field has been extended to 2-byte in Xinan 110eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5706) 111eef4f27bSRobert Mustacchi u8_t data_offset; 112*55fea89dSDan Cross u8_t unused3; 113eef4f27bSRobert Mustacchi #else 114eef4f27bSRobert Mustacchi u16_t data_offset; 115eef4f27bSRobert Mustacchi #endif 116eef4f27bSRobert Mustacchi u16_t l3_payload_raw_xsum; 117*55fea89dSDan Cross 118eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 119eef4f27bSRobert Mustacchi u32_t cid; 120eef4f27bSRobert Mustacchi 121eef4f27bSRobert Mustacchi u16_t cs16; 122eef4f27bSRobert Mustacchi u16_t unused4; 123eef4f27bSRobert Mustacchi 124eef4f27bSRobert Mustacchi u16_t ext_status; 125eef4f27bSRobert Mustacchi u16_t unused5; 126*55fea89dSDan Cross 127eef4f27bSRobert Mustacchi } rxpq_b_t; 128eef4f27bSRobert Mustacchi 129eef4f27bSRobert Mustacchi typedef struct rxpq_l 130eef4f27bSRobert Mustacchi { 131eef4f27bSRobert Mustacchi u32_t bits_errors; 132eef4f27bSRobert Mustacchi u32_t bits_status; 133*55fea89dSDan Cross 134eef4f27bSRobert Mustacchi u8_t unused1; 135eef4f27bSRobert Mustacchi u8_t knum; 136eef4f27bSRobert Mustacchi u8_t bits_acpi_pat; 137eef4f27bSRobert Mustacchi u8_t bit_mcast_hash_idx; 138*55fea89dSDan Cross 139eef4f27bSRobert Mustacchi u16_t pkt_len; 140eef4f27bSRobert Mustacchi u16_t rule_tag; 141*55fea89dSDan Cross 142eef4f27bSRobert Mustacchi u8_t rx_qid; 143eef4f27bSRobert Mustacchi u8_t ip_hdr_offset; 144eef4f27bSRobert Mustacchi u16_t vlan_tag; 145*55fea89dSDan Cross 146eef4f27bSRobert Mustacchi // this field has been extended to 2-byte in Xinan 147eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5706) 148*55fea89dSDan Cross u8_t unused2; 149eef4f27bSRobert Mustacchi u8_t tcp_udp_hdr_offset; 150eef4f27bSRobert Mustacchi #else 151eef4f27bSRobert Mustacchi u16_t tcp_udp_hdr_offset; 152eef4f27bSRobert Mustacchi #endif 153eef4f27bSRobert Mustacchi u16_t ip_xsum; 154*55fea89dSDan Cross 155eef4f27bSRobert Mustacchi u16_t tcp_payload_len; 156eef4f27bSRobert Mustacchi u16_t tcp_udp_xsum; 157*55fea89dSDan Cross 158eef4f27bSRobert Mustacchi u16_t l2_payload_raw_xsum; 159eef4f27bSRobert Mustacchi u16_t pseud_xsum; 160eef4f27bSRobert Mustacchi 161eef4f27bSRobert Mustacchi u16_t l3_payload_raw_xsum; 162eef4f27bSRobert Mustacchi // this field has been extended to 2-byte in Xinan 163eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5706) 164*55fea89dSDan Cross u8_t unused3; 165eef4f27bSRobert Mustacchi u8_t data_offset; 166eef4f27bSRobert Mustacchi #else 167eef4f27bSRobert Mustacchi u16_t data_offset; 168*55fea89dSDan Cross #endif 169eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 170eef4f27bSRobert Mustacchi u32_t cid; 171eef4f27bSRobert Mustacchi 172eef4f27bSRobert Mustacchi u16_t unused4; 173eef4f27bSRobert Mustacchi u16_t cs16; 174eef4f27bSRobert Mustacchi 175eef4f27bSRobert Mustacchi u16_t unused5; 176eef4f27bSRobert Mustacchi u16_t ext_status; 177*55fea89dSDan Cross 178eef4f27bSRobert Mustacchi } rxpq_l_t; 179eef4f27bSRobert Mustacchi 180eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 181eef4f27bSRobert Mustacchi typedef rxpq_l_t rxpq_t; 182eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 183eef4f27bSRobert Mustacchi typedef rxpq_b_t rxpq_t; 184eef4f27bSRobert Mustacchi #endif 185eef4f27bSRobert Mustacchi 186eef4f27bSRobert Mustacchi /* 187eef4f27bSRobert Mustacchi * rv2ppq_generic definition 188eef4f27bSRobert Mustacchi */ 189eef4f27bSRobert Mustacchi typedef struct rv2ppq_generic_b 190eef4f27bSRobert Mustacchi { 191eef4f27bSRobert Mustacchi u32_t cid; 192eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 193eef4f27bSRobert Mustacchi u16_t operand_flags; 194eef4f27bSRobert Mustacchi u8_t knum; 195eef4f27bSRobert Mustacchi u8_t opcode; 196eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_UNUSED 0 197eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_NOP 1 198eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_OPAQUE 2 199eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L2_PLACE 3 200eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L4_PLACE 4 201eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L4_FLUSH 5 202eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L5_PLACE 10 203eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L5_FLUSH 14 204eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_DBG_RDMA 17 205eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_DBG_RV2P 18 206eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L4_INDICATE_TIMEOUT 20 207eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L2_JUMBO_PLACE 26 208eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_L2_FLUSH_BD_CHAIN 28 209eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_RV2PPQ_VALUE_FLR 29 // X1V only 210eef4f27bSRobert Mustacchi 211*55fea89dSDan Cross u16_t operand16_0; // Note that 16_0 and 16_1 will be absorbed 212eef4f27bSRobert Mustacchi u16_t operand16_1; // by RDMA and won't be passed to COM 213eef4f27bSRobert Mustacchi u16_t operand16_2; 214eef4f27bSRobert Mustacchi u16_t operand16_3; 215eef4f27bSRobert Mustacchi u16_t operand16_4; 216eef4f27bSRobert Mustacchi u16_t operand16_5; 217eef4f27bSRobert Mustacchi u16_t operand16_6; 218eef4f27bSRobert Mustacchi u16_t operand16_7; 219eef4f27bSRobert Mustacchi u32_t operand32_0; // Note that 32_0 and 32_1 will be absorbed 220*55fea89dSDan Cross u32_t operand32_1; // by RDMA and won't be passed to COM 221eef4f27bSRobert Mustacchi u32_t operand32_2; 222eef4f27bSRobert Mustacchi u32_t operand32_3; 223eef4f27bSRobert Mustacchi u32_t operand32_4; 224eef4f27bSRobert Mustacchi u8_t rdma_action; // no need to be cleared by RXP, RV2P will do it 225eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 226eef4f27bSRobert Mustacchi u16_t cs16; 227eef4f27bSRobert Mustacchi } rv2ppq_generic_b_t; 228eef4f27bSRobert Mustacchi 229eef4f27bSRobert Mustacchi typedef struct rv2ppq_generic_l 230eef4f27bSRobert Mustacchi { 231eef4f27bSRobert Mustacchi u32_t cid; 232eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 233eef4f27bSRobert Mustacchi u8_t opcode; 234eef4f27bSRobert Mustacchi u8_t knum; 235eef4f27bSRobert Mustacchi u16_t operand_flags; 236eef4f27bSRobert Mustacchi u16_t operand16_1; // by RDMA and won't be passed to COM 237*55fea89dSDan Cross u16_t operand16_0; // Note that 16_0 and 16_1 will be absorbed 238eef4f27bSRobert Mustacchi u16_t operand16_3; 239eef4f27bSRobert Mustacchi u16_t operand16_2; 240eef4f27bSRobert Mustacchi u16_t operand16_5; 241eef4f27bSRobert Mustacchi u16_t operand16_4; 242eef4f27bSRobert Mustacchi u16_t operand16_7; 243eef4f27bSRobert Mustacchi u16_t operand16_6; 244eef4f27bSRobert Mustacchi u32_t operand32_0; // Note that 32_0 and 32_1 will be absorbed 245*55fea89dSDan Cross u32_t operand32_1; // by RDMA and won't be passed to COM 246eef4f27bSRobert Mustacchi u32_t operand32_2; 247eef4f27bSRobert Mustacchi u32_t operand32_3; 248eef4f27bSRobert Mustacchi u32_t operand32_4; 249eef4f27bSRobert Mustacchi u16_t cs16; 250eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 251eef4f27bSRobert Mustacchi u8_t rdma_action; // no need to be cleared by RXP, RV2P will do it 252eef4f27bSRobert Mustacchi } rv2ppq_generic_l_t; 253eef4f27bSRobert Mustacchi 254eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 255eef4f27bSRobert Mustacchi typedef rv2ppq_generic_l_t rv2ppq_generic_t; 256eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 257eef4f27bSRobert Mustacchi typedef rv2ppq_generic_b_t rv2ppq_generic_t; 258eef4f27bSRobert Mustacchi #endif 259eef4f27bSRobert Mustacchi 260eef4f27bSRobert Mustacchi 261eef4f27bSRobert Mustacchi 262eef4f27bSRobert Mustacchi /* 263eef4f27bSRobert Mustacchi * rv2ppq_l2_place definition 264eef4f27bSRobert Mustacchi */ 265eef4f27bSRobert Mustacchi typedef struct rv2ppq_l2_place_b 266eef4f27bSRobert Mustacchi { 267eef4f27bSRobert Mustacchi u32_t cid; 268eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 269eef4f27bSRobert Mustacchi u16_t operand_flags; 270eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_PREPEND_L2_FRAME_HEADER (1<<0) 271eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_LAST (1<<1) 272eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_ENQUEUE_TO_MCP (1<<2) 273eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_DROP_PKT (1<<3) 274eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_MCAST (1<<4) 275eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_BCAST (1<<5) 276eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_VMQ (1<<6) 277eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_OOO_PLACE (1<<7) 278eef4f27bSRobert Mustacchi #define L2_OPERAND_FLAGS_CU_PKT (1<<14) 279eef4f27bSRobert Mustacchi 280eef4f27bSRobert Mustacchi u8_t knum; 281eef4f27bSRobert Mustacchi u8_t opcode; 282eef4f27bSRobert Mustacchi u16_t offset; 283eef4f27bSRobert Mustacchi u16_t length; // represent look-ahead_hdr length if VMQ flag is set (total pkt len otherwise) 284eef4f27bSRobert Mustacchi u16_t bits_status; 285eef4f27bSRobert Mustacchi u16_t vlan_tag; 286eef4f27bSRobert Mustacchi u16_t ip_xsum; 287eef4f27bSRobert Mustacchi u16_t udp_tcp_xsum; 288eef4f27bSRobert Mustacchi u16_t unused_0; 289*55fea89dSDan Cross u16_t packet_length; // represent total packet length 290eef4f27bSRobert Mustacchi u32_t unused_1[2]; 291eef4f27bSRobert Mustacchi u16_t unused_2; 292eef4f27bSRobert Mustacchi u16_t error_flags; 293eef4f27bSRobert Mustacchi #define L2_ERROR_FLAGS_CRC_ERROR (1<<1) 294eef4f27bSRobert Mustacchi #define L2_ERROR_FLAGS_PHY_DECODE_ERROR (1<<2) 295eef4f27bSRobert Mustacchi #define L2_ERROR_FLAGS_ALIGNMENT_ERROR (1<<3) 296eef4f27bSRobert Mustacchi #define L2_ERROR_FLAGS_TOO_SHORT_ERROR (1<<4) 297eef4f27bSRobert Mustacchi #define L2_ERROR_FLAGS_GIANT_FRAME_ERROR (1<<5) 298eef4f27bSRobert Mustacchi 299eef4f27bSRobert Mustacchi u32_t hash; 300eef4f27bSRobert Mustacchi u32_t rt_bt; 301eef4f27bSRobert Mustacchi u8_t rdma_action; // no need to be cleared by RXP, RV2P will do it 302eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 303eef4f27bSRobert Mustacchi u16_t cs16; 304*55fea89dSDan Cross 305eef4f27bSRobert Mustacchi } rv2ppq_l2_place_b_t; 306eef4f27bSRobert Mustacchi 307eef4f27bSRobert Mustacchi typedef struct rv2ppq_l2_place_l 308eef4f27bSRobert Mustacchi { 309eef4f27bSRobert Mustacchi u32_t cid; 310eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 311eef4f27bSRobert Mustacchi u8_t opcode; 312eef4f27bSRobert Mustacchi u8_t knum; 313eef4f27bSRobert Mustacchi u16_t operand_flags; 314eef4f27bSRobert Mustacchi u16_t length; // represent look-ahead_hdr_length if VMQ flag is set (total pkt len otherwise) 315eef4f27bSRobert Mustacchi u16_t offset; 316eef4f27bSRobert Mustacchi u16_t vlan_tag; 317eef4f27bSRobert Mustacchi u16_t bits_status; 318eef4f27bSRobert Mustacchi u16_t udp_tcp_xsum; 319eef4f27bSRobert Mustacchi u16_t ip_xsum; 320*55fea89dSDan Cross u16_t packet_length; // represent total packet length if VMQ flag is set 321eef4f27bSRobert Mustacchi u16_t unused_0; 322eef4f27bSRobert Mustacchi u32_t unused_1[2]; 323eef4f27bSRobert Mustacchi u16_t error_flags; 324eef4f27bSRobert Mustacchi u16_t unused_2; 325eef4f27bSRobert Mustacchi u32_t hash; 326eef4f27bSRobert Mustacchi u32_t rt_bt; 327eef4f27bSRobert Mustacchi u16_t cs16; 328eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 329eef4f27bSRobert Mustacchi u8_t rdma_action; // no need to be cleared by RXP, RV2P will do it 330eef4f27bSRobert Mustacchi 331eef4f27bSRobert Mustacchi } rv2ppq_l2_place_l_t; 332eef4f27bSRobert Mustacchi 333eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 334eef4f27bSRobert Mustacchi typedef rv2ppq_l2_place_l_t rv2ppq_l2_place_t; 335eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 336eef4f27bSRobert Mustacchi typedef rv2ppq_l2_place_b_t rv2ppq_l2_place_t; 337eef4f27bSRobert Mustacchi #endif 338eef4f27bSRobert Mustacchi 339eef4f27bSRobert Mustacchi 340eef4f27bSRobert Mustacchi /* 341eef4f27bSRobert Mustacchi * rv2ppq_l2_flush_bd_chain definition 342eef4f27bSRobert Mustacchi */ 343eef4f27bSRobert Mustacchi typedef struct rv2ppq_l2_flush_bd_chain_b 344eef4f27bSRobert Mustacchi { 345eef4f27bSRobert Mustacchi u32_t cid; 346eef4f27bSRobert Mustacchi u32_t unused_0; 347eef4f27bSRobert Mustacchi u16_t unused_1; 348eef4f27bSRobert Mustacchi u8_t unused_2; 349eef4f27bSRobert Mustacchi u8_t opcode; 350eef4f27bSRobert Mustacchi u32_t unused_3[9]; 351eef4f27bSRobert Mustacchi u8_t rdma_action; // no need to be cleared by RXP, RV2P will do it 352eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 353eef4f27bSRobert Mustacchi u16_t cs16; 354*55fea89dSDan Cross 355eef4f27bSRobert Mustacchi } rv2ppq_l2_flush_bd_chain_b_t; 356eef4f27bSRobert Mustacchi 357eef4f27bSRobert Mustacchi typedef struct rv2ppq_l2_flush_bd_chain_l 358eef4f27bSRobert Mustacchi { 359eef4f27bSRobert Mustacchi u32_t cid; 360eef4f27bSRobert Mustacchi u32_t unused_0; 361eef4f27bSRobert Mustacchi u8_t opcode; 362eef4f27bSRobert Mustacchi u8_t unused_2; 363eef4f27bSRobert Mustacchi u16_t unused_1; 364eef4f27bSRobert Mustacchi u32_t unused_3[9]; 365eef4f27bSRobert Mustacchi u16_t cs16; 366eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 367eef4f27bSRobert Mustacchi u8_t rdma_action; // no need to be cleared by RXP, RV2P will do it 368*55fea89dSDan Cross 369eef4f27bSRobert Mustacchi } rv2ppq_l2_flush_bd_chain_l_t; 370eef4f27bSRobert Mustacchi 371eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 372eef4f27bSRobert Mustacchi typedef rv2ppq_l2_flush_bd_chain_l_t rv2ppq_l2_flush_bd_chain_t; 373eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 374eef4f27bSRobert Mustacchi typedef rv2ppq_l2_flush_bd_chain_b_t rv2ppq_l2_flush_bd_chain_t; 375eef4f27bSRobert Mustacchi #endif 376eef4f27bSRobert Mustacchi 377eef4f27bSRobert Mustacchi /* 378eef4f27bSRobert Mustacchi * comq_generic definition 379eef4f27bSRobert Mustacchi */ 380*55fea89dSDan Cross typedef enum 381eef4f27bSRobert Mustacchi { 382eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_UNUSED = 0, 383eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_NOP = GENERIC_OPCODE_RV2PPQ_VALUE_NOP , 384eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_OPAQUE = GENERIC_OPCODE_RV2PPQ_VALUE_OPAQUE , 385eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L2_COMPLETION = GENERIC_OPCODE_RV2PPQ_VALUE_L2_PLACE , 386eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_COMPLETION = GENERIC_OPCODE_RV2PPQ_VALUE_L4_PLACE , 387eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_FLUSH = GENERIC_OPCODE_RV2PPQ_VALUE_L4_FLUSH , 388eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_STARTGEN = 6, 389eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_ADDGEN = 7, 390eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_PLACE = 8, 391eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_DISCARDGEN = 9, 392eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L5_PLACE = GENERIC_OPCODE_RV2PPQ_VALUE_L5_PLACE, 393eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L2_NOBUFFER = 11, 394eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_ARMPUSH = 12, 395eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_RWINUPDATE = 13, 396eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L5_FLUSH = GENERIC_OPCODE_RV2PPQ_VALUE_L5_FLUSH, 397eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_INDICATE = 15, 398eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_COPYGEN = 16, 399eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_DBG_RDMA = GENERIC_OPCODE_RV2PPQ_VALUE_DBG_RDMA, 400eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_DBG_RV2P = GENERIC_OPCODE_RV2PPQ_VALUE_DBG_RV2P, 401eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L4_MQUPLOAD = 19, 402eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_ISCSI_SGL_PLACE = 22, 403eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_ISCSI_RQ_PLACE = 23, 404eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_ISCSI_RQ_FLUSH = 24, 405eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_ISCSI_SGL_FLUSH = 25, 406eef4f27bSRobert Mustacchi 407eef4f27bSRobert Mustacchi // Jumbo mode and L2 FLUSH are for Linux only 408eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L2_JUMBO_COMPLETION = GENERIC_OPCODE_RV2PPQ_VALUE_L2_JUMBO_PLACE, 409eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L2_JUMBO_NOBUFFER = 27, 410eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_L2_FLUSH_BD_CHAIN = GENERIC_OPCODE_RV2PPQ_VALUE_L2_FLUSH_BD_CHAIN, 411eef4f27bSRobert Mustacchi GENERIC_OPCODE_COMQ_VALUE_FLR = GENERIC_OPCODE_RV2PPQ_VALUE_FLR, 412*55fea89dSDan Cross MAX_COMQ_OPCODE 413eef4f27bSRobert Mustacchi }GENERIC_OPCODE_COMQ_t ; 414eef4f27bSRobert Mustacchi 415eef4f27bSRobert Mustacchi 416eef4f27bSRobert Mustacchi typedef struct comq_generic_b 417eef4f27bSRobert Mustacchi { 418eef4f27bSRobert Mustacchi u32_t cid; 419eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 420eef4f27bSRobert Mustacchi u16_t operand_flags; 421eef4f27bSRobert Mustacchi u8_t knum; 422eef4f27bSRobert Mustacchi u8_t opcode; 423eef4f27bSRobert Mustacchi #define GENERIC_OPCODE_COMQ_VALUE (0xff<<0) 424eef4f27bSRobert Mustacchi u16_t operand16_2; 425eef4f27bSRobert Mustacchi u16_t operand16_3; 426eef4f27bSRobert Mustacchi u16_t operand16_4; 427eef4f27bSRobert Mustacchi u16_t operand16_5; 428eef4f27bSRobert Mustacchi u16_t operand16_6; 429eef4f27bSRobert Mustacchi u16_t operand16_7; 430eef4f27bSRobert Mustacchi u32_t operand32_2; 431eef4f27bSRobert Mustacchi u32_t operand32_3; 432eef4f27bSRobert Mustacchi u32_t operand32_4; 433eef4f27bSRobert Mustacchi u8_t rdma_action; 434eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 435eef4f27bSRobert Mustacchi u16_t cs16; 436eef4f27bSRobert Mustacchi } comq_generic_b_t; 437eef4f27bSRobert Mustacchi 438eef4f27bSRobert Mustacchi typedef struct comq_generic_l 439eef4f27bSRobert Mustacchi { 440eef4f27bSRobert Mustacchi u32_t cid; 441eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 442eef4f27bSRobert Mustacchi u8_t opcode; 443eef4f27bSRobert Mustacchi u8_t knum; 444eef4f27bSRobert Mustacchi u16_t operand_flags; 445eef4f27bSRobert Mustacchi u16_t operand16_3; 446eef4f27bSRobert Mustacchi u16_t operand16_2; 447eef4f27bSRobert Mustacchi u16_t operand16_5; 448eef4f27bSRobert Mustacchi u16_t operand16_4; 449eef4f27bSRobert Mustacchi u16_t operand16_7; 450eef4f27bSRobert Mustacchi u16_t operand16_6; 451eef4f27bSRobert Mustacchi u32_t operand32_2; 452eef4f27bSRobert Mustacchi u32_t operand32_3; 453eef4f27bSRobert Mustacchi u32_t operand32_4; 454eef4f27bSRobert Mustacchi u16_t cs16; 455eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 456eef4f27bSRobert Mustacchi u8_t rdma_action; 457eef4f27bSRobert Mustacchi } comq_generic_l_t; 458eef4f27bSRobert Mustacchi 459eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 460eef4f27bSRobert Mustacchi typedef comq_generic_l_t comq_generic_t; 461eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 462eef4f27bSRobert Mustacchi typedef comq_generic_b_t comq_generic_t; 463eef4f27bSRobert Mustacchi #endif 464eef4f27bSRobert Mustacchi 465eef4f27bSRobert Mustacchi 466eef4f27bSRobert Mustacchi /* 467eef4f27bSRobert Mustacchi * comq_l2_completion definition 468eef4f27bSRobert Mustacchi */ 469eef4f27bSRobert Mustacchi typedef struct comq_l2_completion_b 470eef4f27bSRobert Mustacchi { 471eef4f27bSRobert Mustacchi u32_t cid; 472eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 473eef4f27bSRobert Mustacchi u16_t operand_flags; 474eef4f27bSRobert Mustacchi u8_t knum; 475eef4f27bSRobert Mustacchi u8_t opcode; 476eef4f27bSRobert Mustacchi u16_t bits_status; 477eef4f27bSRobert Mustacchi u16_t vlan_tag; 478eef4f27bSRobert Mustacchi u16_t ip_xsum; 479eef4f27bSRobert Mustacchi u16_t udp_tcp_xsum; 480eef4f27bSRobert Mustacchi u16_t nx_bidx; 481eef4f27bSRobert Mustacchi u16_t packet_length; // total pkt len (MCP will need this info) 482eef4f27bSRobert Mustacchi u16_t unused_0; 483eef4f27bSRobert Mustacchi u16_t error_flags; 484eef4f27bSRobert Mustacchi u32_t hash; 485eef4f27bSRobert Mustacchi u32_t rt_bt; 486eef4f27bSRobert Mustacchi u8_t rdma_action; 487eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 488eef4f27bSRobert Mustacchi u16_t cs16; 489eef4f27bSRobert Mustacchi 490eef4f27bSRobert Mustacchi } comq_l2_completion_b_t; 491eef4f27bSRobert Mustacchi 492eef4f27bSRobert Mustacchi typedef struct comq_l2_completion_l 493eef4f27bSRobert Mustacchi { 494eef4f27bSRobert Mustacchi u32_t cid; 495eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 496eef4f27bSRobert Mustacchi u8_t opcode; 497eef4f27bSRobert Mustacchi u8_t knum; 498eef4f27bSRobert Mustacchi u16_t operand_flags; 499eef4f27bSRobert Mustacchi u16_t vlan_tag; 500eef4f27bSRobert Mustacchi u16_t bits_status; 501eef4f27bSRobert Mustacchi u16_t udp_tcp_xsum; 502eef4f27bSRobert Mustacchi u16_t ip_xsum; 503eef4f27bSRobert Mustacchi u16_t packet_length; // total pkt len (MCP will need this info) 504eef4f27bSRobert Mustacchi u16_t nx_bidx; 505eef4f27bSRobert Mustacchi u16_t error_flags; 506eef4f27bSRobert Mustacchi u16_t unused_0; 507eef4f27bSRobert Mustacchi u32_t hash; 508eef4f27bSRobert Mustacchi u32_t rt_bt; 509eef4f27bSRobert Mustacchi u16_t cs16; 510eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 511eef4f27bSRobert Mustacchi u8_t rdma_action; 512*55fea89dSDan Cross 513eef4f27bSRobert Mustacchi } comq_l2_completion_l_t; 514eef4f27bSRobert Mustacchi 515eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 516eef4f27bSRobert Mustacchi typedef comq_l2_completion_l_t comq_l2_completion_t; 517eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 518eef4f27bSRobert Mustacchi typedef comq_l2_completion_b_t comq_l2_completion_t; 519eef4f27bSRobert Mustacchi #endif 520eef4f27bSRobert Mustacchi 521eef4f27bSRobert Mustacchi /* 522eef4f27bSRobert Mustacchi * comq_l2_nobuffer definition 523eef4f27bSRobert Mustacchi */ 524eef4f27bSRobert Mustacchi typedef struct comq_l2_nobuffer_b 525eef4f27bSRobert Mustacchi { 526eef4f27bSRobert Mustacchi u32_t l2_nobuff_cid; 527eef4f27bSRobert Mustacchi u32_t l2_nobuff_mbuf_cluster; 528eef4f27bSRobert Mustacchi u16_t l2_nobuff_operand_flags; 529eef4f27bSRobert Mustacchi u8_t l2_nobuff_knum; 530eef4f27bSRobert Mustacchi u8_t l2_nobuff_opcode; 531eef4f27bSRobert Mustacchi u16_t l2_nobuff_bits_status; 532eef4f27bSRobert Mustacchi u16_t l2_nobuff_vlan_tag; 533eef4f27bSRobert Mustacchi u16_t l2_nobuff_ip_xsum; 534eef4f27bSRobert Mustacchi u16_t l2_nobuff_udp_tcp_xsum; 535eef4f27bSRobert Mustacchi u16_t l2_nobuff_nx_bidx; 536eef4f27bSRobert Mustacchi u16_t l2_nobuff_packet_length; // total pkt len (MCP will need this info) 537eef4f27bSRobert Mustacchi u16_t unused_1; 538eef4f27bSRobert Mustacchi u16_t l2_nobuff_error_flags; 539eef4f27bSRobert Mustacchi u32_t l2_nobuff_hash; 540eef4f27bSRobert Mustacchi u32_t unused_2; 541eef4f27bSRobert Mustacchi u8_t l2_nobuff_rdma_action; 542eef4f27bSRobert Mustacchi u8_t l2_nobuff_cs16_pkt_len; 543eef4f27bSRobert Mustacchi u16_t l2_nobuff_cs16; 544*55fea89dSDan Cross 545eef4f27bSRobert Mustacchi } comq_l2_nobuffer_b_t; 546eef4f27bSRobert Mustacchi 547eef4f27bSRobert Mustacchi typedef struct comq_l2_nobuffer_l 548eef4f27bSRobert Mustacchi { 549eef4f27bSRobert Mustacchi u32_t l2_nobuff_cid; 550eef4f27bSRobert Mustacchi u32_t l2_nobuff_mbuf_cluster; 551eef4f27bSRobert Mustacchi u8_t l2_nobuff_opcode; 552eef4f27bSRobert Mustacchi u8_t l2_nobuff_knum; 553eef4f27bSRobert Mustacchi u16_t l2_nobuff_operand_flags; 554eef4f27bSRobert Mustacchi u16_t l2_nobuff_vlan_tag; 555eef4f27bSRobert Mustacchi u16_t l2_nobuff_bits_status; 556eef4f27bSRobert Mustacchi u16_t l2_nobuff_udp_tcp_xsum; 557eef4f27bSRobert Mustacchi u16_t l2_nobuff_ip_xsum; 558eef4f27bSRobert Mustacchi u16_t l2_nobuff_packet_length; // total pkt len (MCP will need this info) 559eef4f27bSRobert Mustacchi u16_t l2_nobuff_nx_bidx; 560eef4f27bSRobert Mustacchi u16_t l2_nobuff_error_flags; 561eef4f27bSRobert Mustacchi u16_t unused_1; 562eef4f27bSRobert Mustacchi u32_t l2_nobuff_hash; 563eef4f27bSRobert Mustacchi u32_t unused_2; 564eef4f27bSRobert Mustacchi u16_t l2_nobuff_cs16; 565eef4f27bSRobert Mustacchi u8_t l2_nobuff_cs16_pkt_len; 566eef4f27bSRobert Mustacchi u8_t l2_nobuff_rdma_action; 567*55fea89dSDan Cross 568eef4f27bSRobert Mustacchi } comq_l2_nobuffer_l_t; 569eef4f27bSRobert Mustacchi 570eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 571eef4f27bSRobert Mustacchi typedef comq_l2_nobuffer_l_t comq_l2_nobuffer_t; 572eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 573eef4f27bSRobert Mustacchi typedef comq_l2_nobuffer_b_t comq_l2_nobuffer_t; 574eef4f27bSRobert Mustacchi #endif 575eef4f27bSRobert Mustacchi 576eef4f27bSRobert Mustacchi 577eef4f27bSRobert Mustacchi /* 578eef4f27bSRobert Mustacchi * comq_l2_flr definition 579eef4f27bSRobert Mustacchi */ 580eef4f27bSRobert Mustacchi typedef struct comq_l2_flr_b 581eef4f27bSRobert Mustacchi { 582eef4f27bSRobert Mustacchi u32_t cid; 583eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 584eef4f27bSRobert Mustacchi u16_t operand_flags; 585eef4f27bSRobert Mustacchi u8_t knum; 586eef4f27bSRobert Mustacchi u8_t opcode; 587eef4f27bSRobert Mustacchi u16_t bits_status; 588eef4f27bSRobert Mustacchi u16_t vlan_tag; 589eef4f27bSRobert Mustacchi u16_t ip_xsum; 590eef4f27bSRobert Mustacchi u16_t udp_tcp_xsum; 591eef4f27bSRobert Mustacchi u16_t nx_bidx; 592eef4f27bSRobert Mustacchi u16_t unused_0; 593eef4f27bSRobert Mustacchi u16_t unused_1; 594eef4f27bSRobert Mustacchi u16_t error_flags; 595eef4f27bSRobert Mustacchi u32_t hash; 596eef4f27bSRobert Mustacchi u32_t unused_2; 597eef4f27bSRobert Mustacchi u8_t rdma_action; 598eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 599eef4f27bSRobert Mustacchi u16_t cs16; 600*55fea89dSDan Cross 601eef4f27bSRobert Mustacchi } comq_l2_flr_b_t; 602eef4f27bSRobert Mustacchi 603eef4f27bSRobert Mustacchi typedef struct comq_l2_flr_l 604eef4f27bSRobert Mustacchi { 605eef4f27bSRobert Mustacchi u32_t cid; 606eef4f27bSRobert Mustacchi u32_t mbuf_cluster; 607eef4f27bSRobert Mustacchi u8_t opcode; 608eef4f27bSRobert Mustacchi u8_t knum; 609eef4f27bSRobert Mustacchi u16_t operand_flags; 610eef4f27bSRobert Mustacchi u16_t vlan_tag; 611eef4f27bSRobert Mustacchi u16_t bits_status; 612eef4f27bSRobert Mustacchi u16_t udp_tcp_xsum; 613eef4f27bSRobert Mustacchi u16_t ip_xsum; 614eef4f27bSRobert Mustacchi u16_t unused_0; 615eef4f27bSRobert Mustacchi u16_t nx_bidx; 616eef4f27bSRobert Mustacchi u16_t error_flags; 617eef4f27bSRobert Mustacchi u16_t unused_1; 618eef4f27bSRobert Mustacchi u32_t hash; 619eef4f27bSRobert Mustacchi u32_t unused_2; 620eef4f27bSRobert Mustacchi u16_t cs16; 621eef4f27bSRobert Mustacchi u8_t cs16_pkt_len; 622eef4f27bSRobert Mustacchi u8_t rdma_action; 623*55fea89dSDan Cross 624eef4f27bSRobert Mustacchi } comq_l2_flr_l_t; 625eef4f27bSRobert Mustacchi 626eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 627eef4f27bSRobert Mustacchi typedef comq_l2_flr_l_t comq_l2_flr_t; 628eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 629eef4f27bSRobert Mustacchi typedef comq_l2_flr_b_t comq_l2_flr_t; 630eef4f27bSRobert Mustacchi #endif 631eef4f27bSRobert Mustacchi 632eef4f27bSRobert Mustacchi /* 633eef4f27bSRobert Mustacchi * comxq_t 634eef4f27bSRobert Mustacchi */ 635eef4f27bSRobert Mustacchi typedef struct comxq_b 636eef4f27bSRobert Mustacchi { 637eef4f27bSRobert Mustacchi u32_t cid; 638eef4f27bSRobert Mustacchi u16_t flags; 639eef4f27bSRobert Mustacchi u16_t unused1; 640eef4f27bSRobert Mustacchi u32_t snd_next; 641eef4f27bSRobert Mustacchi }comxq_b_t; 642eef4f27bSRobert Mustacchi 643eef4f27bSRobert Mustacchi typedef struct comxq_l 644eef4f27bSRobert Mustacchi { 645eef4f27bSRobert Mustacchi u32_t cid; 646eef4f27bSRobert Mustacchi u16_t unused1; 647eef4f27bSRobert Mustacchi u16_t flags; 648eef4f27bSRobert Mustacchi u32_t snd_next; 649eef4f27bSRobert Mustacchi }comxq_l_t; 650eef4f27bSRobert Mustacchi 651eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 652eef4f27bSRobert Mustacchi typedef comxq_l_t comxq_t; 653eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 654eef4f27bSRobert Mustacchi typedef comxq_b_t comxq_t; 655eef4f27bSRobert Mustacchi #endif 656*55fea89dSDan Cross 657eef4f27bSRobert Mustacchi /* 658eef4f27bSRobert Mustacchi * comtq_t 659eef4f27bSRobert Mustacchi */ 660eef4f27bSRobert Mustacchi typedef struct comtq_b 661eef4f27bSRobert Mustacchi { 662eef4f27bSRobert Mustacchi u32_t cid; 663eef4f27bSRobert Mustacchi u32_t val; 664eef4f27bSRobert Mustacchi u8_t type; 665eef4f27bSRobert Mustacchi u8_t unused[3]; 666eef4f27bSRobert Mustacchi }comtq_b_t; 667eef4f27bSRobert Mustacchi 668eef4f27bSRobert Mustacchi typedef struct comtq_l 669eef4f27bSRobert Mustacchi { 670eef4f27bSRobert Mustacchi u32_t cid; 671eef4f27bSRobert Mustacchi u32_t val; 672eef4f27bSRobert Mustacchi u8_t unused[3]; 673eef4f27bSRobert Mustacchi u8_t type; 674eef4f27bSRobert Mustacchi }comtq_l_t; 675eef4f27bSRobert Mustacchi 676eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 677eef4f27bSRobert Mustacchi typedef comtq_l_t comtq_t; 678eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 679eef4f27bSRobert Mustacchi typedef comtq_b_t comtq_t; 680eef4f27bSRobert Mustacchi #endif 681eef4f27bSRobert Mustacchi 682eef4f27bSRobert Mustacchi /* 683eef4f27bSRobert Mustacchi * csq_t 684eef4f27bSRobert Mustacchi */ 685eef4f27bSRobert Mustacchi typedef struct csq_b 686eef4f27bSRobert Mustacchi { 687eef4f27bSRobert Mustacchi u32_t cid; 688eef4f27bSRobert Mustacchi // bit 7 lsb of CID is always 0, but CSQ can be enqueued by MQ or COM. 689eef4f27bSRobert Mustacchi // For L4, we can use this bit to indicate the source 690eef4f27bSRobert Mustacchi // Note that 7 lsb is ALWAYS masked out to be zero by HW 691eef4f27bSRobert Mustacchi #define CSQ_SRC_MQ 0 692eef4f27bSRobert Mustacchi #define CSQ_SRC_COM 0x80 693*55fea89dSDan Cross #define CSQ_SRC_MASK 0xFF 694eef4f27bSRobert Mustacchi u8_t flags; 695eef4f27bSRobert Mustacchi u8_t unused[3]; 696eef4f27bSRobert Mustacchi }csq_b_t; 697eef4f27bSRobert Mustacchi 698eef4f27bSRobert Mustacchi typedef struct csq_l 699eef4f27bSRobert Mustacchi { 700eef4f27bSRobert Mustacchi u32_t cid; 701eef4f27bSRobert Mustacchi u8_t unused[3]; 702eef4f27bSRobert Mustacchi u8_t flags; 703eef4f27bSRobert Mustacchi }csq_l_t; 704eef4f27bSRobert Mustacchi 705eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 706eef4f27bSRobert Mustacchi typedef csq_l_t csq_t; 707eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 708eef4f27bSRobert Mustacchi typedef csq_b_t csq_t; 709eef4f27bSRobert Mustacchi #endif 710eef4f27bSRobert Mustacchi 711eef4f27bSRobert Mustacchi /* 712eef4f27bSRobert Mustacchi * cpq_t 713eef4f27bSRobert Mustacchi */ 714eef4f27bSRobert Mustacchi typedef struct cpq_b 715eef4f27bSRobert Mustacchi { 716eef4f27bSRobert Mustacchi u32_t cid; 717eef4f27bSRobert Mustacchi }cpq_b_t; 718eef4f27bSRobert Mustacchi 719eef4f27bSRobert Mustacchi typedef struct cpq_l 720eef4f27bSRobert Mustacchi { 721eef4f27bSRobert Mustacchi u32_t cid; 722eef4f27bSRobert Mustacchi }cpq_l_t; 723eef4f27bSRobert Mustacchi 724eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 725eef4f27bSRobert Mustacchi typedef cpq_l_t cpq_t; 726eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 727eef4f27bSRobert Mustacchi typedef cpq_b_t cpq_t; 728eef4f27bSRobert Mustacchi #endif 729eef4f27bSRobert Mustacchi 730eef4f27bSRobert Mustacchi /* 731eef4f27bSRobert Mustacchi * rv2ptq_t 732eef4f27bSRobert Mustacchi */ 733eef4f27bSRobert Mustacchi typedef struct rv2ptq_b 734eef4f27bSRobert Mustacchi { 735eef4f27bSRobert Mustacchi u32_t cid; 736eef4f27bSRobert Mustacchi }rv2ptq_b_t; 737eef4f27bSRobert Mustacchi 738eef4f27bSRobert Mustacchi typedef struct rv2ptq_l 739eef4f27bSRobert Mustacchi { 740eef4f27bSRobert Mustacchi u32_t cid; 741eef4f27bSRobert Mustacchi }rv2ptq_l_t; 742eef4f27bSRobert Mustacchi 743eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 744eef4f27bSRobert Mustacchi typedef rv2ptq_l_t rv2ptq_t; 745eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 746eef4f27bSRobert Mustacchi typedef rv2ptq_b_t rv2ptq_t; 747eef4f27bSRobert Mustacchi #endif 748eef4f27bSRobert Mustacchi 749eef4f27bSRobert Mustacchi 750eef4f27bSRobert Mustacchi /* TX FTQs */ 751*55fea89dSDan Cross 752eef4f27bSRobert Mustacchi typedef struct tschq_b 753eef4f27bSRobert Mustacchi { 754eef4f27bSRobert Mustacchi u32_t cid; 755eef4f27bSRobert Mustacchi u8_t flags; 756eef4f27bSRobert Mustacchi u8_t unused[3]; 757eef4f27bSRobert Mustacchi }tschq_b_t; 758eef4f27bSRobert Mustacchi 759eef4f27bSRobert Mustacchi typedef struct tschq_l 760eef4f27bSRobert Mustacchi { 761eef4f27bSRobert Mustacchi u32_t cid; 762eef4f27bSRobert Mustacchi u8_t unused[3]; 763eef4f27bSRobert Mustacchi u8_t flags; 764eef4f27bSRobert Mustacchi }tschq_l_t; 765eef4f27bSRobert Mustacchi 766eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 767eef4f27bSRobert Mustacchi typedef tschq_l_t tschq_t; 768eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 769eef4f27bSRobert Mustacchi typedef tschq_b_t tschq_t; 770eef4f27bSRobert Mustacchi #endif 771eef4f27bSRobert Mustacchi 772eef4f27bSRobert Mustacchi typedef struct txpq_b 773eef4f27bSRobert Mustacchi { 774eef4f27bSRobert Mustacchi u32_t cid; 775eef4f27bSRobert Mustacchi u32_t bseq; 776eef4f27bSRobert Mustacchi u8_t flags_flags; 777eef4f27bSRobert Mustacchi u8_t cmd; 778eef4f27bSRobert Mustacchi u8_t xnum; 779eef4f27bSRobert Mustacchi u8_t protocol_flags; 780eef4f27bSRobert Mustacchi u32_t tcp_rcv_nxt; 781eef4f27bSRobert Mustacchi }txpq_b_t; 782eef4f27bSRobert Mustacchi 783eef4f27bSRobert Mustacchi typedef struct txpq_l 784eef4f27bSRobert Mustacchi { 785eef4f27bSRobert Mustacchi u32_t cid; 786eef4f27bSRobert Mustacchi u32_t bseq; 787eef4f27bSRobert Mustacchi u8_t protocol_flags; 788eef4f27bSRobert Mustacchi u8_t xnum; 789eef4f27bSRobert Mustacchi u8_t cmd; 790eef4f27bSRobert Mustacchi u8_t flags_flags; 791eef4f27bSRobert Mustacchi u32_t tcp_rcv_nxt; 792eef4f27bSRobert Mustacchi }txpq_l_t; 793eef4f27bSRobert Mustacchi 794eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 795eef4f27bSRobert Mustacchi typedef txpq_l_t txpq_t; 796eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 797eef4f27bSRobert Mustacchi typedef txpq_b_t txpq_t; 798eef4f27bSRobert Mustacchi #endif 799eef4f27bSRobert Mustacchi 800eef4f27bSRobert Mustacchi typedef struct tdmaq_b 801eef4f27bSRobert Mustacchi { 802eef4f27bSRobert Mustacchi u32_t cid; 803eef4f27bSRobert Mustacchi tx_bidx_boff_t bidx_boff; 804eef4f27bSRobert Mustacchi u32_t bseq; 805eef4f27bSRobert Mustacchi u32_t snd_next; 806eef4f27bSRobert Mustacchi u8_t cmd; 807eef4f27bSRobert Mustacchi u8_t xnum; 808eef4f27bSRobert Mustacchi u8_t knum; 809eef4f27bSRobert Mustacchi u8_t unused1; 810eef4f27bSRobert Mustacchi u32_t flags_flags; 811eef4f27bSRobert Mustacchi u16_t nbytes; 812eef4f27bSRobert Mustacchi u16_t hole0_boff; 813eef4f27bSRobert Mustacchi u16_t hole1_boff; 814eef4f27bSRobert Mustacchi u16_t hole2_boff; 815eef4f27bSRobert Mustacchi u32_t hole0_fill; 816eef4f27bSRobert Mustacchi u32_t hole1_fill; 817eef4f27bSRobert Mustacchi u32_t hole2_fill; 818eef4f27bSRobert Mustacchi u8_t fnum; 819eef4f27bSRobert Mustacchi u8_t txp_act_cmd; 820eef4f27bSRobert Mustacchi u16_t unused2; 821eef4f27bSRobert Mustacchi }tdmaq_b_t; 822eef4f27bSRobert Mustacchi 823eef4f27bSRobert Mustacchi typedef struct tdmaq_l 824eef4f27bSRobert Mustacchi { 825eef4f27bSRobert Mustacchi u32_t cid; 826eef4f27bSRobert Mustacchi tx_bidx_boff_t bidx_boff; 827eef4f27bSRobert Mustacchi u32_t bseq; 828eef4f27bSRobert Mustacchi u32_t snd_next; 829eef4f27bSRobert Mustacchi u8_t unused1; 830eef4f27bSRobert Mustacchi u8_t knum; 831eef4f27bSRobert Mustacchi u8_t xnum; 832eef4f27bSRobert Mustacchi u8_t cmd; 833eef4f27bSRobert Mustacchi u32_t flags_flags; 834eef4f27bSRobert Mustacchi u16_t hole0_boff; 835eef4f27bSRobert Mustacchi u16_t nbytes; 836eef4f27bSRobert Mustacchi u16_t hole2_boff; 837eef4f27bSRobert Mustacchi u16_t hole1_boff; 838eef4f27bSRobert Mustacchi u32_t hole0_fill; 839eef4f27bSRobert Mustacchi u32_t hole1_fill; 840eef4f27bSRobert Mustacchi u32_t hole2_fill; 841eef4f27bSRobert Mustacchi u16_t unused2; 842eef4f27bSRobert Mustacchi u8_t txp_act_cmd; 843eef4f27bSRobert Mustacchi u8_t fnum; 844eef4f27bSRobert Mustacchi }tdmaq_l_t; 845eef4f27bSRobert Mustacchi 846eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 847eef4f27bSRobert Mustacchi typedef tdmaq_l_t tdmaq_t; 848eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 849eef4f27bSRobert Mustacchi typedef tdmaq_b_t tdmaq_t; 850eef4f27bSRobert Mustacchi #endif 851eef4f27bSRobert Mustacchi 852eef4f27bSRobert Mustacchi typedef struct tpatq_b 853eef4f27bSRobert Mustacchi { 854eef4f27bSRobert Mustacchi u32_t cid; 855eef4f27bSRobert Mustacchi u16_t nbytes; 856eef4f27bSRobert Mustacchi u8_t xnum; 857eef4f27bSRobert Mustacchi u8_t knum; 858eef4f27bSRobert Mustacchi u32_t flags_flags; 859eef4f27bSRobert Mustacchi u16_t raw_chksum; 860eef4f27bSRobert Mustacchi u16_t tpat_bidx; 861eef4f27bSRobert Mustacchi }tpatq_b_t; 862eef4f27bSRobert Mustacchi 863eef4f27bSRobert Mustacchi typedef struct tpatq_l 864eef4f27bSRobert Mustacchi { 865eef4f27bSRobert Mustacchi u32_t cid; 866eef4f27bSRobert Mustacchi u8_t knum; 867eef4f27bSRobert Mustacchi u8_t xnum; 868eef4f27bSRobert Mustacchi u16_t nbytes; 869eef4f27bSRobert Mustacchi u32_t flags_flags; 870eef4f27bSRobert Mustacchi u16_t tpat_bidx; 871eef4f27bSRobert Mustacchi u16_t raw_chksum; 872eef4f27bSRobert Mustacchi }tpatq_l_t; 873eef4f27bSRobert Mustacchi 874eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 875eef4f27bSRobert Mustacchi typedef tpatq_l_t tpatq_t; 876eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 877eef4f27bSRobert Mustacchi typedef tpatq_b_t tpatq_t; 878eef4f27bSRobert Mustacchi #endif 879eef4f27bSRobert Mustacchi 880*55fea89dSDan Cross typedef struct taspq_b 881eef4f27bSRobert Mustacchi { 882eef4f27bSRobert Mustacchi u16_t taspq_hdr_skip; 883eef4f27bSRobert Mustacchi u16_t taspq_hdr_post_skip; 884eef4f27bSRobert Mustacchi u16_t taspq_hdr_size; 885eef4f27bSRobert Mustacchi u16_t taspq_payload_skip; 886eef4f27bSRobert Mustacchi u16_t taspq_payload_size; 887eef4f27bSRobert Mustacchi u16_t taspq_flags; 888eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5709) 889eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_PKT_END TPATF_TASQ_FLAGS_PKT_END 890eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PACKET TPATF_TASQ_FLAGS_MGMT_PACKET 891eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_CATCHUP TPATF_TASQ_FLAGS_CATCHUP_PACKET 892eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DONT_GEN_CRC TPATF_TASQ_FLAGS_DONT_GEN_CRC 893eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_RESERVED TPATF_TASQ_FLAGS_RESERVED 894eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_EMAC TPATF_TASQ_FLAGS_DEST_EMAC 895eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_MIRROR TPATF_TASQ_FLAGS_DEST_RPC_MIRROR 896eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_LOOPBACK TPATF_TASQ_FLAGS_DEST_RPC_LOOPBACK 897eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PKT_TAG TPATF_TASQ_FLAGS_MGMT_PKT_TAG 898*55fea89dSDan Cross #define TASPQ_FLAGS_CS16_VLD TPATF_TASQ_FLAGS_CS16_VLD 899eef4f27bSRobert Mustacchi #else 900eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_PKT_END TPATF_TASPQ_FLAGS_PKT_END 901eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PACKET TPATF_TASPQ_FLAGS_MGMT_PACKET 902eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_CATCHUP TPATF_TASPQ_FLAGS_DEST_RPC_CATCHUP 903eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DONT_GEN_CRC TPATF_TASPQ_FLAGS_DONT_GEN_CRC 904eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_RESERVED TPATF_TASPQ_FLAGS_RESERVED 905eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_EMAC TPATF_TASPQ_FLAGS_DEST_EMAC 906eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_MIRROR TPATF_TASPQ_FLAGS_DEST_RPC_MIRROR 907eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_LOOPBACK TPATF_TASPQ_FLAGS_DEST_RPC_LOOPBACK 908eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PKT_TAG TPATF_TASPQ_FLAGS_MGMT_PKT_TAG 909*55fea89dSDan Cross #define TASPQ_FLAGS_CS16_VLD TPATF_TASPQ_FLAGS_CS16_VLD 910eef4f27bSRobert Mustacchi #endif 911eef4f27bSRobert Mustacchi u16_t taspq_cs16; 912eef4f27bSRobert Mustacchi u16_t taspq_uftq_cmd; /* Only the upper 16 bit of the ftq cmd is used */ 913eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5709) 914eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_CPY_DATA TPATF_TASQ_FTQ_CMD_CPY_DATA 915eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_INTERVEN TPATF_TASQ_FTQ_CMD_ADD_INTERVEN 916eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_DATA TPATF_TASQ_FTQ_CMD_ADD_DATA 917eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_BUSY TPATF_TASQ_FTQ_CMD_BUSY 918eef4f27bSRobert Mustacchi #else 919eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_CPY_DATA TPATF_TASPQ_FTQ_CMD_CPY_DATA 920eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_INTERVEN TPATF_TASPQ_FTQ_CMD_ADD_INTERVEN 921eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_DATA TPATF_TASPQ_FTQ_CMD_ADD_DATA 922eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_BUSY TPATF_TASPQ_FTQ_CMD_BUSY 923*55fea89dSDan Cross #endif 924eef4f27bSRobert Mustacchi } taspq_b_t; 925eef4f27bSRobert Mustacchi 926*55fea89dSDan Cross typedef struct taspq_l 927eef4f27bSRobert Mustacchi { 928eef4f27bSRobert Mustacchi u16_t taspq_hdr_post_skip; 929eef4f27bSRobert Mustacchi u16_t taspq_hdr_skip; 930eef4f27bSRobert Mustacchi u16_t taspq_payload_skip; 931eef4f27bSRobert Mustacchi u16_t taspq_hdr_size; 932eef4f27bSRobert Mustacchi u16_t taspq_flags; 933eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5709) 934eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_PKT_END TPATF_TASQ_FLAGS_PKT_END 935eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PACKET TPATF_TASQ_FLAGS_MGMT_PACKET 936eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_CATCHUP TPATF_TASQ_FLAGS_CATCHUP_PACKET 937eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DONT_GEN_CRC TPATF_TASQ_FLAGS_DONT_GEN_CRC 938eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_RESERVED TPATF_TASQ_FLAGS_RESERVED 939eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_EMAC TPATF_TASQ_FLAGS_DEST_EMAC 940eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_MIRROR TPATF_TASQ_FLAGS_DEST_RPC_MIRROR 941eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_LOOPBACK TPATF_TASQ_FLAGS_DEST_RPC_LOOPBACK 942eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PKT_TAG TPATF_TASQ_FLAGS_MGMT_PKT_TAG 943*55fea89dSDan Cross #define TASPQ_FLAGS_CS16_VLD TPATF_TASQ_FLAGS_CS16_VLD 944eef4f27bSRobert Mustacchi #else 945eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_PKT_END TPATF_TASPQ_FLAGS_PKT_END 946eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PACKET TPATF_TASPQ_FLAGS_MGMT_PACKET 947eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_CATCHUP TPATF_TASPQ_FLAGS_DEST_RPC_CATCHUP 948eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DONT_GEN_CRC TPATF_TASPQ_FLAGS_DONT_GEN_CRC 949eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_RESERVED TPATF_TASPQ_FLAGS_RESERVED 950eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_EMAC TPATF_TASPQ_FLAGS_DEST_EMAC 951eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_MIRROR TPATF_TASPQ_FLAGS_DEST_RPC_MIRROR 952eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_DEST_RPC_LOOPBACK TPATF_TASPQ_FLAGS_DEST_RPC_LOOPBACK 953eef4f27bSRobert Mustacchi #define TASPQ_FLAGS_MGMT_PKT_TAG TPATF_TASPQ_FLAGS_MGMT_PKT_TAG 954*55fea89dSDan Cross #define TASPQ_FLAGS_CS16_VLD TPATF_TASPQ_FLAGS_CS16_VLD 955eef4f27bSRobert Mustacchi #endif 956eef4f27bSRobert Mustacchi u16_t taspq_payload_size; 957eef4f27bSRobert Mustacchi u16_t taspq_uftq_cmd; /* Only the upper 16 bit of the ftq cmd is used */ 958eef4f27bSRobert Mustacchi #if (TARGET_CHIP == 5709) 959eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_CPY_DATA TPATF_TASQ_FTQ_CMD_CPY_DATA 960eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_INTERVEN TPATF_TASQ_FTQ_CMD_ADD_INTERVEN 961eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_DATA TPATF_TASQ_FTQ_CMD_ADD_DATA 962eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_BUSY TPATF_TASQ_FTQ_CMD_BUSY 963eef4f27bSRobert Mustacchi #else 964eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_CPY_DATA TPATF_TASPQ_FTQ_CMD_CPY_DATA 965eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_INTERVEN TPATF_TASPQ_FTQ_CMD_ADD_INTERVEN 966eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_ADD_DATA TPATF_TASPQ_FTQ_CMD_ADD_DATA 967eef4f27bSRobert Mustacchi #define TASPQ_FTQ_CMD_BUSY TPATF_TASPQ_FTQ_CMD_BUSY 968*55fea89dSDan Cross #endif 969eef4f27bSRobert Mustacchi u16_t taspq_cs16; 970eef4f27bSRobert Mustacchi } taspq_l_t; 971eef4f27bSRobert Mustacchi 972eef4f27bSRobert Mustacchi #if defined(LITTLE_ENDIAN) 973eef4f27bSRobert Mustacchi typedef taspq_l_t taspq_t; 974eef4f27bSRobert Mustacchi #elif defined(BIG_ENDIAN) 975eef4f27bSRobert Mustacchi typedef taspq_b_t taspq_t; 976eef4f27bSRobert Mustacchi #endif 977*55fea89dSDan Cross 978eef4f27bSRobert Mustacchi #endif /* _l2_ftq_h_ */ 979