The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/qlnx/qlnxe/ecore_hsi_iwarp.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2017-2018 Cavium, Inc. 
    3  * All rights reserved.
    4  *
    5  *  Redistribution and use in source and binary forms, with or without
    6  *  modification, are permitted provided that the following conditions
    7  *  are met:
    8  *
    9  *  1. Redistributions of source code must retain the above copyright
   10  *     notice, this list of conditions and the following disclaimer.
   11  *  2. Redistributions in binary form must reproduce the above copyright
   12  *     notice, this list of conditions and the following disclaimer in the
   13  *     documentation and/or other materials provided with the distribution.
   14  *
   15  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   16  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
   19  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   20  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   21  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   22  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   23  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   24  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   25  *  POSSIBILITY OF SUCH DAMAGE.
   26  *
   27  * $FreeBSD$
   28  *
   29  */
   30 
   31 #ifndef __ECORE_HSI_IWARP__
   32 #define __ECORE_HSI_IWARP__ 
   33 /************************************************************************/
   34 /* Add include to ecore hsi rdma target for both roce and iwarp ecore driver */
   35 /************************************************************************/
   36 #include "ecore_hsi_rdma.h"
   37 /************************************************************************/
   38 /* Add include to common TCP target */
   39 /************************************************************************/
   40 #include "tcp_common.h"
   41 
   42 /************************************************************************/
   43 /* Add include to common iwarp target for both eCore and protocol iwarp driver */
   44 /************************************************************************/
   45 #include "iwarp_common.h"
   46 
   47 /*
   48  * The iwarp storm context of Ystorm
   49  */
   50 struct ystorm_iwarp_conn_st_ctx
   51 {
   52         __le32 reserved[4];
   53 };
   54 
   55 /*
   56  * The iwarp storm context of Pstorm
   57  */
   58 struct pstorm_iwarp_conn_st_ctx
   59 {
   60         __le32 reserved[36];
   61 };
   62 
   63 /*
   64  * The iwarp storm context of Xstorm
   65  */
   66 struct xstorm_iwarp_conn_st_ctx
   67 {
   68         __le32 reserved[48];
   69 };
   70 
   71 struct e4_xstorm_iwarp_conn_ag_ctx
   72 {
   73         u8 reserved0 /* cdu_validation */;
   74         u8 state /* state */;
   75         u8 flags0;
   76 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK                       0x1 /* exist_in_qm0 */
   77 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT                      0
   78 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_MASK                       0x1 /* exist_in_qm1 */
   79 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_SHIFT                      1
   80 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM2_MASK                       0x1 /* exist_in_qm2 */
   81 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM2_SHIFT                      2
   82 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_MASK                       0x1 /* exist_in_qm3 */
   83 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT                      3
   84 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT4_MASK                               0x1 /* bit4 */
   85 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT                              4
   86 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_MASK                          0x1 /* cf_array_active */
   87 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_SHIFT                         5
   88 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT6_MASK                               0x1 /* bit6 */
   89 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT6_SHIFT                              6
   90 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT7_MASK                               0x1 /* bit7 */
   91 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT7_SHIFT                              7
   92         u8 flags1;
   93 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT8_MASK                               0x1 /* bit8 */
   94 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT8_SHIFT                              0
   95 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT9_MASK                               0x1 /* bit9 */
   96 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT9_SHIFT                              1
   97 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT10_MASK                              0x1 /* bit10 */
   98 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT10_SHIFT                             2
   99 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT11_MASK                              0x1 /* bit11 */
  100 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT11_SHIFT                             3
  101 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT12_MASK                              0x1 /* bit12 */
  102 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT12_SHIFT                             4
  103 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT13_MASK                              0x1 /* bit13 */
  104 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT13_SHIFT                             5
  105 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT14_MASK                              0x1 /* bit14 */
  106 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT14_SHIFT                             6
  107 #define E4_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_MASK     0x1 /* bit15 */
  108 #define E4_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_SHIFT    7
  109         u8 flags2;
  110 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0_MASK                                0x3 /* timer0cf */
  111 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT                               0
  112 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1_MASK                                0x3 /* timer1cf */
  113 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT                               2
  114 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2_MASK                                0x3 /* timer2cf */
  115 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT                               4
  116 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK                     0x3 /* timer_stop_all */
  117 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT                    6
  118         u8 flags3;
  119 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4_MASK                                0x3 /* cf4 */
  120 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT                               0
  121 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5_MASK                                0x3 /* cf5 */
  122 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT                               2
  123 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6_MASK                                0x3 /* cf6 */
  124 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT                               4
  125 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7_MASK                                0x3 /* cf7 */
  126 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT                               6
  127         u8 flags4;
  128 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8_MASK                                0x3 /* cf8 */
  129 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT                               0
  130 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9_MASK                                0x3 /* cf9 */
  131 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9_SHIFT                               2
  132 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10_MASK                               0x3 /* cf10 */
  133 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10_SHIFT                              4
  134 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11_MASK                               0x3 /* cf11 */
  135 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11_SHIFT                              6
  136         u8 flags5;
  137 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12_MASK                               0x3 /* cf12 */
  138 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12_SHIFT                              0
  139 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13_MASK                               0x3 /* cf13 */
  140 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13_SHIFT                              2
  141 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_MASK                        0x3 /* cf14 */
  142 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT                       4
  143 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15_MASK                               0x3 /* cf15 */
  144 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15_SHIFT                              6
  145         u8 flags6;
  146 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_MASK     0x3 /* cf16 */
  147 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_SHIFT    0
  148 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17_MASK                               0x3 /* cf_array_cf */
  149 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17_SHIFT                              2
  150 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18_MASK                               0x3 /* cf18 */
  151 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18_SHIFT                              4
  152 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_MASK                           0x3 /* cf19 */
  153 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_SHIFT                          6
  154         u8 flags7;
  155 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_MASK                           0x3 /* cf20 */
  156 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_SHIFT                          0
  157 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_MASK                           0x3 /* cf21 */
  158 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_SHIFT                          2
  159 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_MASK                          0x3 /* cf22 */
  160 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_SHIFT                         4
  161 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK                              0x1 /* cf0en */
  162 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT                             6
  163 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK                              0x1 /* cf1en */
  164 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT                             7
  165         u8 flags8;
  166 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK                              0x1 /* cf2en */
  167 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT                             0
  168 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK                  0x1 /* cf3en */
  169 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT                 1
  170 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK                              0x1 /* cf4en */
  171 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT                             2
  172 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK                              0x1 /* cf5en */
  173 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT                             3
  174 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK                              0x1 /* cf6en */
  175 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT                             4
  176 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK                              0x1 /* cf7en */
  177 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT                             5
  178 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK                              0x1 /* cf8en */
  179 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT                             6
  180 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9EN_MASK                              0x1 /* cf9en */
  181 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9EN_SHIFT                             7
  182         u8 flags9;
  183 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10EN_MASK                             0x1 /* cf10en */
  184 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10EN_SHIFT                            0
  185 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11EN_MASK                             0x1 /* cf11en */
  186 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11EN_SHIFT                            1
  187 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12EN_MASK                             0x1 /* cf12en */
  188 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12EN_SHIFT                            2
  189 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13EN_MASK                             0x1 /* cf13en */
  190 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13EN_SHIFT                            3
  191 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK                     0x1 /* cf14en */
  192 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT                    4
  193 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15EN_MASK                             0x1 /* cf15en */
  194 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15EN_SHIFT                            5
  195 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_MASK  0x1 /* cf16en */
  196 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_SHIFT 6
  197 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17EN_MASK                             0x1 /* cf_array_cf_en */
  198 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17EN_SHIFT                            7
  199         u8 flags10;
  200 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18EN_MASK                             0x1 /* cf18en */
  201 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18EN_SHIFT                            0
  202 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_MASK                        0x1 /* cf19en */
  203 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT                       1
  204 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_MASK                        0x1 /* cf20en */
  205 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT                       2
  206 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_MASK                        0x1 /* cf21en */
  207 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT                       3
  208 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_MASK                       0x1 /* cf22en */
  209 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT                      4
  210 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23EN_MASK                             0x1 /* cf23en */
  211 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23EN_SHIFT                            5
  212 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK                            0x1 /* rule0en */
  213 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT                           6
  214 #define E4_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_MASK               0x1 /* rule1en */
  215 #define E4_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_SHIFT              7
  216         u8 flags11;
  217 #define E4_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_MASK                      0x1 /* rule2en */
  218 #define E4_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT                     0
  219 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK                            0x1 /* rule3en */
  220 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT                           1
  221 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_MASK                          0x1 /* rule4en */
  222 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_SHIFT                         2
  223 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK                            0x1 /* rule5en */
  224 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT                           3
  225 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK                            0x1 /* rule6en */
  226 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT                           4
  227 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK                            0x1 /* rule7en */
  228 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT                           5
  229 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_MASK                       0x1 /* rule8en */
  230 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_SHIFT                      6
  231 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_MASK                            0x1 /* rule9en */
  232 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_SHIFT                           7
  233         u8 flags12;
  234 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_MASK               0x1 /* rule10en */
  235 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_SHIFT              0
  236 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_MASK                           0x1 /* rule11en */
  237 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_SHIFT                          1
  238 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_MASK                       0x1 /* rule12en */
  239 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_SHIFT                      2
  240 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_MASK                       0x1 /* rule13en */
  241 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_SHIFT                      3
  242 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_MASK                   0x1 /* rule14en */
  243 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_SHIFT                  4
  244 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_MASK                           0x1 /* rule15en */
  245 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_SHIFT                          5
  246 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_MASK                           0x1 /* rule16en */
  247 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_SHIFT                          6
  248 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_MASK                           0x1 /* rule17en */
  249 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_SHIFT                          7
  250         u8 flags13;
  251 #define E4_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_MASK              0x1 /* rule18en */
  252 #define E4_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_SHIFT             0
  253 #define E4_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_MASK                0x1 /* rule19en */
  254 #define E4_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_SHIFT               1
  255 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_MASK               0x1 /* rule20en */
  256 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_SHIFT              2
  257 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_MASK                           0x1 /* rule21en */
  258 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_SHIFT                          3
  259 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_MASK                       0x1 /* rule22en */
  260 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_SHIFT                      4
  261 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_MASK               0x1 /* rule23en */
  262 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_SHIFT              5
  263 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_MASK                       0x1 /* rule24en */
  264 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_SHIFT                      6
  265 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_MASK                       0x1 /* rule25en */
  266 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_SHIFT                      7
  267         u8 flags14;
  268 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT16_MASK                              0x1 /* bit16 */
  269 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT16_SHIFT                             0
  270 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT17_MASK                              0x1 /* bit17 */
  271 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT17_SHIFT                             1
  272 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT18_MASK                              0x1 /* bit18 */
  273 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT18_SHIFT                             2
  274 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED1_MASK                       0x1 /* bit19 */
  275 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED1_SHIFT                      3
  276 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED2_MASK                       0x1 /* bit20 */
  277 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED2_SHIFT                      4
  278 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED3_MASK                       0x1 /* bit21 */
  279 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED3_SHIFT                      5
  280 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23_MASK                               0x3 /* cf23 */
  281 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23_SHIFT                              6
  282         u8 byte2 /* byte2 */;
  283         __le16 physical_q0 /* physical_q0 */;
  284         __le16 physical_q1 /* physical_q1 */;
  285         __le16 sq_comp_cons /* physical_q2 */;
  286         __le16 sq_tx_cons /* word3 */;
  287         __le16 sq_prod /* word4 */;
  288         __le16 word5 /* word5 */;
  289         __le16 conn_dpi /* conn_dpi */;
  290         u8 byte3 /* byte3 */;
  291         u8 byte4 /* byte4 */;
  292         u8 byte5 /* byte5 */;
  293         u8 byte6 /* byte6 */;
  294         __le32 reg0 /* reg0 */;
  295         __le32 reg1 /* reg1 */;
  296         __le32 reg2 /* reg2 */;
  297         __le32 more_to_send_seq /* reg3 */;
  298         __le32 reg4 /* reg4 */;
  299         __le32 rewinded_snd_max /* cf_array0 */;
  300         __le32 rd_msn /* cf_array1 */;
  301         __le16 irq_prod_via_msdm /* word7 */;
  302         __le16 irq_cons /* word8 */;
  303         __le16 hq_cons_th_or_mpa_data /* word9 */;
  304         __le16 hq_cons /* word10 */;
  305         __le32 atom_msn /* reg7 */;
  306         __le32 orq_cons /* reg8 */;
  307         __le32 orq_cons_th /* reg9 */;
  308         u8 byte7 /* byte7 */;
  309         u8 max_ord /* byte8 */;
  310         u8 wqe_data_pad_bytes /* byte9 */;
  311         u8 former_hq_prod /* byte10 */;
  312         u8 irq_prod_via_msem /* byte11 */;
  313         u8 byte12 /* byte12 */;
  314         u8 max_pkt_pdu_size_lo /* byte13 */;
  315         u8 max_pkt_pdu_size_hi /* byte14 */;
  316         u8 byte15 /* byte15 */;
  317         u8 e5_reserved /* e5_reserved */;
  318         __le16 e5_reserved4 /* word11 */;
  319         __le32 reg10 /* reg10 */;
  320         __le32 reg11 /* reg11 */;
  321         __le32 shared_queue_page_addr_lo /* reg12 */;
  322         __le32 shared_queue_page_addr_hi /* reg13 */;
  323         __le32 reg14 /* reg14 */;
  324         __le32 reg15 /* reg15 */;
  325         __le32 reg16 /* reg16 */;
  326         __le32 reg17 /* reg17 */;
  327 };
  328 
  329 struct e4_tstorm_iwarp_conn_ag_ctx
  330 {
  331         u8 reserved0 /* cdu_validation */;
  332         u8 state /* state */;
  333         u8 flags0;
  334 #define E4_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK                            0x1 /* exist_in_qm0 */
  335 #define E4_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT                           0
  336 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT1_MASK                                    0x1 /* exist_in_qm1 */
  337 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT                                   1
  338 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT2_MASK                                    0x1 /* bit2 */
  339 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT2_SHIFT                                   2
  340 #define E4_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_MASK                            0x1 /* bit3 */
  341 #define E4_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT                           3
  342 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT4_MASK                                    0x1 /* bit4 */
  343 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT                                   4
  344 #define E4_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_MASK                              0x1 /* bit5 */
  345 #define E4_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_SHIFT                             5
  346 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0_MASK                                     0x3 /* timer0cf */
  347 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT                                    6
  348         u8 flags1;
  349 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_MASK                              0x3 /* timer1cf */
  350 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_SHIFT                             0
  351 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_MASK                          0x3 /* timer2cf */
  352 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_SHIFT                         2
  353 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK                          0x3 /* timer_stop_all */
  354 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT                         4
  355 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4_MASK                                     0x3 /* cf4 */
  356 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT                                    6
  357         u8 flags2;
  358 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5_MASK                                     0x3 /* cf5 */
  359 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT                                    0
  360 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6_MASK                                     0x3 /* cf6 */
  361 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT                                    2
  362 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7_MASK                                     0x3 /* cf7 */
  363 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT                                    4
  364 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8_MASK                                     0x3 /* cf8 */
  365 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT                                    6
  366         u8 flags3;
  367 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_MASK     0x3 /* cf9 */
  368 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_SHIFT    0
  369 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_MASK                 0x3 /* cf10 */
  370 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_SHIFT                2
  371 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK                                   0x1 /* cf0en */
  372 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT                                  4
  373 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_MASK                           0x1 /* cf1en */
  374 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_SHIFT                          5
  375 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_EN_MASK                       0x1 /* cf2en */
  376 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_EN_SHIFT                      6
  377 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK                       0x1 /* cf3en */
  378 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT                      7
  379         u8 flags4;
  380 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK                                   0x1 /* cf4en */
  381 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT                                  0
  382 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK                                   0x1 /* cf5en */
  383 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT                                  1
  384 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK                                   0x1 /* cf6en */
  385 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT                                  2
  386 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK                                   0x1 /* cf7en */
  387 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT                                  3
  388 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK                                   0x1 /* cf8en */
  389 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT                                  4
  390 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_EN_MASK  0x1 /* cf9en */
  391 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_EN_SHIFT 5
  392 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_MASK              0x1 /* cf10en */
  393 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_SHIFT             6
  394 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK                                 0x1 /* rule0en */
  395 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT                                7
  396         u8 flags5;
  397 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK                                 0x1 /* rule1en */
  398 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT                                0
  399 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK                                 0x1 /* rule2en */
  400 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT                                1
  401 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK                                 0x1 /* rule3en */
  402 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT                                2
  403 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK                                 0x1 /* rule4en */
  404 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT                                3
  405 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK                                 0x1 /* rule5en */
  406 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT                                4
  407 #define E4_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_MASK                        0x1 /* rule6en */
  408 #define E4_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_SHIFT                       5
  409 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK                                 0x1 /* rule7en */
  410 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT                                6
  411 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK                                 0x1 /* rule8en */
  412 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT                                7
  413         __le32 reg0 /* reg0 */;
  414         __le32 reg1 /* reg1 */;
  415         __le32 unaligned_nxt_seq /* reg2 */;
  416         __le32 reg3 /* reg3 */;
  417         __le32 reg4 /* reg4 */;
  418         __le32 reg5 /* reg5 */;
  419         __le32 reg6 /* reg6 */;
  420         __le32 reg7 /* reg7 */;
  421         __le32 reg8 /* reg8 */;
  422         u8 orq_cache_idx /* byte2 */;
  423         u8 hq_prod /* byte3 */;
  424         __le16 sq_tx_cons_th /* word0 */;
  425         u8 orq_prod /* byte4 */;
  426         u8 irq_cons /* byte5 */;
  427         __le16 sq_tx_cons /* word1 */;
  428         __le16 conn_dpi /* conn_dpi */;
  429         __le16 rq_prod /* word3 */;
  430         __le32 snd_seq /* reg9 */;
  431         __le32 last_hq_sequence /* reg10 */;
  432 };
  433 
  434 /*
  435  * The iwarp storm context of Tstorm
  436  */
  437 struct tstorm_iwarp_conn_st_ctx
  438 {
  439         __le32 reserved[60];
  440 };
  441 
  442 /*
  443  * The iwarp storm context of Mstorm
  444  */
  445 struct mstorm_iwarp_conn_st_ctx
  446 {
  447         __le32 reserved[32];
  448 };
  449 
  450 /*
  451  * The iwarp storm context of Ustorm
  452  */
  453 struct ustorm_iwarp_conn_st_ctx
  454 {
  455         __le32 reserved[24];
  456 };
  457 
  458 /*
  459  * iwarp connection context
  460  */
  461 struct e4_iwarp_conn_context
  462 {
  463         struct ystorm_iwarp_conn_st_ctx ystorm_st_context /* ystorm storm context */;
  464         struct regpair ystorm_st_padding[2] /* padding */;
  465         struct pstorm_iwarp_conn_st_ctx pstorm_st_context /* pstorm storm context */;
  466         struct regpair pstorm_st_padding[2] /* padding */;
  467         struct xstorm_iwarp_conn_st_ctx xstorm_st_context /* xstorm storm context */;
  468         struct regpair xstorm_st_padding[2] /* padding */;
  469         struct e4_xstorm_iwarp_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */;
  470         struct e4_tstorm_iwarp_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */;
  471         struct timers_context timer_context /* timer context */;
  472         struct e4_ustorm_rdma_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */;
  473         struct tstorm_iwarp_conn_st_ctx tstorm_st_context /* tstorm storm context */;
  474         struct regpair tstorm_st_padding[2] /* padding */;
  475         struct mstorm_iwarp_conn_st_ctx mstorm_st_context /* mstorm storm context */;
  476         struct ustorm_iwarp_conn_st_ctx ustorm_st_context /* ustorm storm context */;
  477 };
  478 
  479 struct e5_xstorm_iwarp_conn_ag_ctx
  480 {
  481         u8 reserved0 /* cdu_validation */;
  482         u8 state_and_core_id /* state_and_core_id */;
  483         u8 flags0;
  484 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK                       0x1 /* exist_in_qm0 */
  485 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT                      0
  486 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_MASK                       0x1 /* exist_in_qm1 */
  487 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_SHIFT                      1
  488 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED1_MASK                          0x1 /* exist_in_qm2 */
  489 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED1_SHIFT                         2
  490 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_MASK                       0x1 /* exist_in_qm3 */
  491 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT                      3
  492 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT4_MASK                               0x1 /* bit4 */
  493 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT                              4
  494 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_MASK                          0x1 /* cf_array_active */
  495 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_SHIFT                         5
  496 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT6_MASK                               0x1 /* bit6 */
  497 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT6_SHIFT                              6
  498 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT7_MASK                               0x1 /* bit7 */
  499 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT7_SHIFT                              7
  500         u8 flags1;
  501 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT8_MASK                               0x1 /* bit8 */
  502 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT8_SHIFT                              0
  503 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT9_MASK                               0x1 /* bit9 */
  504 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT9_SHIFT                              1
  505 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT10_MASK                              0x1 /* bit10 */
  506 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT10_SHIFT                             2
  507 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT11_MASK                              0x1 /* bit11 */
  508 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT11_SHIFT                             3
  509 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT12_MASK                              0x1 /* bit12 */
  510 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT12_SHIFT                             4
  511 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT13_MASK                              0x1 /* bit13 */
  512 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT13_SHIFT                             5
  513 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT14_MASK                              0x1 /* bit14 */
  514 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT14_SHIFT                             6
  515 #define E5_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_MASK     0x1 /* bit15 */
  516 #define E5_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_SHIFT    7
  517         u8 flags2;
  518 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0_MASK                                0x3 /* timer0cf */
  519 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT                               0
  520 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1_MASK                                0x3 /* timer1cf */
  521 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT                               2
  522 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2_MASK                                0x3 /* timer2cf */
  523 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT                               4
  524 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK                     0x3 /* timer_stop_all */
  525 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT                    6
  526         u8 flags3;
  527 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4_MASK                                0x3 /* cf4 */
  528 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT                               0
  529 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5_MASK                                0x3 /* cf5 */
  530 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT                               2
  531 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6_MASK                                0x3 /* cf6 */
  532 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT                               4
  533 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7_MASK                                0x3 /* cf7 */
  534 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT                               6
  535         u8 flags4;
  536 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8_MASK                                0x3 /* cf8 */
  537 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT                               0
  538 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9_MASK                                0x3 /* cf9 */
  539 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9_SHIFT                               2
  540 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10_MASK                               0x3 /* cf10 */
  541 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10_SHIFT                              4
  542 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11_MASK                               0x3 /* cf11 */
  543 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11_SHIFT                              6
  544         u8 flags5;
  545 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12_MASK                               0x3 /* cf12 */
  546 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12_SHIFT                              0
  547 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13_MASK                               0x3 /* cf13 */
  548 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13_SHIFT                              2
  549 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_MASK                        0x3 /* cf14 */
  550 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT                       4
  551 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15_MASK                               0x3 /* cf15 */
  552 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15_SHIFT                              6
  553         u8 flags6;
  554 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_MASK     0x3 /* cf16 */
  555 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_SHIFT    0
  556 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17_MASK                               0x3 /* cf_array_cf */
  557 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17_SHIFT                              2
  558 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18_MASK                               0x3 /* cf18 */
  559 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18_SHIFT                              4
  560 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_MASK                           0x3 /* cf19 */
  561 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_SHIFT                          6
  562         u8 flags7;
  563 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_MASK                           0x3 /* cf20 */
  564 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_SHIFT                          0
  565 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_MASK                           0x3 /* cf21 */
  566 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_SHIFT                          2
  567 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_MASK                          0x3 /* cf22 */
  568 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_SHIFT                         4
  569 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK                              0x1 /* cf0en */
  570 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT                             6
  571 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK                              0x1 /* cf1en */
  572 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT                             7
  573         u8 flags8;
  574 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK                              0x1 /* cf2en */
  575 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT                             0
  576 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK                  0x1 /* cf3en */
  577 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT                 1
  578 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK                              0x1 /* cf4en */
  579 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT                             2
  580 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK                              0x1 /* cf5en */
  581 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT                             3
  582 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK                              0x1 /* cf6en */
  583 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT                             4
  584 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK                              0x1 /* cf7en */
  585 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT                             5
  586 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK                              0x1 /* cf8en */
  587 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT                             6
  588 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9EN_MASK                              0x1 /* cf9en */
  589 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9EN_SHIFT                             7
  590         u8 flags9;
  591 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10EN_MASK                             0x1 /* cf10en */
  592 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10EN_SHIFT                            0
  593 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11EN_MASK                             0x1 /* cf11en */
  594 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11EN_SHIFT                            1
  595 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12EN_MASK                             0x1 /* cf12en */
  596 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12EN_SHIFT                            2
  597 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13EN_MASK                             0x1 /* cf13en */
  598 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13EN_SHIFT                            3
  599 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK                     0x1 /* cf14en */
  600 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT                    4
  601 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15EN_MASK                             0x1 /* cf15en */
  602 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15EN_SHIFT                            5
  603 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_MASK  0x1 /* cf16en */
  604 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_SHIFT 6
  605 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17EN_MASK                             0x1 /* cf_array_cf_en */
  606 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17EN_SHIFT                            7
  607         u8 flags10;
  608 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18EN_MASK                             0x1 /* cf18en */
  609 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18EN_SHIFT                            0
  610 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_MASK                        0x1 /* cf19en */
  611 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT                       1
  612 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_MASK                        0x1 /* cf20en */
  613 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT                       2
  614 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_MASK                        0x1 /* cf21en */
  615 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT                       3
  616 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_MASK                       0x1 /* cf22en */
  617 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT                      4
  618 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23EN_MASK                             0x1 /* cf23en */
  619 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23EN_SHIFT                            5
  620 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK                            0x1 /* rule0en */
  621 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT                           6
  622 #define E5_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_MASK               0x1 /* rule1en */
  623 #define E5_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_SHIFT              7
  624         u8 flags11;
  625 #define E5_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_MASK                      0x1 /* rule2en */
  626 #define E5_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT                     0
  627 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK                            0x1 /* rule3en */
  628 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT                           1
  629 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_MASK                          0x1 /* rule4en */
  630 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_SHIFT                         2
  631 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK                            0x1 /* rule5en */
  632 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT                           3
  633 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK                            0x1 /* rule6en */
  634 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT                           4
  635 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK                            0x1 /* rule7en */
  636 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT                           5
  637 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_MASK                       0x1 /* rule8en */
  638 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_SHIFT                      6
  639 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_MASK                            0x1 /* rule9en */
  640 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_SHIFT                           7
  641         u8 flags12;
  642 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_MASK               0x1 /* rule10en */
  643 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_SHIFT              0
  644 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_MASK                           0x1 /* rule11en */
  645 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_SHIFT                          1
  646 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_MASK                       0x1 /* rule12en */
  647 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_SHIFT                      2
  648 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_MASK                       0x1 /* rule13en */
  649 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_SHIFT                      3
  650 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_MASK                   0x1 /* rule14en */
  651 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_SHIFT                  4
  652 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_MASK                           0x1 /* rule15en */
  653 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_SHIFT                          5
  654 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_MASK                           0x1 /* rule16en */
  655 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_SHIFT                          6
  656 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_MASK                           0x1 /* rule17en */
  657 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_SHIFT                          7
  658         u8 flags13;
  659 #define E5_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_MASK              0x1 /* rule18en */
  660 #define E5_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_SHIFT             0
  661 #define E5_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_MASK                0x1 /* rule19en */
  662 #define E5_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_SHIFT               1
  663 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_MASK               0x1 /* rule20en */
  664 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_SHIFT              2
  665 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_MASK                           0x1 /* rule21en */
  666 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_SHIFT                          3
  667 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_MASK                       0x1 /* rule22en */
  668 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_SHIFT                      4
  669 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_MASK               0x1 /* rule23en */
  670 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_SHIFT              5
  671 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_MASK                       0x1 /* rule24en */
  672 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_SHIFT                      6
  673 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_MASK                       0x1 /* rule25en */
  674 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_SHIFT                      7
  675         u8 flags14;
  676 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT16_MASK                              0x1 /* bit16 */
  677 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT16_SHIFT                             0
  678 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT17_MASK                              0x1 /* bit17 */
  679 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT17_SHIFT                             1
  680 #define E5_XSTORM_IWARP_CONN_AG_CTX_DPM_PORT_NUM_MASK                       0x3 /* bit18 */
  681 #define E5_XSTORM_IWARP_CONN_AG_CTX_DPM_PORT_NUM_SHIFT                      2
  682 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT20_MASK                              0x1 /* bit20 */
  683 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT20_SHIFT                             4
  684 #define E5_XSTORM_IWARP_CONN_AG_CTX_RDMA_EDPM_ENABLE_MASK                   0x1 /* bit21 */
  685 #define E5_XSTORM_IWARP_CONN_AG_CTX_RDMA_EDPM_ENABLE_SHIFT                  5
  686 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23_MASK                               0x3 /* cf23 */
  687 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23_SHIFT                              6
  688         u8 byte2 /* byte2 */;
  689         __le16 physical_q0 /* physical_q0 */;
  690         __le16 physical_q1 /* physical_q1 */;
  691         __le16 sq_comp_cons /* physical_q2 */;
  692         __le16 sq_tx_cons /* word3 */;
  693         __le16 sq_prod /* word4 */;
  694         __le16 word5 /* word5 */;
  695         __le16 conn_dpi /* conn_dpi */;
  696         u8 byte3 /* byte3 */;
  697         u8 byte4 /* byte4 */;
  698         u8 byte5 /* byte5 */;
  699         u8 byte6 /* byte6 */;
  700         __le32 reg0 /* reg0 */;
  701         __le32 reg1 /* reg1 */;
  702         __le32 reg2 /* reg2 */;
  703         __le32 more_to_send_seq /* reg3 */;
  704         __le32 reg4 /* reg4 */;
  705         __le32 rewinded_snd_max /* cf_array0 */;
  706         __le32 rd_msn /* cf_array1 */;
  707         u8 flags15;
  708 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_MASK                       0x1 /* bit22 */
  709 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_SHIFT                      0
  710 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_MASK                       0x1 /* bit23 */
  711 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_SHIFT                      1
  712 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_MASK                       0x1 /* bit24 */
  713 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_SHIFT                      2
  714 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_MASK                       0x3 /* cf24 */
  715 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_SHIFT                      3
  716 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_MASK                       0x1 /* cf24en */
  717 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_SHIFT                      5
  718 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_MASK                       0x1 /* rule26en */
  719 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_SHIFT                      6
  720 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_MASK                       0x1 /* rule27en */
  721 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_SHIFT                      7
  722         u8 byte7 /* byte7 */;
  723         __le16 irq_prod_via_msdm /* word7 */;
  724         __le16 irq_cons /* word8 */;
  725         __le16 hq_cons_th_or_mpa_data /* word9 */;
  726         __le16 hq_cons /* word10 */;
  727         __le16 tx_rdma_edpm_usg_cnt /* word11 */;
  728         __le32 atom_msn /* reg7 */;
  729         __le32 orq_cons /* reg8 */;
  730         __le32 orq_cons_th /* reg9 */;
  731         u8 max_ord /* byte8 */;
  732         u8 wqe_data_pad_bytes /* byte9 */;
  733         u8 former_hq_prod /* byte10 */;
  734         u8 irq_prod_via_msem /* byte11 */;
  735         u8 byte12 /* byte12 */;
  736         u8 max_pkt_pdu_size_lo /* byte13 */;
  737         u8 max_pkt_pdu_size_hi /* byte14 */;
  738         u8 byte15 /* byte15 */;
  739         __le32 reg10 /* reg10 */;
  740         __le32 reg11 /* reg11 */;
  741         __le32 reg12 /* reg12 */;
  742         __le32 shared_queue_page_addr_lo /* reg13 */;
  743         __le32 shared_queue_page_addr_hi /* reg14 */;
  744         __le32 reg15 /* reg15 */;
  745         __le32 reg16 /* reg16 */;
  746         __le32 reg17 /* reg17 */;
  747 };
  748 
  749 struct e5_tstorm_iwarp_conn_ag_ctx
  750 {
  751         u8 reserved0 /* cdu_validation */;
  752         u8 state_and_core_id /* state_and_core_id */;
  753         u8 flags0;
  754 #define E5_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK                0x1 /* exist_in_qm0 */
  755 #define E5_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT               0
  756 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT1_MASK                        0x1 /* exist_in_qm1 */
  757 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT                       1
  758 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT2_MASK                        0x1 /* bit2 */
  759 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT2_SHIFT                       2
  760 #define E5_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_MASK                0x1 /* bit3 */
  761 #define E5_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT               3
  762 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT4_MASK                        0x1 /* bit4 */
  763 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT                       4
  764 #define E5_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_MASK                  0x1 /* bit5 */
  765 #define E5_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_SHIFT                 5
  766 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0_MASK                         0x3 /* timer0cf */
  767 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT                        6
  768         u8 flags1;
  769 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_MASK                  0x3 /* timer1cf */
  770 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_SHIFT                 0
  771 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_MASK     0x3 /* timer2cf */
  772 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_SHIFT    2
  773 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK              0x3 /* timer_stop_all */
  774 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT             4
  775 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4_MASK                         0x3 /* cf4 */
  776 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT                        6
  777         u8 flags2;
  778 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5_MASK                         0x3 /* cf5 */
  779 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT                        0
  780 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6_MASK                         0x3 /* cf6 */
  781 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT                        2
  782 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7_MASK                         0x3 /* cf7 */
  783 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT                        4
  784 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8_MASK                         0x3 /* cf8 */
  785 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT                        6
  786         u8 flags3;
  787 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_MASK                    0x3 /* cf9 */
  788 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_SHIFT                   0
  789 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10_MASK                        0x3 /* cf10 */
  790 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10_SHIFT                       2
  791 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK                       0x1 /* cf0en */
  792 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT                      4
  793 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_MASK               0x1 /* cf1en */
  794 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_SHIFT              5
  795 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_MASK  0x1 /* cf2en */
  796 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_SHIFT 6
  797 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK           0x1 /* cf3en */
  798 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT          7
  799         u8 flags4;
  800 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK                       0x1 /* cf4en */
  801 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT                      0
  802 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK                       0x1 /* cf5en */
  803 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT                      1
  804 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK                       0x1 /* cf6en */
  805 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT                      2
  806 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK                       0x1 /* cf7en */
  807 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT                      3
  808 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK                       0x1 /* cf8en */
  809 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT                      4
  810 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_MASK                 0x1 /* cf9en */
  811 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT                5
  812 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10EN_MASK                      0x1 /* cf10en */
  813 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10EN_SHIFT                     6
  814 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK                     0x1 /* rule0en */
  815 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT                    7
  816         u8 flags5;
  817 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK                     0x1 /* rule1en */
  818 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT                    0
  819 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK                     0x1 /* rule2en */
  820 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT                    1
  821 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK                     0x1 /* rule3en */
  822 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT                    2
  823 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK                     0x1 /* rule4en */
  824 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT                    3
  825 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK                     0x1 /* rule5en */
  826 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT                    4
  827 #define E5_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_MASK            0x1 /* rule6en */
  828 #define E5_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_SHIFT           5
  829 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK                     0x1 /* rule7en */
  830 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT                    6
  831 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK                     0x1 /* rule8en */
  832 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT                    7
  833         u8 flags6;
  834 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_MASK                0x1 /* bit6 */
  835 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_SHIFT               0
  836 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_MASK                0x1 /* bit7 */
  837 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_SHIFT               1
  838 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_MASK                0x1 /* bit8 */
  839 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_SHIFT               2
  840 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_MASK                0x3 /* cf11 */
  841 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_SHIFT               3
  842 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_MASK                0x1 /* cf11en */
  843 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_SHIFT               5
  844 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_MASK                0x1 /* rule9en */
  845 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_SHIFT               6
  846 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_MASK                0x1 /* rule10en */
  847 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_SHIFT               7
  848         u8 orq_cache_idx /* byte2 */;
  849         __le16 sq_tx_cons_th /* word0 */;
  850         __le32 reg0 /* reg0 */;
  851         __le32 reg1 /* reg1 */;
  852         __le32 unaligned_nxt_seq /* reg2 */;
  853         __le32 reg3 /* reg3 */;
  854         __le32 reg4 /* reg4 */;
  855         __le32 reg5 /* reg5 */;
  856         __le32 reg6 /* reg6 */;
  857         __le32 reg7 /* reg7 */;
  858         __le32 reg8 /* reg8 */;
  859         u8 hq_prod /* byte3 */;
  860         u8 orq_prod /* byte4 */;
  861         u8 irq_cons /* byte5 */;
  862         u8 e4_reserved8 /* byte6 */;
  863         __le16 sq_tx_cons /* word1 */;
  864         __le16 conn_dpi /* conn_dpi */;
  865         __le32 snd_seq /* reg9 */;
  866         __le16 rq_prod /* word3 */;
  867         __le16 e4_reserved9 /* word4 */;
  868 };
  869 
  870 /*
  871  * iwarp connection context
  872  */
  873 struct e5_iwarp_conn_context
  874 {
  875         struct ystorm_iwarp_conn_st_ctx ystorm_st_context /* ystorm storm context */;
  876         struct regpair ystorm_st_padding[2] /* padding */;
  877         struct pstorm_iwarp_conn_st_ctx pstorm_st_context /* pstorm storm context */;
  878         struct regpair pstorm_st_padding[2] /* padding */;
  879         struct xstorm_iwarp_conn_st_ctx xstorm_st_context /* xstorm storm context */;
  880         struct regpair xstorm_st_padding[2] /* padding */;
  881         struct e5_xstorm_iwarp_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */;
  882         struct e5_tstorm_iwarp_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */;
  883         struct timers_context timer_context /* timer context */;
  884         struct e5_ustorm_rdma_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */;
  885         struct tstorm_iwarp_conn_st_ctx tstorm_st_context /* tstorm storm context */;
  886         struct regpair tstorm_st_padding[2] /* padding */;
  887         struct mstorm_iwarp_conn_st_ctx mstorm_st_context /* mstorm storm context */;
  888         struct ustorm_iwarp_conn_st_ctx ustorm_st_context /* ustorm storm context */;
  889 };
  890 
  891 /*
  892  * iWARP create QP params passed by driver to FW in CreateQP Request Ramrod 
  893  */
  894 struct iwarp_create_qp_ramrod_data
  895 {
  896         u8 flags;
  897 #define IWARP_CREATE_QP_RAMROD_DATA_FMR_AND_RESERVED_EN_MASK   0x1
  898 #define IWARP_CREATE_QP_RAMROD_DATA_FMR_AND_RESERVED_EN_SHIFT  0
  899 #define IWARP_CREATE_QP_RAMROD_DATA_SIGNALED_COMP_MASK         0x1
  900 #define IWARP_CREATE_QP_RAMROD_DATA_SIGNALED_COMP_SHIFT        1
  901 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_RD_EN_MASK            0x1
  902 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_RD_EN_SHIFT           2
  903 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_WR_EN_MASK            0x1
  904 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_WR_EN_SHIFT           3
  905 #define IWARP_CREATE_QP_RAMROD_DATA_ATOMIC_EN_MASK             0x1
  906 #define IWARP_CREATE_QP_RAMROD_DATA_ATOMIC_EN_SHIFT            4
  907 #define IWARP_CREATE_QP_RAMROD_DATA_SRQ_FLG_MASK               0x1
  908 #define IWARP_CREATE_QP_RAMROD_DATA_SRQ_FLG_SHIFT              5
  909 #define IWARP_CREATE_QP_RAMROD_DATA_LOW_LATENCY_QUEUE_EN_MASK  0x1
  910 #define IWARP_CREATE_QP_RAMROD_DATA_LOW_LATENCY_QUEUE_EN_SHIFT 6
  911 #define IWARP_CREATE_QP_RAMROD_DATA_RESERVED0_MASK             0x1
  912 #define IWARP_CREATE_QP_RAMROD_DATA_RESERVED0_SHIFT            7
  913         u8 reserved1 /* Basic/Enhanced (use enum mpa_negotiation_mode) */;
  914         __le16 pd;
  915         __le16 sq_num_pages;
  916         __le16 rq_num_pages;
  917         __le32 reserved3[2];
  918         struct regpair qp_handle_for_cqe /* For use in CQEs */;
  919         struct rdma_srq_id srq_id;
  920         __le32 cq_cid_for_sq /* Cid of the CQ that will be posted from SQ */;
  921         __le32 cq_cid_for_rq /* Cid of the CQ that will be posted from RQ */;
  922         __le16 dpi;
  923         __le16 physical_q0 /* Physical QM queue to be tied to logical Q0 */;
  924         __le16 physical_q1 /* Physical QM queue to be tied to logical Q1 */;
  925         u8 reserved2[6];
  926 };
  927 
  928 /*
  929  * iWARP completion queue types
  930  */
  931 enum iwarp_eqe_async_opcode
  932 {
  933         IWARP_EVENT_TYPE_ASYNC_CONNECT_COMPLETE /* Async completion oafter TCP 3-way handshake */,
  934         IWARP_EVENT_TYPE_ASYNC_ENHANCED_MPA_REPLY_ARRIVED /* Enhanced MPA reply arrived. Driver should either send RTR or reject */,
  935         IWARP_EVENT_TYPE_ASYNC_MPA_HANDSHAKE_COMPLETE /* MPA Negotiations completed */,
  936         IWARP_EVENT_TYPE_ASYNC_CID_CLEANED /* Async completion that indicates to the driver that the CID can be re-used. */,
  937         IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED /* Async EQE indicating detection of an error/exception on a QP at Firmware */,
  938         IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE /* Async EQE indicating QP is in Error state. */,
  939         IWARP_EVENT_TYPE_ASYNC_CQ_OVERFLOW /* Async EQE indicating CQ, whose handle is sent with this event, has overflowed */,
  940         MAX_IWARP_EQE_ASYNC_OPCODE
  941 };
  942 
  943 struct iwarp_eqe_data_mpa_async_completion
  944 {
  945         __le16 ulp_data_len /* On active side, length of ULP Data, from peers MPA Connect Response */;
  946         u8 reserved[6];
  947 };
  948 
  949 struct iwarp_eqe_data_tcp_async_completion
  950 {
  951         __le16 ulp_data_len /* On passive side, length of ULP Data, from peers active MPA Connect Request */;
  952         u8 mpa_handshake_mode /* Negotiation type Basic/Enhanced */;
  953         u8 reserved[5];
  954 };
  955 
  956 /*
  957  * iWARP completion queue types
  958  */
  959 enum iwarp_eqe_sync_opcode
  960 {
  961         IWARP_EVENT_TYPE_TCP_OFFLOAD=11 /* iWARP event queue response after option 2 offload Ramrod */,
  962         IWARP_EVENT_TYPE_MPA_OFFLOAD /* Synchronous completion for MPA offload Request */,
  963         IWARP_EVENT_TYPE_MPA_OFFLOAD_SEND_RTR,
  964         IWARP_EVENT_TYPE_CREATE_QP,
  965         IWARP_EVENT_TYPE_QUERY_QP,
  966         IWARP_EVENT_TYPE_MODIFY_QP,
  967         IWARP_EVENT_TYPE_DESTROY_QP,
  968         IWARP_EVENT_TYPE_ABORT_TCP_OFFLOAD,
  969         MAX_IWARP_EQE_SYNC_OPCODE
  970 };
  971 
  972 /*
  973  * iWARP EQE completion status 
  974  */
  975 enum iwarp_fw_return_code
  976 {
  977         IWARP_CONN_ERROR_TCP_CONNECT_INVALID_PACKET=5 /* Got invalid packet SYN/SYN-ACK */,
  978         IWARP_CONN_ERROR_TCP_CONNECTION_RST /* Got RST during offload TCP connection  */,
  979         IWARP_CONN_ERROR_TCP_CONNECT_TIMEOUT /* TCP connection setup timed out */,
  980         IWARP_CONN_ERROR_MPA_ERROR_REJECT /* Got Reject in MPA reply. */,
  981         IWARP_CONN_ERROR_MPA_NOT_SUPPORTED_VER /* Got MPA request with higher version that we support. */,
  982         IWARP_CONN_ERROR_MPA_RST /* Got RST during MPA negotiation */,
  983         IWARP_CONN_ERROR_MPA_FIN /* Got FIN during MPA negotiation */,
  984         IWARP_CONN_ERROR_MPA_RTR_MISMATCH /* RTR mismatch detected when MPA reply arrived. */,
  985         IWARP_CONN_ERROR_MPA_INSUF_IRD /* Insufficient IRD on the MPA reply that arrived. */,
  986         IWARP_CONN_ERROR_MPA_INVALID_PACKET /* Incoming MPAp acket failed on FW verifications */,
  987         IWARP_CONN_ERROR_MPA_LOCAL_ERROR /* Detected an internal error during MPA negotiation. */,
  988         IWARP_CONN_ERROR_MPA_TIMEOUT /* MPA negotiation timed out. */,
  989         IWARP_CONN_ERROR_MPA_TERMINATE /* Got Terminate during MPA negotiation. */,
  990         IWARP_QP_IN_ERROR_GOOD_CLOSE /* LLP connection was closed gracefully - Used for async IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE */,
  991         IWARP_QP_IN_ERROR_BAD_CLOSE /* LLP Connection was closed abortively - Used for async IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE */,
  992         IWARP_EXCEPTION_DETECTED_LLP_CLOSED /* LLP has been disociated from the QP, although the TCP connection may not be closed yet - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
  993         IWARP_EXCEPTION_DETECTED_LLP_RESET /* LLP has Reset (either because of an RST, or a bad-close condition) - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
  994         IWARP_EXCEPTION_DETECTED_IRQ_FULL /* Peer sent more outstanding Read Requests than IRD - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
  995         IWARP_EXCEPTION_DETECTED_RQ_EMPTY /* SEND request received with RQ empty - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
  996         IWARP_EXCEPTION_DETECTED_SRQ_EMPTY /* SEND request received with SRQ empty - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
  997         IWARP_EXCEPTION_DETECTED_SRQ_LIMIT /* Number of SRQ wqes is below the limit */,
  998         IWARP_EXCEPTION_DETECTED_LLP_TIMEOUT /* TCP Retransmissions timed out - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
  999         IWARP_EXCEPTION_DETECTED_REMOTE_PROTECTION_ERROR /* Peers Remote Access caused error */,
 1000         IWARP_EXCEPTION_DETECTED_CQ_OVERFLOW /* CQ overflow detected */,
 1001         IWARP_EXCEPTION_DETECTED_LOCAL_CATASTROPHIC /* Local catastrophic error detected - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
 1002         IWARP_EXCEPTION_DETECTED_LOCAL_ACCESS_ERROR /* Local Access error detected while responding - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */,
 1003         IWARP_EXCEPTION_DETECTED_REMOTE_OPERATION_ERROR /* An operation/protocol error caused by Remote Consumer */,
 1004         IWARP_EXCEPTION_DETECTED_TERMINATE_RECEIVED /* Peer sent a TERMINATE message */,
 1005         MAX_IWARP_FW_RETURN_CODE
 1006 };
 1007 
 1008 /*
 1009  * unaligned opaque data received from LL2
 1010  */
 1011 struct iwarp_init_func_params
 1012 {
 1013         u8 ll2_ooo_q_index /* LL2 OOO queue id. The unaligned queue id will be + 1 */;
 1014         u8 reserved1[7];
 1015 };
 1016 
 1017 /*
 1018  * iwarp func init ramrod data
 1019  */
 1020 struct iwarp_init_func_ramrod_data
 1021 {
 1022         struct rdma_init_func_ramrod_data rdma;
 1023         struct tcp_init_params tcp;
 1024         struct iwarp_init_func_params iwarp;
 1025 };
 1026 
 1027 /*
 1028  * iWARP QP - possible states to transition to
 1029  */
 1030 enum iwarp_modify_qp_new_state_type
 1031 {
 1032         IWARP_MODIFY_QP_STATE_CLOSING=1 /* graceful close */,
 1033         IWARP_MODIFY_QP_STATE_ERROR=2 /* abortive close, if LLP connection still exists */,
 1034         MAX_IWARP_MODIFY_QP_NEW_STATE_TYPE
 1035 };
 1036 
 1037 /*
 1038  * iwarp modify qp responder ramrod data
 1039  */
 1040 struct iwarp_modify_qp_ramrod_data
 1041 {
 1042         __le16 transition_to_state /*  (use enum iwarp_modify_qp_new_state_type) */;
 1043         __le16 flags;
 1044 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_RD_EN_MASK          0x1
 1045 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_RD_EN_SHIFT         0
 1046 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_WR_EN_MASK          0x1
 1047 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_WR_EN_SHIFT         1
 1048 #define IWARP_MODIFY_QP_RAMROD_DATA_ATOMIC_EN_MASK           0x1
 1049 #define IWARP_MODIFY_QP_RAMROD_DATA_ATOMIC_EN_SHIFT          2
 1050 #define IWARP_MODIFY_QP_RAMROD_DATA_STATE_TRANS_EN_MASK      0x1 /* change QP state as per transition_to_state field */
 1051 #define IWARP_MODIFY_QP_RAMROD_DATA_STATE_TRANS_EN_SHIFT     3
 1052 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK     0x1 /* If set, the rdma_rd/wr/atomic_en should be updated */
 1053 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT    4
 1054 #define IWARP_MODIFY_QP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_MASK  0x1 /* If set, the  physicalQ1Val/physicalQ0Val/regularLatencyPhyQueue should be updated */
 1055 #define IWARP_MODIFY_QP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_SHIFT 5
 1056 #define IWARP_MODIFY_QP_RAMROD_DATA_RESERVED_MASK            0x3FF
 1057 #define IWARP_MODIFY_QP_RAMROD_DATA_RESERVED_SHIFT           6
 1058         __le16 physical_q0 /* Updated physicalQ0Val */;
 1059         __le16 physical_q1 /* Updated physicalQ1Val */;
 1060         __le32 reserved1[10];
 1061 };
 1062 
 1063 /*
 1064  * MPA params for Enhanced mode
 1065  */
 1066 struct mpa_rq_params
 1067 {
 1068         __le32 ird;
 1069         __le32 ord;
 1070 };
 1071 
 1072 /*
 1073  * MPA host Address-Len for private data
 1074  */
 1075 struct mpa_ulp_buffer
 1076 {
 1077         struct regpair addr;
 1078         __le16 len;
 1079         __le16 reserved[3];
 1080 };
 1081 
 1082 /*
 1083  * iWARP MPA offload params common to Basic and Enhanced modes
 1084  */
 1085 struct mpa_outgoing_params
 1086 {
 1087         u8 crc_needed;
 1088         u8 reject /* Valid only for passive side. */;
 1089         u8 reserved[6];
 1090         struct mpa_rq_params out_rq;
 1091         struct mpa_ulp_buffer outgoing_ulp_buffer /* ULP buffer populated by the host */;
 1092 };
 1093 
 1094 /*
 1095  * iWARP MPA offload params passed by driver to FW in MPA Offload Request Ramrod 
 1096  */
 1097 struct iwarp_mpa_offload_ramrod_data
 1098 {
 1099         struct mpa_outgoing_params common;
 1100         __le32 tcp_cid;
 1101         u8 mode /* Basic/Enhanced (use enum mpa_negotiation_mode) */;
 1102         u8 tcp_connect_side /* Passive/Active. use enum tcp_connect_mode */;
 1103         u8 rtr_pref;
 1104 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RTR_SUPPORTED_MASK  0x7 /*  (use enum mpa_rtr_type) */
 1105 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RTR_SUPPORTED_SHIFT 0
 1106 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RESERVED1_MASK      0x1F
 1107 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RESERVED1_SHIFT     3
 1108         u8 reserved2;
 1109         struct mpa_ulp_buffer incoming_ulp_buffer /* host buffer for placing the incoming MPA reply */;
 1110         struct regpair async_eqe_output_buf /* host buffer for async tcp/mpa completion information - must have space for at least 8 bytes */;
 1111         struct regpair handle_for_async /* a host cookie that will be echoed back with in every qp-specific async EQE */;
 1112         struct regpair shared_queue_addr /* Address of shared queue address that consist of SQ/RQ and FW internal queues (IRQ/ORQ/HQ) */;
 1113         __le16 rcv_wnd /* TCP window after scaling */;
 1114         u8 stats_counter_id /* Statistics counter ID to use */;
 1115         u8 reserved3[13];
 1116 };
 1117 
 1118 /*
 1119  * iWARP TCP connection offload params passed by driver to FW 
 1120  */
 1121 struct iwarp_offload_params
 1122 {
 1123         struct mpa_ulp_buffer incoming_ulp_buffer /* host buffer for placing the incoming MPA request */;
 1124         struct regpair async_eqe_output_buf /* host buffer for async tcp/mpa completion information - must have space for at least 8 bytes */;
 1125         struct regpair handle_for_async /* host handle that will be echoed back with in every qp-specific async EQE */;
 1126         __le16 physical_q0 /* Physical QM queue to be tied to logical Q0 */;
 1127         __le16 physical_q1 /* Physical QM queue to be tied to logical Q1 */;
 1128         u8 stats_counter_id /* Statistics counter ID to use */;
 1129         u8 mpa_mode /* Basic/Enahnced. Used for a verification for incoming MPA request (use enum mpa_negotiation_mode) */;
 1130         u8 reserved[10];
 1131 };
 1132 
 1133 /*
 1134  * iWARP query QP output params
 1135  */
 1136 struct iwarp_query_qp_output_params
 1137 {
 1138         __le32 flags;
 1139 #define IWARP_QUERY_QP_OUTPUT_PARAMS_ERROR_FLG_MASK  0x1
 1140 #define IWARP_QUERY_QP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0
 1141 #define IWARP_QUERY_QP_OUTPUT_PARAMS_RESERVED0_MASK  0x7FFFFFFF
 1142 #define IWARP_QUERY_QP_OUTPUT_PARAMS_RESERVED0_SHIFT 1
 1143         u8 reserved1[4] /* 64 bit alignment */;
 1144 };
 1145 
 1146 /*
 1147  * iWARP query QP ramrod data
 1148  */
 1149 struct iwarp_query_qp_ramrod_data
 1150 {
 1151         struct regpair output_params_addr;
 1152 };
 1153 
 1154 /*
 1155  * iWARP Ramrod Command IDs 
 1156  */
 1157 enum iwarp_ramrod_cmd_id
 1158 {
 1159         IWARP_RAMROD_CMD_ID_TCP_OFFLOAD=11 /* iWARP TCP connection offload ramrod */,
 1160         IWARP_RAMROD_CMD_ID_MPA_OFFLOAD /* iWARP MPA offload ramrod */,
 1161         IWARP_RAMROD_CMD_ID_MPA_OFFLOAD_SEND_RTR,
 1162         IWARP_RAMROD_CMD_ID_CREATE_QP,
 1163         IWARP_RAMROD_CMD_ID_QUERY_QP,
 1164         IWARP_RAMROD_CMD_ID_MODIFY_QP,
 1165         IWARP_RAMROD_CMD_ID_DESTROY_QP,
 1166         IWARP_RAMROD_CMD_ID_ABORT_TCP_OFFLOAD,
 1167         MAX_IWARP_RAMROD_CMD_ID
 1168 };
 1169 
 1170 /*
 1171  * Per PF iWARP retransmit path statistics
 1172  */
 1173 struct iwarp_rxmit_stats_drv
 1174 {
 1175         struct regpair tx_go_to_slow_start_event_cnt /* Number of times slow start event occurred */;
 1176         struct regpair tx_fast_retransmit_event_cnt /* Number of times fast retransmit event occurred */;
 1177 };
 1178 
 1179 /*
 1180  * iWARP and TCP connection offload params passed by driver to FW in iWARP offload ramrod 
 1181  */
 1182 struct iwarp_tcp_offload_ramrod_data
 1183 {
 1184         struct iwarp_offload_params iwarp /* iWARP connection offload params */;
 1185         struct tcp_offload_params_opt2 tcp /* tcp offload params */;
 1186 };
 1187 
 1188 /*
 1189  * iWARP MPA negotiation types
 1190  */
 1191 enum mpa_negotiation_mode
 1192 {
 1193         MPA_NEGOTIATION_TYPE_BASIC=1,
 1194         MPA_NEGOTIATION_TYPE_ENHANCED=2,
 1195         MAX_MPA_NEGOTIATION_MODE
 1196 };
 1197 
 1198 /*
 1199  * iWARP MPA Enhanced mode RTR types
 1200  */
 1201 enum mpa_rtr_type
 1202 {
 1203         MPA_RTR_TYPE_NONE=0 /* No RTR type */,
 1204         MPA_RTR_TYPE_ZERO_SEND=1,
 1205         MPA_RTR_TYPE_ZERO_WRITE=2,
 1206         MPA_RTR_TYPE_ZERO_SEND_AND_WRITE=3,
 1207         MPA_RTR_TYPE_ZERO_READ=4,
 1208         MPA_RTR_TYPE_ZERO_SEND_AND_READ=5,
 1209         MPA_RTR_TYPE_ZERO_WRITE_AND_READ=6,
 1210         MPA_RTR_TYPE_ZERO_SEND_AND_WRITE_AND_READ=7,
 1211         MAX_MPA_RTR_TYPE
 1212 };
 1213 
 1214 /*
 1215  * unaligned opaque data received from LL2
 1216  */
 1217 struct unaligned_opaque_data
 1218 {
 1219         __le16 first_mpa_offset /* offset of first MPA byte that should be processed */;
 1220         u8 tcp_payload_offset /* offset of first the byte that comes after the last byte of the TCP Hdr */;
 1221         u8 flags;
 1222 #define UNALIGNED_OPAQUE_DATA_PKT_REACHED_WIN_RIGHT_EDGE_MASK  0x1 /* packet reached window right edge */
 1223 #define UNALIGNED_OPAQUE_DATA_PKT_REACHED_WIN_RIGHT_EDGE_SHIFT 0
 1224 #define UNALIGNED_OPAQUE_DATA_CONNECTION_CLOSED_MASK           0x1 /* Indication that the connection is closed. Clean all connecitons database. */
 1225 #define UNALIGNED_OPAQUE_DATA_CONNECTION_CLOSED_SHIFT          1
 1226 #define UNALIGNED_OPAQUE_DATA_RESERVED_MASK                    0x3F
 1227 #define UNALIGNED_OPAQUE_DATA_RESERVED_SHIFT                   2
 1228         __le32 cid;
 1229 };
 1230 
 1231 struct e4_mstorm_iwarp_conn_ag_ctx
 1232 {
 1233         u8 reserved /* cdu_validation */;
 1234         u8 state /* state */;
 1235         u8 flags0;
 1236 #define E4_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK         0x1 /* exist_in_qm0 */
 1237 #define E4_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT        0
 1238 #define E4_MSTORM_IWARP_CONN_AG_CTX_BIT1_MASK                 0x1 /* exist_in_qm1 */
 1239 #define E4_MSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT                1
 1240 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_MASK     0x3 /* cf0 */
 1241 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_SHIFT    2
 1242 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1_MASK                  0x3 /* cf1 */
 1243 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT                 4
 1244 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2_MASK                  0x3 /* cf2 */
 1245 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT                 6
 1246         u8 flags1;
 1247 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_MASK  0x1 /* cf0en */
 1248 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_SHIFT 0
 1249 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK                0x1 /* cf1en */
 1250 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT               1
 1251 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK                0x1 /* cf2en */
 1252 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT               2
 1253 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK              0x1 /* rule0en */
 1254 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT             3
 1255 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK              0x1 /* rule1en */
 1256 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT             4
 1257 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK              0x1 /* rule2en */
 1258 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT             5
 1259 #define E4_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_MASK          0x1 /* rule3en */
 1260 #define E4_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_SHIFT         6
 1261 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK              0x1 /* rule4en */
 1262 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT             7
 1263         __le16 rcq_cons /* word0 */;
 1264         __le16 rcq_cons_th /* word1 */;
 1265         __le32 reg0 /* reg0 */;
 1266         __le32 reg1 /* reg1 */;
 1267 };
 1268 
 1269 struct e4_ustorm_iwarp_conn_ag_ctx
 1270 {
 1271         u8 reserved /* cdu_validation */;
 1272         u8 byte1 /* state */;
 1273         u8 flags0;
 1274 #define E4_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK     0x1 /* exist_in_qm0 */
 1275 #define E4_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT    0
 1276 #define E4_USTORM_IWARP_CONN_AG_CTX_BIT1_MASK             0x1 /* exist_in_qm1 */
 1277 #define E4_USTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT            1
 1278 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0_MASK              0x3 /* timer0cf */
 1279 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0_SHIFT             2
 1280 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1_MASK              0x3 /* timer1cf */
 1281 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1_SHIFT             4
 1282 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2_MASK              0x3 /* timer2cf */
 1283 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2_SHIFT             6
 1284         u8 flags1;
 1285 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3_MASK              0x3 /* timer_stop_all */
 1286 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3_SHIFT             0
 1287 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_MASK     0x3 /* cf4 */
 1288 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT    2
 1289 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_MASK        0x3 /* cf5 */
 1290 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_SHIFT       4
 1291 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6_MASK              0x3 /* cf6 */
 1292 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6_SHIFT             6
 1293         u8 flags2;
 1294 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0EN_MASK            0x1 /* cf0en */
 1295 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT           0
 1296 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1EN_MASK            0x1 /* cf1en */
 1297 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT           1
 1298 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2EN_MASK            0x1 /* cf2en */
 1299 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT           2
 1300 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3EN_MASK            0x1 /* cf3en */
 1301 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3EN_SHIFT           3
 1302 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK  0x1 /* cf4en */
 1303 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4
 1304 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_MASK     0x1 /* cf5en */
 1305 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT    5
 1306 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6EN_MASK            0x1 /* cf6en */
 1307 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT           6
 1308 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_MASK         0x1 /* rule0en */
 1309 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_SHIFT        7
 1310         u8 flags3;
 1311 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_EN_MASK            0x1 /* rule1en */
 1312 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_EN_SHIFT           0
 1313 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK          0x1 /* rule2en */
 1314 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT         1
 1315 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK          0x1 /* rule3en */
 1316 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT         2
 1317 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK          0x1 /* rule4en */
 1318 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT         3
 1319 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK          0x1 /* rule5en */
 1320 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT         4
 1321 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK          0x1 /* rule6en */
 1322 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT         5
 1323 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK          0x1 /* rule7en */
 1324 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT         6
 1325 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK          0x1 /* rule8en */
 1326 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT         7
 1327         u8 byte2 /* byte2 */;
 1328         u8 byte3 /* byte3 */;
 1329         __le16 word0 /* conn_dpi */;
 1330         __le16 word1 /* word1 */;
 1331         __le32 cq_cons /* reg0 */;
 1332         __le32 cq_se_prod /* reg1 */;
 1333         __le32 cq_prod /* reg2 */;
 1334         __le32 reg3 /* reg3 */;
 1335         __le16 word2 /* word2 */;
 1336         __le16 word3 /* word3 */;
 1337 };
 1338 
 1339 struct e4_ystorm_iwarp_conn_ag_ctx
 1340 {
 1341         u8 byte0 /* cdu_validation */;
 1342         u8 byte1 /* state */;
 1343         u8 flags0;
 1344 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT0_MASK     0x1 /* exist_in_qm0 */
 1345 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT0_SHIFT    0
 1346 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT1_MASK     0x1 /* exist_in_qm1 */
 1347 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT    1
 1348 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0_MASK      0x3 /* cf0 */
 1349 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT     2
 1350 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1_MASK      0x3 /* cf1 */
 1351 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT     4
 1352 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2_MASK      0x3 /* cf2 */
 1353 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT     6
 1354         u8 flags1;
 1355 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK    0x1 /* cf0en */
 1356 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT   0
 1357 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK    0x1 /* cf1en */
 1358 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT   1
 1359 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK    0x1 /* cf2en */
 1360 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT   2
 1361 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK  0x1 /* rule0en */
 1362 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3
 1363 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK  0x1 /* rule1en */
 1364 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4
 1365 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK  0x1 /* rule2en */
 1366 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5
 1367 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK  0x1 /* rule3en */
 1368 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 6
 1369 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK  0x1 /* rule4en */
 1370 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7
 1371         u8 byte2 /* byte2 */;
 1372         u8 byte3 /* byte3 */;
 1373         __le16 word0 /* word0 */;
 1374         __le32 reg0 /* reg0 */;
 1375         __le32 reg1 /* reg1 */;
 1376         __le16 word1 /* word1 */;
 1377         __le16 word2 /* word2 */;
 1378         __le16 word3 /* word3 */;
 1379         __le16 word4 /* word4 */;
 1380         __le32 reg2 /* reg2 */;
 1381         __le32 reg3 /* reg3 */;
 1382 };
 1383 
 1384 struct e5_mstorm_iwarp_conn_ag_ctx
 1385 {
 1386         u8 reserved /* cdu_validation */;
 1387         u8 state_and_core_id /* state_and_core_id */;
 1388         u8 flags0;
 1389 #define E5_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK         0x1 /* exist_in_qm0 */
 1390 #define E5_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT        0
 1391 #define E5_MSTORM_IWARP_CONN_AG_CTX_BIT1_MASK                 0x1 /* exist_in_qm1 */
 1392 #define E5_MSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT                1
 1393 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_MASK     0x3 /* cf0 */
 1394 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_SHIFT    2
 1395 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1_MASK                  0x3 /* cf1 */
 1396 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT                 4
 1397 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2_MASK                  0x3 /* cf2 */
 1398 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT                 6
 1399         u8 flags1;
 1400 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_MASK  0x1 /* cf0en */
 1401 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_SHIFT 0
 1402 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK                0x1 /* cf1en */
 1403 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT               1
 1404 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK                0x1 /* cf2en */
 1405 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT               2
 1406 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK              0x1 /* rule0en */
 1407 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT             3
 1408 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK              0x1 /* rule1en */
 1409 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT             4
 1410 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK              0x1 /* rule2en */
 1411 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT             5
 1412 #define E5_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_MASK          0x1 /* rule3en */
 1413 #define E5_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_SHIFT         6
 1414 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK              0x1 /* rule4en */
 1415 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT             7
 1416         __le16 rcq_cons /* word0 */;
 1417         __le16 rcq_cons_th /* word1 */;
 1418         __le32 reg0 /* reg0 */;
 1419         __le32 reg1 /* reg1 */;
 1420 };
 1421 
 1422 struct e5_ustorm_iwarp_conn_ag_ctx
 1423 {
 1424         u8 reserved /* cdu_validation */;
 1425         u8 byte1 /* state_and_core_id */;
 1426         u8 flags0;
 1427 #define E5_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK     0x1 /* exist_in_qm0 */
 1428 #define E5_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT    0
 1429 #define E5_USTORM_IWARP_CONN_AG_CTX_BIT1_MASK             0x1 /* exist_in_qm1 */
 1430 #define E5_USTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT            1
 1431 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0_MASK              0x3 /* timer0cf */
 1432 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0_SHIFT             2
 1433 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1_MASK              0x3 /* timer1cf */
 1434 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1_SHIFT             4
 1435 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2_MASK              0x3 /* timer2cf */
 1436 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2_SHIFT             6
 1437         u8 flags1;
 1438 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3_MASK              0x3 /* timer_stop_all */
 1439 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3_SHIFT             0
 1440 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_MASK     0x3 /* cf4 */
 1441 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT    2
 1442 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_MASK        0x3 /* cf5 */
 1443 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_SHIFT       4
 1444 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6_MASK              0x3 /* cf6 */
 1445 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6_SHIFT             6
 1446         u8 flags2;
 1447 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0EN_MASK            0x1 /* cf0en */
 1448 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT           0
 1449 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1EN_MASK            0x1 /* cf1en */
 1450 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT           1
 1451 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2EN_MASK            0x1 /* cf2en */
 1452 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT           2
 1453 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3EN_MASK            0x1 /* cf3en */
 1454 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3EN_SHIFT           3
 1455 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK  0x1 /* cf4en */
 1456 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4
 1457 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_MASK     0x1 /* cf5en */
 1458 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT    5
 1459 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6EN_MASK            0x1 /* cf6en */
 1460 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT           6
 1461 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_MASK         0x1 /* rule0en */
 1462 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_SHIFT        7
 1463         u8 flags3;
 1464 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_EN_MASK            0x1 /* rule1en */
 1465 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_EN_SHIFT           0
 1466 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK          0x1 /* rule2en */
 1467 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT         1
 1468 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK          0x1 /* rule3en */
 1469 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT         2
 1470 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK          0x1 /* rule4en */
 1471 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT         3
 1472 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK          0x1 /* rule5en */
 1473 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT         4
 1474 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK          0x1 /* rule6en */
 1475 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT         5
 1476 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK          0x1 /* rule7en */
 1477 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT         6
 1478 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK          0x1 /* rule8en */
 1479 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT         7
 1480         u8 flags4;
 1481 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_MASK     0x1 /* bit2 */
 1482 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_SHIFT    0
 1483 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_MASK     0x1 /* bit3 */
 1484 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_SHIFT    1
 1485 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_MASK     0x3 /* cf7 */
 1486 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_SHIFT    2
 1487 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_MASK     0x3 /* cf8 */
 1488 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_SHIFT    4
 1489 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_MASK     0x1 /* cf7en */
 1490 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_SHIFT    6
 1491 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_MASK     0x1 /* cf8en */
 1492 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_SHIFT    7
 1493         u8 byte2 /* byte2 */;
 1494         __le16 word0 /* conn_dpi */;
 1495         __le16 word1 /* word1 */;
 1496         __le32 cq_cons /* reg0 */;
 1497         __le32 cq_se_prod /* reg1 */;
 1498         __le32 cq_prod /* reg2 */;
 1499         __le32 reg3 /* reg3 */;
 1500         __le16 word2 /* word2 */;
 1501         __le16 word3 /* word3 */;
 1502 };
 1503 
 1504 struct e5_ystorm_iwarp_conn_ag_ctx
 1505 {
 1506         u8 byte0 /* cdu_validation */;
 1507         u8 byte1 /* state_and_core_id */;
 1508         u8 flags0;
 1509 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT0_MASK     0x1 /* exist_in_qm0 */
 1510 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT0_SHIFT    0
 1511 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT1_MASK     0x1 /* exist_in_qm1 */
 1512 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT    1
 1513 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0_MASK      0x3 /* cf0 */
 1514 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT     2
 1515 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1_MASK      0x3 /* cf1 */
 1516 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT     4
 1517 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2_MASK      0x3 /* cf2 */
 1518 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT     6
 1519         u8 flags1;
 1520 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK    0x1 /* cf0en */
 1521 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT   0
 1522 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK    0x1 /* cf1en */
 1523 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT   1
 1524 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK    0x1 /* cf2en */
 1525 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT   2
 1526 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK  0x1 /* rule0en */
 1527 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3
 1528 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK  0x1 /* rule1en */
 1529 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4
 1530 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK  0x1 /* rule2en */
 1531 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5
 1532 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK  0x1 /* rule3en */
 1533 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 6
 1534 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK  0x1 /* rule4en */
 1535 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7
 1536         u8 byte2 /* byte2 */;
 1537         u8 byte3 /* byte3 */;
 1538         __le16 word0 /* word0 */;
 1539         __le32 reg0 /* reg0 */;
 1540         __le32 reg1 /* reg1 */;
 1541         __le16 word1 /* word1 */;
 1542         __le16 word2 /* word2 */;
 1543         __le16 word3 /* word3 */;
 1544         __le16 word4 /* word4 */;
 1545         __le32 reg2 /* reg2 */;
 1546         __le32 reg3 /* reg3 */;
 1547 };
 1548 
 1549 #endif /* __ECORE_HSI_IWARP__ */

Cache object: 2a66aa6ba157bc824dea440ed38dad39


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.