root/dev/pci/if_bnxreg.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    1 /*      $OpenBSD: if_bnxreg.h,v 1.20 2007/03/05 11:13:10 reyk Exp $     */
    2 
    3 /*-
    4  * Copyright (c) 2006 Broadcom Corporation
    5  *      David Christensen <davidch@broadcom.com>.  All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  * 3. Neither the name of Broadcom Corporation nor the name of its contributors
   16  *    may be used to endorse or promote products derived from this software
   17  *    without specific prior written consent.
   18  *
   19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
   20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
   23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
   29  * THE POSSIBILITY OF SUCH DAMAGE.
   30  *
   31  * $FreeBSD: src/sys/dev/bce/if_bcereg.h,v 1.4 2006/05/04 00:34:07 mjacob Exp $
   32  */
   33 
   34 #ifndef _BNX_H_DEFINED
   35 #define _BNX_H_DEFINED
   36 
   37 #ifdef _KERNEL
   38 #include "bpfilter.h"
   39 #include "vlan.h"
   40 
   41 #include <sys/param.h>
   42 #include <sys/systm.h>
   43 #include <sys/sockio.h>
   44 #include <sys/mbuf.h>
   45 #include <sys/malloc.h>
   46 #include <sys/kernel.h>
   47 #include <sys/device.h>
   48 #include <sys/socket.h>
   49 #include <sys/timeout.h>
   50 
   51 #include <net/if.h>
   52 #include <net/if_dl.h>
   53 #include <net/if_media.h>
   54 
   55 #ifdef INET
   56 #include <netinet/in.h>
   57 #include <netinet/in_systm.h>
   58 #include <netinet/in_var.h>
   59 #include <netinet/ip.h>
   60 #include <netinet/if_ether.h>
   61 #endif
   62 
   63 #if NVLAN > 0
   64 #include <net/if_types.h>
   65 #include <net/if_vlan_var.h>
   66 #endif
   67 
   68 #if NBPFILTER > 0
   69 #include <net/bpf.h>
   70 #endif
   71 
   72 #include <dev/pci/pcireg.h>
   73 #include <dev/pci/pcivar.h>
   74 #include <dev/pci/pcidevs.h>
   75 
   76 #include <dev/mii/mii.h>
   77 #include <dev/mii/miivar.h>
   78 #include <dev/mii/miidevs.h>
   79 #include <dev/mii/brgphyreg.h>
   80 
   81 /****************************************************************************/
   82 /* Debugging macros and definitions.                                        */
   83 /****************************************************************************/
   84 #define BNX_CP_LOAD                     0x00000001
   85 #define BNX_CP_SEND                             0x00000002
   86 #define BNX_CP_RECV                             0x00000004
   87 #define BNX_CP_INTR                             0x00000008
   88 #define BNX_CP_UNLOAD                   0x00000010
   89 #define BNX_CP_RESET                    0x00000020
   90 #define BNX_CP_ALL                              0x00FFFFFF
   91 
   92 #define BNX_CP_MASK                             0x00FFFFFF
   93 
   94 #define BNX_LEVEL_FATAL                 0x00000000
   95 #define BNX_LEVEL_WARN                  0x01000000
   96 #define BNX_LEVEL_INFO                  0x02000000
   97 #define BNX_LEVEL_VERBOSE               0x03000000
   98 #define BNX_LEVEL_EXCESSIVE             0x04000000
   99 
  100 #define BNX_LEVEL_MASK                  0xFF000000
  101 
  102 #define BNX_WARN_LOAD                   (BNX_CP_LOAD | BNX_LEVEL_WARN)
  103 #define BNX_INFO_LOAD                   (BNX_CP_LOAD | BNX_LEVEL_INFO)
  104 #define BNX_VERBOSE_LOAD                (BNX_CP_LOAD | BNX_LEVEL_VERBOSE)
  105 #define BNX_EXCESSIVE_LOAD              (BNX_CP_LOAD | BNX_LEVEL_EXCESSIVE)
  106 
  107 #define BNX_WARN_SEND                   (BNX_CP_SEND | BNX_LEVEL_WARN)
  108 #define BNX_INFO_SEND                   (BNX_CP_SEND | BNX_LEVEL_INFO)
  109 #define BNX_VERBOSE_SEND                (BNX_CP_SEND | BNX_LEVEL_VERBOSE)
  110 #define BNX_EXCESSIVE_SEND              (BNX_CP_SEND | BNX_LEVEL_EXCESSIVE)
  111 
  112 #define BNX_WARN_RECV                   (BNX_CP_RECV | BNX_LEVEL_WARN)
  113 #define BNX_INFO_RECV                   (BNX_CP_RECV | BNX_LEVEL_INFO)
  114 #define BNX_VERBOSE_RECV                (BNX_CP_RECV | BNX_LEVEL_VERBOSE)
  115 #define BNX_EXCESSIVE_RECV              (BNX_CP_RECV | BNX_LEVEL_EXCESSIVE)
  116 
  117 #define BNX_WARN_INTR                   (BNX_CP_INTR | BNX_LEVEL_WARN)
  118 #define BNX_INFO_INTR                   (BNX_CP_INTR | BNX_LEVEL_INFO)
  119 #define BNX_VERBOSE_INTR                (BNX_CP_INTR | BNX_LEVEL_VERBOSE)
  120 #define BNX_EXCESSIVE_INTR              (BNX_CP_INTR | BNX_LEVEL_EXCESSIVE)
  121 
  122 #define BNX_WARN_UNLOAD                 (BNX_CP_UNLOAD | BNX_LEVEL_WARN)
  123 #define BNX_INFO_UNLOAD                 (BNX_CP_UNLOAD | BNX_LEVEL_INFO)
  124 #define BNX_VERBOSE_UNLOAD              (BNX_CP_UNLOAD | BNX_LEVEL_VERBOSE)
  125 #define BNX_EXCESSIVE_UNLOAD    (BNX_CP_UNLOAD | BNX_LEVEL_EXCESSIVE)
  126 
  127 #define BNX_WARN_RESET                  (BNX_CP_RESET | BNX_LEVEL_WARN)
  128 #define BNX_INFO_RESET                  (BNX_CP_RESET | BNX_LEVEL_INFO)
  129 #define BNX_VERBOSE_RESET               (BNX_CP_RESET | BNX_LEVEL_VERBOSE)
  130 #define BNX_EXCESSIVE_RESET             (BNX_CP_RESET | BNX_LEVEL_EXCESSIVE)
  131 
  132 #define BNX_FATAL                               (BNX_CP_ALL | BNX_LEVEL_FATAL)
  133 #define BNX_WARN                                (BNX_CP_ALL | BNX_LEVEL_WARN)
  134 #define BNX_INFO                                (BNX_CP_ALL | BNX_LEVEL_INFO)
  135 #define BNX_VERBOSE                             (BNX_CP_ALL | BNX_LEVEL_VERBOSE)
  136 #define BNX_EXCESSIVE                   (BNX_CP_ALL | BNX_LEVEL_EXCESSIVE)
  137 
  138 #define BNX_CODE_PATH(cp)               ((cp & BNX_CP_MASK) & bnx_debug)
  139 #define BNX_MSG_LEVEL(lv)               ((lv & BNX_LEVEL_MASK) <= (bnx_debug & BNX_LEVEL_MASK))
  140 #define BNX_LOG_MSG(m)                  (BNX_CODE_PATH(m) && BNX_MSG_LEVEL(m))
  141 
  142 #ifdef BNX_DEBUG
  143 
  144 /* Print a message based on the logging level and code path. */
  145 #define DBPRINT(sc, level, format, args...)                             \
  146         if (BNX_LOG_MSG(level)) {                                       \
  147                 printf("%s: " format, sc->bnx_dev.dv_xname, ## args);   \
  148         }
  149 
  150 /* Runs a particular command based on the logging level and code path. */
  151 #define DBRUN(m, args...) \
  152         if (BNX_LOG_MSG(m)) { \
  153                 args; \
  154         }
  155 
  156 /* Runs a particular command based on the logging level. */
  157 #define DBRUNLV(level, args...) \
  158         if (BNX_MSG_LEVEL(level)) { \
  159                 args; \
  160         }
  161 
  162 /* Runs a particular command based on the code path. */
  163 #define DBRUNCP(cp, args...) \
  164         if (BNX_CODE_PATH(cp)) { \
  165                 args; \
  166         }
  167 
  168 /* Runs a particular command based on a condition. */
  169 #define DBRUNIF(cond, args...) \
  170         if (cond) { \
  171                 args; \
  172         }
  173 #if 0
  174 /* Needed for random() function which is only used in debugging. */
  175 #include <sys/random.h>
  176 #endif
  177 
  178 /* Returns FALSE in "defects" per 2^31 - 1 calls, otherwise returns TRUE. */
  179 #define DB_RANDOMFALSE(defects)        (random() > defects)
  180 #define DB_OR_RANDOMFALSE(defects)  || (random() > defects)
  181 #define DB_AND_RANDOMFALSE(defects) && (random() > ddfects)
  182 
  183 /* Returns TRUE in "defects" per 2^31 - 1 calls, otherwise returns FALSE. */
  184 #define DB_RANDOMTRUE(defects)         (random() < defects)
  185 #define DB_OR_RANDOMTRUE(defects)   || (random() < defects)
  186 #define DB_AND_RANDOMTRUE(defects)  && (random() < defects)
  187 
  188 #else
  189 
  190 #define DBPRINT(level, format, args...)
  191 #define DBRUN(m, args...)
  192 #define DBRUNLV(level, args...)
  193 #define DBRUNCP(cp, args...)
  194 #define DBRUNIF(cond, args...)
  195 #define DB_RANDOMFALSE(defects)
  196 #define DB_OR_RANDOMFALSE(percent)
  197 #define DB_AND_RANDOMFALSE(percent)
  198 #define DB_RANDOMTRUE(defects)
  199 #define DB_OR_RANDOMTRUE(percent)
  200 #define DB_AND_RANDOMTRUE(percent)
  201 
  202 #endif /* BNX_DEBUG */
  203 
  204 
  205 /****************************************************************************/
  206 /* Device identification definitions.                                       */
  207 /****************************************************************************/
  208 #define BRCM_VENDORID                           0x14E4
  209 #define BRCM_DEVICEID_BCM5706           0x164A
  210 #define BRCM_DEVICEID_BCM5706S          0x16AA
  211 #define BRCM_DEVICEID_BCM5708           0x164C
  212 #define BRCM_DEVICEID_BCM5708S          0x16AC
  213 
  214 #define HP_VENDORID                                     0x103C
  215 
  216 #define PCI_ANY_ID                                      (u_int16_t) (~0U)
  217 
  218 /* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */
  219 
  220 #define BNX_CHIP_NUM(sc)                        (((sc)->bnx_chipid) & 0xffff0000)
  221 #define BNX_CHIP_NUM_5706                       0x57060000
  222 #define BNX_CHIP_NUM_5708                       0x57080000
  223 
  224 #define BNX_CHIP_REV(sc)                        (((sc)->bnx_chipid) & 0x0000f000)
  225 #define BNX_CHIP_REV_Ax                         0x00000000
  226 #define BNX_CHIP_REV_Bx                         0x00001000
  227 #define BNX_CHIP_REV_Cx                         0x00002000
  228 
  229 #define BNX_CHIP_METAL(sc)                      (((sc)->bnx_chipid) & 0x00000ff0)
  230 #define BNX_CHIP_BOND(bp)                       (((sc)->bnx_chipid) & 0x0000000f)
  231 
  232 #define BNX_CHIP_ID(sc)                         (((sc)->bnx_chipid) & 0xfffffff0)
  233 #define BNX_CHIP_ID_5706_A0                     0x57060000
  234 #define BNX_CHIP_ID_5706_A1                     0x57060010
  235 #define BNX_CHIP_ID_5706_A2                     0x57060020
  236 #define BNX_CHIP_ID_5708_A0                     0x57080000
  237 #define BNX_CHIP_ID_5708_B0                     0x57081000
  238 #define BNX_CHIP_ID_5708_B1                     0x57081010
  239 
  240 #define BNX_CHIP_BOND_ID(sc)            (((sc)->bnx_chipid) & 0xf)
  241 
  242 /* A serdes chip will have the first bit of the bond id set. */
  243 #define BNX_CHIP_BOND_ID_SERDES_BIT             0x01
  244 
  245 
  246 /* shorthand one */
  247 #define BNX_ASICREV(x)                  ((x) >> 28)
  248 #define BNX_ASICREV_BCM5700             0x06
  249 
  250 /* chip revisions */
  251 #define BNX_CHIPREV(x)                  ((x) >> 24)
  252 #define BNX_CHIPREV_5700_AX             0x70
  253 #define BNX_CHIPREV_5700_BX             0x71
  254 #define BNX_CHIPREV_5700_CX             0x72
  255 #define BNX_CHIPREV_5701_AX             0x00
  256 
  257 struct bnx_type {
  258         u_int16_t               bnx_vid;
  259         u_int16_t               bnx_did;
  260         u_int16_t               bnx_svid;
  261         u_int16_t               bnx_sdid;
  262         char                    *bnx_name;
  263 };
  264 
  265 /****************************************************************************/
  266 /* Byte order conversions.                                                  */
  267 /****************************************************************************/
  268 #define bnx_htobe16(x) htobe16(x)
  269 #define bnx_htobe32(x) htobe32(x)
  270 #define bnx_htobe64(x) htobe64(x)
  271 #define bnx_htole16(x) htole16(x)
  272 #define bnx_htole32(x) htole32(x)
  273 #define bnx_htole64(x) htole64(x)
  274 
  275 #define bnx_be16toh(x) betoh16(x)
  276 #define bnx_be32toh(x) betoh32(x)
  277 #define bnx_be64toh(x) betoh64(x)
  278 #define bnx_le16toh(x) letoh16(x)
  279 #define bnx_le32toh(x) letoh32(x)
  280 #define bnx_le64toh(x) letoh64(x)
  281 
  282 
  283 /****************************************************************************/
  284 /* NVRAM Access                                                             */
  285 /****************************************************************************/
  286 
  287 /* Buffered flash (Atmel: AT45DB011B) specific information */
  288 #define SEEPROM_PAGE_BITS                               2
  289 #define SEEPROM_PHY_PAGE_SIZE                   (1 << SEEPROM_PAGE_BITS)
  290 #define SEEPROM_BYTE_ADDR_MASK                  (SEEPROM_PHY_PAGE_SIZE-1)
  291 #define SEEPROM_PAGE_SIZE                               4
  292 #define SEEPROM_TOTAL_SIZE                              65536
  293 
  294 #define BUFFERED_FLASH_PAGE_BITS                9
  295 #define BUFFERED_FLASH_PHY_PAGE_SIZE    (1 << BUFFERED_FLASH_PAGE_BITS)
  296 #define BUFFERED_FLASH_BYTE_ADDR_MASK   (BUFFERED_FLASH_PHY_PAGE_SIZE-1)
  297 #define BUFFERED_FLASH_PAGE_SIZE                264
  298 #define BUFFERED_FLASH_TOTAL_SIZE               0x21000
  299 
  300 #define SAIFUN_FLASH_PAGE_BITS                  8
  301 #define SAIFUN_FLASH_PHY_PAGE_SIZE              (1 << SAIFUN_FLASH_PAGE_BITS)
  302 #define SAIFUN_FLASH_BYTE_ADDR_MASK             (SAIFUN_FLASH_PHY_PAGE_SIZE-1)
  303 #define SAIFUN_FLASH_PAGE_SIZE                  256
  304 #define SAIFUN_FLASH_BASE_TOTAL_SIZE    65536
  305 
  306 #define ST_MICRO_FLASH_PAGE_BITS                8
  307 #define ST_MICRO_FLASH_PHY_PAGE_SIZE    (1 << ST_MICRO_FLASH_PAGE_BITS)
  308 #define ST_MICRO_FLASH_BYTE_ADDR_MASK   (ST_MICRO_FLASH_PHY_PAGE_SIZE-1)
  309 #define ST_MICRO_FLASH_PAGE_SIZE                256
  310 #define ST_MICRO_FLASH_BASE_TOTAL_SIZE  65536
  311 
  312 #define NVRAM_TIMEOUT_COUNT                             30000
  313 #define BNX_FLASHDESC_MAX                               64
  314 
  315 #define FLASH_STRAP_MASK                                (BNX_NVM_CFG1_FLASH_MODE | \
  316                                                                                  BNX_NVM_CFG1_BUFFER_MODE  | \
  317                                                                                  BNX_NVM_CFG1_PROTECT_MODE | \
  318                                                                                  BNX_NVM_CFG1_FLASH_SIZE)
  319 
  320 #define FLASH_BACKUP_STRAP_MASK                 (0xf << 26)
  321 
  322 struct flash_spec {
  323         u_int32_t strapping;
  324         u_int32_t config1;
  325         u_int32_t config2;
  326         u_int32_t config3;
  327         u_int32_t write1;
  328         u_int32_t buffered;
  329         u_int32_t page_bits;
  330         u_int32_t page_size;
  331         u_int32_t addr_mask;
  332         u_int32_t total_size;
  333         u_int8_t  *name;
  334 };
  335 
  336 
  337 /****************************************************************************/
  338 /* Shared Memory layout                                                     */
  339 /* The BNX bootcode will initialize this data area with port configurtion   */
  340 /* information which can be accessed by the driver.                         */
  341 /****************************************************************************/
  342 
  343 /* 
  344  * This value (in milliseconds) determines the frequency of the driver
  345  * issuing the PULSE message code.  The firmware monitors this periodic
  346  * pulse to determine when to switch to an OS-absent mode. 
  347  */
  348 #define DRV_PULSE_PERIOD_MS                 250
  349 
  350 /* 
  351  * This value (in milliseconds) determines how long the driver should
  352  * wait for an acknowledgement from the firmware before timing out.  Once
  353  * the firmware has timed out, the driver will assume there is no firmware
  354  * running and there won't be any firmware-driver synchronization during a
  355  * driver reset. 
  356  */
  357 #define FW_ACK_TIME_OUT_MS                  100
  358 
  359 
  360 #define BNX_DRV_RESET_SIGNATURE                         0x00000000
  361 #define BNX_DRV_RESET_SIGNATURE_MAGIC           0x4841564b /* HAVK */
  362 
  363 #define BNX_DRV_MB                                                      0x00000004
  364 #define BNX_DRV_MSG_CODE                                        0xff000000
  365 #define BNX_DRV_MSG_CODE_RESET                          0x01000000
  366 #define BNX_DRV_MSG_CODE_UNLOAD                         0x02000000
  367 #define BNX_DRV_MSG_CODE_SHUTDOWN                       0x03000000
  368 #define BNX_DRV_MSG_CODE_SUSPEND_WOL            0x04000000
  369 #define BNX_DRV_MSG_CODE_FW_TIMEOUT                     0x05000000
  370 #define BNX_DRV_MSG_CODE_PULSE                          0x06000000
  371 #define BNX_DRV_MSG_CODE_DIAG                           0x07000000
  372 #define BNX_DRV_MSG_CODE_SUSPEND_NO_WOL         0x09000000
  373 
  374 #define BNX_DRV_MSG_DATA                                        0x00ff0000
  375 #define BNX_DRV_MSG_DATA_WAIT0                          0x00010000
  376 #define BNX_DRV_MSG_DATA_WAIT1                          0x00020000
  377 #define BNX_DRV_MSG_DATA_WAIT2                          0x00030000
  378 #define BNX_DRV_MSG_DATA_WAIT3                          0x00040000
  379 
  380 #define BNX_DRV_MSG_SEQ                                         0x0000ffff
  381 
  382 #define BNX_FW_MB                               0x00000008
  383 #define BNX_FW_MSG_ACK                           0x0000ffff
  384 #define BNX_FW_MSG_STATUS_MASK                   0x00ff0000
  385 #define BNX_FW_MSG_STATUS_OK                     0x00000000
  386 #define BNX_FW_MSG_STATUS_FAILURE                0x00ff0000
  387 
  388 #define BNX_LINK_STATUS                 0x0000000c
  389 #define BNX_LINK_STATUS_INIT_VALUE               0xffffffff
  390 #define BNX_LINK_STATUS_LINK_UP          0x1
  391 #define BNX_LINK_STATUS_LINK_DOWN                0x0
  392 #define BNX_LINK_STATUS_SPEED_MASK               0x1e
  393 #define BNX_LINK_STATUS_AN_INCOMPLETE            (0<<1)
  394 #define BNX_LINK_STATUS_10HALF                   (1<<1)
  395 #define BNX_LINK_STATUS_10FULL                   (2<<1)
  396 #define BNX_LINK_STATUS_100HALF          (3<<1)
  397 #define BNX_LINK_STATUS_100BASE_T4               (4<<1)
  398 #define BNX_LINK_STATUS_100FULL          (5<<1)
  399 #define BNX_LINK_STATUS_1000HALF                 (6<<1)
  400 #define BNX_LINK_STATUS_1000FULL                 (7<<1)
  401 #define BNX_LINK_STATUS_2500HALF                 (8<<1)
  402 #define BNX_LINK_STATUS_2500FULL                 (9<<1)
  403 #define BNX_LINK_STATUS_AN_ENABLED               (1<<5)
  404 #define BNX_LINK_STATUS_AN_COMPLETE              (1<<6)
  405 #define BNX_LINK_STATUS_PARALLEL_DET             (1<<7)
  406 #define BNX_LINK_STATUS_RESERVED                 (1<<8)
  407 #define BNX_LINK_STATUS_PARTNER_AD_1000FULL      (1<<9)
  408 #define BNX_LINK_STATUS_PARTNER_AD_1000HALF      (1<<10)
  409 #define BNX_LINK_STATUS_PARTNER_AD_100BT4        (1<<11)
  410 #define BNX_LINK_STATUS_PARTNER_AD_100FULL       (1<<12)
  411 #define BNX_LINK_STATUS_PARTNER_AD_100HALF       (1<<13)
  412 #define BNX_LINK_STATUS_PARTNER_AD_10FULL        (1<<14)
  413 #define BNX_LINK_STATUS_PARTNER_AD_10HALF        (1<<15)
  414 #define BNX_LINK_STATUS_TX_FC_ENABLED            (1<<16)
  415 #define BNX_LINK_STATUS_RX_FC_ENABLED            (1<<17)
  416 #define BNX_LINK_STATUS_PARTNER_SYM_PAUSE_CAP    (1<<18)
  417 #define BNX_LINK_STATUS_PARTNER_ASYM_PAUSE_CAP   (1<<19)
  418 #define BNX_LINK_STATUS_SERDES_LINK              (1<<20)
  419 #define BNX_LINK_STATUS_PARTNER_AD_2500FULL      (1<<21)
  420 #define BNX_LINK_STATUS_PARTNER_AD_2500HALF      (1<<22)
  421 
  422 #define BNX_DRV_PULSE_MB                        0x00000010
  423 #define BNX_DRV_PULSE_SEQ_MASK                   0x00007fff
  424 
  425 /* Indicate to the firmware not to go into the
  426  * OS absent when it is not getting driver pulse.
  427  * This is used for debugging. */
  428 #define BNX_DRV_MSG_DATA_PULSE_CODE_ALWAYS_ALIVE         0x00080000
  429 
  430 #define BNX_DEV_INFO_SIGNATURE                  0x00000020
  431 #define BNX_DEV_INFO_SIGNATURE_MAGIC             0x44564900
  432 #define BNX_DEV_INFO_SIGNATURE_MAGIC_MASK        0xffffff00
  433 #define BNX_DEV_INFO_FEATURE_CFG_VALID           0x01
  434 #define BNX_DEV_INFO_SECONDARY_PORT              0x80
  435 #define BNX_DEV_INFO_DRV_ALWAYS_ALIVE            0x40
  436 
  437 #define BNX_SHARED_HW_CFG_PART_NUM              0x00000024
  438 
  439 #define BNX_SHARED_HW_CFG_POWER_DISSIPATED      0x00000034
  440 #define BNX_SHARED_HW_CFG_POWER_STATE_D3_MASK    0xff000000
  441 #define BNX_SHARED_HW_CFG_POWER_STATE_D2_MASK    0xff0000
  442 #define BNX_SHARED_HW_CFG_POWER_STATE_D1_MASK    0xff00
  443 #define BNX_SHARED_HW_CFG_POWER_STATE_D0_MASK    0xff
  444 
  445 #define BNX_SHARED_HW_CFG_POWER_CONSUMED        0x00000038
  446 #define BNX_SHARED_HW_CFG_CONFIG                0x0000003c
  447 #define BNX_SHARED_HW_CFG_DESIGN_NIC             0
  448 #define BNX_SHARED_HW_CFG_DESIGN_LOM             0x1
  449 #define BNX_SHARED_HW_CFG_PHY_COPPER             0
  450 #define BNX_SHARED_HW_CFG_PHY_FIBER              0x2
  451 #define BNX_SHARED_HW_CFG_PHY_2_5G               0x20
  452 #define BNX_SHARED_HW_CFG_PHY_BACKPLANE  0x40
  453 #define BNX_SHARED_HW_CFG_LED_MODE_SHIFT_BITS    8
  454 #define BNX_SHARED_HW_CFG_LED_MODE_MASK  0x300
  455 #define BNX_SHARED_HW_CFG_LED_MODE_MAC           0
  456 #define BNX_SHARED_HW_CFG_LED_MODE_GPHY1         0x100
  457 #define BNX_SHARED_HW_CFG_LED_MODE_GPHY2         0x200
  458 
  459 #define BNX_SHARED_HW_CFG_CONFIG2               0x00000040
  460 #define BNX_SHARED_HW_CFG2_NVM_SIZE_MASK         0x00fff000
  461 
  462 #define BNX_DEV_INFO_BC_REV                     0x0000004c
  463 
  464 #define BNX_PORT_HW_CFG_MAC_UPPER               0x00000050
  465 #define BNX_PORT_HW_CFG_UPPERMAC_MASK            0xffff
  466 
  467 #define BNX_PORT_HW_CFG_MAC_LOWER               0x00000054
  468 #define BNX_PORT_HW_CFG_CONFIG                  0x00000058
  469 #define BNX_PORT_HW_CFG_CFG_TXCTL3_MASK  0x0000ffff
  470 #define BNX_PORT_HW_CFG_CFG_DFLT_LINK_MASK       0x001f0000
  471 #define BNX_PORT_HW_CFG_CFG_DFLT_LINK_AN         0x00000000
  472 #define BNX_PORT_HW_CFG_CFG_DFLT_LINK_1G         0x00030000
  473 #define BNX_PORT_HW_CFG_CFG_DFLT_LINK_2_5G       0x00040000
  474 
  475 #define BNX_PORT_HW_CFG_IMD_MAC_A_UPPER 0x00000068
  476 #define BNX_PORT_HW_CFG_IMD_MAC_A_LOWER 0x0000006c
  477 #define BNX_PORT_HW_CFG_IMD_MAC_B_UPPER 0x00000070
  478 #define BNX_PORT_HW_CFG_IMD_MAC_B_LOWER 0x00000074
  479 #define BNX_PORT_HW_CFG_ISCSI_MAC_UPPER 0x00000078
  480 #define BNX_PORT_HW_CFG_ISCSI_MAC_LOWER 0x0000007c
  481 
  482 #define BNX_DEV_INFO_PER_PORT_HW_CONFIG2        0x000000b4
  483 
  484 #define BNX_DEV_INFO_FORMAT_REV         0x000000c4
  485 #define BNX_DEV_INFO_FORMAT_REV_MASK             0xff000000
  486 #define BNX_DEV_INFO_FORMAT_REV_ID               ('A' << 24)
  487 
  488 #define BNX_SHARED_FEATURE                      0x000000c8
  489 #define BNX_SHARED_FEATURE_MASK          0xffffffff
  490 
  491 #define BNX_PORT_FEATURE                        0x000000d8
  492 #define BNX_PORT2_FEATURE                       0x00000014c
  493 #define BNX_PORT_FEATURE_WOL_ENABLED             0x01000000
  494 #define BNX_PORT_FEATURE_MBA_ENABLED             0x02000000
  495 #define BNX_PORT_FEATURE_ASF_ENABLED             0x04000000
  496 #define BNX_PORT_FEATURE_IMD_ENABLED             0x08000000
  497 #define BNX_PORT_FEATURE_BAR1_SIZE_MASK  0xf
  498 #define BNX_PORT_FEATURE_BAR1_SIZE_DISABLED      0x0
  499 #define BNX_PORT_FEATURE_BAR1_SIZE_64K           0x1
  500 #define BNX_PORT_FEATURE_BAR1_SIZE_128K  0x2
  501 #define BNX_PORT_FEATURE_BAR1_SIZE_256K  0x3
  502 #define BNX_PORT_FEATURE_BAR1_SIZE_512K  0x4
  503 #define BNX_PORT_FEATURE_BAR1_SIZE_1M            0x5
  504 #define BNX_PORT_FEATURE_BAR1_SIZE_2M            0x6
  505 #define BNX_PORT_FEATURE_BAR1_SIZE_4M            0x7
  506 #define BNX_PORT_FEATURE_BAR1_SIZE_8M            0x8
  507 #define BNX_PORT_FEATURE_BAR1_SIZE_16M           0x9
  508 #define BNX_PORT_FEATURE_BAR1_SIZE_32M           0xa
  509 #define BNX_PORT_FEATURE_BAR1_SIZE_64M           0xb
  510 #define BNX_PORT_FEATURE_BAR1_SIZE_128M  0xc
  511 #define BNX_PORT_FEATURE_BAR1_SIZE_256M  0xd
  512 #define BNX_PORT_FEATURE_BAR1_SIZE_512M  0xe
  513 #define BNX_PORT_FEATURE_BAR1_SIZE_1G            0xf
  514 
  515 #define BNX_PORT_FEATURE_WOL                    0xdc
  516 #define BNX_PORT2_FEATURE_WOL                   0x150
  517 #define BNX_PORT_FEATURE_WOL_DEFAULT_SHIFT_BITS  4
  518 #define BNX_PORT_FEATURE_WOL_DEFAULT_MASK        0x30
  519 #define BNX_PORT_FEATURE_WOL_DEFAULT_DISABLE     0
  520 #define BNX_PORT_FEATURE_WOL_DEFAULT_MAGIC       0x10
  521 #define BNX_PORT_FEATURE_WOL_DEFAULT_ACPI        0x20
  522 #define BNX_PORT_FEATURE_WOL_DEFAULT_MAGIC_AND_ACPI      0x30
  523 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_MASK     0xf
  524 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_AUTONEG  0
  525 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_10HALF   1
  526 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_10FULL   2
  527 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_100HALF 3
  528 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_100FULL 4
  529 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_1000HALF         5
  530 #define BNX_PORT_FEATURE_WOL_LINK_SPEED_1000FULL         6
  531 #define BNX_PORT_FEATURE_WOL_AUTONEG_ADVERTISE_1000      0x40
  532 #define BNX_PORT_FEATURE_WOL_RESERVED_PAUSE_CAP 0x400
  533 #define BNX_PORT_FEATURE_WOL_RESERVED_ASYM_PAUSE_CAP     0x800
  534 
  535 #define BNX_PORT_FEATURE_MBA                    0xe0
  536 #define BNX_PORT2_FEATURE_MBA                   0x154
  537 #define BNX_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_SHIFT_BITS  0
  538 #define BNX_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_MASK        0x3
  539 #define BNX_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_PXE         0
  540 #define BNX_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_RPL         1
  541 #define BNX_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_BOOTP       2
  542 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_SHIFT_BITS       2
  543 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_MASK     0x3c
  544 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_AUTONEG  0
  545 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_10HALF   0x4
  546 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_10FULL   0x8
  547 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_100HALF  0xc
  548 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_100FULL  0x10
  549 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_1000HALF         0x14
  550 #define BNX_PORT_FEATURE_MBA_LINK_SPEED_1000FULL         0x18
  551 #define BNX_PORT_FEATURE_MBA_SETUP_PROMPT_ENABLE         0x40
  552 #define BNX_PORT_FEATURE_MBA_HOTKEY_CTRL_S       0
  553 #define BNX_PORT_FEATURE_MBA_HOTKEY_CTRL_B       0x80
  554 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_SHIFT_BITS     8
  555 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_MASK   0xff00
  556 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_DISABLED       0
  557 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_1K     0x100
  558 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_2K     0x200
  559 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_4K     0x300
  560 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_8K     0x400
  561 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_16K    0x500
  562 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_32K    0x600
  563 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_64K    0x700
  564 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_128K   0x800
  565 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_256K   0x900
  566 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_512K   0xa00
  567 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_1M     0xb00
  568 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_2M     0xc00
  569 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_4M     0xd00
  570 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_8M     0xe00
  571 #define BNX_PORT_FEATURE_MBA_EXP_ROM_SIZE_16M    0xf00
  572 #define BNX_PORT_FEATURE_MBA_MSG_TIMEOUT_SHIFT_BITS      16
  573 #define BNX_PORT_FEATURE_MBA_MSG_TIMEOUT_MASK    0xf0000
  574 #define BNX_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_SHIFT_BITS   20
  575 #define BNX_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_MASK         0x300000
  576 #define BNX_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_AUTO         0
  577 #define BNX_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_BBS  0x100000
  578 #define BNX_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT18H       0x200000
  579 #define BNX_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT19H       0x300000
  580 
  581 #define BNX_PORT_FEATURE_IMD                    0xe4
  582 #define BNX_PORT2_FEATURE_IMD                   0x158
  583 #define BNX_PORT_FEATURE_IMD_LINK_OVERRIDE_DEFAULT       0
  584 #define BNX_PORT_FEATURE_IMD_LINK_OVERRIDE_ENABLE        1
  585 
  586 #define BNX_PORT_FEATURE_VLAN                   0xe8
  587 #define BNX_PORT2_FEATURE_VLAN                  0x15c
  588 #define BNX_PORT_FEATURE_MBA_VLAN_TAG_MASK       0xffff
  589 #define BNX_PORT_FEATURE_MBA_VLAN_ENABLE         0x10000
  590 
  591 #define BNX_BC_STATE_RESET_TYPE         0x000001c0
  592 #define BNX_BC_STATE_RESET_TYPE_SIG              0x00005254
  593 #define BNX_BC_STATE_RESET_TYPE_SIG_MASK         0x0000ffff
  594 #define BNX_BC_STATE_RESET_TYPE_NONE     (BNX_BC_STATE_RESET_TYPE_SIG | \
  595                                           0x00010000)
  596 #define BNX_BC_STATE_RESET_TYPE_PCI      (BNX_BC_STATE_RESET_TYPE_SIG | \
  597                                           0x00020000)
  598 #define BNX_BC_STATE_RESET_TYPE_VAUX     (BNX_BC_STATE_RESET_TYPE_SIG | \
  599                                           0x00030000)
  600 #define BNX_BC_STATE_RESET_TYPE_DRV_MASK         DRV_MSG_CODE
  601 #define BNX_BC_STATE_RESET_TYPE_DRV_RESET (BNX_BC_STATE_RESET_TYPE_SIG | \
  602                                             DRV_MSG_CODE_RESET)
  603 #define BNX_BC_STATE_RESET_TYPE_DRV_UNLOAD (BNX_BC_STATE_RESET_TYPE_SIG | \
  604                                              DRV_MSG_CODE_UNLOAD)
  605 #define BNX_BC_STATE_RESET_TYPE_DRV_SHUTDOWN (BNX_BC_STATE_RESET_TYPE_SIG | \
  606                                                DRV_MSG_CODE_SHUTDOWN)
  607 #define BNX_BC_STATE_RESET_TYPE_DRV_WOL (BNX_BC_STATE_RESET_TYPE_SIG | \
  608                                           DRV_MSG_CODE_WOL)
  609 #define BNX_BC_STATE_RESET_TYPE_DRV_DIAG (BNX_BC_STATE_RESET_TYPE_SIG | \
  610                                            DRV_MSG_CODE_DIAG)
  611 #define BNX_BC_STATE_RESET_TYPE_VALUE(msg) (BNX_BC_STATE_RESET_TYPE_SIG | \
  612                                              (msg))
  613 
  614 #define BNX_BC_STATE                            0x000001c4
  615 #define BNX_BC_STATE_ERR_MASK                    0x0000ff00
  616 #define BNX_BC_STATE_SIGN                        0x42530000
  617 #define BNX_BC_STATE_SIGN_MASK                   0xffff0000
  618 #define BNX_BC_STATE_BC1_START                   (BNX_BC_STATE_SIGN | 0x1)
  619 #define BNX_BC_STATE_GET_NVM_CFG1                (BNX_BC_STATE_SIGN | 0x2)
  620 #define BNX_BC_STATE_PROG_BAR                    (BNX_BC_STATE_SIGN | 0x3)
  621 #define BNX_BC_STATE_INIT_VID                    (BNX_BC_STATE_SIGN | 0x4)
  622 #define BNX_BC_STATE_GET_NVM_CFG2                (BNX_BC_STATE_SIGN | 0x5)
  623 #define BNX_BC_STATE_APPLY_WKARND                (BNX_BC_STATE_SIGN | 0x6)
  624 #define BNX_BC_STATE_LOAD_BC2                    (BNX_BC_STATE_SIGN | 0x7)
  625 #define BNX_BC_STATE_GOING_BC2                   (BNX_BC_STATE_SIGN | 0x8)
  626 #define BNX_BC_STATE_GOING_DIAG          (BNX_BC_STATE_SIGN | 0x9)
  627 #define BNX_BC_STATE_RT_FINAL_INIT               (BNX_BC_STATE_SIGN | 0x81)
  628 #define BNX_BC_STATE_RT_WKARND                   (BNX_BC_STATE_SIGN | 0x82)
  629 #define BNX_BC_STATE_RT_DRV_PULSE                (BNX_BC_STATE_SIGN | 0x83)
  630 #define BNX_BC_STATE_RT_FIOEVTS          (BNX_BC_STATE_SIGN | 0x84)
  631 #define BNX_BC_STATE_RT_DRV_CMD          (BNX_BC_STATE_SIGN | 0x85)
  632 #define BNX_BC_STATE_RT_LOW_POWER                (BNX_BC_STATE_SIGN | 0x86)
  633 #define BNX_BC_STATE_RT_SET_WOL          (BNX_BC_STATE_SIGN | 0x87)
  634 #define BNX_BC_STATE_RT_OTHER_FW                 (BNX_BC_STATE_SIGN | 0x88)
  635 #define BNX_BC_STATE_RT_GOING_D3                 (BNX_BC_STATE_SIGN | 0x89)
  636 #define BNX_BC_STATE_ERR_BAD_VERSION             (BNX_BC_STATE_SIGN | 0x0100)
  637 #define BNX_BC_STATE_ERR_BAD_BC2_CRC             (BNX_BC_STATE_SIGN | 0x0200)
  638 #define BNX_BC_STATE_ERR_BC1_LOOP                (BNX_BC_STATE_SIGN | 0x0300)
  639 #define BNX_BC_STATE_ERR_UNKNOWN_CMD             (BNX_BC_STATE_SIGN | 0x0400)
  640 #define BNX_BC_STATE_ERR_DRV_DEAD                (BNX_BC_STATE_SIGN | 0x0500)
  641 #define BNX_BC_STATE_ERR_NO_RXP          (BNX_BC_STATE_SIGN | 0x0600)
  642 #define BNX_BC_STATE_ERR_TOO_MANY_RBUF           (BNX_BC_STATE_SIGN | 0x0700)
  643 
  644 #define BNX_BC_STATE_DEBUG_CMD                  0x1dc
  645 #define BNX_BC_STATE_BC_DBG_CMD_SIGNATURE        0x42440000
  646 #define BNX_BC_STATE_BC_DBG_CMD_SIGNATURE_MASK   0xffff0000
  647 #define BNX_BC_STATE_BC_DBG_CMD_LOOP_CNT_MASK    0xffff
  648 #define BNX_BC_STATE_BC_DBG_CMD_LOOP_INFINITE    0xffff
  649 
  650 #define HOST_VIEW_SHMEM_BASE                    0x167c00
  651 
  652 /*
  653  * PCI registers defined in the PCI 2.2 spec.
  654  */
  655 #define BNX_PCI_BAR0                    0x10
  656 #define BNX_PCI_PCIX_CMD                0x42
  657 
  658 /****************************************************************************/
  659 /* Convenience definitions.                                                 */
  660 /****************************************************************************/
  661 #define BNX_PRINTF(sc, fmt, args...)    printf("%s: " fmt, sc->bnx_dev.dv_xname, ##args)
  662 
  663 #define REG_WR(sc, reg, val)            bus_space_write_4(sc->bnx_btag, sc->bnx_bhandle, reg, val)
  664 #define REG_WR16(sc, reg, val)          bus_space_write_2(sc->bnx_btag, sc->bnx_bhandle, reg, val)
  665 #define REG_RD(sc, reg)                 bus_space_read_4(sc->bnx_btag, sc->bnx_bhandle, reg)
  666 #define REG_RD_IND(sc, offset)          bnx_reg_rd_ind(sc, offset)
  667 #define REG_WR_IND(sc, offset, val)     bnx_reg_wr_ind(sc, offset, val)
  668 #define CTX_WR(sc, cid_addr, offset, val)       bnx_ctx_wr(sc, cid_addr, offset, val)
  669 #define BNX_SETBIT(sc, reg, x)          REG_WR(sc, reg, (REG_RD(sc, reg) | (x)))
  670 #define BNX_CLRBIT(sc, reg, x)          REG_WR(sc, reg, (REG_RD(sc, reg) & ~(x)))
  671 #define PCI_SETBIT(pc, tag, reg, x)     pci_conf_write(pc, tag, reg, (pci_conf_read(pc, tag, reg) | (x)))
  672 #define PCI_CLRBIT(pc, tag, reg, x)     pci_conf_write(pc, tag, reg, (pci_conf_read(pc, tag, reg) & ~(x)))
  673 
  674 #define BNX_STATS(x)                    (u_long) stats->stat_ ## x ## _lo
  675 
  676 /*
  677  * The following data structures are generated from RTL code.
  678  * Do not modify any values below this line.
  679  */
  680 
  681 /****************************************************************************/
  682 /* Do not modify any of the following data structures, they are generated   */
  683 /* from RTL code.                                                           */
  684 /*                                                                          */
  685 /* Begin machine generated definitions.                                     */
  686 /****************************************************************************/
  687 
  688 /*
  689  *  tx_bd definition
  690  */
  691 struct tx_bd {
  692         u_int32_t tx_bd_haddr_hi;
  693         u_int32_t tx_bd_haddr_lo;
  694         u_int32_t tx_bd_mss_nbytes;
  695         u_int16_t tx_bd_flags;
  696         u_int16_t tx_bd_vlan_tag;
  697                 #define TX_BD_FLAGS_CONN_FAULT          (1<<0)
  698                 #define TX_BD_FLAGS_TCP_UDP_CKSUM       (1<<1)
  699                 #define TX_BD_FLAGS_IP_CKSUM            (1<<2)
  700                 #define TX_BD_FLAGS_VLAN_TAG            (1<<3)
  701                 #define TX_BD_FLAGS_COAL_NOW            (1<<4)
  702                 #define TX_BD_FLAGS_DONT_GEN_CRC        (1<<5)
  703                 #define TX_BD_FLAGS_END                 (1<<6)
  704                 #define TX_BD_FLAGS_START               (1<<7)
  705                 #define TX_BD_FLAGS_SW_OPTION_WORD      (0x1f<<8)
  706                 #define TX_BD_FLAGS_SW_FLAGS            (1<<13)
  707                 #define TX_BD_FLAGS_SW_SNAP             (1<<14)
  708                 #define TX_BD_FLAGS_SW_LSO              (1<<15)
  709 
  710 };
  711 
  712 
  713 /*
  714  *  rx_bd definition
  715  */
  716 struct rx_bd {
  717         u_int32_t rx_bd_haddr_hi;
  718         u_int32_t rx_bd_haddr_lo;
  719         u_int32_t rx_bd_len;
  720         u_int32_t rx_bd_flags;
  721                 #define RX_BD_FLAGS_NOPUSH              (1<<0)
  722                 #define RX_BD_FLAGS_DUMMY               (1<<1)
  723                 #define RX_BD_FLAGS_END                 (1<<2)
  724                 #define RX_BD_FLAGS_START               (1<<3)
  725 
  726 };
  727 
  728 
  729 /*
  730  *  status_block definition
  731  */
  732 struct status_block {
  733         u_int32_t status_attn_bits;
  734                 #define STATUS_ATTN_BITS_LINK_STATE             (1L<<0)
  735                 #define STATUS_ATTN_BITS_TX_SCHEDULER_ABORT     (1L<<1)
  736                 #define STATUS_ATTN_BITS_TX_BD_READ_ABORT       (1L<<2)
  737                 #define STATUS_ATTN_BITS_TX_BD_CACHE_ABORT      (1L<<3)
  738                 #define STATUS_ATTN_BITS_TX_PROCESSOR_ABORT     (1L<<4)
  739                 #define STATUS_ATTN_BITS_TX_DMA_ABORT           (1L<<5)
  740                 #define STATUS_ATTN_BITS_TX_PATCHUP_ABORT       (1L<<6)
  741                 #define STATUS_ATTN_BITS_TX_ASSEMBLER_ABORT     (1L<<7)
  742                 #define STATUS_ATTN_BITS_RX_PARSER_MAC_ABORT    (1L<<8)
  743                 #define STATUS_ATTN_BITS_RX_PARSER_CATCHUP_ABORT        (1L<<9)
  744                 #define STATUS_ATTN_BITS_RX_MBUF_ABORT          (1L<<10)
  745                 #define STATUS_ATTN_BITS_RX_LOOKUP_ABORT        (1L<<11)
  746                 #define STATUS_ATTN_BITS_RX_PROCESSOR_ABORT     (1L<<12)
  747                 #define STATUS_ATTN_BITS_RX_V2P_ABORT           (1L<<13)
  748                 #define STATUS_ATTN_BITS_RX_BD_CACHE_ABORT      (1L<<14)
  749                 #define STATUS_ATTN_BITS_RX_DMA_ABORT           (1L<<15)
  750                 #define STATUS_ATTN_BITS_COMPLETION_ABORT       (1L<<16)
  751                 #define STATUS_ATTN_BITS_HOST_COALESCE_ABORT    (1L<<17)
  752                 #define STATUS_ATTN_BITS_MAILBOX_QUEUE_ABORT    (1L<<18)
  753                 #define STATUS_ATTN_BITS_CONTEXT_ABORT          (1L<<19)
  754                 #define STATUS_ATTN_BITS_CMD_SCHEDULER_ABORT    (1L<<20)
  755                 #define STATUS_ATTN_BITS_CMD_PROCESSOR_ABORT    (1L<<21)
  756                 #define STATUS_ATTN_BITS_MGMT_PROCESSOR_ABORT   (1L<<22)
  757                 #define STATUS_ATTN_BITS_MAC_ABORT              (1L<<23)
  758                 #define STATUS_ATTN_BITS_TIMER_ABORT            (1L<<24)
  759                 #define STATUS_ATTN_BITS_DMAE_ABORT             (1L<<25)
  760                 #define STATUS_ATTN_BITS_FLSH_ABORT             (1L<<26)
  761                 #define STATUS_ATTN_BITS_GRC_ABORT              (1L<<27)
  762                 #define STATUS_ATTN_BITS_PARITY_ERROR           (1L<<31)
  763 
  764         u_int32_t status_attn_bits_ack;
  765 #if BYTE_ORDER == BIG_ENDIAN
  766         u_int16_t status_tx_quick_consumer_index0;
  767         u_int16_t status_tx_quick_consumer_index1;
  768         u_int16_t status_tx_quick_consumer_index2;
  769         u_int16_t status_tx_quick_consumer_index3;
  770         u_int16_t status_rx_quick_consumer_index0;
  771         u_int16_t status_rx_quick_consumer_index1;
  772         u_int16_t status_rx_quick_consumer_index2;
  773         u_int16_t status_rx_quick_consumer_index3;
  774         u_int16_t status_rx_quick_consumer_index4;
  775         u_int16_t status_rx_quick_consumer_index5;
  776         u_int16_t status_rx_quick_consumer_index6;
  777         u_int16_t status_rx_quick_consumer_index7;
  778         u_int16_t status_rx_quick_consumer_index8;
  779         u_int16_t status_rx_quick_consumer_index9;
  780         u_int16_t status_rx_quick_consumer_index10;
  781         u_int16_t status_rx_quick_consumer_index11;
  782         u_int16_t status_rx_quick_consumer_index12;
  783         u_int16_t status_rx_quick_consumer_index13;
  784         u_int16_t status_rx_quick_consumer_index14;
  785         u_int16_t status_rx_quick_consumer_index15;
  786         u_int16_t status_completion_producer_index;
  787         u_int16_t status_cmd_consumer_index;
  788         u_int16_t status_idx;
  789         u_int16_t status_unused;
  790 #elif BYTE_ORDER == LITTLE_ENDIAN
  791         u_int16_t status_tx_quick_consumer_index1;
  792         u_int16_t status_tx_quick_consumer_index0;
  793         u_int16_t status_tx_quick_consumer_index3;
  794         u_int16_t status_tx_quick_consumer_index2;
  795         u_int16_t status_rx_quick_consumer_index1;
  796         u_int16_t status_rx_quick_consumer_index0;
  797         u_int16_t status_rx_quick_consumer_index3;
  798         u_int16_t status_rx_quick_consumer_index2;
  799         u_int16_t status_rx_quick_consumer_index5;
  800         u_int16_t status_rx_quick_consumer_index4;
  801         u_int16_t status_rx_quick_consumer_index7;
  802         u_int16_t status_rx_quick_consumer_index6;
  803         u_int16_t status_rx_quick_consumer_index9;
  804         u_int16_t status_rx_quick_consumer_index8;
  805         u_int16_t status_rx_quick_consumer_index11;
  806         u_int16_t status_rx_quick_consumer_index10;
  807         u_int16_t status_rx_quick_consumer_index13;
  808         u_int16_t status_rx_quick_consumer_index12;
  809         u_int16_t status_rx_quick_consumer_index15;
  810         u_int16_t status_rx_quick_consumer_index14;
  811         u_int16_t status_cmd_consumer_index;
  812         u_int16_t status_completion_producer_index;
  813         u_int16_t status_unused;
  814         u_int16_t status_idx;
  815 #endif
  816 };
  817 
  818 
  819 /*
  820  *  statistics_block definition
  821  */
  822 struct statistics_block {
  823         u_int32_t stat_IfHCInOctets_hi;
  824         u_int32_t stat_IfHCInOctets_lo;
  825         u_int32_t stat_IfHCInBadOctets_hi;
  826         u_int32_t stat_IfHCInBadOctets_lo;
  827         u_int32_t stat_IfHCOutOctets_hi;
  828         u_int32_t stat_IfHCOutOctets_lo;
  829         u_int32_t stat_IfHCOutBadOctets_hi;
  830         u_int32_t stat_IfHCOutBadOctets_lo;
  831         u_int32_t stat_IfHCInUcastPkts_hi;
  832         u_int32_t stat_IfHCInUcastPkts_lo;
  833         u_int32_t stat_IfHCInMulticastPkts_hi;
  834         u_int32_t stat_IfHCInMulticastPkts_lo;
  835         u_int32_t stat_IfHCInBroadcastPkts_hi;
  836         u_int32_t stat_IfHCInBroadcastPkts_lo;
  837         u_int32_t stat_IfHCOutUcastPkts_hi;
  838         u_int32_t stat_IfHCOutUcastPkts_lo;
  839         u_int32_t stat_IfHCOutMulticastPkts_hi;
  840         u_int32_t stat_IfHCOutMulticastPkts_lo;
  841         u_int32_t stat_IfHCOutBroadcastPkts_hi;
  842         u_int32_t stat_IfHCOutBroadcastPkts_lo;
  843         u_int32_t stat_emac_tx_stat_dot3statsinternalmactransmiterrors;
  844         u_int32_t stat_Dot3StatsCarrierSenseErrors;
  845         u_int32_t stat_Dot3StatsFCSErrors;
  846         u_int32_t stat_Dot3StatsAlignmentErrors;
  847         u_int32_t stat_Dot3StatsSingleCollisionFrames;
  848         u_int32_t stat_Dot3StatsMultipleCollisionFrames;
  849         u_int32_t stat_Dot3StatsDeferredTransmissions;
  850         u_int32_t stat_Dot3StatsExcessiveCollisions;
  851         u_int32_t stat_Dot3StatsLateCollisions;
  852         u_int32_t stat_EtherStatsCollisions;
  853         u_int32_t stat_EtherStatsFragments;
  854         u_int32_t stat_EtherStatsJabbers;
  855         u_int32_t stat_EtherStatsUndersizePkts;
  856         u_int32_t stat_EtherStatsOverrsizePkts;
  857         u_int32_t stat_EtherStatsPktsRx64Octets;
  858         u_int32_t stat_EtherStatsPktsRx65Octetsto127Octets;
  859         u_int32_t stat_EtherStatsPktsRx128Octetsto255Octets;
  860         u_int32_t stat_EtherStatsPktsRx256Octetsto511Octets;
  861         u_int32_t stat_EtherStatsPktsRx512Octetsto1023Octets;
  862         u_int32_t stat_EtherStatsPktsRx1024Octetsto1522Octets;
  863         u_int32_t stat_EtherStatsPktsRx1523Octetsto9022Octets;
  864         u_int32_t stat_EtherStatsPktsTx64Octets;
  865         u_int32_t stat_EtherStatsPktsTx65Octetsto127Octets;
  866         u_int32_t stat_EtherStatsPktsTx128Octetsto255Octets;
  867         u_int32_t stat_EtherStatsPktsTx256Octetsto511Octets;
  868         u_int32_t stat_EtherStatsPktsTx512Octetsto1023Octets;
  869         u_int32_t stat_EtherStatsPktsTx1024Octetsto1522Octets;
  870         u_int32_t stat_EtherStatsPktsTx1523Octetsto9022Octets;
  871         u_int32_t stat_XonPauseFramesReceived;
  872         u_int32_t stat_XoffPauseFramesReceived;
  873         u_int32_t stat_OutXonSent;
  874         u_int32_t stat_OutXoffSent;
  875         u_int32_t stat_FlowControlDone;
  876         u_int32_t stat_MacControlFramesReceived;
  877         u_int32_t stat_XoffStateEntered;
  878         u_int32_t stat_IfInFramesL2FilterDiscards;
  879         u_int32_t stat_IfInRuleCheckerDiscards;
  880         u_int32_t stat_IfInFTQDiscards;
  881         u_int32_t stat_IfInMBUFDiscards;
  882         u_int32_t stat_IfInRuleCheckerP4Hit;
  883         u_int32_t stat_CatchupInRuleCheckerDiscards;
  884         u_int32_t stat_CatchupInFTQDiscards;
  885         u_int32_t stat_CatchupInMBUFDiscards;
  886         u_int32_t stat_CatchupInRuleCheckerP4Hit;
  887         u_int32_t stat_GenStat00;
  888         u_int32_t stat_GenStat01;
  889         u_int32_t stat_GenStat02;
  890         u_int32_t stat_GenStat03;
  891         u_int32_t stat_GenStat04;
  892         u_int32_t stat_GenStat05;
  893         u_int32_t stat_GenStat06;
  894         u_int32_t stat_GenStat07;
  895         u_int32_t stat_GenStat08;
  896         u_int32_t stat_GenStat09;
  897         u_int32_t stat_GenStat10;
  898         u_int32_t stat_GenStat11;
  899         u_int32_t stat_GenStat12;
  900         u_int32_t stat_GenStat13;
  901         u_int32_t stat_GenStat14;
  902         u_int32_t stat_GenStat15;
  903 };
  904 
  905 
  906 /*
  907  *  l2_fhdr definition
  908  */
  909 struct l2_fhdr {
  910         u_int32_t l2_fhdr_status;
  911                 #define L2_FHDR_STATUS_RULE_CLASS       (0x7<<0)
  912                 #define L2_FHDR_STATUS_RULE_P2          (1<<3)
  913                 #define L2_FHDR_STATUS_RULE_P3          (1<<4)
  914                 #define L2_FHDR_STATUS_RULE_P4          (1<<5)
  915                 #define L2_FHDR_STATUS_L2_VLAN_TAG      (1<<6)
  916                 #define L2_FHDR_STATUS_L2_LLC_SNAP      (1<<7)
  917                 #define L2_FHDR_STATUS_RSS_HASH         (1<<8)
  918                 #define L2_FHDR_STATUS_IP_DATAGRAM      (1<<13)
  919                 #define L2_FHDR_STATUS_TCP_SEGMENT      (1<<14)
  920                 #define L2_FHDR_STATUS_UDP_DATAGRAM     (1<<15)
  921 
  922                 #define L2_FHDR_ERRORS_BAD_CRC          (1<<17)
  923                 #define L2_FHDR_ERRORS_PHY_DECODE       (1<<18)
  924                 #define L2_FHDR_ERRORS_ALIGNMENT        (1<<19)
  925                 #define L2_FHDR_ERRORS_TOO_SHORT        (1<<20)
  926                 #define L2_FHDR_ERRORS_GIANT_FRAME      (1<<21)
  927                 #define L2_FHDR_ERRORS_TCP_XSUM         (1<<28)
  928                 #define L2_FHDR_ERRORS_UDP_XSUM         (1<<31)
  929 
  930         u_int32_t l2_fhdr_hash;
  931 #if BYTE_ORDER == BIG_ENDIAN
  932         u_int16_t l2_fhdr_pkt_len;
  933         u_int16_t l2_fhdr_vlan_tag;
  934         u_int16_t l2_fhdr_ip_xsum;
  935         u_int16_t l2_fhdr_tcp_udp_xsum;
  936 #elif BYTE_ORDER == LITTLE_ENDIAN
  937         u_int16_t l2_fhdr_vlan_tag;
  938         u_int16_t l2_fhdr_pkt_len;
  939         u_int16_t l2_fhdr_tcp_udp_xsum;
  940         u_int16_t l2_fhdr_ip_xsum;
  941 #endif
  942 };
  943 
  944 
  945 /*
  946  *  l2_context definition
  947  */
  948 #define BNX_L2CTX_TYPE                                  0x00000000
  949 #define BNX_L2CTX_TYPE_SIZE_L2                           ((0xc0/0x20)<<16)
  950 #define BNX_L2CTX_TYPE_TYPE                              (0xf<<28)
  951 #define BNX_L2CTX_TYPE_TYPE_EMPTY                        (0<<28)
  952 #define BNX_L2CTX_TYPE_TYPE_L2                           (1<<28)
  953 
  954 #define BNX_L2CTX_TX_HOST_BIDX                          0x00000088
  955 #define BNX_L2CTX_EST_NBD                               0x00000088
  956 #define BNX_L2CTX_CMD_TYPE                              0x00000088
  957 #define BNX_L2CTX_CMD_TYPE_TYPE                  (0xf<<24)
  958 #define BNX_L2CTX_CMD_TYPE_TYPE_L2                       (0<<24)
  959 #define BNX_L2CTX_CMD_TYPE_TYPE_TCP                      (1<<24)
  960 
  961 #define BNX_L2CTX_TX_HOST_BSEQ                          0x00000090
  962 #define BNX_L2CTX_TSCH_BSEQ                             0x00000094
  963 #define BNX_L2CTX_TBDR_BSEQ                             0x00000098
  964 #define BNX_L2CTX_TBDR_BOFF                             0x0000009c
  965 #define BNX_L2CTX_TBDR_BIDX                             0x0000009c
  966 #define BNX_L2CTX_TBDR_BHADDR_HI                        0x000000a0
  967 #define BNX_L2CTX_TBDR_BHADDR_LO                        0x000000a4
  968 #define BNX_L2CTX_TXP_BOFF                              0x000000a8
  969 #define BNX_L2CTX_TXP_BIDX                              0x000000a8
  970 #define BNX_L2CTX_TXP_BSEQ                              0x000000ac
  971 
  972 
  973 /*
  974  *  l2_bd_chain_context definition
  975  */
  976 #define BNX_L2CTX_BD_PRE_READ                           0x00000000
  977 #define BNX_L2CTX_CTX_SIZE                              0x00000000
  978 #define BNX_L2CTX_CTX_TYPE                              0x00000000
  979 #define BNX_L2CTX_CTX_TYPE_SIZE_L2                       ((0x20/20)<<16)
  980 #define BNX_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE               (0xf<<28)
  981 #define BNX_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE_UNDEFINED     (0<<28)
  982 #define BNX_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE_VALUE         (1<<28)
  983 
  984 #define BNX_L2CTX_HOST_BDIDX                            0x00000004
  985 #define BNX_L2CTX_HOST_BSEQ                             0x00000008
  986 #define BNX_L2CTX_NX_BSEQ                               0x0000000c
  987 #define BNX_L2CTX_NX_BDHADDR_HI                 0x00000010
  988 #define BNX_L2CTX_NX_BDHADDR_LO                 0x00000014
  989 #define BNX_L2CTX_NX_BDIDX                              0x00000018
  990 
  991 
  992 /*
  993  *  pci_config_l definition
  994  *  offset: 0000
  995  */
  996 #define BNX_PCICFG_MISC_CONFIG                                                  0x00000068
  997 #define BNX_PCICFG_MISC_CONFIG_TARGET_BYTE_SWAP                 (1L<<2)
  998 #define BNX_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP       (1L<<3)
  999 #define BNX_PCICFG_MISC_CONFIG_CLOCK_CTL_ENA             (1L<<5)
 1000 #define BNX_PCICFG_MISC_CONFIG_TARGET_GRC_WORD_SWAP      (1L<<6)
 1001 #define BNX_PCICFG_MISC_CONFIG_REG_WINDOW_ENA            (1L<<7)
 1002 #define BNX_PCICFG_MISC_CONFIG_CORE_RST_REQ              (1L<<8)
 1003 #define BNX_PCICFG_MISC_CONFIG_CORE_RST_BSY              (1L<<9)
 1004 #define BNX_PCICFG_MISC_CONFIG_ASIC_METAL_REV            (0xffL<<16)
 1005 #define BNX_PCICFG_MISC_CONFIG_ASIC_BASE_REV             (0xfL<<24)
 1006 #define BNX_PCICFG_MISC_CONFIG_ASIC_ID                   (0xfL<<28)
 1007 #define BNX_PCICFG_MISC_CONFIG_ASIC_REV                  (0xffffL<<16)
 1008 
 1009 #define BNX_PCICFG_MISC_STATUS                          0x0000006c
 1010 #define BNX_PCICFG_MISC_STATUS_INTA_VALUE                (1L<<0)
 1011 #define BNX_PCICFG_MISC_STATUS_32BIT_DET                 (1L<<1)
 1012 #define BNX_PCICFG_MISC_STATUS_M66EN                     (1L<<2)
 1013 #define BNX_PCICFG_MISC_STATUS_PCIX_DET          (1L<<3)
 1014 #define BNX_PCICFG_MISC_STATUS_PCIX_SPEED                (0x3L<<4)
 1015 #define BNX_PCICFG_MISC_STATUS_PCIX_SPEED_66             (0L<<4)
 1016 #define BNX_PCICFG_MISC_STATUS_PCIX_SPEED_100            (1L<<4)
 1017 #define BNX_PCICFG_MISC_STATUS_PCIX_SPEED_133            (2L<<4)
 1018 #define BNX_PCICFG_MISC_STATUS_PCIX_SPEED_PCI_MODE       (3L<<4)
 1019 
 1020 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS               0x00000070
 1021 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET        (0xfL<<0)
 1022 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_32MHZ  (0L<<0)
 1023 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_38MHZ  (1L<<0)
 1024 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_48MHZ  (2L<<0)
 1025 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_55MHZ  (3L<<0)
 1026 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_66MHZ  (4L<<0)
 1027 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_80MHZ  (5L<<0)
 1028 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_95MHZ  (6L<<0)
 1029 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ         (7L<<0)
 1030 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_LOW    (0xfL<<0)
 1031 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_DISABLE       (1L<<6)
 1032 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT   (1L<<7)
 1033 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC       (0x7L<<8)
 1034 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_UNDEF         (0L<<8)
 1035 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_12    (1L<<8)
 1036 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_6     (2L<<8)
 1037 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_62    (4L<<8)
 1038 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PLAY_DEAD      (1L<<11)
 1039 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED     (0xfL<<12)
 1040 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_100         (0L<<12)
 1041 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_80  (1L<<12)
 1042 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_50  (2L<<12)
 1043 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_40  (4L<<12)
 1044 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_25  (8L<<12)
 1045 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_STOP      (1L<<16)
 1046 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_PLL_STOP   (1L<<17)
 1047 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_RESERVED_18    (1L<<18)
 1048 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_USE_SPD_DET    (1L<<19)
 1049 #define BNX_PCICFG_PCI_CLOCK_CONTROL_BITS_RESERVED       (0xfffL<<20)
 1050 
 1051 #define BNX_PCICFG_REG_WINDOW_ADDRESS                   0x00000078
 1052 #define BNX_PCICFG_REG_WINDOW                           0x00000080
 1053 #define BNX_PCICFG_INT_ACK_CMD                          0x00000084
 1054 #define BNX_PCICFG_INT_ACK_CMD_INDEX                     (0xffffL<<0)
 1055 #define BNX_PCICFG_INT_ACK_CMD_INDEX_VALID               (1L<<16)
 1056 #define BNX_PCICFG_INT_ACK_CMD_USE_INT_HC_PARAM  (1L<<17)
 1057 #define BNX_PCICFG_INT_ACK_CMD_MASK_INT          (1L<<18)
 1058 
 1059 #define BNX_PCICFG_STATUS_BIT_SET_CMD                   0x00000088
 1060 #define BNX_PCICFG_STATUS_BIT_CLEAR_CMD         0x0000008c
 1061 #define BNX_PCICFG_MAILBOX_QUEUE_ADDR                   0x00000090
 1062 #define BNX_PCICFG_MAILBOX_QUEUE_DATA                   0x00000094
 1063 
 1064 
 1065 /*
 1066  *  pci_reg definition
 1067  *  offset: 0x400
 1068  */
 1069 #define BNX_PCI_GRC_WINDOW_ADDR                 0x00000400
 1070 #define BNX_PCI_GRC_WINDOW_ADDR_PCI_GRC_WINDOW_ADDR_VALUE        (0x3ffffL<<8)
 1071 
 1072 #define BNX_PCI_CONFIG_1                                0x00000404
 1073 #define BNX_PCI_CONFIG_1_READ_BOUNDARY                   (0x7L<<8)
 1074 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_OFF               (0L<<8)
 1075 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_16                (1L<<8)
 1076 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_32                (2L<<8)
 1077 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_64                (3L<<8)
 1078 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_128               (4L<<8)
 1079 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_256               (5L<<8)
 1080 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_512               (6L<<8)
 1081 #define BNX_PCI_CONFIG_1_READ_BOUNDARY_1024              (7L<<8)
 1082 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY          (0x7L<<11)
 1083 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_OFF              (0L<<11)
 1084 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_16               (1L<<11)
 1085 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_32               (2L<<11)
 1086 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_64               (3L<<11)
 1087 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_128              (4L<<11)
 1088 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_256              (5L<<11)
 1089 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_512              (6L<<11)
 1090 #define BNX_PCI_CONFIG_1_WRITE_BOUNDARY_1024             (7L<<11)
 1091 
 1092 #define BNX_PCI_CONFIG_2                                0x00000408
 1093 #define BNX_PCI_CONFIG_2_BAR1_SIZE                       (0xfL<<0)
 1094 #define BNX_PCI_CONFIG_2_BAR1_SIZE_DISABLED              (0L<<0)
 1095 #define BNX_PCI_CONFIG_2_BAR1_SIZE_64K                   (1L<<0)
 1096 #define BNX_PCI_CONFIG_2_BAR1_SIZE_128K          (2L<<0)
 1097 #define BNX_PCI_CONFIG_2_BAR1_SIZE_256K          (3L<<0)
 1098 #define BNX_PCI_CONFIG_2_BAR1_SIZE_512K          (4L<<0)
 1099 #define BNX_PCI_CONFIG_2_BAR1_SIZE_1M                    (5L<<0)
 1100 #define BNX_PCI_CONFIG_2_BAR1_SIZE_2M                    (6L<<0)
 1101 #define BNX_PCI_CONFIG_2_BAR1_SIZE_4M                    (7L<<0)
 1102 #define BNX_PCI_CONFIG_2_BAR1_SIZE_8M                    (8L<<0)
 1103 #define BNX_PCI_CONFIG_2_BAR1_SIZE_16M                   (9L<<0)
 1104 #define BNX_PCI_CONFIG_2_BAR1_SIZE_32M                   (10L<<0)
 1105 #define BNX_PCI_CONFIG_2_BAR1_SIZE_64M                   (11L<<0)
 1106 #define BNX_PCI_CONFIG_2_BAR1_SIZE_128M          (12L<<0)
 1107 #define BNX_PCI_CONFIG_2_BAR1_SIZE_256M          (13L<<0)
 1108 #define BNX_PCI_CONFIG_2_BAR1_SIZE_512M          (14L<<0)
 1109 #define BNX_PCI_CONFIG_2_BAR1_SIZE_1G                    (15L<<0)
 1110 #define BNX_PCI_CONFIG_2_BAR1_64ENA                      (1L<<4)
 1111 #define BNX_PCI_CONFIG_2_EXP_ROM_RETRY                   (1L<<5)
 1112 #define BNX_PCI_CONFIG_2_CFG_CYCLE_RETRY                 (1L<<6)
 1113 #define BNX_PCI_CONFIG_2_FIRST_CFG_DONE          (1L<<7)
 1114 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE                    (0xffL<<8)
 1115 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_DISABLED           (0L<<8)
 1116 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_1K                 (1L<<8)
 1117 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_2K                 (2L<<8)
 1118 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_4K                 (3L<<8)
 1119 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_8K                 (4L<<8)
 1120 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_16K                (5L<<8)
 1121 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_32K                (6L<<8)
 1122 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_64K                (7L<<8)
 1123 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_128K               (8L<<8)
 1124 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_256K               (9L<<8)
 1125 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_512K               (10L<<8)
 1126 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_1M                 (11L<<8)
 1127 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_2M                 (12L<<8)
 1128 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_4M                 (13L<<8)
 1129 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_8M                 (14L<<8)
 1130 #define BNX_PCI_CONFIG_2_EXP_ROM_SIZE_16M                (15L<<8)
 1131 #define BNX_PCI_CONFIG_2_MAX_SPLIT_LIMIT                 (0x1fL<<16)
 1132 #define BNX_PCI_CONFIG_2_MAX_READ_LIMIT          (0x3L<<21)
 1133 #define BNX_PCI_CONFIG_2_MAX_READ_LIMIT_512              (0L<<21)
 1134 #define BNX_PCI_CONFIG_2_MAX_READ_LIMIT_1K               (1L<<21)
 1135 #define BNX_PCI_CONFIG_2_MAX_READ_LIMIT_2K               (2L<<21)
 1136 #define BNX_PCI_CONFIG_2_MAX_READ_LIMIT_4K               (3L<<21)
 1137 #define BNX_PCI_CONFIG_2_FORCE_32_BIT_MSTR               (1L<<23)
 1138 #define BNX_PCI_CONFIG_2_FORCE_32_BIT_TGT                (1L<<24)
 1139 #define BNX_PCI_CONFIG_2_KEEP_REQ_ASSERT                 (1L<<25)
 1140 
 1141 #define BNX_PCI_CONFIG_3                                0x0000040c
 1142 #define BNX_PCI_CONFIG_3_STICKY_BYTE                     (0xffL<<0)
 1143 #define BNX_PCI_CONFIG_3_FORCE_PME                       (1L<<24)
 1144 #define BNX_PCI_CONFIG_3_PME_STATUS                      (1L<<25)
 1145 #define BNX_PCI_CONFIG_3_PME_ENABLE                      (1L<<26)
 1146 #define BNX_PCI_CONFIG_3_PM_STATE                        (0x3L<<27)
 1147 #define BNX_PCI_CONFIG_3_VAUX_PRESET                     (1L<<30)
 1148 #define BNX_PCI_CONFIG_3_PCI_POWER                       (1L<<31)
 1149 
 1150 #define BNX_PCI_PM_DATA_A                               0x00000410
 1151 #define BNX_PCI_PM_DATA_A_PM_DATA_0_PRG          (0xffL<<0)
 1152 #define BNX_PCI_PM_DATA_A_PM_DATA_1_PRG          (0xffL<<8)
 1153 #define BNX_PCI_PM_DATA_A_PM_DATA_2_PRG          (0xffL<<16)
 1154 #define BNX_PCI_PM_DATA_A_PM_DATA_3_PRG          (0xffL<<24)
 1155 
 1156 #define BNX_PCI_PM_DATA_B                               0x00000414
 1157 #define BNX_PCI_PM_DATA_B_PM_DATA_4_PRG          (0xffL<<0)
 1158 #define BNX_PCI_PM_DATA_B_PM_DATA_5_PRG          (0xffL<<8)
 1159 #define BNX_PCI_PM_DATA_B_PM_DATA_6_PRG          (0xffL<<16)
 1160 #define BNX_PCI_PM_DATA_B_PM_DATA_7_PRG          (0xffL<<24)
 1161 
 1162 #define BNX_PCI_SWAP_DIAG0                              0x00000418
 1163 #define BNX_PCI_SWAP_DIAG1                              0x0000041c
 1164 #define BNX_PCI_EXP_ROM_ADDR                            0x00000420
 1165 #define BNX_PCI_EXP_ROM_ADDR_ADDRESS                     (0x3fffffL<<2)
 1166 #define BNX_PCI_EXP_ROM_ADDR_REQ                         (1L<<31)
 1167 
 1168 #define BNX_PCI_EXP_ROM_DATA                            0x00000424
 1169 #define BNX_PCI_VPD_INTF                                0x00000428
 1170 #define BNX_PCI_VPD_INTF_INTF_REQ                        (1L<<0)
 1171 
 1172 #define BNX_PCI_VPD_ADDR_FLAG                           0x0000042c
 1173 #define BNX_PCI_VPD_ADDR_FLAG_ADDRESS                    (0x1fff<<2)
 1174 #define BNX_PCI_VPD_ADDR_FLAG_WR                         (1<<15)
 1175 
 1176 #define BNX_PCI_VPD_DATA                                0x00000430
 1177 #define BNX_PCI_ID_VAL1                         0x00000434
 1178 #define BNX_PCI_ID_VAL1_DEVICE_ID                        (0xffffL<<0)
 1179 #define BNX_PCI_ID_VAL1_VENDOR_ID                        (0xffffL<<16)
 1180 
 1181 #define BNX_PCI_ID_VAL2                         0x00000438
 1182 #define BNX_PCI_ID_VAL2_SUBSYSTEM_VENDOR_ID              (0xffffL<<0)
 1183 #define BNX_PCI_ID_VAL2_SUBSYSTEM_ID                     (0xffffL<<16)
 1184 
 1185 #define BNX_PCI_ID_VAL3                         0x0000043c
 1186 #define BNX_PCI_ID_VAL3_CLASS_CODE                       (0xffffffL<<0)
 1187 #define BNX_PCI_ID_VAL3_REVISION_ID                      (0xffL<<24)
 1188 
 1189 #define BNX_PCI_ID_VAL4                         0x00000440
 1190 #define BNX_PCI_ID_VAL4_CAP_ENA                  (0xfL<<0)
 1191 #define BNX_PCI_ID_VAL4_CAP_ENA_0                        (0L<<0)
 1192 #define BNX_PCI_ID_VAL4_CAP_ENA_1                        (1L<<0)
 1193 #define BNX_PCI_ID_VAL4_CAP_ENA_2                        (2L<<0)
 1194 #define BNX_PCI_ID_VAL4_CAP_ENA_3                        (3L<<0)
 1195 #define BNX_PCI_ID_VAL4_CAP_ENA_4                        (4L<<0)
 1196 #define BNX_PCI_ID_VAL4_CAP_ENA_5                        (5L<<0)
 1197 #define BNX_PCI_ID_VAL4_CAP_ENA_6                        (6L<<0)
 1198 #define BNX_PCI_ID_VAL4_CAP_ENA_7                        (7L<<0)
 1199 #define BNX_PCI_ID_VAL4_CAP_ENA_8                        (8L<<0)
 1200 #define BNX_PCI_ID_VAL4_CAP_ENA_9                        (9L<<0)
 1201 #define BNX_PCI_ID_VAL4_CAP_ENA_10                       (10L<<0)
 1202 #define BNX_PCI_ID_VAL4_CAP_ENA_11                       (11L<<0)
 1203 #define BNX_PCI_ID_VAL4_CAP_ENA_12                       (12L<<0)
 1204 #define BNX_PCI_ID_VAL4_CAP_ENA_13                       (13L<<0)
 1205 #define BNX_PCI_ID_VAL4_CAP_ENA_14                       (14L<<0)
 1206 #define BNX_PCI_ID_VAL4_CAP_ENA_15                       (15L<<0)
 1207 #define BNX_PCI_ID_VAL4_PM_SCALE_PRG                     (0x3L<<6)
 1208 #define BNX_PCI_ID_VAL4_PM_SCALE_PRG_0                   (0L<<6)
 1209 #define BNX_PCI_ID_VAL4_PM_SCALE_PRG_1                   (1L<<6)
 1210 #define BNX_PCI_ID_VAL4_PM_SCALE_PRG_2                   (2L<<6)
 1211 #define BNX_PCI_ID_VAL4_PM_SCALE_PRG_3                   (3L<<6)
 1212 #define BNX_PCI_ID_VAL4_MSI_LIMIT                        (0x7L<<9)
 1213 #define BNX_PCI_ID_VAL4_MSI_ADVERTIZE                    (0x7L<<12)
 1214 #define BNX_PCI_ID_VAL4_MSI_ENABLE                       (1L<<15)
 1215 #define BNX_PCI_ID_VAL4_MAX_64_ADVERTIZE                 (1L<<16)
 1216 #define BNX_PCI_ID_VAL4_MAX_133_ADVERTIZE                (1L<<17)
 1217 #define BNX_PCI_ID_VAL4_MAX_MEM_READ_SIZE                (0x3L<<21)
 1218 #define BNX_PCI_ID_VAL4_MAX_SPLIT_SIZE                   (0x7L<<23)
 1219 #define BNX_PCI_ID_VAL4_MAX_CUMULATIVE_SIZE              (0x7L<<26)
 1220 
 1221 #define BNX_PCI_ID_VAL5                         0x00000444
 1222 #define BNX_PCI_ID_VAL5_D1_SUPPORT                       (1L<<0)
 1223 #define BNX_PCI_ID_VAL5_D2_SUPPORT                       (1L<<1)
 1224 #define BNX_PCI_ID_VAL5_PME_IN_D0                        (1L<<2)
 1225 #define BNX_PCI_ID_VAL5_PME_IN_D1                        (1L<<3)
 1226 #define BNX_PCI_ID_VAL5_PME_IN_D2                        (1L<<4)
 1227 #define BNX_PCI_ID_VAL5_PME_IN_D3_HOT                    (1L<<5)
 1228 
 1229 #define BNX_PCI_PCIX_EXTENDED_STATUS                    0x00000448
 1230 #define BNX_PCI_PCIX_EXTENDED_STATUS_NO_SNOOP            (1L<<8)
 1231 #define BNX_PCI_PCIX_EXTENDED_STATUS_LONG_BURST  (1L<<9)
 1232 #define BNX_PCI_PCIX_EXTENDED_STATUS_SPLIT_COMP_MSG_CLASS        (0xfL<<16)
 1233 #define BNX_PCI_PCIX_EXTENDED_STATUS_SPLIT_COMP_MSG_IDX  (0xffL<<24)
 1234 
 1235 #define BNX_PCI_ID_VAL6                         0x0000044c
 1236 #define BNX_PCI_ID_VAL6_MAX_LAT                  (0xffL<<0)
 1237 #define BNX_PCI_ID_VAL6_MIN_GNT                  (0xffL<<8)
 1238 #define BNX_PCI_ID_VAL6_BIST                             (0xffL<<16)
 1239 
 1240 #define BNX_PCI_MSI_DATA                                0x00000450
 1241 #define BNX_PCI_MSI_DATA_PCI_MSI_DATA                    (0xffffL<<0)
 1242 
 1243 #define BNX_PCI_MSI_ADDR_H                              0x00000454
 1244 #define BNX_PCI_MSI_ADDR_L                              0x00000458
 1245 
 1246 
 1247 /*
 1248  *  misc_reg definition
 1249  *  offset: 0x800
 1250  */
 1251 #define BNX_MISC_COMMAND                                0x00000800
 1252 #define BNX_MISC_COMMAND_ENABLE_ALL                      (1L<<0)
 1253 #define BNX_MISC_COMMAND_DISABLE_ALL                     (1L<<1)
 1254 #define BNX_MISC_COMMAND_CORE_RESET                      (1L<<4)
 1255 #define BNX_MISC_COMMAND_HARD_RESET                      (1L<<5)
 1256 #define BNX_MISC_COMMAND_PAR_ERROR                       (1L<<8)
 1257 #define BNX_MISC_COMMAND_PAR_ERR_RAM                     (0x7fL<<16)
 1258 
 1259 #define BNX_MISC_CFG                                    0x00000804
 1260 #define BNX_MISC_CFG_PCI_GRC_TMOUT                       (1L<<0)
 1261 #define BNX_MISC_CFG_NVM_WR_EN                           (0x3L<<1)
 1262 #define BNX_MISC_CFG_NVM_WR_EN_PROTECT                   (0L<<1)
 1263 #define BNX_MISC_CFG_NVM_WR_EN_PCI                       (1L<<1)
 1264 #define BNX_MISC_CFG_NVM_WR_EN_ALLOW                     (2L<<1)
 1265 #define BNX_MISC_CFG_NVM_WR_EN_ALLOW2                    (3L<<1)
 1266 #define BNX_MISC_CFG_BIST_EN                             (1L<<3)
 1267 #define BNX_MISC_CFG_CK25_OUT_ALT_SRC                    (1L<<4)
 1268 #define BNX_MISC_CFG_BYPASS_BSCAN                        (1L<<5)
 1269 #define BNX_MISC_CFG_BYPASS_EJTAG                        (1L<<6)
 1270 #define BNX_MISC_CFG_CLK_CTL_OVERRIDE                    (1L<<7)
 1271 #define BNX_MISC_CFG_LEDMODE                             (0x3L<<8)
 1272 #define BNX_MISC_CFG_LEDMODE_MAC                         (0L<<8)
 1273 #define BNX_MISC_CFG_LEDMODE_GPHY1                       (1L<<8)
 1274 #define BNX_MISC_CFG_LEDMODE_GPHY2                       (2L<<8)
 1275 
 1276 #define BNX_MISC_ID                                     0x00000808
 1277 #define BNX_MISC_ID_BOND_ID                              (0xfL<<0)
 1278 #define BNX_MISC_ID_CHIP_METAL                           (0xffL<<4)
 1279 #define BNX_MISC_ID_CHIP_REV                             (0xfL<<12)
 1280 #define BNX_MISC_ID_CHIP_NUM                             (0xffffL<<16)
 1281 
 1282 #define BNX_MISC_ENABLE_STATUS_BITS                     0x0000080c
 1283 #define BNX_MISC_ENABLE_STATUS_BITS_TX_SCHEDULER_ENABLE  (1L<<0)
 1284 #define BNX_MISC_ENABLE_STATUS_BITS_TX_BD_READ_ENABLE    (1L<<1)
 1285 #define BNX_MISC_ENABLE_STATUS_BITS_TX_BD_CACHE_ENABLE   (1L<<2)
 1286 #define BNX_MISC_ENABLE_STATUS_BITS_TX_PROCESSOR_ENABLE  (1L<<3)
 1287 #define BNX_MISC_ENABLE_STATUS_BITS_TX_DMA_ENABLE        (1L<<4)
 1288 #define BNX_MISC_ENABLE_STATUS_BITS_TX_PATCHUP_ENABLE    (1L<<5)
 1289 #define BNX_MISC_ENABLE_STATUS_BITS_TX_PAYLOAD_Q_ENABLE  (1L<<6)
 1290 #define BNX_MISC_ENABLE_STATUS_BITS_TX_HEADER_Q_ENABLE   (1L<<7)
 1291 #define BNX_MISC_ENABLE_STATUS_BITS_TX_ASSEMBLER_ENABLE  (1L<<8)
 1292 #define BNX_MISC_ENABLE_STATUS_BITS_EMAC_ENABLE  (1L<<9)
 1293 #define BNX_MISC_ENABLE_STATUS_BITS_RX_PARSER_MAC_ENABLE         (1L<<10)
 1294 #define BNX_MISC_ENABLE_STATUS_BITS_RX_PARSER_CATCHUP_ENABLE     (1L<<11)
 1295 #define BNX_MISC_ENABLE_STATUS_BITS_RX_MBUF_ENABLE       (1L<<12)
 1296 #define BNX_MISC_ENABLE_STATUS_BITS_RX_LOOKUP_ENABLE     (1L<<13)
 1297 #define BNX_MISC_ENABLE_STATUS_BITS_RX_PROCESSOR_ENABLE  (1L<<14)
 1298 #define BNX_MISC_ENABLE_STATUS_BITS_RX_V2P_ENABLE        (1L<<15)
 1299 #define BNX_MISC_ENABLE_STATUS_BITS_RX_BD_CACHE_ENABLE   (1L<<16)
 1300 #define BNX_MISC_ENABLE_STATUS_BITS_RX_DMA_ENABLE        (1L<<17)
 1301 #define BNX_MISC_ENABLE_STATUS_BITS_COMPLETION_ENABLE    (1L<<18)
 1302 #define BNX_MISC_ENABLE_STATUS_BITS_HOST_COALESCE_ENABLE         (1L<<19)
 1303 #define BNX_MISC_ENABLE_STATUS_BITS_MAILBOX_QUEUE_ENABLE         (1L<<20)
 1304 #define BNX_MISC_ENABLE_STATUS_BITS_CONTEXT_ENABLE       (1L<<21)
 1305 #define BNX_MISC_ENABLE_STATUS_BITS_CMD_SCHEDULER_ENABLE         (1L<<22)
 1306 #define BNX_MISC_ENABLE_STATUS_BITS_CMD_PROCESSOR_ENABLE         (1L<<23)
 1307 #define BNX_MISC_ENABLE_STATUS_BITS_MGMT_PROCESSOR_ENABLE        (1L<<24)
 1308 #define BNX_MISC_ENABLE_STATUS_BITS_TIMER_ENABLE         (1L<<25)
 1309 #define BNX_MISC_ENABLE_STATUS_BITS_DMA_ENGINE_ENABLE    (1L<<26)
 1310 #define BNX_MISC_ENABLE_STATUS_BITS_UMP_ENABLE           (1L<<27)
 1311 
 1312 #define BNX_MISC_ENABLE_SET_BITS                        0x00000810
 1313 #define BNX_MISC_ENABLE_SET_BITS_TX_SCHEDULER_ENABLE     (1L<<0)
 1314 #define BNX_MISC_ENABLE_SET_BITS_TX_BD_READ_ENABLE       (1L<<1)
 1315 #define BNX_MISC_ENABLE_SET_BITS_TX_BD_CACHE_ENABLE      (1L<<2)
 1316 #define BNX_MISC_ENABLE_SET_BITS_TX_PROCESSOR_ENABLE     (1L<<3)
 1317 #define BNX_MISC_ENABLE_SET_BITS_TX_DMA_ENABLE           (1L<<4)
 1318 #define BNX_MISC_ENABLE_SET_BITS_TX_PATCHUP_ENABLE       (1L<<5)
 1319 #define BNX_MISC_ENABLE_SET_BITS_TX_PAYLOAD_Q_ENABLE     (1L<<6)
 1320 #define BNX_MISC_ENABLE_SET_BITS_TX_HEADER_Q_ENABLE      (1L<<7)
 1321 #define BNX_MISC_ENABLE_SET_BITS_TX_ASSEMBLER_ENABLE     (1L<<8)
 1322 #define BNX_MISC_ENABLE_SET_BITS_EMAC_ENABLE             (1L<<9)
 1323 #define BNX_MISC_ENABLE_SET_BITS_RX_PARSER_MAC_ENABLE    (1L<<10)
 1324 #define BNX_MISC_ENABLE_SET_BITS_RX_PARSER_CATCHUP_ENABLE        (1L<<11)
 1325 #define BNX_MISC_ENABLE_SET_BITS_RX_MBUF_ENABLE  (1L<<12)
 1326 #define BNX_MISC_ENABLE_SET_BITS_RX_LOOKUP_ENABLE        (1L<<13)
 1327 #define BNX_MISC_ENABLE_SET_BITS_RX_PROCESSOR_ENABLE     (1L<<14)
 1328 #define BNX_MISC_ENABLE_SET_BITS_RX_V2P_ENABLE           (1L<<15)
 1329 #define BNX_MISC_ENABLE_SET_BITS_RX_BD_CACHE_ENABLE      (1L<<16)
 1330 #define BNX_MISC_ENABLE_SET_BITS_RX_DMA_ENABLE           (1L<<17)
 1331 #define BNX_MISC_ENABLE_SET_BITS_COMPLETION_ENABLE       (1L<<18)
 1332 #define BNX_MISC_ENABLE_SET_BITS_HOST_COALESCE_ENABLE    (1L<<19)
 1333 #define BNX_MISC_ENABLE_SET_BITS_MAILBOX_QUEUE_ENABLE    (1L<<20)
 1334 #define BNX_MISC_ENABLE_SET_BITS_CONTEXT_ENABLE  (1L<<21)
 1335 #define BNX_MISC_ENABLE_SET_BITS_CMD_SCHEDULER_ENABLE    (1L<<22)
 1336 #define BNX_MISC_ENABLE_SET_BITS_CMD_PROCESSOR_ENABLE    (1L<<23)
 1337 #define BNX_MISC_ENABLE_SET_BITS_MGMT_PROCESSOR_ENABLE   (1L<<24)
 1338 #define BNX_MISC_ENABLE_SET_BITS_TIMER_ENABLE            (1L<<25)
 1339 #define BNX_MISC_ENABLE_SET_BITS_DMA_ENGINE_ENABLE       (1L<<26)
 1340 #define BNX_MISC_ENABLE_SET_BITS_UMP_ENABLE              (1L<<27)
 1341 
 1342 #define BNX_MISC_ENABLE_CLR_BITS                        0x00000814
 1343 #define BNX_MISC_ENABLE_CLR_BITS_TX_SCHEDULER_ENABLE     (1L<<0)
 1344 #define BNX_MISC_ENABLE_CLR_BITS_TX_BD_READ_ENABLE       (1L<<1)
 1345 #define BNX_MISC_ENABLE_CLR_BITS_TX_BD_CACHE_ENABLE      (1L<<2)
 1346 #define BNX_MISC_ENABLE_CLR_BITS_TX_PROCESSOR_ENABLE     (1L<<3)
 1347 #define BNX_MISC_ENABLE_CLR_BITS_TX_DMA_ENABLE           (1L<<4)
 1348 #define BNX_MISC_ENABLE_CLR_BITS_TX_PATCHUP_ENABLE       (1L<<5)
 1349 #define BNX_MISC_ENABLE_CLR_BITS_TX_PAYLOAD_Q_ENABLE     (1L<<6)
 1350 #define BNX_MISC_ENABLE_CLR_BITS_TX_HEADER_Q_ENABLE      (1L<<7)
 1351 #define BNX_MISC_ENABLE_CLR_BITS_TX_ASSEMBLER_ENABLE     (1L<<8)
 1352 #define BNX_MISC_ENABLE_CLR_BITS_EMAC_ENABLE             (1L<<9)
 1353 #define BNX_MISC_ENABLE_CLR_BITS_RX_PARSER_MAC_ENABLE    (1L<<10)
 1354 #define BNX_MISC_ENABLE_CLR_BITS_RX_PARSER_CATCHUP_ENABLE        (1L<<11)
 1355 #define BNX_MISC_ENABLE_CLR_BITS_RX_MBUF_ENABLE  (1L<<12)
 1356 #define BNX_MISC_ENABLE_CLR_BITS_RX_LOOKUP_ENABLE        (1L<<13)
 1357 #define BNX_MISC_ENABLE_CLR_BITS_RX_PROCESSOR_ENABLE     (1L<<14)
 1358 #define BNX_MISC_ENABLE_CLR_BITS_RX_V2P_ENABLE           (1L<<15)
 1359 #define BNX_MISC_ENABLE_CLR_BITS_RX_BD_CACHE_ENABLE      (1L<<16)
 1360 #define BNX_MISC_ENABLE_CLR_BITS_RX_DMA_ENABLE           (1L<<17)
 1361 #define BNX_MISC_ENABLE_CLR_BITS_COMPLETION_ENABLE       (1L<<18)
 1362 #define BNX_MISC_ENABLE_CLR_BITS_HOST_COALESCE_ENABLE    (1L<<19)
 1363 #define BNX_MISC_ENABLE_CLR_BITS_MAILBOX_QUEUE_ENABLE    (1L<<20)
 1364 #define BNX_MISC_ENABLE_CLR_BITS_CONTEXT_ENABLE  (1L<<21)
 1365 #define BNX_MISC_ENABLE_CLR_BITS_CMD_SCHEDULER_ENABLE    (1L<<22)
 1366 #define BNX_MISC_ENABLE_CLR_BITS_CMD_PROCESSOR_ENABLE    (1L<<23)
 1367 #define BNX_MISC_ENABLE_CLR_BITS_MGMT_PROCESSOR_ENABLE   (1L<<24)
 1368 #define BNX_MISC_ENABLE_CLR_BITS_TIMER_ENABLE            (1L<<25)
 1369 #define BNX_MISC_ENABLE_CLR_BITS_DMA_ENGINE_ENABLE       (1L<<26)
 1370 #define BNX_MISC_ENABLE_CLR_BITS_UMP_ENABLE              (1L<<27)
 1371 
 1372 #define BNX_MISC_CLOCK_CONTROL_BITS                     0x00000818
 1373 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET      (0xfL<<0)
 1374 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_32MHZ        (0L<<0)
 1375 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_38MHZ        (1L<<0)
 1376 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_48MHZ        (2L<<0)
 1377 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_55MHZ        (3L<<0)
 1378 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_66MHZ        (4L<<0)
 1379 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_80MHZ        (5L<<0)
 1380 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_95MHZ        (6L<<0)
 1381 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ       (7L<<0)
 1382 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_LOW  (0xfL<<0)
 1383 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_DISABLE     (1L<<6)
 1384 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT         (1L<<7)
 1385 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC     (0x7L<<8)
 1386 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_UNDEF       (0L<<8)
 1387 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_12  (1L<<8)
 1388 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_6   (2L<<8)
 1389 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_62  (4L<<8)
 1390 #define BNX_MISC_CLOCK_CONTROL_BITS_PLAY_DEAD            (1L<<11)
 1391 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED   (0xfL<<12)
 1392 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_100       (0L<<12)
 1393 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_80        (1L<<12)
 1394 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_50        (2L<<12)
 1395 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_40        (4L<<12)
 1396 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_25        (8L<<12)
 1397 #define BNX_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_STOP    (1L<<16)
 1398 #define BNX_MISC_CLOCK_CONTROL_BITS_PCI_PLL_STOP         (1L<<17)
 1399 #define BNX_MISC_CLOCK_CONTROL_BITS_RESERVED_18  (1L<<18)
 1400 #define BNX_MISC_CLOCK_CONTROL_BITS_USE_SPD_DET  (1L<<19)
 1401 #define BNX_MISC_CLOCK_CONTROL_BITS_RESERVED             (0xfffL<<20)
 1402 
 1403 #define BNX_MISC_GPIO                                   0x0000081c
 1404 #define BNX_MISC_GPIO_VALUE                              (0xffL<<0)
 1405 #define BNX_MISC_GPIO_SET                                (0xffL<<8)
 1406 #define BNX_MISC_GPIO_CLR                                (0xffL<<16)
 1407 #define BNX_MISC_GPIO_FLOAT                              (0xffL<<24)
 1408 
 1409 #define BNX_MISC_GPIO_INT                               0x00000820
 1410 #define BNX_MISC_GPIO_INT_INT_STATE                      (0xfL<<0)
 1411 #define BNX_MISC_GPIO_INT_OLD_VALUE                      (0xfL<<8)
 1412 #define BNX_MISC_GPIO_INT_OLD_SET                        (0xfL<<16)
 1413 #define BNX_MISC_GPIO_INT_OLD_CLR                        (0xfL<<24)
 1414 
 1415 #define BNX_MISC_CONFIG_LFSR                            0x00000824
 1416 #define BNX_MISC_CONFIG_LFSR_DIV                         (0xffffL<<0)
 1417 
 1418 #define BNX_MISC_LFSR_MASK_BITS                 0x00000828
 1419 #define BNX_MISC_LFSR_MASK_BITS_TX_SCHEDULER_ENABLE      (1L<<0)
 1420 #define BNX_MISC_LFSR_MASK_BITS_TX_BD_READ_ENABLE        (1L<<1)
 1421 #define BNX_MISC_LFSR_MASK_BITS_TX_BD_CACHE_ENABLE       (1L<<2)
 1422 #define BNX_MISC_LFSR_MASK_BITS_TX_PROCESSOR_ENABLE      (1L<<3)
 1423 #define BNX_MISC_LFSR_MASK_BITS_TX_DMA_ENABLE            (1L<<4)
 1424 #define BNX_MISC_LFSR_MASK_BITS_TX_PATCHUP_ENABLE        (1L<<5)
 1425 #define BNX_MISC_LFSR_MASK_BITS_TX_PAYLOAD_Q_ENABLE      (1L<<6)
 1426 #define BNX_MISC_LFSR_MASK_BITS_TX_HEADER_Q_ENABLE       (1L<<7)
 1427 #define BNX_MISC_LFSR_MASK_BITS_TX_ASSEMBLER_ENABLE      (1L<<8)
 1428 #define BNX_MISC_LFSR_MASK_BITS_EMAC_ENABLE              (1L<<9)
 1429 #define BNX_MISC_LFSR_MASK_BITS_RX_PARSER_MAC_ENABLE     (1L<<10)
 1430 #define BNX_MISC_LFSR_MASK_BITS_RX_PARSER_CATCHUP_ENABLE         (1L<<11)
 1431 #define BNX_MISC_LFSR_MASK_BITS_RX_MBUF_ENABLE           (1L<<12)
 1432 #define BNX_MISC_LFSR_MASK_BITS_RX_LOOKUP_ENABLE         (1L<<13)
 1433 #define BNX_MISC_LFSR_MASK_BITS_RX_PROCESSOR_ENABLE      (1L<<14)
 1434 #define BNX_MISC_LFSR_MASK_BITS_RX_V2P_ENABLE            (1L<<15)
 1435 #define BNX_MISC_LFSR_MASK_BITS_RX_BD_CACHE_ENABLE       (1L<<16)
 1436 #define BNX_MISC_LFSR_MASK_BITS_RX_DMA_ENABLE            (1L<<17)
 1437 #define BNX_MISC_LFSR_MASK_BITS_COMPLETION_ENABLE        (1L<<18)
 1438 #define BNX_MISC_LFSR_MASK_BITS_HOST_COALESCE_ENABLE     (1L<<19)
 1439 #define BNX_MISC_LFSR_MASK_BITS_MAILBOX_QUEUE_ENABLE     (1L<<20)
 1440 #define BNX_MISC_LFSR_MASK_BITS_CONTEXT_ENABLE           (1L<<21)
 1441 #define BNX_MISC_LFSR_MASK_BITS_CMD_SCHEDULER_ENABLE     (1L<<22)
 1442 #define BNX_MISC_LFSR_MASK_BITS_CMD_PROCESSOR_ENABLE     (1L<<23)
 1443 #define BNX_MISC_LFSR_MASK_BITS_MGMT_PROCESSOR_ENABLE    (1L<<24)
 1444 #define BNX_MISC_LFSR_MASK_BITS_TIMER_ENABLE             (1L<<25)
 1445 #define BNX_MISC_LFSR_MASK_BITS_DMA_ENGINE_ENABLE        (1L<<26)
 1446 #define BNX_MISC_LFSR_MASK_BITS_UMP_ENABLE               (1L<<27)
 1447 
 1448 #define BNX_MISC_ARB_REQ0                               0x0000082c
 1449 #define BNX_MISC_ARB_REQ1                               0x00000830
 1450 #define BNX_MISC_ARB_REQ2                               0x00000834
 1451 #define BNX_MISC_ARB_REQ3                               0x00000838
 1452 #define BNX_MISC_ARB_REQ4                               0x0000083c
 1453 #define BNX_MISC_ARB_FREE0                              0x00000840
 1454 #define BNX_MISC_ARB_FREE1                              0x00000844
 1455 #define BNX_MISC_ARB_FREE2                              0x00000848
 1456 #define BNX_MISC_ARB_FREE3                              0x0000084c
 1457 #define BNX_MISC_ARB_FREE4                              0x00000850
 1458 #define BNX_MISC_ARB_REQ_STATUS0                        0x00000854
 1459 #define BNX_MISC_ARB_REQ_STATUS1                        0x00000858
 1460 #define BNX_MISC_ARB_REQ_STATUS2                        0x0000085c
 1461 #define BNX_MISC_ARB_REQ_STATUS3                        0x00000860
 1462 #define BNX_MISC_ARB_REQ_STATUS4                        0x00000864
 1463 #define BNX_MISC_ARB_GNT0                               0x00000868
 1464 #define BNX_MISC_ARB_GNT0_0                              (0x7L<<0)
 1465 #define BNX_MISC_ARB_GNT0_1                              (0x7L<<4)
 1466 #define BNX_MISC_ARB_GNT0_2                              (0x7L<<8)
 1467 #define BNX_MISC_ARB_GNT0_3                              (0x7L<<12)
 1468 #define BNX_MISC_ARB_GNT0_4                              (0x7L<<16)
 1469 #define BNX_MISC_ARB_GNT0_5                              (0x7L<<20)
 1470 #define BNX_MISC_ARB_GNT0_6                              (0x7L<<24)
 1471 #define BNX_MISC_ARB_GNT0_7                              (0x7L<<28)
 1472 
 1473 #define BNX_MISC_ARB_GNT1                               0x0000086c
 1474 #define BNX_MISC_ARB_GNT1_8                              (0x7L<<0)
 1475 #define BNX_MISC_ARB_GNT1_9                              (0x7L<<4)
 1476 #define BNX_MISC_ARB_GNT1_10                             (0x7L<<8)
 1477 #define BNX_MISC_ARB_GNT1_11                             (0x7L<<12)
 1478 #define BNX_MISC_ARB_GNT1_12                             (0x7L<<16)
 1479 #define BNX_MISC_ARB_GNT1_13                             (0x7L<<20)
 1480 #define BNX_MISC_ARB_GNT1_14                             (0x7L<<24)
 1481 #define BNX_MISC_ARB_GNT1_15                             (0x7L<<28)
 1482 
 1483 #define BNX_MISC_ARB_GNT2                               0x00000870
 1484 #define BNX_MISC_ARB_GNT2_16                             (0x7L<<0)
 1485 #define BNX_MISC_ARB_GNT2_17                             (0x7L<<4)
 1486 #define BNX_MISC_ARB_GNT2_18                             (0x7L<<8)
 1487 #define BNX_MISC_ARB_GNT2_19                             (0x7L<<12)
 1488 #define BNX_MISC_ARB_GNT2_20                             (0x7L<<16)
 1489 #define BNX_MISC_ARB_GNT2_21                             (0x7L<<20)
 1490 #define BNX_MISC_ARB_GNT2_22                             (0x7L<<24)
 1491 #define BNX_MISC_ARB_GNT2_23                             (0x7L<<28)
 1492 
 1493 #define BNX_MISC_ARB_GNT3                               0x00000874
 1494 #define BNX_MISC_ARB_GNT3_24                             (0x7L<<0)
 1495 #define BNX_MISC_ARB_GNT3_25                             (0x7L<<4)
 1496 #define BNX_MISC_ARB_GNT3_26                             (0x7L<<8)
 1497 #define BNX_MISC_ARB_GNT3_27                             (0x7L<<12)
 1498 #define BNX_MISC_ARB_GNT3_28                             (0x7L<<16)
 1499 #define BNX_MISC_ARB_GNT3_29                             (0x7L<<20)
 1500 #define BNX_MISC_ARB_GNT3_30                             (0x7L<<24)
 1501 #define BNX_MISC_ARB_GNT3_31                             (0x7L<<28)
 1502 
 1503 #define BNX_MISC_PRBS_CONTROL                           0x00000878
 1504 #define BNX_MISC_PRBS_CONTROL_EN                         (1L<<0)
 1505 #define BNX_MISC_PRBS_CONTROL_RSTB                       (1L<<1)
 1506 #define BNX_MISC_PRBS_CONTROL_INV                        (1L<<2)
 1507 #define BNX_MISC_PRBS_CONTROL_ERR_CLR                    (1L<<3)
 1508 #define BNX_MISC_PRBS_CONTROL_ORDER                      (0x3L<<4)
 1509 #define BNX_MISC_PRBS_CONTROL_ORDER_7TH          (0L<<4)
 1510 #define BNX_MISC_PRBS_CONTROL_ORDER_15TH                 (1L<<4)
 1511 #define BNX_MISC_PRBS_CONTROL_ORDER_23RD                 (2L<<4)
 1512 #define BNX_MISC_PRBS_CONTROL_ORDER_31ST                 (3L<<4)
 1513 
 1514 #define BNX_MISC_PRBS_STATUS                            0x0000087c
 1515 #define BNX_MISC_PRBS_STATUS_LOCK                        (1L<<0)
 1516 #define BNX_MISC_PRBS_STATUS_STKY                        (1L<<1)
 1517 #define BNX_MISC_PRBS_STATUS_ERRORS                      (0x3fffL<<2)
 1518 #define BNX_MISC_PRBS_STATUS_STATE                       (0xfL<<16)
 1519 
 1520 #define BNX_MISC_SM_ASF_CONTROL                 0x00000880
 1521 #define BNX_MISC_SM_ASF_CONTROL_ASF_RST          (1L<<0)
 1522 #define BNX_MISC_SM_ASF_CONTROL_TSC_EN                   (1L<<1)
 1523 #define BNX_MISC_SM_ASF_CONTROL_WG_TO                    (1L<<2)
 1524 #define BNX_MISC_SM_ASF_CONTROL_HB_TO                    (1L<<3)
 1525 #define BNX_MISC_SM_ASF_CONTROL_PA_TO                    (1L<<4)
 1526 #define BNX_MISC_SM_ASF_CONTROL_PL_TO                    (1L<<5)
 1527 #define BNX_MISC_SM_ASF_CONTROL_RT_TO                    (1L<<6)
 1528 #define BNX_MISC_SM_ASF_CONTROL_SMB_EVENT                (1L<<7)
 1529 #define BNX_MISC_SM_ASF_CONTROL_RES                      (0xfL<<8)
 1530 #define BNX_MISC_SM_ASF_CONTROL_SMB_EN                   (1L<<12)
 1531 #define BNX_MISC_SM_ASF_CONTROL_SMB_BB_EN                (1L<<13)
 1532 #define BNX_MISC_SM_ASF_CONTROL_SMB_NO_ADDR_FILT         (1L<<14)
 1533 #define BNX_MISC_SM_ASF_CONTROL_SMB_AUTOREAD             (1L<<15)
 1534 #define BNX_MISC_SM_ASF_CONTROL_NIC_SMB_ADDR1            (0x3fL<<16)
 1535 #define BNX_MISC_SM_ASF_CONTROL_NIC_SMB_ADDR2            (0x3fL<<24)
 1536 #define BNX_MISC_SM_ASF_CONTROL_EN_NIC_SMB_ADDR_0        (1L<<30)
 1537 #define BNX_MISC_SM_ASF_CONTROL_SMB_EARLY_ATTN           (1L<<31)
 1538 
 1539 #define BNX_MISC_SMB_IN                         0x00000884
 1540 #define BNX_MISC_SMB_IN_DAT_IN                           (0xffL<<0)
 1541 #define BNX_MISC_SMB_IN_RDY                              (1L<<8)
 1542 #define BNX_MISC_SMB_IN_DONE                             (1L<<9)
 1543 #define BNX_MISC_SMB_IN_FIRSTBYTE                        (1L<<10)
 1544 #define BNX_MISC_SMB_IN_STATUS                           (0x7L<<11)
 1545 #define BNX_MISC_SMB_IN_STATUS_OK                        (0x0L<<11)
 1546 #define BNX_MISC_SMB_IN_STATUS_PEC                       (0x1L<<11)
 1547 #define BNX_MISC_SMB_IN_STATUS_OFLOW                     (0x2L<<11)
 1548 #define BNX_MISC_SMB_IN_STATUS_STOP                      (0x3L<<11)
 1549 #define BNX_MISC_SMB_IN_STATUS_TIMEOUT                   (0x4L<<11)
 1550 
 1551 #define BNX_MISC_SMB_OUT                                0x00000888
 1552 #define BNX_MISC_SMB_OUT_DAT_OUT                         (0xffL<<0)
 1553 #define BNX_MISC_SMB_OUT_RDY                             (1L<<8)
 1554 #define BNX_MISC_SMB_OUT_START                           (1L<<9)
 1555 #define BNX_MISC_SMB_OUT_LAST                            (1L<<10)
 1556 #define BNX_MISC_SMB_OUT_ACC_TYPE                        (1L<<11)
 1557 #define BNX_MISC_SMB_OUT_ENB_PEC                         (1L<<12)
 1558 #define BNX_MISC_SMB_OUT_GET_RX_LEN                      (1L<<13)
 1559 #define BNX_MISC_SMB_OUT_SMB_READ_LEN                    (0x3fL<<14)
 1560 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS          (0xfL<<20)
 1561 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_OK               (0L<<20)
 1562 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_FIRST_NACK       (1L<<20)
 1563 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_SUB_NACK         (9L<<20)
 1564 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_UFLOW            (2L<<20)
 1565 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_STOP             (3L<<20)
 1566 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_TIMEOUT  (4L<<20)
 1567 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_FIRST_LOST       (5L<<20)
 1568 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_SUB_LOST         (0xdL<<20)
 1569 #define BNX_MISC_SMB_OUT_SMB_OUT_STATUS_BADACK           (0x6L<<20)
 1570 #define BNX_MISC_SMB_OUT_SMB_OUT_SLAVEMODE               (1L<<24)
 1571 #define BNX_MISC_SMB_OUT_SMB_OUT_DAT_EN          (1L<<25)
 1572 #define BNX_MISC_SMB_OUT_SMB_OUT_DAT_IN          (1L<<26)
 1573 #define BNX_MISC_SMB_OUT_SMB_OUT_CLK_EN          (1L<<27)
 1574 #define BNX_MISC_SMB_OUT_SMB_OUT_CLK_IN          (1L<<28)
 1575 
 1576 #define BNX_MISC_SMB_WATCHDOG                           0x0000088c
 1577 #define BNX_MISC_SMB_WATCHDOG_WATCHDOG                   (0xffffL<<0)
 1578 
 1579 #define BNX_MISC_SMB_HEARTBEAT                          0x00000890
 1580 #define BNX_MISC_SMB_HEARTBEAT_HEARTBEAT                 (0xffffL<<0)
 1581 
 1582 #define BNX_MISC_SMB_POLL_ASF                           0x00000894
 1583 #define BNX_MISC_SMB_POLL_ASF_POLL_ASF                   (0xffffL<<0)
 1584 
 1585 #define BNX_MISC_SMB_POLL_LEGACY                        0x00000898
 1586 #define BNX_MISC_SMB_POLL_LEGACY_POLL_LEGACY             (0xffffL<<0)
 1587 
 1588 #define BNX_MISC_SMB_RETRAN                             0x0000089c
 1589 #define BNX_MISC_SMB_RETRAN_RETRAN                       (0xffL<<0)
 1590 
 1591 #define BNX_MISC_SMB_TIMESTAMP                          0x000008a0
 1592 #define BNX_MISC_SMB_TIMESTAMP_TIMESTAMP                 (0xffffffffL<<0)
 1593 
 1594 #define BNX_MISC_PERR_ENA0                              0x000008a4
 1595 #define BNX_MISC_PERR_ENA0_COM_MISC_CTXC                 (1L<<0)
 1596 #define BNX_MISC_PERR_ENA0_COM_MISC_REGF                 (1L<<1)
 1597 #define BNX_MISC_PERR_ENA0_COM_MISC_SCPAD                (1L<<2)
 1598 #define BNX_MISC_PERR_ENA0_CP_MISC_CTXC          (1L<<3)
 1599 #define BNX_MISC_PERR_ENA0_CP_MISC_REGF          (1L<<4)
 1600 #define BNX_MISC_PERR_ENA0_CP_MISC_SCPAD                 (1L<<5)
 1601 #define BNX_MISC_PERR_ENA0_CS_MISC_TMEM          (1L<<6)
 1602 #define BNX_MISC_PERR_ENA0_CTX_MISC_ACCM0                (1L<<7)
 1603 #define BNX_MISC_PERR_ENA0_CTX_MISC_ACCM1                (1L<<8)
 1604 #define BNX_MISC_PERR_ENA0_CTX_MISC_ACCM2                (1L<<9)
 1605 #define BNX_MISC_PERR_ENA0_CTX_MISC_ACCM3                (1L<<10)
 1606 #define BNX_MISC_PERR_ENA0_CTX_MISC_ACCM4                (1L<<11)
 1607 #define BNX_MISC_PERR_ENA0_CTX_MISC_ACCM5                (1L<<12)
 1608 #define BNX_MISC_PERR_ENA0_CTX_MISC_PGTBL                (1L<<13)
 1609 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DR0                 (1L<<14)
 1610 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DR1                 (1L<<15)
 1611 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DR2                 (1L<<16)
 1612 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DR3                 (1L<<17)
 1613 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DR4                 (1L<<18)
 1614 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DW0                 (1L<<19)
 1615 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DW1                 (1L<<20)
 1616 #define BNX_MISC_PERR_ENA0_DMAE_MISC_DW2                 (1L<<21)
 1617 #define BNX_MISC_PERR_ENA0_HC_MISC_DMA                   (1L<<22)
 1618 #define BNX_MISC_PERR_ENA0_MCP_MISC_REGF                 (1L<<23)
 1619 #define BNX_MISC_PERR_ENA0_MCP_MISC_SCPAD                (1L<<24)
 1620 #define BNX_MISC_PERR_ENA0_MQ_MISC_CTX                   (1L<<25)
 1621 #define BNX_MISC_PERR_ENA0_RBDC_MISC                     (1L<<26)
 1622 #define BNX_MISC_PERR_ENA0_RBUF_MISC_MB          (1L<<27)
 1623 #define BNX_MISC_PERR_ENA0_RBUF_MISC_PTR                 (1L<<28)
 1624 #define BNX_MISC_PERR_ENA0_RDE_MISC_RPC          (1L<<29)
 1625 #define BNX_MISC_PERR_ENA0_RDE_MISC_RPM          (1L<<30)
 1626 #define BNX_MISC_PERR_ENA0_RV2P_MISC_CB0REGS             (1L<<31)
 1627 
 1628 #define BNX_MISC_PERR_ENA1                              0x000008a8
 1629 #define BNX_MISC_PERR_ENA1_RV2P_MISC_CB1REGS             (1L<<0)
 1630 #define BNX_MISC_PERR_ENA1_RV2P_MISC_P1IRAM              (1L<<1)
 1631 #define BNX_MISC_PERR_ENA1_RV2P_MISC_P2IRAM              (1L<<2)
 1632 #define BNX_MISC_PERR_ENA1_RXP_MISC_CTXC                 (1L<<3)
 1633 #define BNX_MISC_PERR_ENA1_RXP_MISC_REGF                 (1L<<4)
 1634 #define BNX_MISC_PERR_ENA1_RXP_MISC_SCPAD                (1L<<5)
 1635 #define BNX_MISC_PERR_ENA1_RXP_MISC_RBUFC                (1L<<6)
 1636 #define BNX_MISC_PERR_ENA1_TBDC_MISC                     (1L<<7)
 1637 #define BNX_MISC_PERR_ENA1_TDMA_MISC                     (1L<<8)
 1638 #define BNX_MISC_PERR_ENA1_THBUF_MISC_MB0                (1L<<9)
 1639 #define BNX_MISC_PERR_ENA1_THBUF_MISC_MB1                (1L<<10)
 1640 #define BNX_MISC_PERR_ENA1_TPAT_MISC_REGF                (1L<<11)
 1641 #define BNX_MISC_PERR_ENA1_TPAT_MISC_SCPAD               (1L<<12)
 1642 #define BNX_MISC_PERR_ENA1_TPBUF_MISC_MB                 (1L<<13)
 1643 #define BNX_MISC_PERR_ENA1_TSCH_MISC_LR          (1L<<14)
 1644 #define BNX_MISC_PERR_ENA1_TXP_MISC_CTXC                 (1L<<15)
 1645 #define BNX_MISC_PERR_ENA1_TXP_MISC_REGF                 (1L<<16)
 1646 #define BNX_MISC_PERR_ENA1_TXP_MISC_SCPAD                (1L<<17)
 1647 #define BNX_MISC_PERR_ENA1_UMP_MISC_FIORX                (1L<<18)
 1648 #define BNX_MISC_PERR_ENA1_UMP_MISC_FIOTX                (1L<<19)
 1649 #define BNX_MISC_PERR_ENA1_UMP_MISC_RX                   (1L<<20)
 1650 #define BNX_MISC_PERR_ENA1_UMP_MISC_TX                   (1L<<21)
 1651 #define BNX_MISC_PERR_ENA1_RDMAQ_MISC                    (1L<<22)
 1652 #define BNX_MISC_PERR_ENA1_CSQ_MISC                      (1L<<23)
 1653 #define BNX_MISC_PERR_ENA1_CPQ_MISC                      (1L<<24)
 1654 #define BNX_MISC_PERR_ENA1_MCPQ_MISC                     (1L<<25)
 1655 #define BNX_MISC_PERR_ENA1_RV2PMQ_MISC                   (1L<<26)
 1656 #define BNX_MISC_PERR_ENA1_RV2PPQ_MISC                   (1L<<27)
 1657 #define BNX_MISC_PERR_ENA1_RV2PTQ_MISC                   (1L<<28)
 1658 #define BNX_MISC_PERR_ENA1_RXPQ_MISC                     (1L<<29)
 1659 #define BNX_MISC_PERR_ENA1_RXPCQ_MISC                    (1L<<30)
 1660 #define BNX_MISC_PERR_ENA1_RLUPQ_MISC                    (1L<<31)
 1661 
 1662 #define BNX_MISC_PERR_ENA2                              0x000008ac
 1663 #define BNX_MISC_PERR_ENA2_COMQ_MISC                     (1L<<0)
 1664 #define BNX_MISC_PERR_ENA2_COMXQ_MISC                    (1L<<1)
 1665 #define BNX_MISC_PERR_ENA2_COMTQ_MISC                    (1L<<2)
 1666 #define BNX_MISC_PERR_ENA2_TSCHQ_MISC                    (1L<<3)
 1667 #define BNX_MISC_PERR_ENA2_TBDRQ_MISC                    (1L<<4)
 1668 #define BNX_MISC_PERR_ENA2_TXPQ_MISC                     (1L<<5)
 1669 #define BNX_MISC_PERR_ENA2_TDMAQ_MISC                    (1L<<6)
 1670 #define BNX_MISC_PERR_ENA2_TPATQ_MISC                    (1L<<7)
 1671 #define BNX_MISC_PERR_ENA2_TASQ_MISC                     (1L<<8)
 1672 
 1673 #define BNX_MISC_DEBUG_VECTOR_SEL                       0x000008b0
 1674 #define BNX_MISC_DEBUG_VECTOR_SEL_0                      (0xfffL<<0)
 1675 #define BNX_MISC_DEBUG_VECTOR_SEL_1                      (0xfffL<<12)
 1676 
 1677 #define BNX_MISC_VREG_CONTROL                           0x000008b4
 1678 #define BNX_MISC_VREG_CONTROL_1_2                        (0xfL<<0)
 1679 #define BNX_MISC_VREG_CONTROL_2_5                        (0xfL<<4)
 1680 
 1681 #define BNX_MISC_FINAL_CLK_CTL_VAL                      0x000008b8
 1682 #define BNX_MISC_FINAL_CLK_CTL_VAL_MISC_FINAL_CLK_CTL_VAL        (0x3ffffffL<<6)
 1683 
 1684 #define BNX_MISC_UNUSED0                                0x000008bc
 1685 
 1686 
 1687 /*
 1688  *  nvm_reg definition
 1689  *  offset: 0x6400
 1690  */
 1691 #define BNX_NVM_COMMAND                         0x00006400
 1692 #define BNX_NVM_COMMAND_RST                              (1L<<0)
 1693 #define BNX_NVM_COMMAND_DONE                             (1L<<3)
 1694 #define BNX_NVM_COMMAND_DOIT                             (1L<<4)
 1695 #define BNX_NVM_COMMAND_WR                               (1L<<5)
 1696 #define BNX_NVM_COMMAND_ERASE                            (1L<<6)
 1697 #define BNX_NVM_COMMAND_FIRST                            (1L<<7)
 1698 #define BNX_NVM_COMMAND_LAST                             (1L<<8)
 1699 #define BNX_NVM_COMMAND_WREN                             (1L<<16)
 1700 #define BNX_NVM_COMMAND_WRDI                             (1L<<17)
 1701 #define BNX_NVM_COMMAND_EWSR                             (1L<<18)
 1702 #define BNX_NVM_COMMAND_WRSR                             (1L<<19)
 1703 
 1704 #define BNX_NVM_STATUS                                  0x00006404
 1705 #define BNX_NVM_STATUS_PI_FSM_STATE                      (0xfL<<0)
 1706 #define BNX_NVM_STATUS_EE_FSM_STATE                      (0xfL<<4)
 1707 #define BNX_NVM_STATUS_EQ_FSM_STATE                      (0xfL<<8)
 1708 
 1709 #define BNX_NVM_WRITE                                   0x00006408
 1710 #define BNX_NVM_WRITE_NVM_WRITE_VALUE                    (0xffffffffL<<0)
 1711 #define BNX_NVM_WRITE_NVM_WRITE_VALUE_BIT_BANG           (0L<<0)
 1712 #define BNX_NVM_WRITE_NVM_WRITE_VALUE_EECLK              (1L<<0)
 1713 #define BNX_NVM_WRITE_NVM_WRITE_VALUE_EEDATA             (2L<<0)
 1714 #define BNX_NVM_WRITE_NVM_WRITE_VALUE_SCLK               (4L<<0)
 1715 #define BNX_NVM_WRITE_NVM_WRITE_VALUE_CS_B               (8L<<0)
 1716 #define BNX_NVM_WRITE_NVM_WRITE_VALUE_SO                 (16L<<0)
 1717 #define BNX_NVM_WRITE_NVM_WRITE_VALUE_SI                 (32L<<0)
 1718 
 1719 #define BNX_NVM_ADDR                                    0x0000640c
 1720 #define BNX_NVM_ADDR_NVM_ADDR_VALUE                      (0xffffffL<<0)
 1721 #define BNX_NVM_ADDR_NVM_ADDR_VALUE_BIT_BANG             (0L<<0)
 1722 #define BNX_NVM_ADDR_NVM_ADDR_VALUE_EECLK                (1L<<0)
 1723 #define BNX_NVM_ADDR_NVM_ADDR_VALUE_EEDATA               (2L<<0)
 1724 #define BNX_NVM_ADDR_NVM_ADDR_VALUE_SCLK                 (4L<<0)
 1725 #define BNX_NVM_ADDR_NVM_ADDR_VALUE_CS_B                 (8L<<0)
 1726 #define BNX_NVM_ADDR_NVM_ADDR_VALUE_SO                   (16L<<0)
 1727 #define BNX_NVM_ADDR_NVM_ADDR_VALUE_SI                   (32L<<0)
 1728 
 1729 #define BNX_NVM_READ                                    0x00006410
 1730 #define BNX_NVM_READ_NVM_READ_VALUE                      (0xffffffffL<<0)
 1731 #define BNX_NVM_READ_NVM_READ_VALUE_BIT_BANG             (0L<<0)
 1732 #define BNX_NVM_READ_NVM_READ_VALUE_EECLK                (1L<<0)
 1733 #define BNX_NVM_READ_NVM_READ_VALUE_EEDATA               (2L<<0)
 1734 #define BNX_NVM_READ_NVM_READ_VALUE_SCLK                 (4L<<0)
 1735 #define BNX_NVM_READ_NVM_READ_VALUE_CS_B                 (8L<<0)
 1736 #define BNX_NVM_READ_NVM_READ_VALUE_SO                   (16L<<0)
 1737 #define BNX_NVM_READ_NVM_READ_VALUE_SI                   (32L<<0)
 1738 
 1739 #define BNX_NVM_CFG1                                    0x00006414
 1740 #define BNX_NVM_CFG1_FLASH_MODE                  (1L<<0)
 1741 #define BNX_NVM_CFG1_BUFFER_MODE                         (1L<<1)
 1742 #define BNX_NVM_CFG1_PASS_MODE                           (1L<<2)
 1743 #define BNX_NVM_CFG1_BITBANG_MODE                        (1L<<3)
 1744 #define BNX_NVM_CFG1_STATUS_BIT                  (0x7L<<4)
 1745 #define BNX_NVM_CFG1_STATUS_BIT_FLASH_RDY                (0L<<4)
 1746 #define BNX_NVM_CFG1_STATUS_BIT_BUFFER_RDY               (7L<<4)
 1747 #define BNX_NVM_CFG1_SPI_CLK_DIV                         (0xfL<<7)
 1748 #define BNX_NVM_CFG1_SEE_CLK_DIV                         (0x7ffL<<11)
 1749 #define BNX_NVM_CFG1_PROTECT_MODE                        (1L<<24)
 1750 #define BNX_NVM_CFG1_FLASH_SIZE                  (1L<<25)
 1751 #define BNX_NVM_CFG1_COMPAT_BYPASSS                      (1L<<31)
 1752 
 1753 #define BNX_NVM_CFG2                                    0x00006418
 1754 #define BNX_NVM_CFG2_ERASE_CMD                           (0xffL<<0)
 1755 #define BNX_NVM_CFG2_DUMMY                               (0xffL<<8)
 1756 #define BNX_NVM_CFG2_STATUS_CMD                  (0xffL<<16)
 1757 
 1758 #define BNX_NVM_CFG3                                    0x0000641c
 1759 #define BNX_NVM_CFG3_BUFFER_RD_CMD                       (0xffL<<0)
 1760 #define BNX_NVM_CFG3_WRITE_CMD                           (0xffL<<8)
 1761 #define BNX_NVM_CFG3_BUFFER_WRITE_CMD                    (0xffL<<16)
 1762 #define BNX_NVM_CFG3_READ_CMD                            (0xffL<<24)
 1763 
 1764 #define BNX_NVM_SW_ARB                                  0x00006420
 1765 #define BNX_NVM_SW_ARB_ARB_REQ_SET0                      (1L<<0)
 1766 #define BNX_NVM_SW_ARB_ARB_REQ_SET1                      (1L<<1)
 1767 #define BNX_NVM_SW_ARB_ARB_REQ_SET2                      (1L<<2)
 1768 #define BNX_NVM_SW_ARB_ARB_REQ_SET3                      (1L<<3)
 1769 #define BNX_NVM_SW_ARB_ARB_REQ_CLR0                      (1L<<4)
 1770 #define BNX_NVM_SW_ARB_ARB_REQ_CLR1                      (1L<<5)
 1771 #define BNX_NVM_SW_ARB_ARB_REQ_CLR2                      (1L<<6)
 1772 #define BNX_NVM_SW_ARB_ARB_REQ_CLR3                      (1L<<7)
 1773 #define BNX_NVM_SW_ARB_ARB_ARB0                  (1L<<8)
 1774 #define BNX_NVM_SW_ARB_ARB_ARB1                  (1L<<9)
 1775 #define BNX_NVM_SW_ARB_ARB_ARB2                  (1L<<10)
 1776 #define BNX_NVM_SW_ARB_ARB_ARB3                  (1L<<11)
 1777 #define BNX_NVM_SW_ARB_REQ0                              (1L<<12)
 1778 #define BNX_NVM_SW_ARB_REQ1                              (1L<<13)
 1779 #define BNX_NVM_SW_ARB_REQ2                              (1L<<14)
 1780 #define BNX_NVM_SW_ARB_REQ3                              (1L<<15)
 1781 
 1782 #define BNX_NVM_ACCESS_ENABLE                           0x00006424
 1783 #define BNX_NVM_ACCESS_ENABLE_EN                         (1L<<0)
 1784 #define BNX_NVM_ACCESS_ENABLE_WR_EN                      (1L<<1)
 1785 
 1786 #define BNX_NVM_WRITE1                                  0x00006428
 1787 #define BNX_NVM_WRITE1_WREN_CMD                  (0xffL<<0)
 1788 #define BNX_NVM_WRITE1_WRDI_CMD                  (0xffL<<8)
 1789 #define BNX_NVM_WRITE1_SR_DATA                           (0xffL<<16)
 1790 
 1791 
 1792 
 1793 /*
 1794  *  dma_reg definition
 1795  *  offset: 0xc00
 1796  */
 1797 #define BNX_DMA_COMMAND                         0x00000c00
 1798 #define BNX_DMA_COMMAND_ENABLE                           (1L<<0)
 1799 
 1800 #define BNX_DMA_STATUS                                  0x00000c04
 1801 #define BNX_DMA_STATUS_PAR_ERROR_STATE                   (1L<<0)
 1802 #define BNX_DMA_STATUS_READ_TRANSFERS_STAT               (1L<<16)
 1803 #define BNX_DMA_STATUS_READ_DELAY_PCI_CLKS_STAT  (1L<<17)
 1804 #define BNX_DMA_STATUS_BIG_READ_TRANSFERS_STAT           (1L<<18)
 1805 #define BNX_DMA_STATUS_BIG_READ_DELAY_PCI_CLKS_STAT      (1L<<19)
 1806 #define BNX_DMA_STATUS_BIG_READ_RETRY_AFTER_DATA_STAT    (1L<<20)
 1807 #define BNX_DMA_STATUS_WRITE_TRANSFERS_STAT              (1L<<21)
 1808 #define BNX_DMA_STATUS_WRITE_DELAY_PCI_CLKS_STAT         (1L<<22)
 1809 #define BNX_DMA_STATUS_BIG_WRITE_TRANSFERS_STAT  (1L<<23)
 1810 #define BNX_DMA_STATUS_BIG_WRITE_DELAY_PCI_CLKS_STAT     (1L<<24)
 1811 #define BNX_DMA_STATUS_BIG_WRITE_RETRY_AFTER_DATA_STAT   (1L<<25)
 1812 
 1813 #define BNX_DMA_CONFIG                                  0x00000c08
 1814 #define BNX_DMA_CONFIG_DATA_BYTE_SWAP                    (1L<<0)
 1815 #define BNX_DMA_CONFIG_DATA_WORD_SWAP                    (1L<<1)
 1816 #define BNX_DMA_CONFIG_CNTL_BYTE_SWAP                    (1L<<4)
 1817 #define BNX_DMA_CONFIG_CNTL_WORD_SWAP                    (1L<<5)
 1818 #define BNX_DMA_CONFIG_ONE_DMA                           (1L<<6)
 1819 #define BNX_DMA_CONFIG_CNTL_TWO_DMA                      (1L<<7)
 1820 #define BNX_DMA_CONFIG_CNTL_FPGA_MODE                    (1L<<8)
 1821 #define BNX_DMA_CONFIG_CNTL_PING_PONG_DMA                (1L<<10)
 1822 #define BNX_DMA_CONFIG_CNTL_PCI_COMP_DLY                 (1L<<11)
 1823 #define BNX_DMA_CONFIG_NO_RCHANS_IN_USE          (0xfL<<12)
 1824 #define BNX_DMA_CONFIG_NO_WCHANS_IN_USE          (0xfL<<16)
 1825 #define BNX_DMA_CONFIG_PCI_CLK_CMP_BITS          (0x7L<<20)
 1826 #define BNX_DMA_CONFIG_PCI_FAST_CLK_CMP          (1L<<23)
 1827 #define BNX_DMA_CONFIG_BIG_SIZE                  (0xfL<<24)
 1828 #define BNX_DMA_CONFIG_BIG_SIZE_NONE                     (0x0L<<24)
 1829 #define BNX_DMA_CONFIG_BIG_SIZE_64                       (0x1L<<24)
 1830 #define BNX_DMA_CONFIG_BIG_SIZE_128                      (0x2L<<24)
 1831 #define BNX_DMA_CONFIG_BIG_SIZE_256                      (0x4L<<24)
 1832 #define BNX_DMA_CONFIG_BIG_SIZE_512                      (0x8L<<24)
 1833 
 1834 #define BNX_DMA_BLACKOUT                                0x00000c0c
 1835 #define BNX_DMA_BLACKOUT_RD_RETRY_BLACKOUT               (0xffL<<0)
 1836 #define BNX_DMA_BLACKOUT_2ND_RD_RETRY_BLACKOUT           (0xffL<<8)
 1837 #define BNX_DMA_BLACKOUT_WR_RETRY_BLACKOUT               (0xffL<<16)
 1838 
 1839 #define BNX_DMA_RCHAN_STAT                              0x00000c30
 1840 #define BNX_DMA_RCHAN_STAT_COMP_CODE_0                   (0x7L<<0)
 1841 #define BNX_DMA_RCHAN_STAT_PAR_ERR_0                     (1L<<3)
 1842 #define BNX_DMA_RCHAN_STAT_COMP_CODE_1                   (0x7L<<4)
 1843 #define BNX_DMA_RCHAN_STAT_PAR_ERR_1                     (1L<<7)
 1844 #define BNX_DMA_RCHAN_STAT_COMP_CODE_2                   (0x7L<<8)
 1845 #define BNX_DMA_RCHAN_STAT_PAR_ERR_2                     (1L<<11)
 1846 #define BNX_DMA_RCHAN_STAT_COMP_CODE_3                   (0x7L<<12)
 1847 #define BNX_DMA_RCHAN_STAT_PAR_ERR_3                     (1L<<15)
 1848 #define BNX_DMA_RCHAN_STAT_COMP_CODE_4                   (0x7L<<16)
 1849 #define BNX_DMA_RCHAN_STAT_PAR_ERR_4                     (1L<<19)
 1850 #define BNX_DMA_RCHAN_STAT_COMP_CODE_5                   (0x7L<<20)
 1851 #define BNX_DMA_RCHAN_STAT_PAR_ERR_5                     (1L<<23)
 1852 #define BNX_DMA_RCHAN_STAT_COMP_CODE_6                   (0x7L<<24)
 1853 #define BNX_DMA_RCHAN_STAT_PAR_ERR_6                     (1L<<27)
 1854 #define BNX_DMA_RCHAN_STAT_COMP_CODE_7                   (0x7L<<28)
 1855 #define BNX_DMA_RCHAN_STAT_PAR_ERR_7                     (1L<<31)
 1856 
 1857 #define BNX_DMA_WCHAN_STAT                              0x00000c34
 1858 #define BNX_DMA_WCHAN_STAT_COMP_CODE_0                   (0x7L<<0)
 1859 #define BNX_DMA_WCHAN_STAT_PAR_ERR_0                     (1L<<3)
 1860 #define BNX_DMA_WCHAN_STAT_COMP_CODE_1                   (0x7L<<4)
 1861 #define BNX_DMA_WCHAN_STAT_PAR_ERR_1                     (1L<<7)
 1862 #define BNX_DMA_WCHAN_STAT_COMP_CODE_2                   (0x7L<<8)
 1863 #define BNX_DMA_WCHAN_STAT_PAR_ERR_2                     (1L<<11)
 1864 #define BNX_DMA_WCHAN_STAT_COMP_CODE_3                   (0x7L<<12)
 1865 #define BNX_DMA_WCHAN_STAT_PAR_ERR_3                     (1L<<15)
 1866 #define BNX_DMA_WCHAN_STAT_COMP_CODE_4                   (0x7L<<16)
 1867 #define BNX_DMA_WCHAN_STAT_PAR_ERR_4                     (1L<<19)
 1868 #define BNX_DMA_WCHAN_STAT_COMP_CODE_5                   (0x7L<<20)
 1869 #define BNX_DMA_WCHAN_STAT_PAR_ERR_5                     (1L<<23)
 1870 #define BNX_DMA_WCHAN_STAT_COMP_CODE_6                   (0x7L<<24)
 1871 #define BNX_DMA_WCHAN_STAT_PAR_ERR_6                     (1L<<27)
 1872 #define BNX_DMA_WCHAN_STAT_COMP_CODE_7                   (0x7L<<28)
 1873 #define BNX_DMA_WCHAN_STAT_PAR_ERR_7                     (1L<<31)
 1874 
 1875 #define BNX_DMA_RCHAN_ASSIGNMENT                        0x00000c38
 1876 #define BNX_DMA_RCHAN_ASSIGNMENT_0                       (0xfL<<0)
 1877 #define BNX_DMA_RCHAN_ASSIGNMENT_1                       (0xfL<<4)
 1878 #define BNX_DMA_RCHAN_ASSIGNMENT_2                       (0xfL<<8)
 1879 #define BNX_DMA_RCHAN_ASSIGNMENT_3                       (0xfL<<12)
 1880 #define BNX_DMA_RCHAN_ASSIGNMENT_4                       (0xfL<<16)
 1881 #define BNX_DMA_RCHAN_ASSIGNMENT_5                       (0xfL<<20)
 1882 #define BNX_DMA_RCHAN_ASSIGNMENT_6                       (0xfL<<24)
 1883 #define BNX_DMA_RCHAN_ASSIGNMENT_7                       (0xfL<<28)
 1884 
 1885 #define BNX_DMA_WCHAN_ASSIGNMENT                        0x00000c3c
 1886 #define BNX_DMA_WCHAN_ASSIGNMENT_0                       (0xfL<<0)
 1887 #define BNX_DMA_WCHAN_ASSIGNMENT_1                       (0xfL<<4)
 1888 #define BNX_DMA_WCHAN_ASSIGNMENT_2                       (0xfL<<8)
 1889 #define BNX_DMA_WCHAN_ASSIGNMENT_3                       (0xfL<<12)
 1890 #define BNX_DMA_WCHAN_ASSIGNMENT_4                       (0xfL<<16)
 1891 #define BNX_DMA_WCHAN_ASSIGNMENT_5                       (0xfL<<20)
 1892 #define BNX_DMA_WCHAN_ASSIGNMENT_6                       (0xfL<<24)
 1893 #define BNX_DMA_WCHAN_ASSIGNMENT_7                       (0xfL<<28)
 1894 
 1895 #define BNX_DMA_RCHAN_STAT_00                           0x00000c40
 1896 #define BNX_DMA_RCHAN_STAT_00_RCHAN_STA_HOST_ADDR_LOW    (0xffffffffL<<0)
 1897 
 1898 #define BNX_DMA_RCHAN_STAT_01                           0x00000c44
 1899 #define BNX_DMA_RCHAN_STAT_01_RCHAN_STA_HOST_ADDR_HIGH   (0xffffffffL<<0)
 1900 
 1901 #define BNX_DMA_RCHAN_STAT_02                           0x00000c48
 1902 #define BNX_DMA_RCHAN_STAT_02_LENGTH                     (0xffffL<<0)
 1903 #define BNX_DMA_RCHAN_STAT_02_WORD_SWAP          (1L<<16)
 1904 #define BNX_DMA_RCHAN_STAT_02_BYTE_SWAP          (1L<<17)
 1905 #define BNX_DMA_RCHAN_STAT_02_PRIORITY_LVL               (1L<<18)
 1906 
 1907 #define BNX_DMA_RCHAN_STAT_10                           0x00000c4c
 1908 #define BNX_DMA_RCHAN_STAT_11                           0x00000c50
 1909 #define BNX_DMA_RCHAN_STAT_12                           0x00000c54
 1910 #define BNX_DMA_RCHAN_STAT_20                           0x00000c58
 1911 #define BNX_DMA_RCHAN_STAT_21                           0x00000c5c
 1912 #define BNX_DMA_RCHAN_STAT_22                           0x00000c60
 1913 #define BNX_DMA_RCHAN_STAT_30                           0x00000c64
 1914 #define BNX_DMA_RCHAN_STAT_31                           0x00000c68
 1915 #define BNX_DMA_RCHAN_STAT_32                           0x00000c6c
 1916 #define BNX_DMA_RCHAN_STAT_40                           0x00000c70
 1917 #define BNX_DMA_RCHAN_STAT_41                           0x00000c74
 1918 #define BNX_DMA_RCHAN_STAT_42                           0x00000c78
 1919 #define BNX_DMA_RCHAN_STAT_50                           0x00000c7c
 1920 #define BNX_DMA_RCHAN_STAT_51                           0x00000c80
 1921 #define BNX_DMA_RCHAN_STAT_52                           0x00000c84
 1922 #define BNX_DMA_RCHAN_STAT_60                           0x00000c88
 1923 #define BNX_DMA_RCHAN_STAT_61                           0x00000c8c
 1924 #define BNX_DMA_RCHAN_STAT_62                           0x00000c90
 1925 #define BNX_DMA_RCHAN_STAT_70                           0x00000c94
 1926 #define BNX_DMA_RCHAN_STAT_71                           0x00000c98
 1927 #define BNX_DMA_RCHAN_STAT_72                           0x00000c9c
 1928 #define BNX_DMA_WCHAN_STAT_00                           0x00000ca0
 1929 #define BNX_DMA_WCHAN_STAT_00_WCHAN_STA_HOST_ADDR_LOW    (0xffffffffL<<0)
 1930 
 1931 #define BNX_DMA_WCHAN_STAT_01                           0x00000ca4
 1932 #define BNX_DMA_WCHAN_STAT_01_WCHAN_STA_HOST_ADDR_HIGH   (0xffffffffL<<0)
 1933 
 1934 #define BNX_DMA_WCHAN_STAT_02                           0x00000ca8
 1935 #define BNX_DMA_WCHAN_STAT_02_LENGTH                     (0xffffL<<0)
 1936 #define BNX_DMA_WCHAN_STAT_02_WORD_SWAP          (1L<<16)
 1937 #define BNX_DMA_WCHAN_STAT_02_BYTE_SWAP          (1L<<17)
 1938 #define BNX_DMA_WCHAN_STAT_02_PRIORITY_LVL               (1L<<18)
 1939 
 1940 #define BNX_DMA_WCHAN_STAT_10                           0x00000cac
 1941 #define BNX_DMA_WCHAN_STAT_11                           0x00000cb0
 1942 #define BNX_DMA_WCHAN_STAT_12                           0x00000cb4
 1943 #define BNX_DMA_WCHAN_STAT_20                           0x00000cb8
 1944 #define BNX_DMA_WCHAN_STAT_21                           0x00000cbc
 1945 #define BNX_DMA_WCHAN_STAT_22                           0x00000cc0
 1946 #define BNX_DMA_WCHAN_STAT_30                           0x00000cc4
 1947 #define BNX_DMA_WCHAN_STAT_31                           0x00000cc8
 1948 #define BNX_DMA_WCHAN_STAT_32                           0x00000ccc
 1949 #define BNX_DMA_WCHAN_STAT_40                           0x00000cd0
 1950 #define BNX_DMA_WCHAN_STAT_41                           0x00000cd4
 1951 #define BNX_DMA_WCHAN_STAT_42                           0x00000cd8
 1952 #define BNX_DMA_WCHAN_STAT_50                           0x00000cdc
 1953 #define BNX_DMA_WCHAN_STAT_51                           0x00000ce0
 1954 #define BNX_DMA_WCHAN_STAT_52                           0x00000ce4
 1955 #define BNX_DMA_WCHAN_STAT_60                           0x00000ce8
 1956 #define BNX_DMA_WCHAN_STAT_61                           0x00000cec
 1957 #define BNX_DMA_WCHAN_STAT_62                           0x00000cf0
 1958 #define BNX_DMA_WCHAN_STAT_70                           0x00000cf4
 1959 #define BNX_DMA_WCHAN_STAT_71                           0x00000cf8
 1960 #define BNX_DMA_WCHAN_STAT_72                           0x00000cfc
 1961 #define BNX_DMA_ARB_STAT_00                             0x00000d00
 1962 #define BNX_DMA_ARB_STAT_00_MASTER                       (0xffffL<<0)
 1963 #define BNX_DMA_ARB_STAT_00_MASTER_ENC                   (0xffL<<16)
 1964 #define BNX_DMA_ARB_STAT_00_CUR_BINMSTR          (0xffL<<24)
 1965 
 1966 #define BNX_DMA_ARB_STAT_01                             0x00000d04
 1967 #define BNX_DMA_ARB_STAT_01_LPR_RPTR                     (0xfL<<0)
 1968 #define BNX_DMA_ARB_STAT_01_LPR_WPTR                     (0xfL<<4)
 1969 #define BNX_DMA_ARB_STAT_01_LPB_RPTR                     (0xfL<<8)
 1970 #define BNX_DMA_ARB_STAT_01_LPB_WPTR                     (0xfL<<12)
 1971 #define BNX_DMA_ARB_STAT_01_HPR_RPTR                     (0xfL<<16)
 1972 #define BNX_DMA_ARB_STAT_01_HPR_WPTR                     (0xfL<<20)
 1973 #define BNX_DMA_ARB_STAT_01_HPB_RPTR                     (0xfL<<24)
 1974 #define BNX_DMA_ARB_STAT_01_HPB_WPTR                     (0xfL<<28)
 1975 
 1976 #define BNX_DMA_FUSE_CTRL0_CMD                          0x00000f00
 1977 #define BNX_DMA_FUSE_CTRL0_CMD_PWRUP_DONE                (1L<<0)
 1978 #define BNX_DMA_FUSE_CTRL0_CMD_SHIFT_DONE                (1L<<1)
 1979 #define BNX_DMA_FUSE_CTRL0_CMD_SHIFT                     (1L<<2)
 1980 #define BNX_DMA_FUSE_CTRL0_CMD_LOAD                      (1L<<3)
 1981 #define BNX_DMA_FUSE_CTRL0_CMD_SEL                       (0xfL<<8)
 1982 
 1983 #define BNX_DMA_FUSE_CTRL0_DATA                 0x00000f04
 1984 #define BNX_DMA_FUSE_CTRL1_CMD                          0x00000f08
 1985 #define BNX_DMA_FUSE_CTRL1_CMD_PWRUP_DONE                (1L<<0)
 1986 #define BNX_DMA_FUSE_CTRL1_CMD_SHIFT_DONE                (1L<<1)
 1987 #define BNX_DMA_FUSE_CTRL1_CMD_SHIFT                     (1L<<2)
 1988 #define BNX_DMA_FUSE_CTRL1_CMD_LOAD                      (1L<<3)
 1989 #define BNX_DMA_FUSE_CTRL1_CMD_SEL                       (0xfL<<8)
 1990 
 1991 #define BNX_DMA_FUSE_CTRL1_DATA                 0x00000f0c
 1992 #define BNX_DMA_FUSE_CTRL2_CMD                          0x00000f10
 1993 #define BNX_DMA_FUSE_CTRL2_CMD_PWRUP_DONE                (1L<<0)
 1994 #define BNX_DMA_FUSE_CTRL2_CMD_SHIFT_DONE                (1L<<1)
 1995 #define BNX_DMA_FUSE_CTRL2_CMD_SHIFT                     (1L<<2)
 1996 #define BNX_DMA_FUSE_CTRL2_CMD_LOAD                      (1L<<3)
 1997 #define BNX_DMA_FUSE_CTRL2_CMD_SEL                       (0xfL<<8)
 1998 
 1999 #define BNX_DMA_FUSE_CTRL2_DATA                 0x00000f14
 2000 
 2001 
 2002 /*
 2003  *  context_reg definition
 2004  *  offset: 0x1000
 2005  */
 2006 #define BNX_CTX_COMMAND                         0x00001000
 2007 #define BNX_CTX_COMMAND_ENABLED                  (1L<<0)
 2008 
 2009 #define BNX_CTX_STATUS                                  0x00001004
 2010 #define BNX_CTX_STATUS_LOCK_WAIT                         (1L<<0)
 2011 #define BNX_CTX_STATUS_READ_STAT                         (1L<<16)
 2012 #define BNX_CTX_STATUS_WRITE_STAT                        (1L<<17)
 2013 #define BNX_CTX_STATUS_ACC_STALL_STAT                    (1L<<18)
 2014 #define BNX_CTX_STATUS_LOCK_STALL_STAT                   (1L<<19)
 2015 
 2016 #define BNX_CTX_VIRT_ADDR                               0x00001008
 2017 #define BNX_CTX_VIRT_ADDR_VIRT_ADDR                      (0x7fffL<<6)
 2018 
 2019 #define BNX_CTX_PAGE_TBL                                0x0000100c
 2020 #define BNX_CTX_PAGE_TBL_PAGE_TBL                        (0x3fffL<<6)
 2021 
 2022 #define BNX_CTX_DATA_ADR                                0x00001010
 2023 #define BNX_CTX_DATA_ADR_DATA_ADR                        (0x7ffffL<<2)
 2024 
 2025 #define BNX_CTX_DATA                                    0x00001014
 2026 #define BNX_CTX_LOCK                                    0x00001018
 2027 #define BNX_CTX_LOCK_TYPE                                (0x7L<<0)
 2028 #define BNX_CTX_LOCK_TYPE_LOCK_TYPE_VOID                 (0x0L<<0)
 2029 #define BNX_CTX_LOCK_TYPE_LOCK_TYPE_COMPLETE             (0x7L<<0)
 2030 #define BNX_CTX_LOCK_TYPE_LOCK_TYPE_PROTOCOL             (0x1L<<0)
 2031 #define BNX_CTX_LOCK_TYPE_LOCK_TYPE_TX                   (0x2L<<0)
 2032 #define BNX_CTX_LOCK_TYPE_LOCK_TYPE_TIMER                (0x4L<<0)
 2033 #define BNX_CTX_LOCK_CID_VALUE                           (0x3fffL<<7)
 2034 #define BNX_CTX_LOCK_GRANTED                             (1L<<26)
 2035 #define BNX_CTX_LOCK_MODE                                (0x7L<<27)
 2036 #define BNX_CTX_LOCK_MODE_UNLOCK                         (0x0L<<27)
 2037 #define BNX_CTX_LOCK_MODE_IMMEDIATE                      (0x1L<<27)
 2038 #define BNX_CTX_LOCK_MODE_SURE                           (0x2L<<27)
 2039 #define BNX_CTX_LOCK_STATUS                              (1L<<30)
 2040 #define BNX_CTX_LOCK_REQ                                 (1L<<31)
 2041 
 2042 #define BNX_CTX_ACCESS_STATUS                           0x00001040
 2043 #define BNX_CTX_ACCESS_STATUS_MASTERENCODED              (0xfL<<0)
 2044 #define BNX_CTX_ACCESS_STATUS_ACCESSMEMORYSM             (0x3L<<10)
 2045 #define BNX_CTX_ACCESS_STATUS_PAGETABLEINITSM            (0x3L<<12)
 2046 #define BNX_CTX_ACCESS_STATUS_ACCESSMEMORYINITSM         (0x3L<<14)
 2047 #define BNX_CTX_ACCESS_STATUS_QUALIFIED_REQUEST  (0x7ffL<<17)
 2048 
 2049 #define BNX_CTX_DBG_LOCK_STATUS                 0x00001044
 2050 #define BNX_CTX_DBG_LOCK_STATUS_SM                       (0x3ffL<<0)
 2051 #define BNX_CTX_DBG_LOCK_STATUS_MATCH                    (0x3ffL<<22)
 2052 
 2053 #define BNX_CTX_CHNL_LOCK_STATUS_0                      0x00001080
 2054 #define BNX_CTX_CHNL_LOCK_STATUS_0_CID                   (0x3fffL<<0)
 2055 #define BNX_CTX_CHNL_LOCK_STATUS_0_TYPE          (0x3L<<14)
 2056 #define BNX_CTX_CHNL_LOCK_STATUS_0_MODE          (1L<<16)
 2057 
 2058 #define BNX_CTX_CHNL_LOCK_STATUS_1                      0x00001084
 2059 #define BNX_CTX_CHNL_LOCK_STATUS_2                      0x00001088
 2060 #define BNX_CTX_CHNL_LOCK_STATUS_3                      0x0000108c
 2061 #define BNX_CTX_CHNL_LOCK_STATUS_4                      0x00001090
 2062 #define BNX_CTX_CHNL_LOCK_STATUS_5                      0x00001094
 2063 #define BNX_CTX_CHNL_LOCK_STATUS_6                      0x00001098
 2064 #define BNX_CTX_CHNL_LOCK_STATUS_7                      0x0000109c
 2065 #define BNX_CTX_CHNL_LOCK_STATUS_8                      0x000010a0
 2066 
 2067 
 2068 /*
 2069  *  emac_reg definition
 2070  *  offset: 0x1400
 2071  */
 2072 #define BNX_EMAC_MODE                                   0x00001400
 2073 #define BNX_EMAC_MODE_RESET                              (1L<<0)
 2074 #define BNX_EMAC_MODE_HALF_DUPLEX                        (1L<<1)
 2075 #define BNX_EMAC_MODE_PORT                               (0x3L<<2)
 2076 #define BNX_EMAC_MODE_PORT_NONE                  (0L<<2)
 2077 #define BNX_EMAC_MODE_PORT_MII                           (1L<<2)
 2078 #define BNX_EMAC_MODE_PORT_GMII                  (2L<<2)
 2079 #define BNX_EMAC_MODE_PORT_MII_10                        (3L<<2)
 2080 #define BNX_EMAC_MODE_MAC_LOOP                           (1L<<4)
 2081 #define BNX_EMAC_MODE_25G                                (1L<<5)
 2082 #define BNX_EMAC_MODE_TAGGED_MAC_CTL                     (1L<<7)
 2083 #define BNX_EMAC_MODE_TX_BURST                           (1L<<8)
 2084 #define BNX_EMAC_MODE_MAX_DEFER_DROP_ENA                 (1L<<9)
 2085 #define BNX_EMAC_MODE_EXT_LINK_POL                       (1L<<10)
 2086 #define BNX_EMAC_MODE_FORCE_LINK                         (1L<<11)
 2087 #define BNX_EMAC_MODE_MPKT                               (1L<<18)
 2088 #define BNX_EMAC_MODE_MPKT_RCVD                  (1L<<19)
 2089 #define BNX_EMAC_MODE_ACPI_RCVD                  (1L<<20)
 2090 
 2091 #define BNX_EMAC_STATUS                         0x00001404
 2092 #define BNX_EMAC_STATUS_LINK                             (1L<<11)
 2093 #define BNX_EMAC_STATUS_LINK_CHANGE                      (1L<<12)
 2094 #define BNX_EMAC_STATUS_MI_COMPLETE                      (1L<<22)
 2095 #define BNX_EMAC_STATUS_MI_INT                           (1L<<23)
 2096 #define BNX_EMAC_STATUS_AP_ERROR                         (1L<<24)
 2097 #define BNX_EMAC_STATUS_PARITY_ERROR_STATE               (1L<<31)
 2098 
 2099 #define BNX_EMAC_ATTENTION_ENA                          0x00001408
 2100 #define BNX_EMAC_ATTENTION_ENA_LINK                      (1L<<11)
 2101 #define BNX_EMAC_ATTENTION_ENA_MI_COMPLETE               (1L<<22)
 2102 #define BNX_EMAC_ATTENTION_ENA_MI_INT                    (1L<<23)
 2103 #define BNX_EMAC_ATTENTION_ENA_AP_ERROR          (1L<<24)
 2104 
 2105 #define BNX_EMAC_LED                                    0x0000140c
 2106 #define BNX_EMAC_LED_OVERRIDE                            (1L<<0)
 2107 #define BNX_EMAC_LED_1000MB_OVERRIDE                     (1L<<1)
 2108 #define BNX_EMAC_LED_100MB_OVERRIDE                      (1L<<2)
 2109 #define BNX_EMAC_LED_10MB_OVERRIDE                       (1L<<3)
 2110 #define BNX_EMAC_LED_TRAFFIC_OVERRIDE                    (1L<<4)
 2111 #define BNX_EMAC_LED_BLNK_TRAFFIC                        (1L<<5)
 2112 #define BNX_EMAC_LED_TRAFFIC                             (1L<<6)
 2113 #define BNX_EMAC_LED_1000MB                              (1L<<7)
 2114 #define BNX_EMAC_LED_100MB                               (1L<<8)
 2115 #define BNX_EMAC_LED_10MB                                (1L<<9)
 2116 #define BNX_EMAC_LED_TRAFFIC_STAT                        (1L<<10)
 2117 #define BNX_EMAC_LED_BLNK_RATE                           (0xfffL<<19)
 2118 #define BNX_EMAC_LED_BLNK_RATE_ENA                       (1L<<31)
 2119 
 2120 #define BNX_EMAC_MAC_MATCH0                             0x00001410
 2121 #define BNX_EMAC_MAC_MATCH1                             0x00001414
 2122 #define BNX_EMAC_MAC_MATCH2                             0x00001418
 2123 #define BNX_EMAC_MAC_MATCH3                             0x0000141c
 2124 #define BNX_EMAC_MAC_MATCH4                             0x00001420
 2125 #define BNX_EMAC_MAC_MATCH5                             0x00001424
 2126 #define BNX_EMAC_MAC_MATCH6                             0x00001428
 2127 #define BNX_EMAC_MAC_MATCH7                             0x0000142c
 2128 #define BNX_EMAC_MAC_MATCH8                             0x00001430
 2129 #define BNX_EMAC_MAC_MATCH9                             0x00001434
 2130 #define BNX_EMAC_MAC_MATCH10                            0x00001438
 2131 #define BNX_EMAC_MAC_MATCH11                            0x0000143c
 2132 #define BNX_EMAC_MAC_MATCH12                            0x00001440
 2133 #define BNX_EMAC_MAC_MATCH13                            0x00001444
 2134 #define BNX_EMAC_MAC_MATCH14                            0x00001448
 2135 #define BNX_EMAC_MAC_MATCH15                            0x0000144c
 2136 #define BNX_EMAC_MAC_MATCH16                            0x00001450
 2137 #define BNX_EMAC_MAC_MATCH17                            0x00001454
 2138 #define BNX_EMAC_MAC_MATCH18                            0x00001458
 2139 #define BNX_EMAC_MAC_MATCH19                            0x0000145c
 2140 #define BNX_EMAC_MAC_MATCH20                            0x00001460
 2141 #define BNX_EMAC_MAC_MATCH21                            0x00001464
 2142 #define BNX_EMAC_MAC_MATCH22                            0x00001468
 2143 #define BNX_EMAC_MAC_MATCH23                            0x0000146c
 2144 #define BNX_EMAC_MAC_MATCH24                            0x00001470
 2145 #define BNX_EMAC_MAC_MATCH25                            0x00001474
 2146 #define BNX_EMAC_MAC_MATCH26                            0x00001478
 2147 #define BNX_EMAC_MAC_MATCH27                            0x0000147c
 2148 #define BNX_EMAC_MAC_MATCH28                            0x00001480
 2149 #define BNX_EMAC_MAC_MATCH29                            0x00001484
 2150 #define BNX_EMAC_MAC_MATCH30                            0x00001488
 2151 #define BNX_EMAC_MAC_MATCH31                            0x0000148c
 2152 #define BNX_EMAC_BACKOFF_SEED                           0x00001498
 2153 #define BNX_EMAC_BACKOFF_SEED_EMAC_BACKOFF_SEED  (0x3ffL<<0)
 2154 
 2155 #define BNX_EMAC_RX_MTU_SIZE                            0x0000149c
 2156 #define BNX_EMAC_RX_MTU_SIZE_MTU_SIZE                    (0xffffL<<0)
 2157 #define BNX_EMAC_RX_MTU_SIZE_JUMBO_ENA                   (1L<<31)
 2158 
 2159 #define BNX_EMAC_SERDES_CNTL                            0x000014a4
 2160 #define BNX_EMAC_SERDES_CNTL_RXR                         (0x7L<<0)
 2161 #define BNX_EMAC_SERDES_CNTL_RXG                         (0x3L<<3)
 2162 #define BNX_EMAC_SERDES_CNTL_RXCKSEL                     (1L<<6)
 2163 #define BNX_EMAC_SERDES_CNTL_TXBIAS                      (0x7L<<7)
 2164 #define BNX_EMAC_SERDES_CNTL_BGMAX                       (1L<<10)
 2165 #define BNX_EMAC_SERDES_CNTL_BGMIN                       (1L<<11)
 2166 #define BNX_EMAC_SERDES_CNTL_TXMODE                      (1L<<12)
 2167 #define BNX_EMAC_SERDES_CNTL_TXEDGE                      (1L<<13)
 2168 #define BNX_EMAC_SERDES_CNTL_SERDES_MODE                 (1L<<14)
 2169 #define BNX_EMAC_SERDES_CNTL_PLLTEST                     (1L<<15)
 2170 #define BNX_EMAC_SERDES_CNTL_CDET_EN                     (1L<<16)
 2171 #define BNX_EMAC_SERDES_CNTL_TBI_LBK                     (1L<<17)
 2172 #define BNX_EMAC_SERDES_CNTL_REMOTE_LBK          (1L<<18)
 2173 #define BNX_EMAC_SERDES_CNTL_REV_PHASE                   (1L<<19)
 2174 #define BNX_EMAC_SERDES_CNTL_REGCTL12                    (0x3L<<20)
 2175 #define BNX_EMAC_SERDES_CNTL_REGCTL25                    (0x3L<<22)
 2176 
 2177 #define BNX_EMAC_SERDES_STATUS                          0x000014a8
 2178 #define BNX_EMAC_SERDES_STATUS_RX_STAT                   (0xffL<<0)
 2179 #define BNX_EMAC_SERDES_STATUS_COMMA_DET                 (1L<<8)
 2180 
 2181 #define BNX_EMAC_MDIO_COMM                              0x000014ac
 2182 #define BNX_EMAC_MDIO_COMM_DATA                  (0xffffL<<0)
 2183 #define BNX_EMAC_MDIO_COMM_REG_ADDR                      (0x1fL<<16)
 2184 #define BNX_EMAC_MDIO_COMM_PHY_ADDR                      (0x1fL<<21)
 2185 #define BNX_EMAC_MDIO_COMM_COMMAND                       (0x3L<<26)
 2186 #define BNX_EMAC_MDIO_COMM_COMMAND_UNDEFINED_0           (0L<<26)
 2187 #define BNX_EMAC_MDIO_COMM_COMMAND_WRITE                 (1L<<26)
 2188 #define BNX_EMAC_MDIO_COMM_COMMAND_READ          (2L<<26)
 2189 #define BNX_EMAC_MDIO_COMM_COMMAND_UNDEFINED_3           (3L<<26)
 2190 #define BNX_EMAC_MDIO_COMM_FAIL                  (1L<<28)
 2191 #define BNX_EMAC_MDIO_COMM_START_BUSY                    (1L<<29)
 2192 #define BNX_EMAC_MDIO_COMM_DISEXT                        (1L<<30)
 2193 
 2194 #define BNX_EMAC_MDIO_STATUS                            0x000014b0
 2195 #define BNX_EMAC_MDIO_STATUS_LINK                        (1L<<0)
 2196 #define BNX_EMAC_MDIO_STATUS_10MB                        (1L<<1)
 2197 
 2198 #define BNX_EMAC_MDIO_MODE                              0x000014b4
 2199 #define BNX_EMAC_MDIO_MODE_SHORT_PREAMBLE                (1L<<1)
 2200 #define BNX_EMAC_MDIO_MODE_AUTO_POLL                     (1L<<4)
 2201 #define BNX_EMAC_MDIO_MODE_BIT_BANG                      (1L<<8)
 2202 #define BNX_EMAC_MDIO_MODE_MDIO                  (1L<<9)
 2203 #define BNX_EMAC_MDIO_MODE_MDIO_OE                       (1L<<10)
 2204 #define BNX_EMAC_MDIO_MODE_MDC                           (1L<<11)
 2205 #define BNX_EMAC_MDIO_MODE_MDINT                         (1L<<12)
 2206 #define BNX_EMAC_MDIO_MODE_CLOCK_CNT                     (0x1fL<<16)
 2207 
 2208 #define BNX_EMAC_MDIO_AUTO_STATUS                       0x000014b8
 2209 #define BNX_EMAC_MDIO_AUTO_STATUS_AUTO_ERR               (1L<<0)
 2210 
 2211 #define BNX_EMAC_TX_MODE                                0x000014bc
 2212 #define BNX_EMAC_TX_MODE_RESET                           (1L<<0)
 2213 #define BNX_EMAC_TX_MODE_EXT_PAUSE_EN                    (1L<<3)
 2214 #define BNX_EMAC_TX_MODE_FLOW_EN                         (1L<<4)
 2215 #define BNX_EMAC_TX_MODE_BIG_BACKOFF                     (1L<<5)
 2216 #define BNX_EMAC_TX_MODE_LONG_PAUSE                      (1L<<6)
 2217 #define BNX_EMAC_TX_MODE_LINK_AWARE                      (1L<<7)
 2218 
 2219 #define BNX_EMAC_TX_STATUS                              0x000014c0
 2220 #define BNX_EMAC_TX_STATUS_XOFFED                        (1L<<0)
 2221 #define BNX_EMAC_TX_STATUS_XOFF_SENT                     (1L<<1)
 2222 #define BNX_EMAC_TX_STATUS_XON_SENT                      (1L<<2)
 2223 #define BNX_EMAC_TX_STATUS_LINK_UP                       (1L<<3)
 2224 #define BNX_EMAC_TX_STATUS_UNDERRUN                      (1L<<4)
 2225 
 2226 #define BNX_EMAC_TX_LENGTHS                             0x000014c4
 2227 #define BNX_EMAC_TX_LENGTHS_SLOT                         (0xffL<<0)
 2228 #define BNX_EMAC_TX_LENGTHS_IPG                  (0xfL<<8)
 2229 #define BNX_EMAC_TX_LENGTHS_IPG_CRS                      (0x3L<<12)
 2230 
 2231 #define BNX_EMAC_RX_MODE                                0x000014c8
 2232 #define BNX_EMAC_RX_MODE_RESET                           (1L<<0)
 2233 #define BNX_EMAC_RX_MODE_FLOW_EN                         (1L<<2)
 2234 #define BNX_EMAC_RX_MODE_KEEP_MAC_CONTROL                (1L<<3)
 2235 #define BNX_EMAC_RX_MODE_KEEP_PAUSE                      (1L<<4)
 2236 #define BNX_EMAC_RX_MODE_ACCEPT_OVERSIZE                 (1L<<5)
 2237 #define BNX_EMAC_RX_MODE_ACCEPT_RUNTS                    (1L<<6)
 2238 #define BNX_EMAC_RX_MODE_LLC_CHK                         (1L<<7)
 2239 #define BNX_EMAC_RX_MODE_PROMISCUOUS                     (1L<<8)
 2240 #define BNX_EMAC_RX_MODE_NO_CRC_CHK                      (1L<<9)
 2241 #define BNX_EMAC_RX_MODE_KEEP_VLAN_TAG                   (1L<<10)
 2242 #define BNX_EMAC_RX_MODE_FILT_BROADCAST          (1L<<11)
 2243 #define BNX_EMAC_RX_MODE_SORT_MODE                       (1L<<12)
 2244 
 2245 #define BNX_EMAC_RX_STATUS                              0x000014cc
 2246 #define BNX_EMAC_RX_STATUS_FFED                  (1L<<0)
 2247 #define BNX_EMAC_RX_STATUS_FF_RECEIVED                   (1L<<1)
 2248 #define BNX_EMAC_RX_STATUS_N_RECEIVED                    (1L<<2)
 2249 
 2250 #define BNX_EMAC_MULTICAST_HASH0                        0x000014d0
 2251 #define BNX_EMAC_MULTICAST_HASH1                        0x000014d4
 2252 #define BNX_EMAC_MULTICAST_HASH2                        0x000014d8
 2253 #define BNX_EMAC_MULTICAST_HASH3                        0x000014dc
 2254 #define BNX_EMAC_MULTICAST_HASH4                        0x000014e0
 2255 #define BNX_EMAC_MULTICAST_HASH5                        0x000014e4
 2256 #define BNX_EMAC_MULTICAST_HASH6                        0x000014e8
 2257 #define BNX_EMAC_MULTICAST_HASH7                        0x000014ec
 2258 #define BNX_EMAC_RX_STAT_IFHCINOCTETS                   0x00001500
 2259 #define BNX_EMAC_RX_STAT_IFHCINBADOCTETS                0x00001504
 2260 #define BNX_EMAC_RX_STAT_ETHERSTATSFRAGMENTS            0x00001508
 2261 #define BNX_EMAC_RX_STAT_IFHCINUCASTPKTS                0x0000150c
 2262 #define BNX_EMAC_RX_STAT_IFHCINMULTICASTPKTS            0x00001510
 2263 #define BNX_EMAC_RX_STAT_IFHCINBROADCASTPKTS            0x00001514
 2264 #define BNX_EMAC_RX_STAT_DOT3STATSFCSERRORS             0x00001518
 2265 #define BNX_EMAC_RX_STAT_DOT3STATSALIGNMENTERRORS       0x0000151c
 2266 #define BNX_EMAC_RX_STAT_DOT3STATSCARRIERSENSEERRORS    0x00001520
 2267 #define BNX_EMAC_RX_STAT_XONPAUSEFRAMESRECEIVED 0x00001524
 2268 #define BNX_EMAC_RX_STAT_XOFFPAUSEFRAMESRECEIVED        0x00001528
 2269 #define BNX_EMAC_RX_STAT_MACCONTROLFRAMESRECEIVED       0x0000152c
 2270 #define BNX_EMAC_RX_STAT_XOFFSTATEENTERED               0x00001530
 2271 #define BNX_EMAC_RX_STAT_DOT3STATSFRAMESTOOLONG 0x00001534
 2272 #define BNX_EMAC_RX_STAT_ETHERSTATSJABBERS              0x00001538
 2273 #define BNX_EMAC_RX_STAT_ETHERSTATSUNDERSIZEPKTS        0x0000153c
 2274 #define BNX_EMAC_RX_STAT_ETHERSTATSPKTS64OCTETS 0x00001540
 2275 #define BNX_EMAC_RX_STAT_ETHERSTATSPKTS65OCTETSTO127OCTETS      0x00001544
 2276 #define BNX_EMAC_RX_STAT_ETHERSTATSPKTS128OCTETSTO255OCTETS     0x00001548
 2277 #define BNX_EMAC_RX_STAT_ETHERSTATSPKTS256OCTETSTO511OCTETS     0x0000154c
 2278 #define BNX_EMAC_RX_STAT_ETHERSTATSPKTS512OCTETSTO1023OCTETS    0x00001550
 2279 #define BNX_EMAC_RX_STAT_ETHERSTATSPKTS1024OCTETSTO1522OCTETS   0x00001554
 2280 #define BNX_EMAC_RX_STAT_ETHERSTATSPKTS1523OCTETSTO9022OCTETS   0x00001558
 2281 #define BNX_EMAC_RXMAC_DEBUG0                           0x0000155c
 2282 #define BNX_EMAC_RXMAC_DEBUG1                           0x00001560
 2283 #define BNX_EMAC_RXMAC_DEBUG1_LENGTH_NE_BYTE_COUNT       (1L<<0)
 2284 #define BNX_EMAC_RXMAC_DEBUG1_LENGTH_OUT_RANGE           (1L<<1)
 2285 #define BNX_EMAC_RXMAC_DEBUG1_BAD_CRC                    (1L<<2)
 2286 #define BNX_EMAC_RXMAC_DEBUG1_RX_ERROR                   (1L<<3)
 2287 #define BNX_EMAC_RXMAC_DEBUG1_ALIGN_ERROR                (1L<<4)
 2288 #define BNX_EMAC_RXMAC_DEBUG1_LAST_DATA          (1L<<5)
 2289 #define BNX_EMAC_RXMAC_DEBUG1_ODD_BYTE_START             (1L<<6)
 2290 #define BNX_EMAC_RXMAC_DEBUG1_BYTE_COUNT                 (0xffffL<<7)
 2291 #define BNX_EMAC_RXMAC_DEBUG1_SLOT_TIME          (0xffL<<23)
 2292 
 2293 #define BNX_EMAC_RXMAC_DEBUG2                           0x00001564
 2294 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE                   (0x7L<<0)
 2295 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_IDLE              (0x0L<<0)
 2296 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_SFD               (0x1L<<0)
 2297 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_DATA              (0x2L<<0)
 2298 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_SKEEP             (0x3L<<0)
 2299 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_EXT               (0x4L<<0)
 2300 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_DROP              (0x5L<<0)
 2301 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_SDROP             (0x6L<<0)
 2302 #define BNX_EMAC_RXMAC_DEBUG2_SM_STATE_FC                (0x7L<<0)
 2303 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE          (0xfL<<3)
 2304 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_IDLE             (0x0L<<3)
 2305 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA0            (0x1L<<3)
 2306 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA1            (0x2L<<3)
 2307 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA2            (0x3L<<3)
 2308 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA3            (0x4L<<3)
 2309 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_ABORT            (0x5L<<3)
 2310 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_WAIT             (0x6L<<3)
 2311 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_STATUS           (0x7L<<3)
 2312 #define BNX_EMAC_RXMAC_DEBUG2_IDI_STATE_LAST             (0x8L<<3)
 2313 #define BNX_EMAC_RXMAC_DEBUG2_BYTE_IN                    (0xffL<<7)
 2314 #define BNX_EMAC_RXMAC_DEBUG2_FALSEC                     (1L<<15)
 2315 #define BNX_EMAC_RXMAC_DEBUG2_TAGGED                     (1L<<16)
 2316 #define BNX_EMAC_RXMAC_DEBUG2_PAUSE_STATE                (1L<<18)
 2317 #define BNX_EMAC_RXMAC_DEBUG2_PAUSE_STATE_IDLE           (0L<<18)
 2318 #define BNX_EMAC_RXMAC_DEBUG2_PAUSE_STATE_PAUSED         (1L<<18)
 2319 #define BNX_EMAC_RXMAC_DEBUG2_SE_COUNTER                 (0xfL<<19)
 2320 #define BNX_EMAC_RXMAC_DEBUG2_QUANTA                     (0x1fL<<23)
 2321 
 2322 #define BNX_EMAC_RXMAC_DEBUG3                           0x00001568
 2323 #define BNX_EMAC_RXMAC_DEBUG3_PAUSE_CTR          (0xffffL<<0)
 2324 #define BNX_EMAC_RXMAC_DEBUG3_TMP_PAUSE_CTR              (0xffffL<<16)
 2325 
 2326 #define BNX_EMAC_RXMAC_DEBUG4                           0x0000156c
 2327 #define BNX_EMAC_RXMAC_DEBUG4_TYPE_FIELD                 (0xffffL<<0)
 2328 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE                 (0x3fL<<16)
 2329 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_IDLE            (0x0L<<16)
 2330 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_UMAC2           (0x1L<<16)
 2331 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_UMAC3           (0x2L<<16)
 2332 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_UNI             (0x3L<<16)
 2333 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MMAC2           (0x7L<<16)
 2334 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MMAC3           (0x5L<<16)
 2335 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA1            (0x6L<<16)
 2336 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA2            (0x7L<<16)
 2337 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA3            (0x8L<<16)
 2338 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MC2             (0x9L<<16)
 2339 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MC3             (0xaL<<16)
 2340 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MWAIT1  (0xeL<<16)
 2341 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MWAIT2  (0xfL<<16)
 2342 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MCHECK  (0x10L<<16)
 2343 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MC              (0x11L<<16)
 2344 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_BC2             (0x12L<<16)
 2345 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_BC3             (0x13L<<16)
 2346 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA1            (0x14L<<16)
 2347 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA2            (0x15L<<16)
 2348 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA3            (0x16L<<16)
 2349 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_BTYPE           (0x17L<<16)
 2350 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_BC              (0x18L<<16)
 2351 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_PTYPE           (0x19L<<16)
 2352 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_CMD             (0x1aL<<16)
 2353 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MAC             (0x1bL<<16)
 2354 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_LATCH           (0x1cL<<16)
 2355 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_XOFF            (0x1dL<<16)
 2356 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_XON             (0x1eL<<16)
 2357 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_PAUSED  (0x1fL<<16)
 2358 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_NPAUSED         (0x20L<<16)
 2359 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_TTYPE           (0x21L<<16)
 2360 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_TVAL            (0x22L<<16)
 2361 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_USA1            (0x23L<<16)
 2362 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_USA2            (0x24L<<16)
 2363 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_USA3            (0x25L<<16)
 2364 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_UTYPE           (0x26L<<16)
 2365 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_UTTYPE  (0x27L<<16)
 2366 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_UTVAL           (0x28L<<16)
 2367 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_MTYPE           (0x29L<<16)
 2368 #define BNX_EMAC_RXMAC_DEBUG4_FILT_STATE_DROP            (0x2aL<<16)
 2369 #define BNX_EMAC_RXMAC_DEBUG4_DROP_PKT                   (1L<<22)
 2370 #define BNX_EMAC_RXMAC_DEBUG4_SLOT_FILLED                (1L<<23)
 2371 #define BNX_EMAC_RXMAC_DEBUG4_FALSE_CARRIER              (1L<<24)
 2372 #define BNX_EMAC_RXMAC_DEBUG4_LAST_DATA          (1L<<25)
 2373 #define BNX_EMAC_RXMAC_DEBUG4_sfd_FOUND          (1L<<26)
 2374 #define BNX_EMAC_RXMAC_DEBUG4_ADVANCE                    (1L<<27)
 2375 #define BNX_EMAC_RXMAC_DEBUG4_START                      (1L<<28)
 2376 
 2377 #define BNX_EMAC_RXMAC_DEBUG5                           0x00001570
 2378 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM                   (0x7L<<0)
 2379 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM_IDLE              (0L<<0)
 2380 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM_WAIT_EOF  (1L<<0)
 2381 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM_WAIT_STAT         (2L<<0)
 2382 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4FCRC      (3L<<0)
 2383 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4RDE       (4L<<0)
 2384 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4ALL       (5L<<0)
 2385 #define BNX_EMAC_RXMAC_DEBUG5_PS_IDISM_1WD_WAIT_STAT     (6L<<0)
 2386 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1                 (0x7L<<4)
 2387 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1_VDW             (0x0L<<4)
 2388 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1_STAT            (0x1L<<4)
 2389 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1_AEOF            (0x2L<<4)
 2390 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1_NEOF            (0x3L<<4)
 2391 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SOF             (0x4L<<4)
 2392 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SAEOF           (0x6L<<4)
 2393 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SNEOF           (0x7L<<4)
 2394 #define BNX_EMAC_RXMAC_DEBUG5_EOF_DETECTED               (1L<<7)
 2395 #define BNX_EMAC_RXMAC_DEBUG5_CCODE_BUF0                 (0x7L<<8)
 2396 #define BNX_EMAC_RXMAC_DEBUG5_RPM_IDI_FIFO_FULL  (1L<<11)
 2397 #define BNX_EMAC_RXMAC_DEBUG5_LOAD_CCODE                 (1L<<12)
 2398 #define BNX_EMAC_RXMAC_DEBUG5_LOAD_DATA          (1L<<13)
 2399 #define BNX_EMAC_RXMAC_DEBUG5_LOAD_STAT          (1L<<14)
 2400 #define BNX_EMAC_RXMAC_DEBUG5_CLR_STAT                   (1L<<15)
 2401 #define BNX_EMAC_RXMAC_DEBUG5_IDI_RPM_CCODE              (0x3L<<16)
 2402 #define BNX_EMAC_RXMAC_DEBUG5_IDI_RPM_ACCEPT             (1L<<19)
 2403 #define BNX_EMAC_RXMAC_DEBUG5_FMLEN                      (0xfffL<<20)
 2404 
 2405 #define BNX_EMAC_RX_STAT_AC0                            0x00001580
 2406 #define BNX_EMAC_RX_STAT_AC1                            0x00001584
 2407 #define BNX_EMAC_RX_STAT_AC2                            0x00001588
 2408 #define BNX_EMAC_RX_STAT_AC3                            0x0000158c
 2409 #define BNX_EMAC_RX_STAT_AC4                            0x00001590
 2410 #define BNX_EMAC_RX_STAT_AC5                            0x00001594
 2411 #define BNX_EMAC_RX_STAT_AC6                            0x00001598
 2412 #define BNX_EMAC_RX_STAT_AC7                            0x0000159c
 2413 #define BNX_EMAC_RX_STAT_AC8                            0x000015a0
 2414 #define BNX_EMAC_RX_STAT_AC9                            0x000015a4
 2415 #define BNX_EMAC_RX_STAT_AC10                           0x000015a8
 2416 #define BNX_EMAC_RX_STAT_AC11                           0x000015ac
 2417 #define BNX_EMAC_RX_STAT_AC12                           0x000015b0
 2418 #define BNX_EMAC_RX_STAT_AC13                           0x000015b4
 2419 #define BNX_EMAC_RX_STAT_AC14                           0x000015b8
 2420 #define BNX_EMAC_RX_STAT_AC15                           0x000015bc
 2421 #define BNX_EMAC_RX_STAT_AC16                           0x000015c0
 2422 #define BNX_EMAC_RX_STAT_AC17                           0x000015c4
 2423 #define BNX_EMAC_RX_STAT_AC18                           0x000015c8
 2424 #define BNX_EMAC_RX_STAT_AC19                           0x000015cc
 2425 #define BNX_EMAC_RX_STAT_AC20                           0x000015d0
 2426 #define BNX_EMAC_RX_STAT_AC21                           0x000015d4
 2427 #define BNX_EMAC_RX_STAT_AC22                           0x000015d8
 2428 #define BNX_EMAC_RXMAC_SUC_DBG_OVERRUNVEC               0x000015dc
 2429 #define BNX_EMAC_TX_STAT_IFHCOUTOCTETS                  0x00001600
 2430 #define BNX_EMAC_TX_STAT_IFHCOUTBADOCTETS               0x00001604
 2431 #define BNX_EMAC_TX_STAT_ETHERSTATSCOLLISIONS           0x00001608
 2432 #define BNX_EMAC_TX_STAT_OUTXONSENT                     0x0000160c
 2433 #define BNX_EMAC_TX_STAT_OUTXOFFSENT                    0x00001610
 2434 #define BNX_EMAC_TX_STAT_FLOWCONTROLDONE                0x00001614
 2435 #define BNX_EMAC_TX_STAT_DOT3STATSSINGLECOLLISIONFRAMES 0x00001618
 2436 #define BNX_EMAC_TX_STAT_DOT3STATSMULTIPLECOLLISIONFRAMES       0x0000161c
 2437 #define BNX_EMAC_TX_STAT_DOT3STATSDEFERREDTRANSMISSIONS 0x00001620
 2438 #define BNX_EMAC_TX_STAT_DOT3STATSEXCESSIVECOLLISIONS   0x00001624
 2439 #define BNX_EMAC_TX_STAT_DOT3STATSLATECOLLISIONS        0x00001628
 2440 #define BNX_EMAC_TX_STAT_IFHCOUTUCASTPKTS               0x0000162c
 2441 #define BNX_EMAC_TX_STAT_IFHCOUTMULTICASTPKTS           0x00001630
 2442 #define BNX_EMAC_TX_STAT_IFHCOUTBROADCASTPKTS           0x00001634
 2443 #define BNX_EMAC_TX_STAT_ETHERSTATSPKTS64OCTETS 0x00001638
 2444 #define BNX_EMAC_TX_STAT_ETHERSTATSPKTS65OCTETSTO127OCTETS      0x0000163c
 2445 #define BNX_EMAC_TX_STAT_ETHERSTATSPKTS128OCTETSTO255OCTETS     0x00001640
 2446 #define BNX_EMAC_TX_STAT_ETHERSTATSPKTS256OCTETSTO511OCTETS     0x00001644
 2447 #define BNX_EMAC_TX_STAT_ETHERSTATSPKTS512OCTETSTO1023OCTETS    0x00001648
 2448 #define BNX_EMAC_TX_STAT_ETHERSTATSPKTS1024OCTETSTO1522OCTETS   0x0000164c
 2449 #define BNX_EMAC_TX_STAT_ETHERSTATSPKTS1523OCTETSTO9022OCTETS   0x00001650
 2450 #define BNX_EMAC_TX_STAT_DOT3STATSINTERNALMACTRANSMITERRORS     0x00001654
 2451 #define BNX_EMAC_TXMAC_DEBUG0                           0x00001658
 2452 #define BNX_EMAC_TXMAC_DEBUG1                           0x0000165c
 2453 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE          (0xfL<<0)
 2454 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_IDLE             (0x0L<<0)
 2455 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_START0           (0x1L<<0)
 2456 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA0            (0x4L<<0)
 2457 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA1            (0x5L<<0)
 2458 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA2            (0x6L<<0)
 2459 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA3            (0x7L<<0)
 2460 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_WAIT0            (0x8L<<0)
 2461 #define BNX_EMAC_TXMAC_DEBUG1_ODI_STATE_WAIT1            (0x9L<<0)
 2462 #define BNX_EMAC_TXMAC_DEBUG1_CRS_ENABLE                 (1L<<4)
 2463 #define BNX_EMAC_TXMAC_DEBUG1_BAD_CRC                    (1L<<5)
 2464 #define BNX_EMAC_TXMAC_DEBUG1_SE_COUNTER                 (0xfL<<6)
 2465 #define BNX_EMAC_TXMAC_DEBUG1_SEND_PAUSE                 (1L<<10)
 2466 #define BNX_EMAC_TXMAC_DEBUG1_LATE_COLLISION             (1L<<11)
 2467 #define BNX_EMAC_TXMAC_DEBUG1_MAX_DEFER          (1L<<12)
 2468 #define BNX_EMAC_TXMAC_DEBUG1_DEFERRED                   (1L<<13)
 2469 #define BNX_EMAC_TXMAC_DEBUG1_ONE_BYTE                   (1L<<14)
 2470 #define BNX_EMAC_TXMAC_DEBUG1_IPG_TIME                   (0xfL<<15)
 2471 #define BNX_EMAC_TXMAC_DEBUG1_SLOT_TIME          (0xffL<<19)
 2472 
 2473 #define BNX_EMAC_TXMAC_DEBUG2                           0x00001660
 2474 #define BNX_EMAC_TXMAC_DEBUG2_BACK_OFF                   (0x3ffL<<0)
 2475 #define BNX_EMAC_TXMAC_DEBUG2_BYTE_COUNT                 (0xffffL<<10)
 2476 #define BNX_EMAC_TXMAC_DEBUG2_COL_COUNT          (0x1fL<<26)
 2477 #define BNX_EMAC_TXMAC_DEBUG2_COL_BIT                    (1L<<31)
 2478 
 2479 #define BNX_EMAC_TXMAC_DEBUG3                           0x00001664
 2480 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE                   (0xfL<<0)
 2481 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_IDLE              (0x0L<<0)
 2482 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_PRE1              (0x1L<<0)
 2483 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_PRE2              (0x2L<<0)
 2484 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_SFD               (0x3L<<0)
 2485 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_DATA              (0x4L<<0)
 2486 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_CRC1              (0x5L<<0)
 2487 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_CRC2              (0x6L<<0)
 2488 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_EXT               (0x7L<<0)
 2489 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_STATB             (0x8L<<0)
 2490 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_STATG             (0x9L<<0)
 2491 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_JAM               (0xaL<<0)
 2492 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_EJAM              (0xbL<<0)
 2493 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_BJAM              (0xcL<<0)
 2494 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_SWAIT             (0xdL<<0)
 2495 #define BNX_EMAC_TXMAC_DEBUG3_SM_STATE_BACKOFF           (0xeL<<0)
 2496 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE                 (0x7L<<4)
 2497 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE_IDLE            (0x0L<<4)
 2498 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE_WAIT            (0x1L<<4)
 2499 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE_UNI             (0x2L<<4)
 2500 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE_MC              (0x3L<<4)
 2501 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE_BC2             (0x4L<<4)
 2502 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE_BC3             (0x5L<<4)
 2503 #define BNX_EMAC_TXMAC_DEBUG3_FILT_STATE_BC              (0x6L<<4)
 2504 #define BNX_EMAC_TXMAC_DEBUG3_CRS_DONE                   (1L<<7)
 2505 #define BNX_EMAC_TXMAC_DEBUG3_XOFF                       (1L<<8)
 2506 #define BNX_EMAC_TXMAC_DEBUG3_SE_COUNTER                 (0xfL<<9)
 2507 #define BNX_EMAC_TXMAC_DEBUG3_QUANTA_COUNTER             (0x1fL<<13)
 2508 
 2509 #define BNX_EMAC_TXMAC_DEBUG4                           0x00001668
 2510 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_COUNTER              (0xffffL<<0)
 2511 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE                (0xfL<<16)
 2512 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_IDLE           (0x0L<<16)
 2513 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA1           (0x2L<<16)
 2514 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA2           (0x3L<<16)
 2515 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA3           (0x6L<<16)
 2516 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC1           (0x7L<<16)
 2517 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC2           (0x5L<<16)
 2518 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC3           (0x4L<<16)
 2519 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_TYPE           (0xcL<<16)
 2520 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CMD            (0xeL<<16)
 2521 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_TIME           (0xaL<<16)
 2522 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CRC1           (0x8L<<16)
 2523 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CRC2           (0x9L<<16)
 2524 #define BNX_EMAC_TXMAC_DEBUG4_PAUSE_STATE_WAIT           (0xdL<<16)
 2525 #define BNX_EMAC_TXMAC_DEBUG4_STATS0_VALID               (1L<<20)
 2526 #define BNX_EMAC_TXMAC_DEBUG4_APPEND_CRC                 (1L<<21)
 2527 #define BNX_EMAC_TXMAC_DEBUG4_SLOT_FILLED                (1L<<22)
 2528 #define BNX_EMAC_TXMAC_DEBUG4_MAX_DEFER          (1L<<23)
 2529 #define BNX_EMAC_TXMAC_DEBUG4_SEND_EXTEND                (1L<<24)
 2530 #define BNX_EMAC_TXMAC_DEBUG4_SEND_PADDING               (1L<<25)
 2531 #define BNX_EMAC_TXMAC_DEBUG4_EOF_LOC                    (1L<<26)
 2532 #define BNX_EMAC_TXMAC_DEBUG4_COLLIDING          (1L<<27)
 2533 #define BNX_EMAC_TXMAC_DEBUG4_COL_IN                     (1L<<28)
 2534 #define BNX_EMAC_TXMAC_DEBUG4_BURSTING                   (1L<<29)
 2535 #define BNX_EMAC_TXMAC_DEBUG4_ADVANCE                    (1L<<30)
 2536 #define BNX_EMAC_TXMAC_DEBUG4_GO                         (1L<<31)
 2537 
 2538 #define BNX_EMAC_TX_STAT_AC0                            0x00001680
 2539 #define BNX_EMAC_TX_STAT_AC1                            0x00001684
 2540 #define BNX_EMAC_TX_STAT_AC2                            0x00001688
 2541 #define BNX_EMAC_TX_STAT_AC3                            0x0000168c
 2542 #define BNX_EMAC_TX_STAT_AC4                            0x00001690
 2543 #define BNX_EMAC_TX_STAT_AC5                            0x00001694
 2544 #define BNX_EMAC_TX_STAT_AC6                            0x00001698
 2545 #define BNX_EMAC_TX_STAT_AC7                            0x0000169c
 2546 #define BNX_EMAC_TX_STAT_AC8                            0x000016a0
 2547 #define BNX_EMAC_TX_STAT_AC9                            0x000016a4
 2548 #define BNX_EMAC_TX_STAT_AC10                           0x000016a8
 2549 #define BNX_EMAC_TX_STAT_AC11                           0x000016ac
 2550 #define BNX_EMAC_TX_STAT_AC12                           0x000016b0
 2551 #define BNX_EMAC_TX_STAT_AC13                           0x000016b4
 2552 #define BNX_EMAC_TX_STAT_AC14                           0x000016b8
 2553 #define BNX_EMAC_TX_STAT_AC15                           0x000016bc
 2554 #define BNX_EMAC_TX_STAT_AC16                           0x000016c0
 2555 #define BNX_EMAC_TX_STAT_AC17                           0x000016c4
 2556 #define BNX_EMAC_TX_STAT_AC18                           0x000016c8
 2557 #define BNX_EMAC_TX_STAT_AC19                           0x000016cc
 2558 #define BNX_EMAC_TX_STAT_AC20                           0x000016d0
 2559 #define BNX_EMAC_TX_STAT_AC21                           0x000016d4
 2560 #define BNX_EMAC_TXMAC_SUC_DBG_OVERRUNVEC               0x000016d8
 2561 
 2562 
 2563 /*
 2564  *  rpm_reg definition
 2565  *  offset: 0x1800
 2566  */
 2567 #define BNX_RPM_COMMAND                         0x00001800
 2568 #define BNX_RPM_COMMAND_ENABLED                  (1L<<0)
 2569 #define BNX_RPM_COMMAND_OVERRUN_ABORT                    (1L<<4)
 2570 
 2571 #define BNX_RPM_STATUS                                  0x00001804
 2572 #define BNX_RPM_STATUS_MBUF_WAIT                         (1L<<0)
 2573 #define BNX_RPM_STATUS_FREE_WAIT                         (1L<<1)
 2574 
 2575 #define BNX_RPM_CONFIG                                  0x00001808
 2576 #define BNX_RPM_CONFIG_NO_PSD_HDR_CKSUM          (1L<<0)
 2577 #define BNX_RPM_CONFIG_ACPI_ENA                  (1L<<1)
 2578 #define BNX_RPM_CONFIG_ACPI_KEEP                         (1L<<2)
 2579 #define BNX_RPM_CONFIG_MP_KEEP                           (1L<<3)
 2580 #define BNX_RPM_CONFIG_SORT_VECT_VAL                     (0xfL<<4)
 2581 #define BNX_RPM_CONFIG_IGNORE_VLAN                       (1L<<31)
 2582 
 2583 #define BNX_RPM_VLAN_MATCH0                             0x00001810
 2584 #define BNX_RPM_VLAN_MATCH0_RPM_VLAN_MTCH0_VALUE         (0xfffL<<0)
 2585 
 2586 #define BNX_RPM_VLAN_MATCH1                             0x00001814
 2587 #define BNX_RPM_VLAN_MATCH1_RPM_VLAN_MTCH1_VALUE         (0xfffL<<0)
 2588 
 2589 #define BNX_RPM_VLAN_MATCH2                             0x00001818
 2590 #define BNX_RPM_VLAN_MATCH2_RPM_VLAN_MTCH2_VALUE         (0xfffL<<0)
 2591 
 2592 #define BNX_RPM_VLAN_MATCH3                             0x0000181c
 2593 #define BNX_RPM_VLAN_MATCH3_RPM_VLAN_MTCH3_VALUE         (0xfffL<<0)
 2594 
 2595 #define BNX_RPM_SORT_USER0                              0x00001820
 2596 #define BNX_RPM_SORT_USER0_PM_EN                         (0xffffL<<0)
 2597 #define BNX_RPM_SORT_USER0_BC_EN                         (1L<<16)
 2598 #define BNX_RPM_SORT_USER0_MC_EN                         (1L<<17)
 2599 #define BNX_RPM_SORT_USER0_MC_HSH_EN                     (1L<<18)
 2600 #define BNX_RPM_SORT_USER0_PROM_EN                       (1L<<19)
 2601 #define BNX_RPM_SORT_USER0_VLAN_EN                       (0xfL<<20)
 2602 #define BNX_RPM_SORT_USER0_PROM_VLAN                     (1L<<24)
 2603 #define BNX_RPM_SORT_USER0_ENA                           (1L<<31)
 2604 
 2605 #define BNX_RPM_SORT_USER1                              0x00001824
 2606 #define BNX_RPM_SORT_USER1_PM_EN                         (0xffffL<<0)
 2607 #define BNX_RPM_SORT_USER1_BC_EN                         (1L<<16)
 2608 #define BNX_RPM_SORT_USER1_MC_EN                         (1L<<17)
 2609 #define BNX_RPM_SORT_USER1_MC_HSH_EN                     (1L<<18)
 2610 #define BNX_RPM_SORT_USER1_PROM_EN                       (1L<<19)
 2611 #define BNX_RPM_SORT_USER1_VLAN_EN                       (0xfL<<20)
 2612 #define BNX_RPM_SORT_USER1_PROM_VLAN                     (1L<<24)
 2613 #define BNX_RPM_SORT_USER1_ENA                           (1L<<31)
 2614 
 2615 #define BNX_RPM_SORT_USER2                              0x00001828
 2616 #define BNX_RPM_SORT_USER2_PM_EN                         (0xffffL<<0)
 2617 #define BNX_RPM_SORT_USER2_BC_EN                         (1L<<16)
 2618 #define BNX_RPM_SORT_USER2_MC_EN                         (1L<<17)
 2619 #define BNX_RPM_SORT_USER2_MC_HSH_EN                     (1L<<18)
 2620 #define BNX_RPM_SORT_USER2_PROM_EN                       (1L<<19)
 2621 #define BNX_RPM_SORT_USER2_VLAN_EN                       (0xfL<<20)
 2622 #define BNX_RPM_SORT_USER2_PROM_VLAN                     (1L<<24)
 2623 #define BNX_RPM_SORT_USER2_ENA                           (1L<<31)
 2624 
 2625 #define BNX_RPM_SORT_USER3                              0x0000182c
 2626 #define BNX_RPM_SORT_USER3_PM_EN                         (0xffffL<<0)
 2627 #define BNX_RPM_SORT_USER3_BC_EN                         (1L<<16)
 2628 #define BNX_RPM_SORT_USER3_MC_EN                         (1L<<17)
 2629 #define BNX_RPM_SORT_USER3_MC_HSH_EN                     (1L<<18)
 2630 #define BNX_RPM_SORT_USER3_PROM_EN                       (1L<<19)
 2631 #define BNX_RPM_SORT_USER3_VLAN_EN                       (0xfL<<20)
 2632 #define BNX_RPM_SORT_USER3_PROM_VLAN                     (1L<<24)
 2633 #define BNX_RPM_SORT_USER3_ENA                           (1L<<31)
 2634 
 2635 #define BNX_RPM_STAT_L2_FILTER_DISCARDS         0x00001840
 2636 #define BNX_RPM_STAT_RULE_CHECKER_DISCARDS              0x00001844
 2637 #define BNX_RPM_STAT_IFINFTQDISCARDS                    0x00001848
 2638 #define BNX_RPM_STAT_IFINMBUFDISCARD                    0x0000184c
 2639 #define BNX_RPM_STAT_RULE_CHECKER_P4_HIT                0x00001850
 2640 #define BNX_RPM_STAT_AC0                                0x00001880
 2641 #define BNX_RPM_STAT_AC1                                0x00001884
 2642 #define BNX_RPM_STAT_AC2                                0x00001888
 2643 #define BNX_RPM_STAT_AC3                                0x0000188c
 2644 #define BNX_RPM_STAT_AC4                                0x00001890
 2645 #define BNX_RPM_RC_CNTL_0                               0x00001900
 2646 #define BNX_RPM_RC_CNTL_0_OFFSET                         (0xffL<<0)
 2647 #define BNX_RPM_RC_CNTL_0_CLASS                  (0x7L<<8)
 2648 #define BNX_RPM_RC_CNTL_0_PRIORITY                       (1L<<11)
 2649 #define BNX_RPM_RC_CNTL_0_P4                             (1L<<12)
 2650 #define BNX_RPM_RC_CNTL_0_HDR_TYPE                       (0x7L<<13)
 2651 #define BNX_RPM_RC_CNTL_0_HDR_TYPE_START                 (0L<<13)
 2652 #define BNX_RPM_RC_CNTL_0_HDR_TYPE_IP                    (1L<<13)
 2653 #define BNX_RPM_RC_CNTL_0_HDR_TYPE_TCP                   (2L<<13)
 2654 #define BNX_RPM_RC_CNTL_0_HDR_TYPE_UDP                   (3L<<13)
 2655 #define BNX_RPM_RC_CNTL_0_HDR_TYPE_DATA          (4L<<13)
 2656 #define BNX_RPM_RC_CNTL_0_COMP                           (0x3L<<16)
 2657 #define BNX_RPM_RC_CNTL_0_COMP_EQUAL                     (0L<<16)
 2658 #define BNX_RPM_RC_CNTL_0_COMP_NEQUAL                    (1L<<16)
 2659 #define BNX_RPM_RC_CNTL_0_COMP_GREATER                   (2L<<16)
 2660 #define BNX_RPM_RC_CNTL_0_COMP_LESS                      (3L<<16)
 2661 #define BNX_RPM_RC_CNTL_0_SBIT                           (1L<<19)
 2662 #define BNX_RPM_RC_CNTL_0_CMDSEL                         (0xfL<<20)
 2663 #define BNX_RPM_RC_CNTL_0_MAP                            (1L<<24)
 2664 #define BNX_RPM_RC_CNTL_0_DISCARD                        (1L<<25)
 2665 #define BNX_RPM_RC_CNTL_0_MASK                           (1L<<26)
 2666 #define BNX_RPM_RC_CNTL_0_P1                             (1L<<27)
 2667 #define BNX_RPM_RC_CNTL_0_P2                             (1L<<28)
 2668 #define BNX_RPM_RC_CNTL_0_P3                             (1L<<29)
 2669 #define BNX_RPM_RC_CNTL_0_NBIT                           (1L<<30)
 2670 
 2671 #define BNX_RPM_RC_VALUE_MASK_0                 0x00001904
 2672 #define BNX_RPM_RC_VALUE_MASK_0_VALUE                    (0xffffL<<0)
 2673 #define BNX_RPM_RC_VALUE_MASK_0_MASK                     (0xffffL<<16)
 2674 
 2675 #define BNX_RPM_RC_CNTL_1                               0x00001908
 2676 #define BNX_RPM_RC_CNTL_1_A                              (0x3ffffL<<0)
 2677 #define BNX_RPM_RC_CNTL_1_B                              (0xfffL<<19)
 2678 
 2679 #define BNX_RPM_RC_VALUE_MASK_1                 0x0000190c
 2680 #define BNX_RPM_RC_CNTL_2                               0x00001910
 2681 #define BNX_RPM_RC_CNTL_2_A                              (0x3ffffL<<0)
 2682 #define BNX_RPM_RC_CNTL_2_B                              (0xfffL<<19)
 2683 
 2684 #define BNX_RPM_RC_VALUE_MASK_2                 0x00001914
 2685 #define BNX_RPM_RC_CNTL_3                               0x00001918
 2686 #define BNX_RPM_RC_CNTL_3_A                              (0x3ffffL<<0)
 2687 #define BNX_RPM_RC_CNTL_3_B                              (0xfffL<<19)
 2688 
 2689 #define BNX_RPM_RC_VALUE_MASK_3                 0x0000191c
 2690 #define BNX_RPM_RC_CNTL_4                               0x00001920
 2691 #define BNX_RPM_RC_CNTL_4_A                              (0x3ffffL<<0)
 2692 #define BNX_RPM_RC_CNTL_4_B                              (0xfffL<<19)
 2693 
 2694 #define BNX_RPM_RC_VALUE_MASK_4                 0x00001924
 2695 #define BNX_RPM_RC_CNTL_5                               0x00001928
 2696 #define BNX_RPM_RC_CNTL_5_A                              (0x3ffffL<<0)
 2697 #define BNX_RPM_RC_CNTL_5_B                              (0xfffL<<19)
 2698 
 2699 #define BNX_RPM_RC_VALUE_MASK_5                 0x0000192c
 2700 #define BNX_RPM_RC_CNTL_6                               0x00001930
 2701 #define BNX_RPM_RC_CNTL_6_A                              (0x3ffffL<<0)
 2702 #define BNX_RPM_RC_CNTL_6_B                              (0xfffL<<19)
 2703 
 2704 #define BNX_RPM_RC_VALUE_MASK_6                 0x00001934
 2705 #define BNX_RPM_RC_CNTL_7                               0x00001938
 2706 #define BNX_RPM_RC_CNTL_7_A                              (0x3ffffL<<0)
 2707 #define BNX_RPM_RC_CNTL_7_B                              (0xfffL<<19)
 2708 
 2709 #define BNX_RPM_RC_VALUE_MASK_7                 0x0000193c
 2710 #define BNX_RPM_RC_CNTL_8                               0x00001940
 2711 #define BNX_RPM_RC_CNTL_8_A                              (0x3ffffL<<0)
 2712 #define BNX_RPM_RC_CNTL_8_B                              (0xfffL<<19)
 2713 
 2714 #define BNX_RPM_RC_VALUE_MASK_8                 0x00001944
 2715 #define BNX_RPM_RC_CNTL_9                               0x00001948
 2716 #define BNX_RPM_RC_CNTL_9_A                              (0x3ffffL<<0)
 2717 #define BNX_RPM_RC_CNTL_9_B                              (0xfffL<<19)
 2718 
 2719 #define BNX_RPM_RC_VALUE_MASK_9                 0x0000194c
 2720 #define BNX_RPM_RC_CNTL_10                              0x00001950
 2721 #define BNX_RPM_RC_CNTL_10_A                             (0x3ffffL<<0)
 2722 #define BNX_RPM_RC_CNTL_10_B                             (0xfffL<<19)
 2723 
 2724 #define BNX_RPM_RC_VALUE_MASK_10                        0x00001954
 2725 #define BNX_RPM_RC_CNTL_11                              0x00001958
 2726 #define BNX_RPM_RC_CNTL_11_A                             (0x3ffffL<<0)
 2727 #define BNX_RPM_RC_CNTL_11_B                             (0xfffL<<19)
 2728 
 2729 #define BNX_RPM_RC_VALUE_MASK_11                        0x0000195c
 2730 #define BNX_RPM_RC_CNTL_12                              0x00001960
 2731 #define BNX_RPM_RC_CNTL_12_A                             (0x3ffffL<<0)
 2732 #define BNX_RPM_RC_CNTL_12_B                             (0xfffL<<19)
 2733 
 2734 #define BNX_RPM_RC_VALUE_MASK_12                        0x00001964
 2735 #define BNX_RPM_RC_CNTL_13                              0x00001968
 2736 #define BNX_RPM_RC_CNTL_13_A                             (0x3ffffL<<0)
 2737 #define BNX_RPM_RC_CNTL_13_B                             (0xfffL<<19)
 2738 
 2739 #define BNX_RPM_RC_VALUE_MASK_13                        0x0000196c
 2740 #define BNX_RPM_RC_CNTL_14                              0x00001970
 2741 #define BNX_RPM_RC_CNTL_14_A                             (0x3ffffL<<0)
 2742 #define BNX_RPM_RC_CNTL_14_B                             (0xfffL<<19)
 2743 
 2744 #define BNX_RPM_RC_VALUE_MASK_14                        0x00001974
 2745 #define BNX_RPM_RC_CNTL_15                              0x00001978
 2746 #define BNX_RPM_RC_CNTL_15_A                             (0x3ffffL<<0)
 2747 #define BNX_RPM_RC_CNTL_15_B                             (0xfffL<<19)
 2748 
 2749 #define BNX_RPM_RC_VALUE_MASK_15                        0x0000197c
 2750 #define BNX_RPM_RC_CONFIG                               0x00001980
 2751 #define BNX_RPM_RC_CONFIG_RULE_ENABLE                    (0xffffL<<0)
 2752 #define BNX_RPM_RC_CONFIG_DEF_CLASS                      (0x7L<<24)
 2753 
 2754 #define BNX_RPM_DEBUG0                                  0x00001984
 2755 #define BNX_RPM_DEBUG0_FM_BCNT                           (0xffffL<<0)
 2756 #define BNX_RPM_DEBUG0_T_DATA_OFST_VLD                   (1L<<16)
 2757 #define BNX_RPM_DEBUG0_T_UDP_OFST_VLD                    (1L<<17)
 2758 #define BNX_RPM_DEBUG0_T_TCP_OFST_VLD                    (1L<<18)
 2759 #define BNX_RPM_DEBUG0_T_IP_OFST_VLD                     (1L<<19)
 2760 #define BNX_RPM_DEBUG0_IP_MORE_FRGMT                     (1L<<20)
 2761 #define BNX_RPM_DEBUG0_T_IP_NO_TCP_UDP_HDR               (1L<<21)
 2762 #define BNX_RPM_DEBUG0_LLC_SNAP                  (1L<<22)
 2763 #define BNX_RPM_DEBUG0_FM_STARTED                        (1L<<23)
 2764 #define BNX_RPM_DEBUG0_DONE                              (1L<<24)
 2765 #define BNX_RPM_DEBUG0_WAIT_4_DONE                       (1L<<25)
 2766 #define BNX_RPM_DEBUG0_USE_TPBUF_CKSUM                   (1L<<26)
 2767 #define BNX_RPM_DEBUG0_RX_NO_PSD_HDR_CKSUM               (1L<<27)
 2768 #define BNX_RPM_DEBUG0_IGNORE_VLAN                       (1L<<28)
 2769 #define BNX_RPM_DEBUG0_RP_ENA_ACTIVE                     (1L<<31)
 2770 
 2771 #define BNX_RPM_DEBUG1                                  0x00001988
 2772 #define BNX_RPM_DEBUG1_FSM_CUR_ST                        (0xffffL<<0)
 2773 #define BNX_RPM_DEBUG1_FSM_CUR_ST_IDLE                   (0L<<0)
 2774 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B6_ALL           (1L<<0)
 2775 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B2_IPLLC         (2L<<0)
 2776 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B6_IP            (4L<<0)
 2777 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B2_IP            (8L<<0)
 2778 #define BNX_RPM_DEBUG1_FSM_CUR_ST_IP_START               (16L<<0)
 2779 #define BNX_RPM_DEBUG1_FSM_CUR_ST_IP                     (32L<<0)
 2780 #define BNX_RPM_DEBUG1_FSM_CUR_ST_TCP                    (64L<<0)
 2781 #define BNX_RPM_DEBUG1_FSM_CUR_ST_UDP                    (128L<<0)
 2782 #define BNX_RPM_DEBUG1_FSM_CUR_ST_AH                     (256L<<0)
 2783 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ESP                    (512L<<0)
 2784 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ESP_PAYLOAD            (1024L<<0)
 2785 #define BNX_RPM_DEBUG1_FSM_CUR_ST_DATA                   (2048L<<0)
 2786 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ADD_CARRY              (0x2000L<<0)
 2787 #define BNX_RPM_DEBUG1_FSM_CUR_ST_ADD_CARRYOUT           (0x4000L<<0)
 2788 #define BNX_RPM_DEBUG1_FSM_CUR_ST_LATCH_RESULT           (0x8000L<<0)
 2789 #define BNX_RPM_DEBUG1_HDR_BCNT                  (0x7ffL<<16)
 2790 #define BNX_RPM_DEBUG1_UNKNOWN_ETYPE_D                   (1L<<28)
 2791 #define BNX_RPM_DEBUG1_VLAN_REMOVED_D2                   (1L<<29)
 2792 #define BNX_RPM_DEBUG1_VLAN_REMOVED_D1                   (1L<<30)
 2793 #define BNX_RPM_DEBUG1_EOF_0XTRA_WD                      (1L<<31)
 2794 
 2795 #define BNX_RPM_DEBUG2                                  0x0000198c
 2796 #define BNX_RPM_DEBUG2_CMD_HIT_VEC                       (0xffffL<<0)
 2797 #define BNX_RPM_DEBUG2_IP_BCNT                           (0xffL<<16)
 2798 #define BNX_RPM_DEBUG2_THIS_CMD_M4                       (1L<<24)
 2799 #define BNX_RPM_DEBUG2_THIS_CMD_M3                       (1L<<25)
 2800 #define BNX_RPM_DEBUG2_THIS_CMD_M2                       (1L<<26)
 2801 #define BNX_RPM_DEBUG2_THIS_CMD_M1                       (1L<<27)
 2802 #define BNX_RPM_DEBUG2_IPIPE_EMPTY                       (1L<<28)
 2803 #define BNX_RPM_DEBUG2_FM_DISCARD                        (1L<<29)
 2804 #define BNX_RPM_DEBUG2_LAST_RULE_IN_FM_D2                (1L<<30)
 2805 #define BNX_RPM_DEBUG2_LAST_RULE_IN_FM_D1                (1L<<31)
 2806 
 2807 #define BNX_RPM_DEBUG3                                  0x00001990
 2808 #define BNX_RPM_DEBUG3_AVAIL_MBUF_PTR                    (0x1ffL<<0)
 2809 #define BNX_RPM_DEBUG3_RDE_RLUPQ_WR_REQ_INT              (1L<<9)
 2810 #define BNX_RPM_DEBUG3_RDE_RBUF_WR_LAST_INT              (1L<<10)
 2811 #define BNX_RPM_DEBUG3_RDE_RBUF_WR_REQ_INT               (1L<<11)
 2812 #define BNX_RPM_DEBUG3_RDE_RBUF_FREE_REQ                 (1L<<12)
 2813 #define BNX_RPM_DEBUG3_RDE_RBUF_ALLOC_REQ                (1L<<13)
 2814 #define BNX_RPM_DEBUG3_DFSM_MBUF_NOTAVAIL                (1L<<14)
 2815 #define BNX_RPM_DEBUG3_RBUF_RDE_SOF_DROP                 (1L<<15)
 2816 #define BNX_RPM_DEBUG3_DFIFO_VLD_ENTRY_CT                (0xfL<<16)
 2817 #define BNX_RPM_DEBUG3_RDE_SRC_FIFO_ALMFULL              (1L<<21)
 2818 #define BNX_RPM_DEBUG3_DROP_NXT_VLD                      (1L<<22)
 2819 #define BNX_RPM_DEBUG3_DROP_NXT                  (1L<<23)
 2820 #define BNX_RPM_DEBUG3_FTQ_FSM                           (0x3L<<24)
 2821 #define BNX_RPM_DEBUG3_FTQ_FSM_IDLE                      (0x0L<<24)
 2822 #define BNX_RPM_DEBUG3_FTQ_FSM_WAIT_ACK          (0x1L<<24)
 2823 #define BNX_RPM_DEBUG3_FTQ_FSM_WAIT_FREE                 (0x2L<<24)
 2824 #define BNX_RPM_DEBUG3_MBWRITE_FSM                       (0x3L<<26)
 2825 #define BNX_RPM_DEBUG3_MBWRITE_FSM_WAIT_SOF              (0x0L<<26)
 2826 #define BNX_RPM_DEBUG3_MBWRITE_FSM_GET_MBUF              (0x1L<<26)
 2827 #define BNX_RPM_DEBUG3_MBWRITE_FSM_DMA_DATA              (0x2L<<26)
 2828 #define BNX_RPM_DEBUG3_MBWRITE_FSM_WAIT_DATA             (0x3L<<26)
 2829 #define BNX_RPM_DEBUG3_MBWRITE_FSM_WAIT_EOF              (0x4L<<26)
 2830 #define BNX_RPM_DEBUG3_MBWRITE_FSM_WAIT_MF_ACK           (0x5L<<26)
 2831 #define BNX_RPM_DEBUG3_MBWRITE_FSM_WAIT_DROP_NXT_VLD     (0x6L<<26)
 2832 #define BNX_RPM_DEBUG3_MBWRITE_FSM_DONE          (0x7L<<26)
 2833 #define BNX_RPM_DEBUG3_MBFREE_FSM                        (1L<<29)
 2834 #define BNX_RPM_DEBUG3_MBFREE_FSM_IDLE                   (0L<<29)
 2835 #define BNX_RPM_DEBUG3_MBFREE_FSM_WAIT_ACK               (1L<<29)
 2836 #define BNX_RPM_DEBUG3_MBALLOC_FSM                       (1L<<30)
 2837 #define BNX_RPM_DEBUG3_MBALLOC_FSM_ET_MBUF               (0x0L<<30)
 2838 #define BNX_RPM_DEBUG3_MBALLOC_FSM_IVE_MBUF              (0x1L<<30)
 2839 #define BNX_RPM_DEBUG3_CCODE_EOF_ERROR                   (1L<<31)
 2840 
 2841 #define BNX_RPM_DEBUG4                                  0x00001994
 2842 #define BNX_RPM_DEBUG4_DFSM_MBUF_CLUSTER                 (0x1ffffffL<<0)
 2843 #define BNX_RPM_DEBUG4_DFIFO_CUR_CCODE                   (0x7L<<25)
 2844 #define BNX_RPM_DEBUG4_MBWRITE_FSM                       (0x7L<<28)
 2845 #define BNX_RPM_DEBUG4_DFIFO_EMPTY                       (1L<<31)
 2846 
 2847 #define BNX_RPM_DEBUG5                                  0x00001998
 2848 #define BNX_RPM_DEBUG5_RDROP_WPTR                        (0x1fL<<0)
 2849 #define BNX_RPM_DEBUG5_RDROP_ACPI_RPTR                   (0x1fL<<5)
 2850 #define BNX_RPM_DEBUG5_RDROP_MC_RPTR                     (0x1fL<<10)
 2851 #define BNX_RPM_DEBUG5_RDROP_RC_RPTR                     (0x1fL<<15)
 2852 #define BNX_RPM_DEBUG5_RDROP_ACPI_EMPTY          (1L<<20)
 2853 #define BNX_RPM_DEBUG5_RDROP_MC_EMPTY                    (1L<<21)
 2854 #define BNX_RPM_DEBUG5_RDROP_AEOF_VEC_AT_RDROP_MC_RPTR   (1L<<22)
 2855 #define BNX_RPM_DEBUG5_HOLDREG_WOL_DROP_INT              (1L<<23)
 2856 #define BNX_RPM_DEBUG5_HOLDREG_DISCARD                   (1L<<24)
 2857 #define BNX_RPM_DEBUG5_HOLDREG_MBUF_NOTAVAIL             (1L<<25)
 2858 #define BNX_RPM_DEBUG5_HOLDREG_MC_EMPTY          (1L<<26)
 2859 #define BNX_RPM_DEBUG5_HOLDREG_RC_EMPTY          (1L<<27)
 2860 #define BNX_RPM_DEBUG5_HOLDREG_FC_EMPTY          (1L<<28)
 2861 #define BNX_RPM_DEBUG5_HOLDREG_ACPI_EMPTY                (1L<<29)
 2862 #define BNX_RPM_DEBUG5_HOLDREG_FULL_T                    (1L<<30)
 2863 #define BNX_RPM_DEBUG5_HOLDREG_RD                        (1L<<31)
 2864 
 2865 #define BNX_RPM_DEBUG6                                  0x0000199c
 2866 #define BNX_RPM_DEBUG6_ACPI_VEC                  (0xffffL<<0)
 2867 #define BNX_RPM_DEBUG6_VEC                               (0xffffL<<16)
 2868 
 2869 #define BNX_RPM_DEBUG7                                  0x000019a0
 2870 #define BNX_RPM_DEBUG7_RPM_DBG7_LAST_CRC                 (0xffffffffL<<0)
 2871 
 2872 #define BNX_RPM_DEBUG8                                  0x000019a4
 2873 #define BNX_RPM_DEBUG8_PS_ACPI_FSM                       (0xfL<<0)
 2874 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_IDLE          (0L<<0)
 2875 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_SOF_W1_ADDR           (1L<<0)
 2876 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_SOF_W2_ADDR           (2L<<0)
 2877 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_SOF_W3_ADDR           (3L<<0)
 2878 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_SOF_WAIT_THBUF        (4L<<0)
 2879 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_W3_DATA               (5L<<0)
 2880 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_W0_ADDR               (6L<<0)
 2881 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_W1_ADDR               (7L<<0)
 2882 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_W2_ADDR               (8L<<0)
 2883 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_W3_ADDR               (9L<<0)
 2884 #define BNX_RPM_DEBUG8_PS_ACPI_FSM_WAIT_THBUF            (10L<<0)
 2885 #define BNX_RPM_DEBUG8_COMPARE_AT_W0                     (1L<<4)
 2886 #define BNX_RPM_DEBUG8_COMPARE_AT_W3_DATA                (1L<<5)
 2887 #define BNX_RPM_DEBUG8_COMPARE_AT_SOF_WAIT               (1L<<6)
 2888 #define BNX_RPM_DEBUG8_COMPARE_AT_SOF_W3                 (1L<<7)
 2889 #define BNX_RPM_DEBUG8_COMPARE_AT_SOF_W2                 (1L<<8)
 2890 #define BNX_RPM_DEBUG8_EOF_W_LTEQ6_VLDBYTES              (1L<<9)
 2891 #define BNX_RPM_DEBUG8_EOF_W_LTEQ4_VLDBYTES              (1L<<10)
 2892 #define BNX_RPM_DEBUG8_NXT_EOF_W_12_VLDBYTES             (1L<<11)
 2893 #define BNX_RPM_DEBUG8_EOF_DET                           (1L<<12)
 2894 #define BNX_RPM_DEBUG8_SOF_DET                           (1L<<13)
 2895 #define BNX_RPM_DEBUG8_WAIT_4_SOF                        (1L<<14)
 2896 #define BNX_RPM_DEBUG8_ALL_DONE                  (1L<<15)
 2897 #define BNX_RPM_DEBUG8_THBUF_ADDR                        (0x7fL<<16)
 2898 #define BNX_RPM_DEBUG8_BYTE_CTR                  (0xffL<<24)
 2899 
 2900 #define BNX_RPM_DEBUG9                                  0x000019a8
 2901 #define BNX_RPM_DEBUG9_OUTFIFO_COUNT                     (0x7L<<0)
 2902 #define BNX_RPM_DEBUG9_RDE_ACPI_RDY                      (1L<<3)
 2903 #define BNX_RPM_DEBUG9_VLD_RD_ENTRY_CT                   (0x7L<<4)
 2904 #define BNX_RPM_DEBUG9_OUTFIFO_OVERRUN_OCCURRED  (1L<<28)
 2905 #define BNX_RPM_DEBUG9_INFIFO_OVERRUN_OCCURRED           (1L<<29)
 2906 #define BNX_RPM_DEBUG9_ACPI_MATCH_INT                    (1L<<30)
 2907 #define BNX_RPM_DEBUG9_ACPI_ENABLE_SYN                   (1L<<31)
 2908 
 2909 #define BNX_RPM_ACPI_DBG_BUF_W00                        0x000019c0
 2910 #define BNX_RPM_ACPI_DBG_BUF_W01                        0x000019c4
 2911 #define BNX_RPM_ACPI_DBG_BUF_W02                        0x000019c8
 2912 #define BNX_RPM_ACPI_DBG_BUF_W03                        0x000019cc
 2913 #define BNX_RPM_ACPI_DBG_BUF_W10                        0x000019d0
 2914 #define BNX_RPM_ACPI_DBG_BUF_W11                        0x000019d4
 2915 #define BNX_RPM_ACPI_DBG_BUF_W12                        0x000019d8
 2916 #define BNX_RPM_ACPI_DBG_BUF_W13                        0x000019dc
 2917 #define BNX_RPM_ACPI_DBG_BUF_W20                        0x000019e0
 2918 #define BNX_RPM_ACPI_DBG_BUF_W21                        0x000019e4
 2919 #define BNX_RPM_ACPI_DBG_BUF_W22                        0x000019e8
 2920 #define BNX_RPM_ACPI_DBG_BUF_W23                        0x000019ec
 2921 #define BNX_RPM_ACPI_DBG_BUF_W30                        0x000019f0
 2922 #define BNX_RPM_ACPI_DBG_BUF_W31                        0x000019f4
 2923 #define BNX_RPM_ACPI_DBG_BUF_W32                        0x000019f8
 2924 #define BNX_RPM_ACPI_DBG_BUF_W33                        0x000019fc
 2925 
 2926 
 2927 /*
 2928  *  rbuf_reg definition
 2929  *  offset: 0x200000
 2930  */
 2931 #define BNX_RBUF_COMMAND                                0x00200000
 2932 #define BNX_RBUF_COMMAND_ENABLED                         (1L<<0)
 2933 #define BNX_RBUF_COMMAND_FREE_INIT                       (1L<<1)
 2934 #define BNX_RBUF_COMMAND_RAM_INIT                        (1L<<2)
 2935 #define BNX_RBUF_COMMAND_OVER_FREE                       (1L<<4)
 2936 #define BNX_RBUF_COMMAND_ALLOC_REQ                       (1L<<5)
 2937 
 2938 #define BNX_RBUF_STATUS1                                0x00200004
 2939 #define BNX_RBUF_STATUS1_FREE_COUNT                      (0x3ffL<<0)
 2940 
 2941 #define BNX_RBUF_STATUS2                                0x00200008
 2942 #define BNX_RBUF_STATUS2_FREE_TAIL                       (0x3ffL<<0)
 2943 #define BNX_RBUF_STATUS2_FREE_HEAD                       (0x3ffL<<16)
 2944 
 2945 #define BNX_RBUF_CONFIG                         0x0020000c
 2946 #define BNX_RBUF_CONFIG_XOFF_TRIP                        (0x3ffL<<0)
 2947 #define BNX_RBUF_CONFIG_XON_TRIP                         (0x3ffL<<16)
 2948 
 2949 #define BNX_RBUF_FW_BUF_ALLOC                           0x00200010
 2950 #define BNX_RBUF_FW_BUF_ALLOC_VALUE                      (0x1ffL<<7)
 2951 
 2952 #define BNX_RBUF_FW_BUF_FREE                            0x00200014
 2953 #define BNX_RBUF_FW_BUF_FREE_COUNT                       (0x7fL<<0)
 2954 #define BNX_RBUF_FW_BUF_FREE_TAIL                        (0x1ffL<<7)
 2955 #define BNX_RBUF_FW_BUF_FREE_HEAD                        (0x1ffL<<16)
 2956 
 2957 #define BNX_RBUF_FW_BUF_SEL                             0x00200018
 2958 #define BNX_RBUF_FW_BUF_SEL_COUNT                        (0x7fL<<0)
 2959 #define BNX_RBUF_FW_BUF_SEL_TAIL                         (0x1ffL<<7)
 2960 #define BNX_RBUF_FW_BUF_SEL_HEAD                         (0x1ffL<<16)
 2961 
 2962 #define BNX_RBUF_CONFIG2                                0x0020001c
 2963 #define BNX_RBUF_CONFIG2_MAC_DROP_TRIP                   (0x3ffL<<0)
 2964 #define BNX_RBUF_CONFIG2_MAC_KEEP_TRIP                   (0x3ffL<<16)
 2965 
 2966 #define BNX_RBUF_CONFIG3                                0x00200020
 2967 #define BNX_RBUF_CONFIG3_CU_DROP_TRIP                    (0x3ffL<<0)
 2968 #define BNX_RBUF_CONFIG3_CU_KEEP_TRIP                    (0x3ffL<<16)
 2969 
 2970 #define BNX_RBUF_PKT_DATA                               0x00208000
 2971 #define BNX_RBUF_CLIST_DATA                             0x00210000
 2972 #define BNX_RBUF_BUF_DATA                               0x00220000
 2973 
 2974 
 2975 /*
 2976  *  rv2p_reg definition
 2977  *  offset: 0x2800
 2978  */
 2979 #define BNX_RV2P_COMMAND                                0x00002800
 2980 #define BNX_RV2P_COMMAND_ENABLED                         (1L<<0)
 2981 #define BNX_RV2P_COMMAND_PROC1_INTRPT                    (1L<<1)
 2982 #define BNX_RV2P_COMMAND_PROC2_INTRPT                    (1L<<2)
 2983 #define BNX_RV2P_COMMAND_ABORT0                  (1L<<4)
 2984 #define BNX_RV2P_COMMAND_ABORT1                  (1L<<5)
 2985 #define BNX_RV2P_COMMAND_ABORT2                  (1L<<6)
 2986 #define BNX_RV2P_COMMAND_ABORT3                  (1L<<7)
 2987 #define BNX_RV2P_COMMAND_ABORT4                  (1L<<8)
 2988 #define BNX_RV2P_COMMAND_ABORT5                  (1L<<9)
 2989 #define BNX_RV2P_COMMAND_PROC1_RESET                     (1L<<16)
 2990 #define BNX_RV2P_COMMAND_PROC2_RESET                     (1L<<17)
 2991 #define BNX_RV2P_COMMAND_CTXIF_RESET                     (1L<<18)
 2992 
 2993 #define BNX_RV2P_STATUS                         0x00002804
 2994 #define BNX_RV2P_STATUS_ALWAYS_0                         (1L<<0)
 2995 #define BNX_RV2P_STATUS_RV2P_GEN_STAT0_CNT               (1L<<8)
 2996 #define BNX_RV2P_STATUS_RV2P_GEN_STAT1_CNT               (1L<<9)
 2997 #define BNX_RV2P_STATUS_RV2P_GEN_STAT2_CNT               (1L<<10)
 2998 #define BNX_RV2P_STATUS_RV2P_GEN_STAT3_CNT               (1L<<11)
 2999 #define BNX_RV2P_STATUS_RV2P_GEN_STAT4_CNT               (1L<<12)
 3000 #define BNX_RV2P_STATUS_RV2P_GEN_STAT5_CNT               (1L<<13)
 3001 
 3002 #define BNX_RV2P_CONFIG                         0x00002808
 3003 #define BNX_RV2P_CONFIG_STALL_PROC1                      (1L<<0)
 3004 #define BNX_RV2P_CONFIG_STALL_PROC2                      (1L<<1)
 3005 #define BNX_RV2P_CONFIG_PROC1_STALL_ON_ABORT0            (1L<<8)
 3006 #define BNX_RV2P_CONFIG_PROC1_STALL_ON_ABORT1            (1L<<9)
 3007 #define BNX_RV2P_CONFIG_PROC1_STALL_ON_ABORT2            (1L<<10)
 3008 #define BNX_RV2P_CONFIG_PROC1_STALL_ON_ABORT3            (1L<<11)
 3009 #define BNX_RV2P_CONFIG_PROC1_STALL_ON_ABORT4            (1L<<12)
 3010 #define BNX_RV2P_CONFIG_PROC1_STALL_ON_ABORT5            (1L<<13)
 3011 #define BNX_RV2P_CONFIG_PROC2_STALL_ON_ABORT0            (1L<<16)
 3012 #define BNX_RV2P_CONFIG_PROC2_STALL_ON_ABORT1            (1L<<17)
 3013 #define BNX_RV2P_CONFIG_PROC2_STALL_ON_ABORT2            (1L<<18)
 3014 #define BNX_RV2P_CONFIG_PROC2_STALL_ON_ABORT3            (1L<<19)
 3015 #define BNX_RV2P_CONFIG_PROC2_STALL_ON_ABORT4            (1L<<20)
 3016 #define BNX_RV2P_CONFIG_PROC2_STALL_ON_ABORT5            (1L<<21)
 3017 #define BNX_RV2P_CONFIG_PAGE_SIZE                        (0xfL<<24)
 3018 #define BNX_RV2P_CONFIG_PAGE_SIZE_256                    (0L<<24)
 3019 #define BNX_RV2P_CONFIG_PAGE_SIZE_512                    (1L<<24)
 3020 #define BNX_RV2P_CONFIG_PAGE_SIZE_1K                     (2L<<24)
 3021 #define BNX_RV2P_CONFIG_PAGE_SIZE_2K                     (3L<<24)
 3022 #define BNX_RV2P_CONFIG_PAGE_SIZE_4K                     (4L<<24)
 3023 #define BNX_RV2P_CONFIG_PAGE_SIZE_8K                     (5L<<24)
 3024 #define BNX_RV2P_CONFIG_PAGE_SIZE_16K                    (6L<<24)
 3025 #define BNX_RV2P_CONFIG_PAGE_SIZE_32K                    (7L<<24)
 3026 #define BNX_RV2P_CONFIG_PAGE_SIZE_64K                    (8L<<24)
 3027 #define BNX_RV2P_CONFIG_PAGE_SIZE_128K                   (9L<<24)
 3028 #define BNX_RV2P_CONFIG_PAGE_SIZE_256K                   (10L<<24)
 3029 #define BNX_RV2P_CONFIG_PAGE_SIZE_512K                   (11L<<24)
 3030 #define BNX_RV2P_CONFIG_PAGE_SIZE_1M                     (12L<<24)
 3031 
 3032 #define BNX_RV2P_GEN_BFR_ADDR_0                 0x00002810
 3033 #define BNX_RV2P_GEN_BFR_ADDR_0_VALUE                    (0xffffL<<16)
 3034 
 3035 #define BNX_RV2P_GEN_BFR_ADDR_1                 0x00002814
 3036 #define BNX_RV2P_GEN_BFR_ADDR_1_VALUE                    (0xffffL<<16)
 3037 
 3038 #define BNX_RV2P_GEN_BFR_ADDR_2                 0x00002818
 3039 #define BNX_RV2P_GEN_BFR_ADDR_2_VALUE                    (0xffffL<<16)
 3040 
 3041 #define BNX_RV2P_GEN_BFR_ADDR_3                 0x0000281c
 3042 #define BNX_RV2P_GEN_BFR_ADDR_3_VALUE                    (0xffffL<<16)
 3043 
 3044 #define BNX_RV2P_INSTR_HIGH                             0x00002830
 3045 #define BNX_RV2P_INSTR_HIGH_HIGH                         (0x1fL<<0)
 3046 
 3047 #define BNX_RV2P_INSTR_LOW                              0x00002834
 3048 #define BNX_RV2P_PROC1_ADDR_CMD                 0x00002838
 3049 #define BNX_RV2P_PROC1_ADDR_CMD_ADD                      (0x3ffL<<0)
 3050 #define BNX_RV2P_PROC1_ADDR_CMD_RDWR                     (1L<<31)
 3051 
 3052 #define BNX_RV2P_PROC2_ADDR_CMD                 0x0000283c
 3053 #define BNX_RV2P_PROC2_ADDR_CMD_ADD                      (0x3ffL<<0)
 3054 #define BNX_RV2P_PROC2_ADDR_CMD_RDWR                     (1L<<31)
 3055 
 3056 #define BNX_RV2P_PROC1_GRC_DEBUG                        0x00002840
 3057 #define BNX_RV2P_PROC2_GRC_DEBUG                        0x00002844
 3058 #define BNX_RV2P_GRC_PROC_DEBUG                 0x00002848
 3059 #define BNX_RV2P_DEBUG_VECT_PEEK                        0x0000284c
 3060 #define BNX_RV2P_DEBUG_VECT_PEEK_1_VALUE                 (0x7ffL<<0)
 3061 #define BNX_RV2P_DEBUG_VECT_PEEK_1_PEEK_EN               (1L<<11)
 3062 #define BNX_RV2P_DEBUG_VECT_PEEK_1_SEL                   (0xfL<<12)
 3063 #define BNX_RV2P_DEBUG_VECT_PEEK_2_VALUE                 (0x7ffL<<16)
 3064 #define BNX_RV2P_DEBUG_VECT_PEEK_2_PEEK_EN               (1L<<27)
 3065 #define BNX_RV2P_DEBUG_VECT_PEEK_2_SEL                   (0xfL<<28)
 3066 
 3067 #define BNX_RV2P_PFTQ_DATA                              0x00002b40
 3068 #define BNX_RV2P_PFTQ_CMD                               0x00002b78
 3069 #define BNX_RV2P_PFTQ_CMD_OFFSET                         (0x3ffL<<0)
 3070 #define BNX_RV2P_PFTQ_CMD_WR_TOP                         (1L<<10)
 3071 #define BNX_RV2P_PFTQ_CMD_WR_TOP_0                       (0L<<10)
 3072 #define BNX_RV2P_PFTQ_CMD_WR_TOP_1                       (1L<<10)
 3073 #define BNX_RV2P_PFTQ_CMD_SFT_RESET                      (1L<<25)
 3074 #define BNX_RV2P_PFTQ_CMD_RD_DATA                        (1L<<26)
 3075 #define BNX_RV2P_PFTQ_CMD_ADD_INTERVEN                   (1L<<27)
 3076 #define BNX_RV2P_PFTQ_CMD_ADD_DATA                       (1L<<28)
 3077 #define BNX_RV2P_PFTQ_CMD_INTERVENE_CLR          (1L<<29)
 3078 #define BNX_RV2P_PFTQ_CMD_POP                            (1L<<30)
 3079 #define BNX_RV2P_PFTQ_CMD_BUSY                           (1L<<31)
 3080 
 3081 #define BNX_RV2P_PFTQ_CTL                               0x00002b7c
 3082 #define BNX_RV2P_PFTQ_CTL_INTERVENE                      (1L<<0)
 3083 #define BNX_RV2P_PFTQ_CTL_OVERFLOW                       (1L<<1)
 3084 #define BNX_RV2P_PFTQ_CTL_FORCE_INTERVENE                (1L<<2)
 3085 #define BNX_RV2P_PFTQ_CTL_MAX_DEPTH                      (0x3ffL<<12)
 3086 #define BNX_RV2P_PFTQ_CTL_CUR_DEPTH                      (0x3ffL<<22)
 3087 
 3088 #define BNX_RV2P_TFTQ_DATA                              0x00002b80
 3089 #define BNX_RV2P_TFTQ_CMD                               0x00002bb8
 3090 #define BNX_RV2P_TFTQ_CMD_OFFSET                         (0x3ffL<<0)
 3091 #define BNX_RV2P_TFTQ_CMD_WR_TOP                         (1L<<10)
 3092 #define BNX_RV2P_TFTQ_CMD_WR_TOP_0                       (0L<<10)
 3093 #define BNX_RV2P_TFTQ_CMD_WR_TOP_1                       (1L<<10)
 3094 #define BNX_RV2P_TFTQ_CMD_SFT_RESET                      (1L<<25)
 3095 #define BNX_RV2P_TFTQ_CMD_RD_DATA                        (1L<<26)
 3096 #define BNX_RV2P_TFTQ_CMD_ADD_INTERVEN                   (1L<<27)
 3097 #define BNX_RV2P_TFTQ_CMD_ADD_DATA                       (1L<<28)
 3098 #define BNX_RV2P_TFTQ_CMD_INTERVENE_CLR          (1L<<29)
 3099 #define BNX_RV2P_TFTQ_CMD_POP                            (1L<<30)
 3100 #define BNX_RV2P_TFTQ_CMD_BUSY                           (1L<<31)
 3101 
 3102 #define BNX_RV2P_TFTQ_CTL                               0x00002bbc
 3103 #define BNX_RV2P_TFTQ_CTL_INTERVENE                      (1L<<0)
 3104 #define BNX_RV2P_TFTQ_CTL_OVERFLOW                       (1L<<1)
 3105 #define BNX_RV2P_TFTQ_CTL_FORCE_INTERVENE                (1L<<2)
 3106 #define BNX_RV2P_TFTQ_CTL_MAX_DEPTH                      (0x3ffL<<12)
 3107 #define BNX_RV2P_TFTQ_CTL_CUR_DEPTH                      (0x3ffL<<22)
 3108 
 3109 #define BNX_RV2P_MFTQ_DATA                              0x00002bc0
 3110 #define BNX_RV2P_MFTQ_CMD                               0x00002bf8
 3111 #define BNX_RV2P_MFTQ_CMD_OFFSET                         (0x3ffL<<0)
 3112 #define BNX_RV2P_MFTQ_CMD_WR_TOP                         (1L<<10)
 3113 #define BNX_RV2P_MFTQ_CMD_WR_TOP_0                       (0L<<10)
 3114 #define BNX_RV2P_MFTQ_CMD_WR_TOP_1                       (1L<<10)
 3115 #define BNX_RV2P_MFTQ_CMD_SFT_RESET                      (1L<<25)
 3116 #define BNX_RV2P_MFTQ_CMD_RD_DATA                        (1L<<26)
 3117 #define BNX_RV2P_MFTQ_CMD_ADD_INTERVEN                   (1L<<27)
 3118 #define BNX_RV2P_MFTQ_CMD_ADD_DATA                       (1L<<28)
 3119 #define BNX_RV2P_MFTQ_CMD_INTERVENE_CLR          (1L<<29)
 3120 #define BNX_RV2P_MFTQ_CMD_POP                            (1L<<30)
 3121 #define BNX_RV2P_MFTQ_CMD_BUSY                           (1L<<31)
 3122 
 3123 #define BNX_RV2P_MFTQ_CTL                               0x00002bfc
 3124 #define BNX_RV2P_MFTQ_CTL_INTERVENE                      (1L<<0)
 3125 #define BNX_RV2P_MFTQ_CTL_OVERFLOW                       (1L<<1)
 3126 #define BNX_RV2P_MFTQ_CTL_FORCE_INTERVENE                (1L<<2)
 3127 #define BNX_RV2P_MFTQ_CTL_MAX_DEPTH                      (0x3ffL<<12)
 3128 #define BNX_RV2P_MFTQ_CTL_CUR_DEPTH                      (0x3ffL<<22)
 3129 
 3130 
 3131 
 3132 /*
 3133  *  mq_reg definition
 3134  *  offset: 0x3c00
 3135  */
 3136 #define BNX_MQ_COMMAND                                  0x00003c00
 3137 #define BNX_MQ_COMMAND_ENABLED                           (1L<<0)
 3138 #define BNX_MQ_COMMAND_OVERFLOW                  (1L<<4)
 3139 #define BNX_MQ_COMMAND_WR_ERROR                  (1L<<5)
 3140 #define BNX_MQ_COMMAND_RD_ERROR                  (1L<<6)
 3141 
 3142 #define BNX_MQ_STATUS                                   0x00003c04
 3143 #define BNX_MQ_STATUS_CTX_ACCESS_STAT                    (1L<<16)
 3144 #define BNX_MQ_STATUS_CTX_ACCESS64_STAT          (1L<<17)
 3145 #define BNX_MQ_STATUS_PCI_STALL_STAT                     (1L<<18)
 3146 
 3147 #define BNX_MQ_CONFIG                                   0x00003c08
 3148 #define BNX_MQ_CONFIG_TX_HIGH_PRI                        (1L<<0)
 3149 #define BNX_MQ_CONFIG_HALT_DIS                           (1L<<1)
 3150 #define BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE                   (0x7L<<4)
 3151 #define BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE_256               (0L<<4)
 3152 #define BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE_512               (1L<<4)
 3153 #define BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE_1K                (2L<<4)
 3154 #define BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE_2K                (3L<<4)
 3155 #define BNX_MQ_CONFIG_KNL_BYP_BLK_SIZE_4K                (4L<<4)
 3156 #define BNX_MQ_CONFIG_MAX_DEPTH                  (0x7fL<<8)
 3157 #define BNX_MQ_CONFIG_CUR_DEPTH                  (0x7fL<<20)
 3158 
 3159 #define BNX_MQ_ENQUEUE1                         0x00003c0c
 3160 #define BNX_MQ_ENQUEUE1_OFFSET                           (0x3fL<<2)
 3161 #define BNX_MQ_ENQUEUE1_CID                              (0x3fffL<<8)
 3162 #define BNX_MQ_ENQUEUE1_BYTE_MASK                        (0xfL<<24)
 3163 #define BNX_MQ_ENQUEUE1_KNL_MODE                         (1L<<28)
 3164 
 3165 #define BNX_MQ_ENQUEUE2                         0x00003c10
 3166 #define BNX_MQ_BAD_WR_ADDR                              0x00003c14
 3167 #define BNX_MQ_BAD_RD_ADDR                              0x00003c18
 3168 #define BNX_MQ_KNL_BYP_WIND_START                       0x00003c1c
 3169 #define BNX_MQ_KNL_BYP_WIND_START_VALUE          (0xfffffL<<12)
 3170 
 3171 #define BNX_MQ_KNL_WIND_END                             0x00003c20
 3172 #define BNX_MQ_KNL_WIND_END_VALUE                        (0xffffffL<<8)
 3173 
 3174 #define BNX_MQ_KNL_WRITE_MASK1                          0x00003c24
 3175 #define BNX_MQ_KNL_TX_MASK1                             0x00003c28
 3176 #define BNX_MQ_KNL_CMD_MASK1                            0x00003c2c
 3177 #define BNX_MQ_KNL_COND_ENQUEUE_MASK1                   0x00003c30
 3178 #define BNX_MQ_KNL_RX_V2P_MASK1                 0x00003c34
 3179 #define BNX_MQ_KNL_WRITE_MASK2                          0x00003c38
 3180 #define BNX_MQ_KNL_TX_MASK2                             0x00003c3c
 3181 #define BNX_MQ_KNL_CMD_MASK2                            0x00003c40
 3182 #define BNX_MQ_KNL_COND_ENQUEUE_MASK2                   0x00003c44
 3183 #define BNX_MQ_KNL_RX_V2P_MASK2                 0x00003c48
 3184 #define BNX_MQ_KNL_BYP_WRITE_MASK1                      0x00003c4c
 3185 #define BNX_MQ_KNL_BYP_TX_MASK1                 0x00003c50
 3186 #define BNX_MQ_KNL_BYP_CMD_MASK1                        0x00003c54
 3187 #define BNX_MQ_KNL_BYP_COND_ENQUEUE_MASK1               0x00003c58
 3188 #define BNX_MQ_KNL_BYP_RX_V2P_MASK1                     0x00003c5c
 3189 #define BNX_MQ_KNL_BYP_WRITE_MASK2                      0x00003c60
 3190 #define BNX_MQ_KNL_BYP_TX_MASK2                 0x00003c64
 3191 #define BNX_MQ_KNL_BYP_CMD_MASK2                        0x00003c68
 3192 #define BNX_MQ_KNL_BYP_COND_ENQUEUE_MASK2               0x00003c6c
 3193 #define BNX_MQ_KNL_BYP_RX_V2P_MASK2                     0x00003c70
 3194 #define BNX_MQ_MEM_WR_ADDR                              0x00003c74
 3195 #define BNX_MQ_MEM_WR_ADDR_VALUE                         (0x3fL<<0)
 3196 
 3197 #define BNX_MQ_MEM_WR_DATA0                             0x00003c78
 3198 #define BNX_MQ_MEM_WR_DATA0_VALUE                        (0xffffffffL<<0)
 3199 
 3200 #define BNX_MQ_MEM_WR_DATA1                             0x00003c7c
 3201 #define BNX_MQ_MEM_WR_DATA1_VALUE                        (0xffffffffL<<0)
 3202 
 3203 #define BNX_MQ_MEM_WR_DATA2                             0x00003c80
 3204 #define BNX_MQ_MEM_WR_DATA2_VALUE                        (0x3fffffffL<<0)
 3205 
 3206 #define BNX_MQ_MEM_RD_ADDR                              0x00003c84
 3207 #define BNX_MQ_MEM_RD_ADDR_VALUE                         (0x3fL<<0)
 3208 
 3209 #define BNX_MQ_MEM_RD_DATA0                             0x00003c88
 3210 #define BNX_MQ_MEM_RD_DATA0_VALUE                        (0xffffffffL<<0)
 3211 
 3212 #define BNX_MQ_MEM_RD_DATA1                             0x00003c8c
 3213 #define BNX_MQ_MEM_RD_DATA1_VALUE                        (0xffffffffL<<0)
 3214 
 3215 #define BNX_MQ_MEM_RD_DATA2                             0x00003c90
 3216 #define BNX_MQ_MEM_RD_DATA2_VALUE                        (0x3fffffffL<<0)
 3217 
 3218 
 3219 
 3220 /*
 3221  *  tbdr_reg definition
 3222  *  offset: 0x5000
 3223  */
 3224 #define BNX_TBDR_COMMAND                                0x00005000
 3225 #define BNX_TBDR_COMMAND_ENABLE                  (1L<<0)
 3226 #define BNX_TBDR_COMMAND_SOFT_RST                        (1L<<1)
 3227 #define BNX_TBDR_COMMAND_MSTR_ABORT                      (1L<<4)
 3228 
 3229 #define BNX_TBDR_STATUS                         0x00005004
 3230 #define BNX_TBDR_STATUS_DMA_WAIT                         (1L<<0)
 3231 #define BNX_TBDR_STATUS_FTQ_WAIT                         (1L<<1)
 3232 #define BNX_TBDR_STATUS_FIFO_OVERFLOW                    (1L<<2)
 3233 #define BNX_TBDR_STATUS_FIFO_UNDERFLOW                   (1L<<3)
 3234 #define BNX_TBDR_STATUS_SEARCHMISS_ERROR                 (1L<<4)
 3235 #define BNX_TBDR_STATUS_FTQ_ENTRY_CNT                    (1L<<5)
 3236 #define BNX_TBDR_STATUS_BURST_CNT                        (1L<<6)
 3237 
 3238 #define BNX_TBDR_CONFIG                         0x00005008
 3239 #define BNX_TBDR_CONFIG_MAX_BDS                  (0xffL<<0)
 3240 #define BNX_TBDR_CONFIG_SWAP_MODE                        (1L<<8)
 3241 #define BNX_TBDR_CONFIG_PRIORITY                         (1L<<9)
 3242 #define BNX_TBDR_CONFIG_CACHE_NEXT_PAGE_PTRS             (1L<<10)
 3243 #define BNX_TBDR_CONFIG_PAGE_SIZE                        (0xfL<<24)
 3244 #define BNX_TBDR_CONFIG_PAGE_SIZE_256                    (0L<<24)
 3245 #define BNX_TBDR_CONFIG_PAGE_SIZE_512                    (1L<<24)
 3246 #define BNX_TBDR_CONFIG_PAGE_SIZE_1K                     (2L<<24)
 3247 #define BNX_TBDR_CONFIG_PAGE_SIZE_2K                     (3L<<24)
 3248 #define BNX_TBDR_CONFIG_PAGE_SIZE_4K                     (4L<<24)
 3249 #define BNX_TBDR_CONFIG_PAGE_SIZE_8K                     (5L<<24)
 3250 #define BNX_TBDR_CONFIG_PAGE_SIZE_16K                    (6L<<24)
 3251 #define BNX_TBDR_CONFIG_PAGE_SIZE_32K                    (7L<<24)
 3252 #define BNX_TBDR_CONFIG_PAGE_SIZE_64K                    (8L<<24)
 3253 #define BNX_TBDR_CONFIG_PAGE_SIZE_128K                   (9L<<24)
 3254 #define BNX_TBDR_CONFIG_PAGE_SIZE_256K                   (10L<<24)
 3255 #define BNX_TBDR_CONFIG_PAGE_SIZE_512K                   (11L<<24)
 3256 #define BNX_TBDR_CONFIG_PAGE_SIZE_1M                     (12L<<24)
 3257 
 3258 #define BNX_TBDR_DEBUG_VECT_PEEK                        0x0000500c
 3259 #define BNX_TBDR_DEBUG_VECT_PEEK_1_VALUE                 (0x7ffL<<0)
 3260 #define BNX_TBDR_DEBUG_VECT_PEEK_1_PEEK_EN               (1L<<11)
 3261 #define BNX_TBDR_DEBUG_VECT_PEEK_1_SEL                   (0xfL<<12)
 3262 #define BNX_TBDR_DEBUG_VECT_PEEK_2_VALUE                 (0x7ffL<<16)
 3263 #define BNX_TBDR_DEBUG_VECT_PEEK_2_PEEK_EN               (1L<<27)
 3264 #define BNX_TBDR_DEBUG_VECT_PEEK_2_SEL                   (0xfL<<28)
 3265 
 3266 #define BNX_TBDR_FTQ_DATA                               0x000053c0
 3267 #define BNX_TBDR_FTQ_CMD                                0x000053f8
 3268 #define BNX_TBDR_FTQ_CMD_OFFSET                  (0x3ffL<<0)
 3269 #define BNX_TBDR_FTQ_CMD_WR_TOP                  (1L<<10)
 3270 #define BNX_TBDR_FTQ_CMD_WR_TOP_0                        (0L<<10)
 3271 #define BNX_TBDR_FTQ_CMD_WR_TOP_1                        (1L<<10)
 3272 #define BNX_TBDR_FTQ_CMD_SFT_RESET                       (1L<<25)
 3273 #define BNX_TBDR_FTQ_CMD_RD_DATA                         (1L<<26)
 3274 #define BNX_TBDR_FTQ_CMD_ADD_INTERVEN                    (1L<<27)
 3275 #define BNX_TBDR_FTQ_CMD_ADD_DATA                        (1L<<28)
 3276 #define BNX_TBDR_FTQ_CMD_INTERVENE_CLR                   (1L<<29)
 3277 #define BNX_TBDR_FTQ_CMD_POP                             (1L<<30)
 3278 #define BNX_TBDR_FTQ_CMD_BUSY                            (1L<<31)
 3279 
 3280 #define BNX_TBDR_FTQ_CTL                                0x000053fc
 3281 #define BNX_TBDR_FTQ_CTL_INTERVENE                       (1L<<0)
 3282 #define BNX_TBDR_FTQ_CTL_OVERFLOW                        (1L<<1)
 3283 #define BNX_TBDR_FTQ_CTL_FORCE_INTERVENE                 (1L<<2)
 3284 #define BNX_TBDR_FTQ_CTL_MAX_DEPTH                       (0x3ffL<<12)
 3285 #define BNX_TBDR_FTQ_CTL_CUR_DEPTH                       (0x3ffL<<22)
 3286 
 3287 
 3288 
 3289 /*
 3290  *  tdma_reg definition
 3291  *  offset: 0x5c00
 3292  */
 3293 #define BNX_TDMA_COMMAND                                0x00005c00
 3294 #define BNX_TDMA_COMMAND_ENABLED                         (1L<<0)
 3295 #define BNX_TDMA_COMMAND_MASTER_ABORT                    (1L<<4)
 3296 #define BNX_TDMA_COMMAND_BAD_L2_LENGTH_ABORT             (1L<<7)
 3297 
 3298 #define BNX_TDMA_STATUS                         0x00005c04
 3299 #define BNX_TDMA_STATUS_DMA_WAIT                         (1L<<0)
 3300 #define BNX_TDMA_STATUS_PAYLOAD_WAIT                     (1L<<1)
 3301 #define BNX_TDMA_STATUS_PATCH_FTQ_WAIT                   (1L<<2)
 3302 #define BNX_TDMA_STATUS_LOCK_WAIT                        (1L<<3)
 3303 #define BNX_TDMA_STATUS_FTQ_ENTRY_CNT                    (1L<<16)
 3304 #define BNX_TDMA_STATUS_BURST_CNT                        (1L<<17)
 3305 
 3306 #define BNX_TDMA_CONFIG                         0x00005c08
 3307 #define BNX_TDMA_CONFIG_ONE_DMA                  (1L<<0)
 3308 #define BNX_TDMA_CONFIG_ONE_RECORD                       (1L<<1)
 3309 #define BNX_TDMA_CONFIG_LIMIT_SZ                         (0xfL<<4)
 3310 #define BNX_TDMA_CONFIG_LIMIT_SZ_64                      (0L<<4)
 3311 #define BNX_TDMA_CONFIG_LIMIT_SZ_128                     (0x4L<<4)
 3312 #define BNX_TDMA_CONFIG_LIMIT_SZ_256                     (0x6L<<4)
 3313 #define BNX_TDMA_CONFIG_LIMIT_SZ_512                     (0x8L<<4)
 3314 #define BNX_TDMA_CONFIG_LINE_SZ                  (0xfL<<8)
 3315 #define BNX_TDMA_CONFIG_LINE_SZ_64                       (0L<<8)
 3316 #define BNX_TDMA_CONFIG_LINE_SZ_128                      (4L<<8)
 3317 #define BNX_TDMA_CONFIG_LINE_SZ_256                      (6L<<8)
 3318 #define BNX_TDMA_CONFIG_LINE_SZ_512                      (8L<<8)
 3319 #define BNX_TDMA_CONFIG_ALIGN_ENA                        (1L<<15)
 3320 #define BNX_TDMA_CONFIG_CHK_L2_BD                        (1L<<16)
 3321 #define BNX_TDMA_CONFIG_FIFO_CMP                         (0xfL<<20)
 3322 
 3323 #define BNX_TDMA_PAYLOAD_PROD                           0x00005c0c
 3324 #define BNX_TDMA_PAYLOAD_PROD_VALUE                      (0x1fffL<<3)
 3325 
 3326 #define BNX_TDMA_DBG_WATCHDOG                           0x00005c10
 3327 #define BNX_TDMA_DBG_TRIGGER                            0x00005c14
 3328 #define BNX_TDMA_DMAD_FSM                               0x00005c80
 3329 #define BNX_TDMA_DMAD_FSM_BD_INVLD                       (1L<<0)
 3330 #define BNX_TDMA_DMAD_FSM_PUSH                           (0xfL<<4)
 3331 #define BNX_TDMA_DMAD_FSM_ARB_TBDC                       (0x3L<<8)
 3332 #define BNX_TDMA_DMAD_FSM_ARB_CTX                        (1L<<12)
 3333 #define BNX_TDMA_DMAD_FSM_DR_INTF                        (1L<<16)
 3334 #define BNX_TDMA_DMAD_FSM_DMAD                           (0x7L<<20)
 3335 #define BNX_TDMA_DMAD_FSM_BD                             (0xfL<<24)
 3336 
 3337 #define BNX_TDMA_DMAD_STATUS                            0x00005c84
 3338 #define BNX_TDMA_DMAD_STATUS_RHOLD_PUSH_ENTRY            (0x3L<<0)
 3339 #define BNX_TDMA_DMAD_STATUS_RHOLD_DMAD_ENTRY            (0x3L<<4)
 3340 #define BNX_TDMA_DMAD_STATUS_RHOLD_BD_ENTRY              (0x3L<<8)
 3341 #define BNX_TDMA_DMAD_STATUS_IFTQ_ENUM                   (0xfL<<12)
 3342 
 3343 #define BNX_TDMA_DR_INTF_FSM                            0x00005c88
 3344 #define BNX_TDMA_DR_INTF_FSM_L2_COMP                     (0x3L<<0)
 3345 #define BNX_TDMA_DR_INTF_FSM_TPATQ                       (0x7L<<4)
 3346 #define BNX_TDMA_DR_INTF_FSM_TPBUF                       (0x3L<<8)
 3347 #define BNX_TDMA_DR_INTF_FSM_DR_BUF                      (0x7L<<12)
 3348 #define BNX_TDMA_DR_INTF_FSM_DMAD                        (0x7L<<16)
 3349 
 3350 #define BNX_TDMA_DR_INTF_STATUS                 0x00005c8c
 3351 #define BNX_TDMA_DR_INTF_STATUS_HOLE_PHASE               (0x7L<<0)
 3352 #define BNX_TDMA_DR_INTF_STATUS_DATA_AVAIL               (0x3L<<4)
 3353 #define BNX_TDMA_DR_INTF_STATUS_SHIFT_ADDR               (0x7L<<8)
 3354 #define BNX_TDMA_DR_INTF_STATUS_NXT_PNTR                 (0xfL<<12)
 3355 #define BNX_TDMA_DR_INTF_STATUS_BYTE_COUNT               (0x7L<<16)
 3356 
 3357 #define BNX_TDMA_FTQ_DATA                               0x00005fc0
 3358 #define BNX_TDMA_FTQ_CMD                                0x00005ff8
 3359 #define BNX_TDMA_FTQ_CMD_OFFSET                  (0x3ffL<<0)
 3360 #define BNX_TDMA_FTQ_CMD_WR_TOP                  (1L<<10)
 3361 #define BNX_TDMA_FTQ_CMD_WR_TOP_0                        (0L<<10)
 3362 #define BNX_TDMA_FTQ_CMD_WR_TOP_1                        (1L<<10)
 3363 #define BNX_TDMA_FTQ_CMD_SFT_RESET                       (1L<<25)
 3364 #define BNX_TDMA_FTQ_CMD_RD_DATA                         (1L<<26)
 3365 #define BNX_TDMA_FTQ_CMD_ADD_INTERVEN                    (1L<<27)
 3366 #define BNX_TDMA_FTQ_CMD_ADD_DATA                        (1L<<28)
 3367 #define BNX_TDMA_FTQ_CMD_INTERVENE_CLR                   (1L<<29)
 3368 #define BNX_TDMA_FTQ_CMD_POP                             (1L<<30)
 3369 #define BNX_TDMA_FTQ_CMD_BUSY                            (1L<<31)
 3370 
 3371 #define BNX_TDMA_FTQ_CTL                                0x00005ffc
 3372 #define BNX_TDMA_FTQ_CTL_INTERVENE                       (1L<<0)
 3373 #define BNX_TDMA_FTQ_CTL_OVERFLOW                        (1L<<1)
 3374 #define BNX_TDMA_FTQ_CTL_FORCE_INTERVENE                 (1L<<2)
 3375 #define BNX_TDMA_FTQ_CTL_MAX_DEPTH                       (0x3ffL<<12)
 3376 #define BNX_TDMA_FTQ_CTL_CUR_DEPTH                       (0x3ffL<<22)
 3377 
 3378 
 3379 
 3380 /*
 3381  *  hc_reg definition
 3382  *  offset: 0x6800
 3383  */
 3384 #define BNX_HC_COMMAND                                  0x00006800
 3385 #define BNX_HC_COMMAND_ENABLE                            (1L<<0)
 3386 #define BNX_HC_COMMAND_SKIP_ABORT                        (1L<<4)
 3387 #define BNX_HC_COMMAND_COAL_NOW                  (1L<<16)
 3388 #define BNX_HC_COMMAND_COAL_NOW_WO_INT                   (1L<<17)
 3389 #define BNX_HC_COMMAND_STATS_NOW                         (1L<<18)
 3390 #define BNX_HC_COMMAND_FORCE_INT                         (0x3L<<19)
 3391 #define BNX_HC_COMMAND_FORCE_INT_NULL                    (0L<<19)
 3392 #define BNX_HC_COMMAND_FORCE_INT_HIGH                    (1L<<19)
 3393 #define BNX_HC_COMMAND_FORCE_INT_LOW                     (2L<<19)
 3394 #define BNX_HC_COMMAND_FORCE_INT_FREE                    (3L<<19)
 3395 #define BNX_HC_COMMAND_CLR_STAT_NOW                      (1L<<21)
 3396 
 3397 #define BNX_HC_STATUS                                   0x00006804
 3398 #define BNX_HC_STATUS_MASTER_ABORT                       (1L<<0)
 3399 #define BNX_HC_STATUS_PARITY_ERROR_STATE                 (1L<<1)
 3400 #define BNX_HC_STATUS_PCI_CLK_CNT_STAT                   (1L<<16)
 3401 #define BNX_HC_STATUS_CORE_CLK_CNT_STAT          (1L<<17)
 3402 #define BNX_HC_STATUS_NUM_STATUS_BLOCKS_STAT             (1L<<18)
 3403 #define BNX_HC_STATUS_NUM_INT_GEN_STAT                   (1L<<19)
 3404 #define BNX_HC_STATUS_NUM_INT_MBOX_WR_STAT               (1L<<20)
 3405 #define BNX_HC_STATUS_CORE_CLKS_TO_HW_INTACK_STAT        (1L<<23)
 3406 #define BNX_HC_STATUS_CORE_CLKS_TO_SW_INTACK_STAT        (1L<<24)
 3407 #define BNX_HC_STATUS_CORE_CLKS_DURING_SW_INTACK_STAT    (1L<<25)
 3408 
 3409 #define BNX_HC_CONFIG                                   0x00006808
 3410 #define BNX_HC_CONFIG_COLLECT_STATS                      (1L<<0)
 3411 #define BNX_HC_CONFIG_RX_TMR_MODE                        (1L<<1)
 3412 #define BNX_HC_CONFIG_TX_TMR_MODE                        (1L<<2)
 3413 #define BNX_HC_CONFIG_COM_TMR_MODE                       (1L<<3)
 3414 #define BNX_HC_CONFIG_CMD_TMR_MODE                       (1L<<4)
 3415 #define BNX_HC_CONFIG_STATISTIC_PRIORITY                 (1L<<5)
 3416 #define BNX_HC_CONFIG_STATUS_PRIORITY                    (1L<<6)
 3417 #define BNX_HC_CONFIG_STAT_MEM_ADDR                      (0xffL<<8)
 3418 
 3419 #define BNX_HC_ATTN_BITS_ENABLE                 0x0000680c
 3420 #define BNX_HC_STATUS_ADDR_L                            0x00006810
 3421 #define BNX_HC_STATUS_ADDR_H                            0x00006814
 3422 #define BNX_HC_STATISTICS_ADDR_L                        0x00006818
 3423 #define BNX_HC_STATISTICS_ADDR_H                        0x0000681c
 3424 #define BNX_HC_TX_QUICK_CONS_TRIP                       0x00006820
 3425 #define BNX_HC_TX_QUICK_CONS_TRIP_VALUE          (0xffL<<0)
 3426 #define BNX_HC_TX_QUICK_CONS_TRIP_INT                    (0xffL<<16)
 3427 
 3428 #define BNX_HC_COMP_PROD_TRIP                           0x00006824
 3429 #define BNX_HC_COMP_PROD_TRIP_VALUE                      (0xffL<<0)
 3430 #define BNX_HC_COMP_PROD_TRIP_INT                        (0xffL<<16)
 3431 
 3432 #define BNX_HC_RX_QUICK_CONS_TRIP                       0x00006828
 3433 #define BNX_HC_RX_QUICK_CONS_TRIP_VALUE          (0xffL<<0)
 3434 #define BNX_HC_RX_QUICK_CONS_TRIP_INT                    (0xffL<<16)
 3435 
 3436 #define BNX_HC_RX_TICKS                         0x0000682c
 3437 #define BNX_HC_RX_TICKS_VALUE                            (0x3ffL<<0)
 3438 #define BNX_HC_RX_TICKS_INT                              (0x3ffL<<16)
 3439 
 3440 #define BNX_HC_TX_TICKS                         0x00006830
 3441 #define BNX_HC_TX_TICKS_VALUE                            (0x3ffL<<0)
 3442 #define BNX_HC_TX_TICKS_INT                              (0x3ffL<<16)
 3443 
 3444 #define BNX_HC_COM_TICKS                                0x00006834
 3445 #define BNX_HC_COM_TICKS_VALUE                           (0x3ffL<<0)
 3446 #define BNX_HC_COM_TICKS_INT                             (0x3ffL<<16)
 3447 
 3448 #define BNX_HC_CMD_TICKS                                0x00006838
 3449 #define BNX_HC_CMD_TICKS_VALUE                           (0x3ffL<<0)
 3450 #define BNX_HC_CMD_TICKS_INT                             (0x3ffL<<16)
 3451 
 3452 #define BNX_HC_PERIODIC_TICKS                           0x0000683c
 3453 #define BNX_HC_PERIODIC_TICKS_HC_PERIODIC_TICKS  (0xffffL<<0)
 3454 
 3455 #define BNX_HC_STAT_COLLECT_TICKS                       0x00006840
 3456 #define BNX_HC_STAT_COLLECT_TICKS_HC_STAT_COLL_TICKS     (0xffL<<4)
 3457 
 3458 #define BNX_HC_STATS_TICKS                              0x00006844
 3459 #define BNX_HC_STATS_TICKS_HC_STAT_TICKS                 (0xffffL<<8)
 3460 
 3461 #define BNX_HC_STAT_MEM_DATA                            0x0000684c
 3462 #define BNX_HC_STAT_GEN_SEL_0                           0x00006850
 3463 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0          (0x7fL<<0)
 3464 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT0        (0L<<0)
 3465 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT1        (1L<<0)
 3466 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT2        (2L<<0)
 3467 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT3        (3L<<0)
 3468 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT4        (4L<<0)
 3469 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT5        (5L<<0)
 3470 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT6        (6L<<0)
 3471 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT7        (7L<<0)
 3472 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT8        (8L<<0)
 3473 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT9        (9L<<0)
 3474 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT10       (10L<<0)
 3475 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT11       (11L<<0)
 3476 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT0        (12L<<0)
 3477 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT1        (13L<<0)
 3478 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT2        (14L<<0)
 3479 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT3        (15L<<0)
 3480 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT4        (16L<<0)
 3481 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT5        (17L<<0)
 3482 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT6        (18L<<0)
 3483 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT7        (19L<<0)
 3484 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT0        (20L<<0)
 3485 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT1        (21L<<0)
 3486 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT2        (22L<<0)
 3487 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT3        (23L<<0)
 3488 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT4        (24L<<0)
 3489 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT5        (25L<<0)
 3490 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT6        (26L<<0)
 3491 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT7        (27L<<0)
 3492 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT8        (28L<<0)
 3493 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT9        (29L<<0)
 3494 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT10       (30L<<0)
 3495 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT11       (31L<<0)
 3496 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT0       (32L<<0)
 3497 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT1       (33L<<0)
 3498 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT2       (34L<<0)
 3499 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT3       (35L<<0)
 3500 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT0         (36L<<0)
 3501 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT1         (37L<<0)
 3502 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT2         (38L<<0)
 3503 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT3         (39L<<0)
 3504 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT4         (40L<<0)
 3505 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT5         (41L<<0)
 3506 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT6         (42L<<0)
 3507 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT7         (43L<<0)
 3508 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT0        (44L<<0)
 3509 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT1        (45L<<0)
 3510 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT2        (46L<<0)
 3511 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT3        (47L<<0)
 3512 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT4        (48L<<0)
 3513 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT5        (49L<<0)
 3514 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT6        (50L<<0)
 3515 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT7        (51L<<0)
 3516 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_PCI_CLK_CNT      (52L<<0)
 3517 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CORE_CLK_CNT     (53L<<0)
 3518 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS     (54L<<0)
 3519 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN   (55L<<0)
 3520 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR       (56L<<0)
 3521 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK        (59L<<0)
 3522 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK        (60L<<0)
 3523 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK    (61L<<0)
 3524 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCH_CMD_CNT     (62L<<0)
 3525 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCH_SLOT_CNT    (63L<<0)
 3526 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSCH_CMD_CNT     (64L<<0)
 3527 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSCH_SLOT_CNT    (65L<<0)
 3528 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RLUPQ_VALID_CNT  (66L<<0)
 3529 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPQ_VALID_CNT   (67L<<0)
 3530 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPCQ_VALID_CNT  (68L<<0)
 3531 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PPQ_VALID_CNT         (69L<<0)
 3532 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PMQ_VALID_CNT         (70L<<0)
 3533 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PTQ_VALID_CNT         (71L<<0)
 3534 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMAQ_VALID_CNT  (72L<<0)
 3535 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCHQ_VALID_CNT  (73L<<0)
 3536 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDRQ_VALID_CNT  (74L<<0)
 3537 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXPQ_VALID_CNT   (75L<<0)
 3538 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMAQ_VALID_CNT  (76L<<0)
 3539 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPATQ_VALID_CNT  (77L<<0)
 3540 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TASQ_VALID_CNT   (78L<<0)
 3541 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSQ_VALID_CNT    (79L<<0)
 3542 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CPQ_VALID_CNT    (80L<<0)
 3543 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMXQ_VALID_CNT  (81L<<0)
 3544 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMTQ_VALID_CNT  (82L<<0)
 3545 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMQ_VALID_CNT   (83L<<0)
 3546 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MGMQ_VALID_CNT   (84L<<0)
 3547 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_READ_TRANSFERS_CNT  (85L<<0)
 3548 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_READ_DELAY_PCI_CLKS_CNT     (86L<<0)
 3549 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_TRANSFERS_CNT      (87L<<0)
 3550 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_DELAY_PCI_CLKS_CNT         (88L<<0)
 3551 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_RETRY_AFTER_DATA_CNT       (89L<<0)
 3552 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_WRITE_TRANSFERS_CNT         (90L<<0)
 3553 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_WRITE_DELAY_PCI_CLKS_CNT    (91L<<0)
 3554 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_TRANSFERS_CNT     (92L<<0)
 3555 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_DELAY_PCI_CLKS_CNT        (93L<<0)
 3556 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_RETRY_AFTER_DATA_CNT      (94L<<0)
 3557 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_WR_CNT64     (95L<<0)
 3558 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_RD_CNT64     (96L<<0)
 3559 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_ACC_STALL_CLKS       (97L<<0)
 3560 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_LOCK_STALL_CLKS      (98L<<0)
 3561 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_CTX_ACCESS_STAT      (99L<<0)
 3562 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_CTX_ACCESS64_STAT    (100L<<0)
 3563 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_PCI_STALL_STAT       (101L<<0)
 3564 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDR_FTQ_ENTRY_CNT       (102L<<0)
 3565 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDR_BURST_CNT   (103L<<0)
 3566 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMA_FTQ_ENTRY_CNT       (104L<<0)
 3567 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMA_BURST_CNT   (105L<<0)
 3568 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMA_FTQ_ENTRY_CNT       (106L<<0)
 3569 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMA_BURST_CNT   (107L<<0)
 3570 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RLUP_MATCH_CNT   (108L<<0)
 3571 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_POLL_PASS_CNT        (109L<<0)
 3572 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR1_CNT     (110L<<0)
 3573 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR2_CNT     (111L<<0)
 3574 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR3_CNT     (112L<<0)
 3575 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR4_CNT     (113L<<0)
 3576 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR5_CNT     (114L<<0)
 3577 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT0       (115L<<0)
 3578 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT1       (116L<<0)
 3579 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT2       (117L<<0)
 3580 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT3       (118L<<0)
 3581 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT4       (119L<<0)
 3582 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT5       (120L<<0)
 3583 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_PROC1_MISS  (121L<<0)
 3584 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_PROC2_MISS  (122L<<0)
 3585 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_BURST_CNT   (127L<<0)
 3586 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_1          (0x7fL<<8)
 3587 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_2          (0x7fL<<16)
 3588 #define BNX_HC_STAT_GEN_SEL_0_GEN_SEL_3          (0x7fL<<24)
 3589 
 3590 #define BNX_HC_STAT_GEN_SEL_1                           0x00006854
 3591 #define BNX_HC_STAT_GEN_SEL_1_GEN_SEL_4          (0x7fL<<0)
 3592 #define BNX_HC_STAT_GEN_SEL_1_GEN_SEL_5          (0x7fL<<8)
 3593 #define BNX_HC_STAT_GEN_SEL_1_GEN_SEL_6          (0x7fL<<16)
 3594 #define BNX_HC_STAT_GEN_SEL_1_GEN_SEL_7          (0x7fL<<24)
 3595 
 3596 #define BNX_HC_STAT_GEN_SEL_2                           0x00006858
 3597 #define BNX_HC_STAT_GEN_SEL_2_GEN_SEL_8          (0x7fL<<0)
 3598 #define BNX_HC_STAT_GEN_SEL_2_GEN_SEL_9          (0x7fL<<8)
 3599 #define BNX_HC_STAT_GEN_SEL_2_GEN_SEL_10                 (0x7fL<<16)
 3600 #define BNX_HC_STAT_GEN_SEL_2_GEN_SEL_11                 (0x7fL<<24)
 3601 
 3602 #define BNX_HC_STAT_GEN_SEL_3                           0x0000685c
 3603 #define BNX_HC_STAT_GEN_SEL_3_GEN_SEL_12                 (0x7fL<<0)
 3604 #define BNX_HC_STAT_GEN_SEL_3_GEN_SEL_13                 (0x7fL<<8)
 3605 #define BNX_HC_STAT_GEN_SEL_3_GEN_SEL_14                 (0x7fL<<16)
 3606 #define BNX_HC_STAT_GEN_SEL_3_GEN_SEL_15                 (0x7fL<<24)
 3607 
 3608 #define BNX_HC_STAT_GEN_STAT0                           0x00006888
 3609 #define BNX_HC_STAT_GEN_STAT1                           0x0000688c
 3610 #define BNX_HC_STAT_GEN_STAT2                           0x00006890
 3611 #define BNX_HC_STAT_GEN_STAT3                           0x00006894
 3612 #define BNX_HC_STAT_GEN_STAT4                           0x00006898
 3613 #define BNX_HC_STAT_GEN_STAT5                           0x0000689c
 3614 #define BNX_HC_STAT_GEN_STAT6                           0x000068a0
 3615 #define BNX_HC_STAT_GEN_STAT7                           0x000068a4
 3616 #define BNX_HC_STAT_GEN_STAT8                           0x000068a8
 3617 #define BNX_HC_STAT_GEN_STAT9                           0x000068ac
 3618 #define BNX_HC_STAT_GEN_STAT10                          0x000068b0
 3619 #define BNX_HC_STAT_GEN_STAT11                          0x000068b4
 3620 #define BNX_HC_STAT_GEN_STAT12                          0x000068b8
 3621 #define BNX_HC_STAT_GEN_STAT13                          0x000068bc
 3622 #define BNX_HC_STAT_GEN_STAT14                          0x000068c0
 3623 #define BNX_HC_STAT_GEN_STAT15                          0x000068c4
 3624 #define BNX_HC_STAT_GEN_STAT_AC0                        0x000068c8
 3625 #define BNX_HC_STAT_GEN_STAT_AC1                        0x000068cc
 3626 #define BNX_HC_STAT_GEN_STAT_AC2                        0x000068d0
 3627 #define BNX_HC_STAT_GEN_STAT_AC3                        0x000068d4
 3628 #define BNX_HC_STAT_GEN_STAT_AC4                        0x000068d8
 3629 #define BNX_HC_STAT_GEN_STAT_AC5                        0x000068dc
 3630 #define BNX_HC_STAT_GEN_STAT_AC6                        0x000068e0
 3631 #define BNX_HC_STAT_GEN_STAT_AC7                        0x000068e4
 3632 #define BNX_HC_STAT_GEN_STAT_AC8                        0x000068e8
 3633 #define BNX_HC_STAT_GEN_STAT_AC9                        0x000068ec
 3634 #define BNX_HC_STAT_GEN_STAT_AC10                       0x000068f0
 3635 #define BNX_HC_STAT_GEN_STAT_AC11                       0x000068f4
 3636 #define BNX_HC_STAT_GEN_STAT_AC12                       0x000068f8
 3637 #define BNX_HC_STAT_GEN_STAT_AC13                       0x000068fc
 3638 #define BNX_HC_STAT_GEN_STAT_AC14                       0x00006900
 3639 #define BNX_HC_STAT_GEN_STAT_AC15                       0x00006904
 3640 #define BNX_HC_VIS                                      0x00006908
 3641 #define BNX_HC_VIS_STAT_BUILD_STATE                      (0xfL<<0)
 3642 #define BNX_HC_VIS_STAT_BUILD_STATE_IDLE                 (0L<<0)
 3643 #define BNX_HC_VIS_STAT_BUILD_STATE_START                (1L<<0)
 3644 #define BNX_HC_VIS_STAT_BUILD_STATE_REQUEST              (2L<<0)
 3645 #define BNX_HC_VIS_STAT_BUILD_STATE_UPDATE64             (3L<<0)
 3646 #define BNX_HC_VIS_STAT_BUILD_STATE_UPDATE32             (4L<<0)
 3647 #define BNX_HC_VIS_STAT_BUILD_STATE_UPDATE_DONE  (5L<<0)
 3648 #define BNX_HC_VIS_STAT_BUILD_STATE_DMA          (6L<<0)
 3649 #define BNX_HC_VIS_STAT_BUILD_STATE_MSI_CONTROL  (7L<<0)
 3650 #define BNX_HC_VIS_STAT_BUILD_STATE_MSI_LOW              (8L<<0)
 3651 #define BNX_HC_VIS_STAT_BUILD_STATE_MSI_HIGH             (9L<<0)
 3652 #define BNX_HC_VIS_STAT_BUILD_STATE_MSI_DATA             (10L<<0)
 3653 #define BNX_HC_VIS_DMA_STAT_STATE                        (0xfL<<8)
 3654 #define BNX_HC_VIS_DMA_STAT_STATE_IDLE                   (0L<<8)
 3655 #define BNX_HC_VIS_DMA_STAT_STATE_STATUS_PARAM           (1L<<8)
 3656 #define BNX_HC_VIS_DMA_STAT_STATE_STATUS_DMA             (2L<<8)
 3657 #define BNX_HC_VIS_DMA_STAT_STATE_WRITE_COMP             (3L<<8)
 3658 #define BNX_HC_VIS_DMA_STAT_STATE_COMP                   (4L<<8)
 3659 #define BNX_HC_VIS_DMA_STAT_STATE_STATISTIC_PARAM        (5L<<8)
 3660 #define BNX_HC_VIS_DMA_STAT_STATE_STATISTIC_DMA  (6L<<8)
 3661 #define BNX_HC_VIS_DMA_STAT_STATE_WRITE_COMP_1           (7L<<8)
 3662 #define BNX_HC_VIS_DMA_STAT_STATE_WRITE_COMP_2           (8L<<8)
 3663 #define BNX_HC_VIS_DMA_STAT_STATE_WAIT                   (9L<<8)
 3664 #define BNX_HC_VIS_DMA_STAT_STATE_ABORT          (15L<<8)
 3665 #define BNX_HC_VIS_DMA_MSI_STATE                         (0x7L<<12)
 3666 #define BNX_HC_VIS_STATISTIC_DMA_EN_STATE                (0x3L<<15)
 3667 #define BNX_HC_VIS_STATISTIC_DMA_EN_STATE_IDLE           (0L<<15)
 3668 #define BNX_HC_VIS_STATISTIC_DMA_EN_STATE_COUNT  (1L<<15)
 3669 #define BNX_HC_VIS_STATISTIC_DMA_EN_STATE_START  (2L<<15)
 3670 
 3671 #define BNX_HC_VIS_1                                    0x0000690c
 3672 #define BNX_HC_VIS_1_HW_INTACK_STATE                     (1L<<4)
 3673 #define BNX_HC_VIS_1_HW_INTACK_STATE_IDLE                (0L<<4)
 3674 #define BNX_HC_VIS_1_HW_INTACK_STATE_COUNT               (1L<<4)
 3675 #define BNX_HC_VIS_1_SW_INTACK_STATE                     (1L<<5)
 3676 #define BNX_HC_VIS_1_SW_INTACK_STATE_IDLE                (0L<<5)
 3677 #define BNX_HC_VIS_1_SW_INTACK_STATE_COUNT               (1L<<5)
 3678 #define BNX_HC_VIS_1_DURING_SW_INTACK_STATE              (1L<<6)
 3679 #define BNX_HC_VIS_1_DURING_SW_INTACK_STATE_IDLE         (0L<<6)
 3680 #define BNX_HC_VIS_1_DURING_SW_INTACK_STATE_COUNT        (1L<<6)
 3681 #define BNX_HC_VIS_1_MAILBOX_COUNT_STATE                 (1L<<7)
 3682 #define BNX_HC_VIS_1_MAILBOX_COUNT_STATE_IDLE            (0L<<7)
 3683 #define BNX_HC_VIS_1_MAILBOX_COUNT_STATE_COUNT           (1L<<7)
 3684 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE                    (0xfL<<17)
 3685 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_IDLE               (0L<<17)
 3686 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_DMA                (1L<<17)
 3687 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_UPDATE             (2L<<17)
 3688 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_ASSIGN             (3L<<17)
 3689 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_WAIT               (4L<<17)
 3690 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_REG_UPDATE         (5L<<17)
 3691 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_REG_ASSIGN         (6L<<17)
 3692 #define BNX_HC_VIS_1_RAM_RD_ARB_STATE_REG_WAIT           (7L<<17)
 3693 #define BNX_HC_VIS_1_RAM_WR_ARB_STATE                    (0x3L<<21)
 3694 #define BNX_HC_VIS_1_RAM_WR_ARB_STATE_NORMAL             (0L<<21)
 3695 #define BNX_HC_VIS_1_RAM_WR_ARB_STATE_CLEAR              (1L<<21)
 3696 #define BNX_HC_VIS_1_INT_GEN_STATE                       (1L<<23)
 3697 #define BNX_HC_VIS_1_INT_GEN_STATE_DLE                   (0L<<23)
 3698 #define BNX_HC_VIS_1_INT_GEN_STATE_NTERRUPT              (1L<<23)
 3699 #define BNX_HC_VIS_1_STAT_CHAN_ID                        (0x7L<<24)
 3700 #define BNX_HC_VIS_1_INT_B                               (1L<<27)
 3701 
 3702 #define BNX_HC_DEBUG_VECT_PEEK                          0x00006910
 3703 #define BNX_HC_DEBUG_VECT_PEEK_1_VALUE                   (0x7ffL<<0)
 3704 #define BNX_HC_DEBUG_VECT_PEEK_1_PEEK_EN                 (1L<<11)
 3705 #define BNX_HC_DEBUG_VECT_PEEK_1_SEL                     (0xfL<<12)
 3706 #define BNX_HC_DEBUG_VECT_PEEK_2_VALUE                   (0x7ffL<<16)
 3707 #define BNX_HC_DEBUG_VECT_PEEK_2_PEEK_EN                 (1L<<27)
 3708 #define BNX_HC_DEBUG_VECT_PEEK_2_SEL                     (0xfL<<28)
 3709 
 3710 
 3711 
 3712 /*
 3713  *  txp_reg definition
 3714  *  offset: 0x40000
 3715  */
 3716 #define BNX_TXP_CPU_MODE                                0x00045000
 3717 #define BNX_TXP_CPU_MODE_LOCAL_RST                       (1L<<0)
 3718 #define BNX_TXP_CPU_MODE_STEP_ENA                        (1L<<1)
 3719 #define BNX_TXP_CPU_MODE_PAGE_0_DATA_ENA                 (1L<<2)
 3720 #define BNX_TXP_CPU_MODE_PAGE_0_INST_ENA                 (1L<<3)
 3721 #define BNX_TXP_CPU_MODE_MSG_BIT1                        (1L<<6)
 3722 #define BNX_TXP_CPU_MODE_INTERRUPT_ENA                   (1L<<7)
 3723 #define BNX_TXP_CPU_MODE_SOFT_HALT                       (1L<<10)
 3724 #define BNX_TXP_CPU_MODE_BAD_DATA_HALT_ENA               (1L<<11)
 3725 #define BNX_TXP_CPU_MODE_BAD_INST_HALT_ENA               (1L<<12)
 3726 #define BNX_TXP_CPU_MODE_FIO_ABORT_HALT_ENA              (1L<<13)
 3727 #define BNX_TXP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA         (1L<<15)
 3728 
 3729 #define BNX_TXP_CPU_STATE                               0x00045004
 3730 #define BNX_TXP_CPU_STATE_BREAKPOINT                     (1L<<0)
 3731 #define BNX_TXP_CPU_STATE_BAD_INST_HALTED                (1L<<2)
 3732 #define BNX_TXP_CPU_STATE_PAGE_0_DATA_HALTED             (1L<<3)
 3733 #define BNX_TXP_CPU_STATE_PAGE_0_INST_HALTED             (1L<<4)
 3734 #define BNX_TXP_CPU_STATE_BAD_DATA_ADDR_HALTED           (1L<<5)
 3735 #define BNX_TXP_CPU_STATE_BAD_pc_HALTED          (1L<<6)
 3736 #define BNX_TXP_CPU_STATE_ALIGN_HALTED                   (1L<<7)
 3737 #define BNX_TXP_CPU_STATE_FIO_ABORT_HALTED               (1L<<8)
 3738 #define BNX_TXP_CPU_STATE_SOFT_HALTED                    (1L<<10)
 3739 #define BNX_TXP_CPU_STATE_SPAD_UNDERFLOW                 (1L<<11)
 3740 #define BNX_TXP_CPU_STATE_INTERRRUPT                     (1L<<12)
 3741 #define BNX_TXP_CPU_STATE_DATA_ACCESS_STALL              (1L<<14)
 3742 #define BNX_TXP_CPU_STATE_INST_FETCH_STALL               (1L<<15)
 3743 #define BNX_TXP_CPU_STATE_BLOCKED_READ                   (1L<<31)
 3744 
 3745 #define BNX_TXP_CPU_EVENT_MASK                          0x00045008
 3746 #define BNX_TXP_CPU_EVENT_MASK_BREAKPOINT_MASK           (1L<<0)
 3747 #define BNX_TXP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK      (1L<<2)
 3748 #define BNX_TXP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK   (1L<<3)
 3749 #define BNX_TXP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK   (1L<<4)
 3750 #define BNX_TXP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK         (1L<<5)
 3751 #define BNX_TXP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK        (1L<<6)
 3752 #define BNX_TXP_CPU_EVENT_MASK_ALIGN_HALTED_MASK         (1L<<7)
 3753 #define BNX_TXP_CPU_EVENT_MASK_FIO_ABORT_MASK            (1L<<8)
 3754 #define BNX_TXP_CPU_EVENT_MASK_SOFT_HALTED_MASK  (1L<<10)
 3755 #define BNX_TXP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK       (1L<<11)
 3756 #define BNX_TXP_CPU_EVENT_MASK_INTERRUPT_MASK            (1L<<12)
 3757 
 3758 #define BNX_TXP_CPU_PROGRAM_COUNTER                     0x0004501c
 3759 #define BNX_TXP_CPU_INSTRUCTION                 0x00045020
 3760 #define BNX_TXP_CPU_DATA_ACCESS                 0x00045024
 3761 #define BNX_TXP_CPU_INTERRUPT_ENABLE                    0x00045028
 3762 #define BNX_TXP_CPU_INTERRUPT_VECTOR                    0x0004502c
 3763 #define BNX_TXP_CPU_INTERRUPT_SAVED_PC                  0x00045030
 3764 #define BNX_TXP_CPU_HW_BREAKPOINT                       0x00045034
 3765 #define BNX_TXP_CPU_HW_BREAKPOINT_DISABLE                (1L<<0)
 3766 #define BNX_TXP_CPU_HW_BREAKPOINT_ADDRESS                (0x3fffffffL<<2)
 3767 
 3768 #define BNX_TXP_CPU_DEBUG_VECT_PEEK                     0x00045038
 3769 #define BNX_TXP_CPU_DEBUG_VECT_PEEK_1_VALUE              (0x7ffL<<0)
 3770 #define BNX_TXP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN            (1L<<11)
 3771 #define BNX_TXP_CPU_DEBUG_VECT_PEEK_1_SEL                (0xfL<<12)
 3772 #define BNX_TXP_CPU_DEBUG_VECT_PEEK_2_VALUE              (0x7ffL<<16)
 3773 #define BNX_TXP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN            (1L<<27)
 3774 #define BNX_TXP_CPU_DEBUG_VECT_PEEK_2_SEL                (0xfL<<28)
 3775 
 3776 #define BNX_TXP_CPU_LAST_BRANCH_ADDR                    0x00045048
 3777 #define BNX_TXP_CPU_LAST_BRANCH_ADDR_TYPE                (1L<<1)
 3778 #define BNX_TXP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP           (0L<<1)
 3779 #define BNX_TXP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH         (1L<<1)
 3780 #define BNX_TXP_CPU_LAST_BRANCH_ADDR_LBA                 (0x3fffffffL<<2)
 3781 
 3782 #define BNX_TXP_CPU_REG_FILE                            0x00045200
 3783 #define BNX_TXP_FTQ_DATA                                0x000453c0
 3784 #define BNX_TXP_FTQ_CMD                         0x000453f8
 3785 #define BNX_TXP_FTQ_CMD_OFFSET                           (0x3ffL<<0)
 3786 #define BNX_TXP_FTQ_CMD_WR_TOP                           (1L<<10)
 3787 #define BNX_TXP_FTQ_CMD_WR_TOP_0                         (0L<<10)
 3788 #define BNX_TXP_FTQ_CMD_WR_TOP_1                         (1L<<10)
 3789 #define BNX_TXP_FTQ_CMD_SFT_RESET                        (1L<<25)
 3790 #define BNX_TXP_FTQ_CMD_RD_DATA                  (1L<<26)
 3791 #define BNX_TXP_FTQ_CMD_ADD_INTERVEN                     (1L<<27)
 3792 #define BNX_TXP_FTQ_CMD_ADD_DATA                         (1L<<28)
 3793 #define BNX_TXP_FTQ_CMD_INTERVENE_CLR                    (1L<<29)
 3794 #define BNX_TXP_FTQ_CMD_POP                              (1L<<30)
 3795 #define BNX_TXP_FTQ_CMD_BUSY                             (1L<<31)
 3796 
 3797 #define BNX_TXP_FTQ_CTL                         0x000453fc
 3798 #define BNX_TXP_FTQ_CTL_INTERVENE                        (1L<<0)
 3799 #define BNX_TXP_FTQ_CTL_OVERFLOW                         (1L<<1)
 3800 #define BNX_TXP_FTQ_CTL_FORCE_INTERVENE          (1L<<2)
 3801 #define BNX_TXP_FTQ_CTL_MAX_DEPTH                        (0x3ffL<<12)
 3802 #define BNX_TXP_FTQ_CTL_CUR_DEPTH                        (0x3ffL<<22)
 3803 
 3804 #define BNX_TXP_SCRATCH                         0x00060000
 3805 
 3806 
 3807 /*
 3808  *  tpat_reg definition
 3809  *  offset: 0x80000
 3810  */
 3811 #define BNX_TPAT_CPU_MODE                               0x00085000
 3812 #define BNX_TPAT_CPU_MODE_LOCAL_RST                      (1L<<0)
 3813 #define BNX_TPAT_CPU_MODE_STEP_ENA                       (1L<<1)
 3814 #define BNX_TPAT_CPU_MODE_PAGE_0_DATA_ENA                (1L<<2)
 3815 #define BNX_TPAT_CPU_MODE_PAGE_0_INST_ENA                (1L<<3)
 3816 #define BNX_TPAT_CPU_MODE_MSG_BIT1                       (1L<<6)
 3817 #define BNX_TPAT_CPU_MODE_INTERRUPT_ENA          (1L<<7)
 3818 #define BNX_TPAT_CPU_MODE_SOFT_HALT                      (1L<<10)
 3819 #define BNX_TPAT_CPU_MODE_BAD_DATA_HALT_ENA              (1L<<11)
 3820 #define BNX_TPAT_CPU_MODE_BAD_INST_HALT_ENA              (1L<<12)
 3821 #define BNX_TPAT_CPU_MODE_FIO_ABORT_HALT_ENA             (1L<<13)
 3822 #define BNX_TPAT_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA        (1L<<15)
 3823 
 3824 #define BNX_TPAT_CPU_STATE                              0x00085004
 3825 #define BNX_TPAT_CPU_STATE_BREAKPOINT                    (1L<<0)
 3826 #define BNX_TPAT_CPU_STATE_BAD_INST_HALTED               (1L<<2)
 3827 #define BNX_TPAT_CPU_STATE_PAGE_0_DATA_HALTED            (1L<<3)
 3828 #define BNX_TPAT_CPU_STATE_PAGE_0_INST_HALTED            (1L<<4)
 3829 #define BNX_TPAT_CPU_STATE_BAD_DATA_ADDR_HALTED  (1L<<5)
 3830 #define BNX_TPAT_CPU_STATE_BAD_pc_HALTED                 (1L<<6)
 3831 #define BNX_TPAT_CPU_STATE_ALIGN_HALTED          (1L<<7)
 3832 #define BNX_TPAT_CPU_STATE_FIO_ABORT_HALTED              (1L<<8)
 3833 #define BNX_TPAT_CPU_STATE_SOFT_HALTED                   (1L<<10)
 3834 #define BNX_TPAT_CPU_STATE_SPAD_UNDERFLOW                (1L<<11)
 3835 #define BNX_TPAT_CPU_STATE_INTERRRUPT                    (1L<<12)
 3836 #define BNX_TPAT_CPU_STATE_DATA_ACCESS_STALL             (1L<<14)
 3837 #define BNX_TPAT_CPU_STATE_INST_FETCH_STALL              (1L<<15)
 3838 #define BNX_TPAT_CPU_STATE_BLOCKED_READ          (1L<<31)
 3839 
 3840 #define BNX_TPAT_CPU_EVENT_MASK                 0x00085008
 3841 #define BNX_TPAT_CPU_EVENT_MASK_BREAKPOINT_MASK  (1L<<0)
 3842 #define BNX_TPAT_CPU_EVENT_MASK_BAD_INST_HALTED_MASK     (1L<<2)
 3843 #define BNX_TPAT_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK  (1L<<3)
 3844 #define BNX_TPAT_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK  (1L<<4)
 3845 #define BNX_TPAT_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK        (1L<<5)
 3846 #define BNX_TPAT_CPU_EVENT_MASK_BAD_PC_HALTED_MASK       (1L<<6)
 3847 #define BNX_TPAT_CPU_EVENT_MASK_ALIGN_HALTED_MASK        (1L<<7)
 3848 #define BNX_TPAT_CPU_EVENT_MASK_FIO_ABORT_MASK           (1L<<8)
 3849 #define BNX_TPAT_CPU_EVENT_MASK_SOFT_HALTED_MASK         (1L<<10)
 3850 #define BNX_TPAT_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK      (1L<<11)
 3851 #define BNX_TPAT_CPU_EVENT_MASK_INTERRUPT_MASK           (1L<<12)
 3852 
 3853 #define BNX_TPAT_CPU_PROGRAM_COUNTER                    0x0008501c
 3854 #define BNX_TPAT_CPU_INSTRUCTION                        0x00085020
 3855 #define BNX_TPAT_CPU_DATA_ACCESS                        0x00085024
 3856 #define BNX_TPAT_CPU_INTERRUPT_ENABLE                   0x00085028
 3857 #define BNX_TPAT_CPU_INTERRUPT_VECTOR                   0x0008502c
 3858 #define BNX_TPAT_CPU_INTERRUPT_SAVED_PC         0x00085030
 3859 #define BNX_TPAT_CPU_HW_BREAKPOINT                      0x00085034
 3860 #define BNX_TPAT_CPU_HW_BREAKPOINT_DISABLE               (1L<<0)
 3861 #define BNX_TPAT_CPU_HW_BREAKPOINT_ADDRESS               (0x3fffffffL<<2)
 3862 
 3863 #define BNX_TPAT_CPU_DEBUG_VECT_PEEK                    0x00085038
 3864 #define BNX_TPAT_CPU_DEBUG_VECT_PEEK_1_VALUE             (0x7ffL<<0)
 3865 #define BNX_TPAT_CPU_DEBUG_VECT_PEEK_1_PEEK_EN           (1L<<11)
 3866 #define BNX_TPAT_CPU_DEBUG_VECT_PEEK_1_SEL               (0xfL<<12)
 3867 #define BNX_TPAT_CPU_DEBUG_VECT_PEEK_2_VALUE             (0x7ffL<<16)
 3868 #define BNX_TPAT_CPU_DEBUG_VECT_PEEK_2_PEEK_EN           (1L<<27)
 3869 #define BNX_TPAT_CPU_DEBUG_VECT_PEEK_2_SEL               (0xfL<<28)
 3870 
 3871 #define BNX_TPAT_CPU_LAST_BRANCH_ADDR                   0x00085048
 3872 #define BNX_TPAT_CPU_LAST_BRANCH_ADDR_TYPE               (1L<<1)
 3873 #define BNX_TPAT_CPU_LAST_BRANCH_ADDR_TYPE_JUMP  (0L<<1)
 3874 #define BNX_TPAT_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH        (1L<<1)
 3875 #define BNX_TPAT_CPU_LAST_BRANCH_ADDR_LBA                (0x3fffffffL<<2)
 3876 
 3877 #define BNX_TPAT_CPU_REG_FILE                           0x00085200
 3878 #define BNX_TPAT_FTQ_DATA                               0x000853c0
 3879 #define BNX_TPAT_FTQ_CMD                                0x000853f8
 3880 #define BNX_TPAT_FTQ_CMD_OFFSET                  (0x3ffL<<0)
 3881 #define BNX_TPAT_FTQ_CMD_WR_TOP                  (1L<<10)
 3882 #define BNX_TPAT_FTQ_CMD_WR_TOP_0                        (0L<<10)
 3883 #define BNX_TPAT_FTQ_CMD_WR_TOP_1                        (1L<<10)
 3884 #define BNX_TPAT_FTQ_CMD_SFT_RESET                       (1L<<25)
 3885 #define BNX_TPAT_FTQ_CMD_RD_DATA                         (1L<<26)
 3886 #define BNX_TPAT_FTQ_CMD_ADD_INTERVEN                    (1L<<27)
 3887 #define BNX_TPAT_FTQ_CMD_ADD_DATA                        (1L<<28)
 3888 #define BNX_TPAT_FTQ_CMD_INTERVENE_CLR                   (1L<<29)
 3889 #define BNX_TPAT_FTQ_CMD_POP                             (1L<<30)
 3890 #define BNX_TPAT_FTQ_CMD_BUSY                            (1L<<31)
 3891 
 3892 #define BNX_TPAT_FTQ_CTL                                0x000853fc
 3893 #define BNX_TPAT_FTQ_CTL_INTERVENE                       (1L<<0)
 3894 #define BNX_TPAT_FTQ_CTL_OVERFLOW                        (1L<<1)
 3895 #define BNX_TPAT_FTQ_CTL_FORCE_INTERVENE                 (1L<<2)
 3896 #define BNX_TPAT_FTQ_CTL_MAX_DEPTH                       (0x3ffL<<12)
 3897 #define BNX_TPAT_FTQ_CTL_CUR_DEPTH                       (0x3ffL<<22)
 3898 
 3899 #define BNX_TPAT_SCRATCH                                0x000a0000
 3900 
 3901 
 3902 /*
 3903  *  rxp_reg definition
 3904  *  offset: 0xc0000
 3905  */
 3906 #define BNX_RXP_CPU_MODE                                0x000c5000
 3907 #define BNX_RXP_CPU_MODE_LOCAL_RST                       (1L<<0)
 3908 #define BNX_RXP_CPU_MODE_STEP_ENA                        (1L<<1)
 3909 #define BNX_RXP_CPU_MODE_PAGE_0_DATA_ENA                 (1L<<2)
 3910 #define BNX_RXP_CPU_MODE_PAGE_0_INST_ENA                 (1L<<3)
 3911 #define BNX_RXP_CPU_MODE_MSG_BIT1                        (1L<<6)
 3912 #define BNX_RXP_CPU_MODE_INTERRUPT_ENA                   (1L<<7)
 3913 #define BNX_RXP_CPU_MODE_SOFT_HALT                       (1L<<10)
 3914 #define BNX_RXP_CPU_MODE_BAD_DATA_HALT_ENA               (1L<<11)
 3915 #define BNX_RXP_CPU_MODE_BAD_INST_HALT_ENA               (1L<<12)
 3916 #define BNX_RXP_CPU_MODE_FIO_ABORT_HALT_ENA              (1L<<13)
 3917 #define BNX_RXP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA         (1L<<15)
 3918 
 3919 #define BNX_RXP_CPU_STATE                               0x000c5004
 3920 #define BNX_RXP_CPU_STATE_BREAKPOINT                     (1L<<0)
 3921 #define BNX_RXP_CPU_STATE_BAD_INST_HALTED                (1L<<2)
 3922 #define BNX_RXP_CPU_STATE_PAGE_0_DATA_HALTED             (1L<<3)
 3923 #define BNX_RXP_CPU_STATE_PAGE_0_INST_HALTED             (1L<<4)
 3924 #define BNX_RXP_CPU_STATE_BAD_DATA_ADDR_HALTED           (1L<<5)
 3925 #define BNX_RXP_CPU_STATE_BAD_pc_HALTED          (1L<<6)
 3926 #define BNX_RXP_CPU_STATE_ALIGN_HALTED                   (1L<<7)
 3927 #define BNX_RXP_CPU_STATE_FIO_ABORT_HALTED               (1L<<8)
 3928 #define BNX_RXP_CPU_STATE_SOFT_HALTED                    (1L<<10)
 3929 #define BNX_RXP_CPU_STATE_SPAD_UNDERFLOW                 (1L<<11)
 3930 #define BNX_RXP_CPU_STATE_INTERRRUPT                     (1L<<12)
 3931 #define BNX_RXP_CPU_STATE_DATA_ACCESS_STALL              (1L<<14)
 3932 #define BNX_RXP_CPU_STATE_INST_FETCH_STALL               (1L<<15)
 3933 #define BNX_RXP_CPU_STATE_BLOCKED_READ                   (1L<<31)
 3934 
 3935 #define BNX_RXP_CPU_EVENT_MASK                          0x000c5008
 3936 #define BNX_RXP_CPU_EVENT_MASK_BREAKPOINT_MASK           (1L<<0)
 3937 #define BNX_RXP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK      (1L<<2)
 3938 #define BNX_RXP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK   (1L<<3)
 3939 #define BNX_RXP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK   (1L<<4)
 3940 #define BNX_RXP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK         (1L<<5)
 3941 #define BNX_RXP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK        (1L<<6)
 3942 #define BNX_RXP_CPU_EVENT_MASK_ALIGN_HALTED_MASK         (1L<<7)
 3943 #define BNX_RXP_CPU_EVENT_MASK_FIO_ABORT_MASK            (1L<<8)
 3944 #define BNX_RXP_CPU_EVENT_MASK_SOFT_HALTED_MASK  (1L<<10)
 3945 #define BNX_RXP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK       (1L<<11)
 3946 #define BNX_RXP_CPU_EVENT_MASK_INTERRUPT_MASK            (1L<<12)
 3947 
 3948 #define BNX_RXP_CPU_PROGRAM_COUNTER                     0x000c501c
 3949 #define BNX_RXP_CPU_INSTRUCTION                 0x000c5020
 3950 #define BNX_RXP_CPU_DATA_ACCESS                 0x000c5024
 3951 #define BNX_RXP_CPU_INTERRUPT_ENABLE                    0x000c5028
 3952 #define BNX_RXP_CPU_INTERRUPT_VECTOR                    0x000c502c
 3953 #define BNX_RXP_CPU_INTERRUPT_SAVED_PC                  0x000c5030
 3954 #define BNX_RXP_CPU_HW_BREAKPOINT                       0x000c5034
 3955 #define BNX_RXP_CPU_HW_BREAKPOINT_DISABLE                (1L<<0)
 3956 #define BNX_RXP_CPU_HW_BREAKPOINT_ADDRESS                (0x3fffffffL<<2)
 3957 
 3958 #define BNX_RXP_CPU_DEBUG_VECT_PEEK                     0x000c5038
 3959 #define BNX_RXP_CPU_DEBUG_VECT_PEEK_1_VALUE              (0x7ffL<<0)
 3960 #define BNX_RXP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN            (1L<<11)
 3961 #define BNX_RXP_CPU_DEBUG_VECT_PEEK_1_SEL                (0xfL<<12)
 3962 #define BNX_RXP_CPU_DEBUG_VECT_PEEK_2_VALUE              (0x7ffL<<16)
 3963 #define BNX_RXP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN            (1L<<27)
 3964 #define BNX_RXP_CPU_DEBUG_VECT_PEEK_2_SEL                (0xfL<<28)
 3965 
 3966 #define BNX_RXP_CPU_LAST_BRANCH_ADDR                    0x000c5048
 3967 #define BNX_RXP_CPU_LAST_BRANCH_ADDR_TYPE                (1L<<1)
 3968 #define BNX_RXP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP           (0L<<1)
 3969 #define BNX_RXP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH         (1L<<1)
 3970 #define BNX_RXP_CPU_LAST_BRANCH_ADDR_LBA                 (0x3fffffffL<<2)
 3971 
 3972 #define BNX_RXP_CPU_REG_FILE                            0x000c5200
 3973 #define BNX_RXP_CFTQ_DATA                               0x000c5380
 3974 #define BNX_RXP_CFTQ_CMD                                0x000c53b8
 3975 #define BNX_RXP_CFTQ_CMD_OFFSET                  (0x3ffL<<0)
 3976 #define BNX_RXP_CFTQ_CMD_WR_TOP                  (1L<<10)
 3977 #define BNX_RXP_CFTQ_CMD_WR_TOP_0                        (0L<<10)
 3978 #define BNX_RXP_CFTQ_CMD_WR_TOP_1                        (1L<<10)
 3979 #define BNX_RXP_CFTQ_CMD_SFT_RESET                       (1L<<25)
 3980 #define BNX_RXP_CFTQ_CMD_RD_DATA                         (1L<<26)
 3981 #define BNX_RXP_CFTQ_CMD_ADD_INTERVEN                    (1L<<27)
 3982 #define BNX_RXP_CFTQ_CMD_ADD_DATA                        (1L<<28)
 3983 #define BNX_RXP_CFTQ_CMD_INTERVENE_CLR                   (1L<<29)
 3984 #define BNX_RXP_CFTQ_CMD_POP                             (1L<<30)
 3985 #define BNX_RXP_CFTQ_CMD_BUSY                            (1L<<31)
 3986 
 3987 #define BNX_RXP_CFTQ_CTL                                0x000c53bc
 3988 #define BNX_RXP_CFTQ_CTL_INTERVENE                       (1L<<0)
 3989 #define BNX_RXP_CFTQ_CTL_OVERFLOW                        (1L<<1)
 3990 #define BNX_RXP_CFTQ_CTL_FORCE_INTERVENE                 (1L<<2)
 3991 #define BNX_RXP_CFTQ_CTL_MAX_DEPTH                       (0x3ffL<<12)
 3992 #define BNX_RXP_CFTQ_CTL_CUR_DEPTH                       (0x3ffL<<22)
 3993 
 3994 #define BNX_RXP_FTQ_DATA                                0x000c53c0
 3995 #define BNX_RXP_FTQ_CMD                         0x000c53f8
 3996 #define BNX_RXP_FTQ_CMD_OFFSET                           (0x3ffL<<0)
 3997 #define BNX_RXP_FTQ_CMD_WR_TOP                           (1L<<10)
 3998 #define BNX_RXP_FTQ_CMD_WR_TOP_0                         (0L<<10)
 3999 #define BNX_RXP_FTQ_CMD_WR_TOP_1                         (1L<<10)
 4000 #define BNX_RXP_FTQ_CMD_SFT_RESET                        (1L<<25)
 4001 #define BNX_RXP_FTQ_CMD_RD_DATA                  (1L<<26)
 4002 #define BNX_RXP_FTQ_CMD_ADD_INTERVEN                     (1L<<27)
 4003 #define BNX_RXP_FTQ_CMD_ADD_DATA                         (1L<<28)
 4004 #define BNX_RXP_FTQ_CMD_INTERVENE_CLR                    (1L<<29)
 4005 #define BNX_RXP_FTQ_CMD_POP                              (1L<<30)
 4006 #define BNX_RXP_FTQ_CMD_BUSY                             (1L<<31)
 4007 
 4008 #define BNX_RXP_FTQ_CTL                         0x000c53fc
 4009 #define BNX_RXP_FTQ_CTL_INTERVENE                        (1L<<0)
 4010 #define BNX_RXP_FTQ_CTL_OVERFLOW                         (1L<<1)
 4011 #define BNX_RXP_FTQ_CTL_FORCE_INTERVENE          (1L<<2)
 4012 #define BNX_RXP_FTQ_CTL_MAX_DEPTH                        (0x3ffL<<12)
 4013 #define BNX_RXP_FTQ_CTL_CUR_DEPTH                        (0x3ffL<<22)
 4014 
 4015 #define BNX_RXP_SCRATCH                         0x000e0000
 4016 
 4017 
 4018 /*
 4019  *  com_reg definition
 4020  *  offset: 0x100000
 4021  */
 4022 #define BNX_COM_CPU_MODE                                0x00105000
 4023 #define BNX_COM_CPU_MODE_LOCAL_RST                       (1L<<0)
 4024 #define BNX_COM_CPU_MODE_STEP_ENA                        (1L<<1)
 4025 #define BNX_COM_CPU_MODE_PAGE_0_DATA_ENA                 (1L<<2)
 4026 #define BNX_COM_CPU_MODE_PAGE_0_INST_ENA                 (1L<<3)
 4027 #define BNX_COM_CPU_MODE_MSG_BIT1                        (1L<<6)
 4028 #define BNX_COM_CPU_MODE_INTERRUPT_ENA                   (1L<<7)
 4029 #define BNX_COM_CPU_MODE_SOFT_HALT                       (1L<<10)
 4030 #define BNX_COM_CPU_MODE_BAD_DATA_HALT_ENA               (1L<<11)
 4031 #define BNX_COM_CPU_MODE_BAD_INST_HALT_ENA               (1L<<12)
 4032 #define BNX_COM_CPU_MODE_FIO_ABORT_HALT_ENA              (1L<<13)
 4033 #define BNX_COM_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA         (1L<<15)
 4034 
 4035 #define BNX_COM_CPU_STATE                               0x00105004
 4036 #define BNX_COM_CPU_STATE_BREAKPOINT                     (1L<<0)
 4037 #define BNX_COM_CPU_STATE_BAD_INST_HALTED                (1L<<2)
 4038 #define BNX_COM_CPU_STATE_PAGE_0_DATA_HALTED             (1L<<3)
 4039 #define BNX_COM_CPU_STATE_PAGE_0_INST_HALTED             (1L<<4)
 4040 #define BNX_COM_CPU_STATE_BAD_DATA_ADDR_HALTED           (1L<<5)
 4041 #define BNX_COM_CPU_STATE_BAD_pc_HALTED          (1L<<6)
 4042 #define BNX_COM_CPU_STATE_ALIGN_HALTED                   (1L<<7)
 4043 #define BNX_COM_CPU_STATE_FIO_ABORT_HALTED               (1L<<8)
 4044 #define BNX_COM_CPU_STATE_SOFT_HALTED                    (1L<<10)
 4045 #define BNX_COM_CPU_STATE_SPAD_UNDERFLOW                 (1L<<11)
 4046 #define BNX_COM_CPU_STATE_INTERRRUPT                     (1L<<12)
 4047 #define BNX_COM_CPU_STATE_DATA_ACCESS_STALL              (1L<<14)
 4048 #define BNX_COM_CPU_STATE_INST_FETCH_STALL               (1L<<15)
 4049 #define BNX_COM_CPU_STATE_BLOCKED_READ                   (1L<<31)
 4050 
 4051 #define BNX_COM_CPU_EVENT_MASK                          0x00105008
 4052 #define BNX_COM_CPU_EVENT_MASK_BREAKPOINT_MASK           (1L<<0)
 4053 #define BNX_COM_CPU_EVENT_MASK_BAD_INST_HALTED_MASK      (1L<<2)
 4054 #define BNX_COM_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK   (1L<<3)
 4055 #define BNX_COM_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK   (1L<<4)
 4056 #define BNX_COM_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK         (1L<<5)
 4057 #define BNX_COM_CPU_EVENT_MASK_BAD_PC_HALTED_MASK        (1L<<6)
 4058 #define BNX_COM_CPU_EVENT_MASK_ALIGN_HALTED_MASK         (1L<<7)
 4059 #define BNX_COM_CPU_EVENT_MASK_FIO_ABORT_MASK            (1L<<8)
 4060 #define BNX_COM_CPU_EVENT_MASK_SOFT_HALTED_MASK  (1L<<10)
 4061 #define BNX_COM_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK       (1L<<11)
 4062 #define BNX_COM_CPU_EVENT_MASK_INTERRUPT_MASK            (1L<<12)
 4063 
 4064 #define BNX_COM_CPU_PROGRAM_COUNTER                     0x0010501c
 4065 #define BNX_COM_CPU_INSTRUCTION                 0x00105020
 4066 #define BNX_COM_CPU_DATA_ACCESS                 0x00105024
 4067 #define BNX_COM_CPU_INTERRUPT_ENABLE                    0x00105028
 4068 #define BNX_COM_CPU_INTERRUPT_VECTOR                    0x0010502c
 4069 #define BNX_COM_CPU_INTERRUPT_SAVED_PC                  0x00105030
 4070 #define BNX_COM_CPU_HW_BREAKPOINT                       0x00105034
 4071 #define BNX_COM_CPU_HW_BREAKPOINT_DISABLE                (1L<<0)
 4072 #define BNX_COM_CPU_HW_BREAKPOINT_ADDRESS                (0x3fffffffL<<2)
 4073 
 4074 #define BNX_COM_CPU_DEBUG_VECT_PEEK                     0x00105038
 4075 #define BNX_COM_CPU_DEBUG_VECT_PEEK_1_VALUE              (0x7ffL<<0)
 4076 #define BNX_COM_CPU_DEBUG_VECT_PEEK_1_PEEK_EN            (1L<<11)
 4077 #define BNX_COM_CPU_DEBUG_VECT_PEEK_1_SEL                (0xfL<<12)
 4078 #define BNX_COM_CPU_DEBUG_VECT_PEEK_2_VALUE              (0x7ffL<<16)
 4079 #define BNX_COM_CPU_DEBUG_VECT_PEEK_2_PEEK_EN            (1L<<27)
 4080 #define BNX_COM_CPU_DEBUG_VECT_PEEK_2_SEL                (0xfL<<28)
 4081 
 4082 #define BNX_COM_CPU_LAST_BRANCH_ADDR                    0x00105048
 4083 #define BNX_COM_CPU_LAST_BRANCH_ADDR_TYPE                (1L<<1)
 4084 #define BNX_COM_CPU_LAST_BRANCH_ADDR_TYPE_JUMP           (0L<<1)
 4085 #define BNX_COM_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH         (1L<<1)
 4086 #define BNX_COM_CPU_LAST_BRANCH_ADDR_LBA                 (0x3fffffffL<<2)
 4087 
 4088 #define BNX_COM_CPU_REG_FILE                            0x00105200
 4089 #define BNX_COM_COMXQ_FTQ_DATA                          0x00105340
 4090 #define BNX_COM_COMXQ_FTQ_CMD                           0x00105378
 4091 #define BNX_COM_COMXQ_FTQ_CMD_OFFSET                     (0x3ffL<<0)
 4092 #define BNX_COM_COMXQ_FTQ_CMD_WR_TOP                     (1L<<10)
 4093 #define BNX_COM_COMXQ_FTQ_CMD_WR_TOP_0                   (0L<<10)
 4094 #define BNX_COM_COMXQ_FTQ_CMD_WR_TOP_1                   (1L<<10)
 4095 #define BNX_COM_COMXQ_FTQ_CMD_SFT_RESET          (1L<<25)
 4096 #define BNX_COM_COMXQ_FTQ_CMD_RD_DATA                    (1L<<26)
 4097 #define BNX_COM_COMXQ_FTQ_CMD_ADD_INTERVEN               (1L<<27)
 4098 #define BNX_COM_COMXQ_FTQ_CMD_ADD_DATA                   (1L<<28)
 4099 #define BNX_COM_COMXQ_FTQ_CMD_INTERVENE_CLR              (1L<<29)
 4100 #define BNX_COM_COMXQ_FTQ_CMD_POP                        (1L<<30)
 4101 #define BNX_COM_COMXQ_FTQ_CMD_BUSY                       (1L<<31)
 4102 
 4103 #define BNX_COM_COMXQ_FTQ_CTL                           0x0010537c
 4104 #define BNX_COM_COMXQ_FTQ_CTL_INTERVENE          (1L<<0)
 4105 #define BNX_COM_COMXQ_FTQ_CTL_OVERFLOW                   (1L<<1)
 4106 #define BNX_COM_COMXQ_FTQ_CTL_FORCE_INTERVENE            (1L<<2)
 4107 #define BNX_COM_COMXQ_FTQ_CTL_MAX_DEPTH          (0x3ffL<<12)
 4108 #define BNX_COM_COMXQ_FTQ_CTL_CUR_DEPTH          (0x3ffL<<22)
 4109 
 4110 #define BNX_COM_COMTQ_FTQ_DATA                          0x00105380
 4111 #define BNX_COM_COMTQ_FTQ_CMD                           0x001053b8
 4112 #define BNX_COM_COMTQ_FTQ_CMD_OFFSET                     (0x3ffL<<0)
 4113 #define BNX_COM_COMTQ_FTQ_CMD_WR_TOP                     (1L<<10)
 4114 #define BNX_COM_COMTQ_FTQ_CMD_WR_TOP_0                   (0L<<10)
 4115 #define BNX_COM_COMTQ_FTQ_CMD_WR_TOP_1                   (1L<<10)
 4116 #define BNX_COM_COMTQ_FTQ_CMD_SFT_RESET          (1L<<25)
 4117 #define BNX_COM_COMTQ_FTQ_CMD_RD_DATA                    (1L<<26)
 4118 #define BNX_COM_COMTQ_FTQ_CMD_ADD_INTERVEN               (1L<<27)
 4119 #define BNX_COM_COMTQ_FTQ_CMD_ADD_DATA                   (1L<<28)
 4120 #define BNX_COM_COMTQ_FTQ_CMD_INTERVENE_CLR              (1L<<29)
 4121 #define BNX_COM_COMTQ_FTQ_CMD_POP                        (1L<<30)
 4122 #define BNX_COM_COMTQ_FTQ_CMD_BUSY                       (1L<<31)
 4123 
 4124 #define BNX_COM_COMTQ_FTQ_CTL                           0x001053bc
 4125 #define BNX_COM_COMTQ_FTQ_CTL_INTERVENE          (1L<<0)
 4126 #define BNX_COM_COMTQ_FTQ_CTL_OVERFLOW                   (1L<<1)
 4127 #define BNX_COM_COMTQ_FTQ_CTL_FORCE_INTERVENE            (1L<<2)
 4128 #define BNX_COM_COMTQ_FTQ_CTL_MAX_DEPTH          (0x3ffL<<12)
 4129 #define BNX_COM_COMTQ_FTQ_CTL_CUR_DEPTH          (0x3ffL<<22)
 4130 
 4131 #define BNX_COM_COMQ_FTQ_DATA                           0x001053c0
 4132 #define BNX_COM_COMQ_FTQ_CMD                            0x001053f8
 4133 #define BNX_COM_COMQ_FTQ_CMD_OFFSET                      (0x3ffL<<0)
 4134 #define BNX_COM_COMQ_FTQ_CMD_WR_TOP                      (1L<<10)
 4135 #define BNX_COM_COMQ_FTQ_CMD_WR_TOP_0                    (0L<<10)
 4136 #define BNX_COM_COMQ_FTQ_CMD_WR_TOP_1                    (1L<<10)
 4137 #define BNX_COM_COMQ_FTQ_CMD_SFT_RESET                   (1L<<25)
 4138 #define BNX_COM_COMQ_FTQ_CMD_RD_DATA                     (1L<<26)
 4139 #define BNX_COM_COMQ_FTQ_CMD_ADD_INTERVEN                (1L<<27)
 4140 #define BNX_COM_COMQ_FTQ_CMD_ADD_DATA                    (1L<<28)
 4141 #define BNX_COM_COMQ_FTQ_CMD_INTERVENE_CLR               (1L<<29)
 4142 #define BNX_COM_COMQ_FTQ_CMD_POP                         (1L<<30)
 4143 #define BNX_COM_COMQ_FTQ_CMD_BUSY                        (1L<<31)
 4144 
 4145 #define BNX_COM_COMQ_FTQ_CTL                            0x001053fc
 4146 #define BNX_COM_COMQ_FTQ_CTL_INTERVENE                   (1L<<0)
 4147 #define BNX_COM_COMQ_FTQ_CTL_OVERFLOW                    (1L<<1)
 4148 #define BNX_COM_COMQ_FTQ_CTL_FORCE_INTERVENE             (1L<<2)
 4149 #define BNX_COM_COMQ_FTQ_CTL_MAX_DEPTH                   (0x3ffL<<12)
 4150 #define BNX_COM_COMQ_FTQ_CTL_CUR_DEPTH                   (0x3ffL<<22)
 4151 
 4152 #define BNX_COM_SCRATCH                         0x00120000
 4153 
 4154 
 4155 /*
 4156  *  cp_reg definition
 4157  *  offset: 0x180000
 4158  */
 4159 #define BNX_CP_CPU_MODE                         0x00185000
 4160 #define BNX_CP_CPU_MODE_LOCAL_RST                        (1L<<0)
 4161 #define BNX_CP_CPU_MODE_STEP_ENA                         (1L<<1)
 4162 #define BNX_CP_CPU_MODE_PAGE_0_DATA_ENA          (1L<<2)
 4163 #define BNX_CP_CPU_MODE_PAGE_0_INST_ENA          (1L<<3)
 4164 #define BNX_CP_CPU_MODE_MSG_BIT1                         (1L<<6)
 4165 #define BNX_CP_CPU_MODE_INTERRUPT_ENA                    (1L<<7)
 4166 #define BNX_CP_CPU_MODE_SOFT_HALT                        (1L<<10)
 4167 #define BNX_CP_CPU_MODE_BAD_DATA_HALT_ENA                (1L<<11)
 4168 #define BNX_CP_CPU_MODE_BAD_INST_HALT_ENA                (1L<<12)
 4169 #define BNX_CP_CPU_MODE_FIO_ABORT_HALT_ENA               (1L<<13)
 4170 #define BNX_CP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA  (1L<<15)
 4171 
 4172 #define BNX_CP_CPU_STATE                                0x00185004
 4173 #define BNX_CP_CPU_STATE_BREAKPOINT                      (1L<<0)
 4174 #define BNX_CP_CPU_STATE_BAD_INST_HALTED                 (1L<<2)
 4175 #define BNX_CP_CPU_STATE_PAGE_0_DATA_HALTED              (1L<<3)
 4176 #define BNX_CP_CPU_STATE_PAGE_0_INST_HALTED              (1L<<4)
 4177 #define BNX_CP_CPU_STATE_BAD_DATA_ADDR_HALTED            (1L<<5)
 4178 #define BNX_CP_CPU_STATE_BAD_pc_HALTED                   (1L<<6)
 4179 #define BNX_CP_CPU_STATE_ALIGN_HALTED                    (1L<<7)
 4180 #define BNX_CP_CPU_STATE_FIO_ABORT_HALTED                (1L<<8)
 4181 #define BNX_CP_CPU_STATE_SOFT_HALTED                     (1L<<10)
 4182 #define BNX_CP_CPU_STATE_SPAD_UNDERFLOW          (1L<<11)
 4183 #define BNX_CP_CPU_STATE_INTERRRUPT                      (1L<<12)
 4184 #define BNX_CP_CPU_STATE_DATA_ACCESS_STALL               (1L<<14)
 4185 #define BNX_CP_CPU_STATE_INST_FETCH_STALL                (1L<<15)
 4186 #define BNX_CP_CPU_STATE_BLOCKED_READ                    (1L<<31)
 4187 
 4188 #define BNX_CP_CPU_EVENT_MASK                           0x00185008
 4189 #define BNX_CP_CPU_EVENT_MASK_BREAKPOINT_MASK            (1L<<0)
 4190 #define BNX_CP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK       (1L<<2)
 4191 #define BNX_CP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK    (1L<<3)
 4192 #define BNX_CP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK    (1L<<4)
 4193 #define BNX_CP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK  (1L<<5)
 4194 #define BNX_CP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK         (1L<<6)
 4195 #define BNX_CP_CPU_EVENT_MASK_ALIGN_HALTED_MASK  (1L<<7)
 4196 #define BNX_CP_CPU_EVENT_MASK_FIO_ABORT_MASK             (1L<<8)
 4197 #define BNX_CP_CPU_EVENT_MASK_SOFT_HALTED_MASK           (1L<<10)
 4198 #define BNX_CP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK        (1L<<11)
 4199 #define BNX_CP_CPU_EVENT_MASK_INTERRUPT_MASK             (1L<<12)
 4200 
 4201 #define BNX_CP_CPU_PROGRAM_COUNTER                      0x0018501c
 4202 #define BNX_CP_CPU_INSTRUCTION                          0x00185020
 4203 #define BNX_CP_CPU_DATA_ACCESS                          0x00185024
 4204 #define BNX_CP_CPU_INTERRUPT_ENABLE                     0x00185028
 4205 #define BNX_CP_CPU_INTERRUPT_VECTOR                     0x0018502c
 4206 #define BNX_CP_CPU_INTERRUPT_SAVED_PC                   0x00185030
 4207 #define BNX_CP_CPU_HW_BREAKPOINT                        0x00185034
 4208 #define BNX_CP_CPU_HW_BREAKPOINT_DISABLE                 (1L<<0)
 4209 #define BNX_CP_CPU_HW_BREAKPOINT_ADDRESS                 (0x3fffffffL<<2)
 4210 
 4211 #define BNX_CP_CPU_DEBUG_VECT_PEEK                      0x00185038
 4212 #define BNX_CP_CPU_DEBUG_VECT_PEEK_1_VALUE               (0x7ffL<<0)
 4213 #define BNX_CP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN             (1L<<11)
 4214 #define BNX_CP_CPU_DEBUG_VECT_PEEK_1_SEL                 (0xfL<<12)
 4215 #define BNX_CP_CPU_DEBUG_VECT_PEEK_2_VALUE               (0x7ffL<<16)
 4216 #define BNX_CP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN             (1L<<27)
 4217 #define BNX_CP_CPU_DEBUG_VECT_PEEK_2_SEL                 (0xfL<<28)
 4218 
 4219 #define BNX_CP_CPU_LAST_BRANCH_ADDR                     0x00185048
 4220 #define BNX_CP_CPU_LAST_BRANCH_ADDR_TYPE                 (1L<<1)
 4221 #define BNX_CP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP            (0L<<1)
 4222 #define BNX_CP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH  (1L<<1)
 4223 #define BNX_CP_CPU_LAST_BRANCH_ADDR_LBA          (0x3fffffffL<<2)
 4224 
 4225 #define BNX_CP_CPU_REG_FILE                             0x00185200
 4226 #define BNX_CP_CPQ_FTQ_DATA                             0x001853c0
 4227 #define BNX_CP_CPQ_FTQ_CMD                              0x001853f8
 4228 #define BNX_CP_CPQ_FTQ_CMD_OFFSET                        (0x3ffL<<0)
 4229 #define BNX_CP_CPQ_FTQ_CMD_WR_TOP                        (1L<<10)
 4230 #define BNX_CP_CPQ_FTQ_CMD_WR_TOP_0                      (0L<<10)
 4231 #define BNX_CP_CPQ_FTQ_CMD_WR_TOP_1                      (1L<<10)
 4232 #define BNX_CP_CPQ_FTQ_CMD_SFT_RESET                     (1L<<25)
 4233 #define BNX_CP_CPQ_FTQ_CMD_RD_DATA                       (1L<<26)
 4234 #define BNX_CP_CPQ_FTQ_CMD_ADD_INTERVEN          (1L<<27)
 4235 #define BNX_CP_CPQ_FTQ_CMD_ADD_DATA                      (1L<<28)
 4236 #define BNX_CP_CPQ_FTQ_CMD_INTERVENE_CLR                 (1L<<29)
 4237 #define BNX_CP_CPQ_FTQ_CMD_POP                           (1L<<30)
 4238 #define BNX_CP_CPQ_FTQ_CMD_BUSY                  (1L<<31)
 4239 
 4240 #define BNX_CP_CPQ_FTQ_CTL                              0x001853fc
 4241 #define BNX_CP_CPQ_FTQ_CTL_INTERVENE                     (1L<<0)
 4242 #define BNX_CP_CPQ_FTQ_CTL_OVERFLOW                      (1L<<1)
 4243 #define BNX_CP_CPQ_FTQ_CTL_FORCE_INTERVENE               (1L<<2)
 4244 #define BNX_CP_CPQ_FTQ_CTL_MAX_DEPTH                     (0x3ffL<<12)
 4245 #define BNX_CP_CPQ_FTQ_CTL_CUR_DEPTH                     (0x3ffL<<22)
 4246 
 4247 #define BNX_CP_SCRATCH                                  0x001a0000
 4248 
 4249 
 4250 /*
 4251  *  mcp_reg definition
 4252  *  offset: 0x140000
 4253  */
 4254 #define BNX_MCP_CPU_MODE                                0x00145000
 4255 #define BNX_MCP_CPU_MODE_LOCAL_RST                       (1L<<0)
 4256 #define BNX_MCP_CPU_MODE_STEP_ENA                        (1L<<1)
 4257 #define BNX_MCP_CPU_MODE_PAGE_0_DATA_ENA                 (1L<<2)
 4258 #define BNX_MCP_CPU_MODE_PAGE_0_INST_ENA                 (1L<<3)
 4259 #define BNX_MCP_CPU_MODE_MSG_BIT1                        (1L<<6)
 4260 #define BNX_MCP_CPU_MODE_INTERRUPT_ENA                   (1L<<7)
 4261 #define BNX_MCP_CPU_MODE_SOFT_HALT                       (1L<<10)
 4262 #define BNX_MCP_CPU_MODE_BAD_DATA_HALT_ENA               (1L<<11)
 4263 #define BNX_MCP_CPU_MODE_BAD_INST_HALT_ENA               (1L<<12)
 4264 #define BNX_MCP_CPU_MODE_FIO_ABORT_HALT_ENA              (1L<<13)
 4265 #define BNX_MCP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA         (1L<<15)
 4266 
 4267 #define BNX_MCP_CPU_STATE                               0x00145004
 4268 #define BNX_MCP_CPU_STATE_BREAKPOINT                     (1L<<0)
 4269 #define BNX_MCP_CPU_STATE_BAD_INST_HALTED                (1L<<2)
 4270 #define BNX_MCP_CPU_STATE_PAGE_0_DATA_HALTED             (1L<<3)
 4271 #define BNX_MCP_CPU_STATE_PAGE_0_INST_HALTED             (1L<<4)
 4272 #define BNX_MCP_CPU_STATE_BAD_DATA_ADDR_HALTED           (1L<<5)
 4273 #define BNX_MCP_CPU_STATE_BAD_pc_HALTED          (1L<<6)
 4274 #define BNX_MCP_CPU_STATE_ALIGN_HALTED                   (1L<<7)
 4275 #define BNX_MCP_CPU_STATE_FIO_ABORT_HALTED               (1L<<8)
 4276 #define BNX_MCP_CPU_STATE_SOFT_HALTED                    (1L<<10)
 4277 #define BNX_MCP_CPU_STATE_SPAD_UNDERFLOW                 (1L<<11)
 4278 #define BNX_MCP_CPU_STATE_INTERRRUPT                     (1L<<12)
 4279 #define BNX_MCP_CPU_STATE_DATA_ACCESS_STALL              (1L<<14)
 4280 #define BNX_MCP_CPU_STATE_INST_FETCH_STALL               (1L<<15)
 4281 #define BNX_MCP_CPU_STATE_BLOCKED_READ                   (1L<<31)
 4282 
 4283 #define BNX_MCP_CPU_EVENT_MASK                          0x00145008
 4284 #define BNX_MCP_CPU_EVENT_MASK_BREAKPOINT_MASK           (1L<<0)
 4285 #define BNX_MCP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK      (1L<<2)
 4286 #define BNX_MCP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK   (1L<<3)
 4287 #define BNX_MCP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK   (1L<<4)
 4288 #define BNX_MCP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK         (1L<<5)
 4289 #define BNX_MCP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK        (1L<<6)
 4290 #define BNX_MCP_CPU_EVENT_MASK_ALIGN_HALTED_MASK         (1L<<7)
 4291 #define BNX_MCP_CPU_EVENT_MASK_FIO_ABORT_MASK            (1L<<8)
 4292 #define BNX_MCP_CPU_EVENT_MASK_SOFT_HALTED_MASK  (1L<<10)
 4293 #define BNX_MCP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK       (1L<<11)
 4294 #define BNX_MCP_CPU_EVENT_MASK_INTERRUPT_MASK            (1L<<12)
 4295 
 4296 #define BNX_MCP_CPU_PROGRAM_COUNTER                     0x0014501c
 4297 #define BNX_MCP_CPU_INSTRUCTION                 0x00145020
 4298 #define BNX_MCP_CPU_DATA_ACCESS                 0x00145024
 4299 #define BNX_MCP_CPU_INTERRUPT_ENABLE                    0x00145028
 4300 #define BNX_MCP_CPU_INTERRUPT_VECTOR                    0x0014502c
 4301 #define BNX_MCP_CPU_INTERRUPT_SAVED_PC                  0x00145030
 4302 #define BNX_MCP_CPU_HW_BREAKPOINT                       0x00145034
 4303 #define BNX_MCP_CPU_HW_BREAKPOINT_DISABLE                (1L<<0)
 4304 #define BNX_MCP_CPU_HW_BREAKPOINT_ADDRESS                (0x3fffffffL<<2)
 4305 
 4306 #define BNX_MCP_CPU_DEBUG_VECT_PEEK                     0x00145038
 4307 #define BNX_MCP_CPU_DEBUG_VECT_PEEK_1_VALUE              (0x7ffL<<0)
 4308 #define BNX_MCP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN            (1L<<11)
 4309 #define BNX_MCP_CPU_DEBUG_VECT_PEEK_1_SEL                (0xfL<<12)
 4310 #define BNX_MCP_CPU_DEBUG_VECT_PEEK_2_VALUE              (0x7ffL<<16)
 4311 #define BNX_MCP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN            (1L<<27)
 4312 #define BNX_MCP_CPU_DEBUG_VECT_PEEK_2_SEL                (0xfL<<28)
 4313 
 4314 #define BNX_MCP_CPU_LAST_BRANCH_ADDR                    0x00145048
 4315 #define BNX_MCP_CPU_LAST_BRANCH_ADDR_TYPE                (1L<<1)
 4316 #define BNX_MCP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP           (0L<<1)
 4317 #define BNX_MCP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH         (1L<<1)
 4318 #define BNX_MCP_CPU_LAST_BRANCH_ADDR_LBA                 (0x3fffffffL<<2)
 4319 
 4320 #define BNX_MCP_CPU_REG_FILE                            0x00145200
 4321 #define BNX_MCP_MCPQ_FTQ_DATA                           0x001453c0
 4322 #define BNX_MCP_MCPQ_FTQ_CMD                            0x001453f8
 4323 #define BNX_MCP_MCPQ_FTQ_CMD_OFFSET                      (0x3ffL<<0)
 4324 #define BNX_MCP_MCPQ_FTQ_CMD_WR_TOP                      (1L<<10)
 4325 #define BNX_MCP_MCPQ_FTQ_CMD_WR_TOP_0                    (0L<<10)
 4326 #define BNX_MCP_MCPQ_FTQ_CMD_WR_TOP_1                    (1L<<10)
 4327 #define BNX_MCP_MCPQ_FTQ_CMD_SFT_RESET                   (1L<<25)
 4328 #define BNX_MCP_MCPQ_FTQ_CMD_RD_DATA                     (1L<<26)
 4329 #define BNX_MCP_MCPQ_FTQ_CMD_ADD_INTERVEN                (1L<<27)
 4330 #define BNX_MCP_MCPQ_FTQ_CMD_ADD_DATA                    (1L<<28)
 4331 #define BNX_MCP_MCPQ_FTQ_CMD_INTERVENE_CLR               (1L<<29)
 4332 #define BNX_MCP_MCPQ_FTQ_CMD_POP                         (1L<<30)
 4333 #define BNX_MCP_MCPQ_FTQ_CMD_BUSY                        (1L<<31)
 4334 
 4335 #define BNX_MCP_MCPQ_FTQ_CTL                            0x001453fc
 4336 #define BNX_MCP_MCPQ_FTQ_CTL_INTERVENE                   (1L<<0)
 4337 #define BNX_MCP_MCPQ_FTQ_CTL_OVERFLOW                    (1L<<1)
 4338 #define BNX_MCP_MCPQ_FTQ_CTL_FORCE_INTERVENE             (1L<<2)
 4339 #define BNX_MCP_MCPQ_FTQ_CTL_MAX_DEPTH                   (0x3ffL<<12)
 4340 #define BNX_MCP_MCPQ_FTQ_CTL_CUR_DEPTH                   (0x3ffL<<22)
 4341 
 4342 #define BNX_MCP_ROM                                                             0x00150000
 4343 #define BNX_MCP_SCRATCH                                                 0x00160000
 4344 
 4345 #define BNX_SHM_HDR_SIGNATURE                                   BNX_MCP_SCRATCH
 4346 #define BNX_SHM_HDR_SIGNATURE_SIG_MASK                  0xffff0000
 4347 #define BNX_SHM_HDR_SIGNATURE_SIG                               0x53530000
 4348 #define BNX_SHM_HDR_SIGNATURE_VER_MASK                  0x000000ff
 4349 #define BNX_SHM_HDR_SIGNATURE_VER_ONE                   0x00000001
 4350 
 4351 #define BNX_SHM_HDR_ADDR_0                              BNX_MCP_SCRATCH + 4
 4352 #define BNX_SHM_HDR_ADDR_1                              BNX_MCP_SCRATCH + 8
 4353 
 4354 /****************************************************************************/
 4355 /* End machine generated definitions.                                     */
 4356 /****************************************************************************/
 4357 
 4358 #define NUM_MC_HASH_REGISTERS   8
 4359 
 4360 
 4361 /* PHY_ID1: bits 31-16; PHY_ID2: bits 15-0.  */
 4362 #define PHY_BCM5706_PHY_ID                          0x00206160
 4363 
 4364 #define PHY_ID(id)                                  ((id) & 0xfffffff0)
 4365 #define PHY_REV_ID(id)                              ((id) & 0xf)
 4366 
 4367 /* 5708 Serdes PHY registers */
 4368 
 4369 #define BCM5708S_UP1                            0xb
 4370 
 4371 #define BCM5708S_UP1_2G5                        0x1
 4372 
 4373 #define BCM5708S_BLK_ADDR                       0x1f
 4374 
 4375 #define BCM5708S_BLK_ADDR_DIG                   0x0000
 4376 #define BCM5708S_BLK_ADDR_DIG3                  0x0002
 4377 #define BCM5708S_BLK_ADDR_TX_MISC               0x0005
 4378 
 4379 /* Digital Block */
 4380 #define BCM5708S_1000X_CTL1                     0x10
 4381 
 4382 #define BCM5708S_1000X_CTL1_FIBER_MODE          0x0001
 4383 #define BCM5708S_1000X_CTL1_AUTODET_EN          0x0010
 4384 
 4385 #define BCM5708S_1000X_CTL2                     0x11
 4386 
 4387 #define BCM5708S_1000X_CTL2_PLLEL_DET_EN        0x0001
 4388 
 4389 #define BCM5708S_1000X_STAT1                    0x14
 4390 
 4391 #define BCM5708S_1000X_STAT1_SGMII              0x0001
 4392 #define BCM5708S_1000X_STAT1_LINK               0x0002
 4393 #define BCM5708S_1000X_STAT1_FD                 0x0004
 4394 #define BCM5708S_1000X_STAT1_SPEED_MASK         0x0018
 4395 #define BCM5708S_1000X_STAT1_SPEED_10           0x0000
 4396 #define BCM5708S_1000X_STAT1_SPEED_100          0x0008
 4397 #define BCM5708S_1000X_STAT1_SPEED_1G           0x0010
 4398 #define BCM5708S_1000X_STAT1_SPEED_2G5          0x0018
 4399 #define BCM5708S_1000X_STAT1_TX_PAUSE           0x0020
 4400 #define BCM5708S_1000X_STAT1_RX_PAUSE           0x0040
 4401 
 4402 /* Digital3 Block */
 4403 #define BCM5708S_DIG_3_0                        0x10
 4404 
 4405 #define BCM5708S_DIG_3_0_USE_IEEE               0x0001
 4406 
 4407 /* Tx/Misc Block */
 4408 #define BCM5708S_TX_ACTL1                       0x15
 4409 
 4410 #define BCM5708S_TX_ACTL1_DRIVER_VCM            0x30
 4411 
 4412 #define BCM5708S_TX_ACTL3                       0x17
 4413 
 4414 #define RX_COPY_THRESH                  92
 4415 
 4416 #define DMA_READ_CHANS  5
 4417 #define DMA_WRITE_CHANS 3
 4418 
 4419 /* Use the natural page size of the host CPU. */
 4420 /* XXX: This has only been tested on amd64/i386 systems using 4KB pages. */
 4421 #define BCM_PAGE_BITS   PAGE_SHIFT      
 4422 #define BCM_PAGE_SIZE   PAGE_SIZE
 4423 
 4424 #define TX_PAGES        2
 4425 #define TOTAL_TX_BD_PER_PAGE  (BCM_PAGE_SIZE / sizeof(struct tx_bd))
 4426 #define USABLE_TX_BD_PER_PAGE (TOTAL_TX_BD_PER_PAGE - 1)
 4427 #define TOTAL_TX_BD (TOTAL_TX_BD_PER_PAGE * TX_PAGES)
 4428 #define USABLE_TX_BD (USABLE_TX_BD_PER_PAGE * TX_PAGES)
 4429 #define MAX_TX_BD (TOTAL_TX_BD - 1)
 4430 #define BNX_TX_SLACK_SPACE 16
 4431 
 4432 #define RX_PAGES        2
 4433 #define TOTAL_RX_BD_PER_PAGE  (BCM_PAGE_SIZE / sizeof(struct rx_bd))
 4434 #define USABLE_RX_BD_PER_PAGE (TOTAL_RX_BD_PER_PAGE - 1)
 4435 #define TOTAL_RX_BD (TOTAL_RX_BD_PER_PAGE * RX_PAGES)
 4436 #define USABLE_RX_BD (USABLE_RX_BD_PER_PAGE * RX_PAGES)
 4437 #define MAX_RX_BD (TOTAL_RX_BD - 1)
 4438 #define BNX_RX_SLACK_SPACE (MAX_RX_BD - 8)
 4439 
 4440 #define NEXT_TX_BD(x) (((x) & USABLE_TX_BD_PER_PAGE) == \
 4441                 (USABLE_TX_BD_PER_PAGE - 1)) ?                                          \
 4442                 (x) + 2 : (x) + 1
 4443 
 4444 #define TX_CHAIN_IDX(x) ((x) & MAX_TX_BD)
 4445 
 4446 #define TX_PAGE(x) (((x) & ~USABLE_TX_BD_PER_PAGE) >> 8)
 4447 #define TX_IDX(x) ((x) & USABLE_TX_BD_PER_PAGE)
 4448 
 4449 #define NEXT_RX_BD(x) (((x) & USABLE_RX_BD_PER_PAGE) == \
 4450                 (USABLE_RX_BD_PER_PAGE - 1)) ?                                  \
 4451                 (x) + 2 : (x) + 1
 4452 
 4453 #define RX_CHAIN_IDX(x) ((x) & MAX_RX_BD)
 4454 
 4455 #define RX_PAGE(x) (((x) & ~USABLE_RX_BD_PER_PAGE) >> 8)
 4456 #define RX_IDX(x) ((x) & USABLE_RX_BD_PER_PAGE)
 4457 
 4458 /* Context size. */
 4459 #define CTX_SHIFT                   7
 4460 #define CTX_SIZE                    (1 << CTX_SHIFT)
 4461 #define CTX_MASK                    (CTX_SIZE - 1)
 4462 #define GET_CID_ADDR(_cid)          ((_cid) << CTX_SHIFT)
 4463 #define GET_CID(_cid_addr)          ((_cid_addr) >> CTX_SHIFT)
 4464 
 4465 #define PHY_CTX_SHIFT               6
 4466 #define PHY_CTX_SIZE                (1 << PHY_CTX_SHIFT)
 4467 #define PHY_CTX_MASK                (PHY_CTX_SIZE - 1)
 4468 #define GET_PCID_ADDR(_pcid)        ((_pcid) << PHY_CTX_SHIFT)
 4469 #define GET_PCID(_pcid_addr)        ((_pcid_addr) >> PHY_CTX_SHIFT)
 4470 
 4471 #define MB_KERNEL_CTX_SHIFT         8
 4472 #define MB_KERNEL_CTX_SIZE          (1 << MB_KERNEL_CTX_SHIFT)
 4473 #define MB_KERNEL_CTX_MASK          (MB_KERNEL_CTX_SIZE - 1)
 4474 #define MB_GET_CID_ADDR(_cid)       (0x10000 + ((_cid) << MB_KERNEL_CTX_SHIFT))
 4475 
 4476 #define MAX_CID_CNT                 0x4000
 4477 #define MAX_CID_ADDR                (GET_CID_ADDR(MAX_CID_CNT))
 4478 #define INVALID_CID_ADDR            0xffffffff
 4479 
 4480 #define TX_CID          16
 4481 #define RX_CID          0
 4482 
 4483 #define MB_TX_CID_ADDR  MB_GET_CID_ADDR(TX_CID)
 4484 #define MB_RX_CID_ADDR  MB_GET_CID_ADDR(RX_CID)
 4485 
 4486 /****************************************************************************/
 4487 /* BNX Processor Firmwware Load Definitions                                 */
 4488 /****************************************************************************/
 4489 
 4490 struct cpu_reg {
 4491         u_int32_t mode;
 4492         u_int32_t mode_value_halt;
 4493         u_int32_t mode_value_sstep;
 4494 
 4495         u_int32_t state;
 4496         u_int32_t state_value_clear;
 4497 
 4498         u_int32_t gpr0;
 4499         u_int32_t evmask;
 4500         u_int32_t pc;
 4501         u_int32_t inst;
 4502         u_int32_t bp;
 4503 
 4504         u_int32_t spad_base;
 4505 
 4506         u_int32_t mips_view_base;
 4507 };
 4508 
 4509 struct fw_info {
 4510         u_int32_t ver_major;
 4511         u_int32_t ver_minor;
 4512         u_int32_t ver_fix;
 4513 
 4514         u_int32_t start_addr;
 4515 
 4516         /* Text section. */
 4517         u_int32_t text_addr;
 4518         u_int32_t text_len;
 4519         u_int32_t text_index;
 4520         u_int32_t *text;
 4521 
 4522         /* Data section. */
 4523         u_int32_t data_addr;
 4524         u_int32_t data_len;
 4525         u_int32_t data_index;
 4526         u_int32_t *data;
 4527 
 4528         /* SBSS section. */
 4529         u_int32_t sbss_addr;
 4530         u_int32_t sbss_len;
 4531         u_int32_t sbss_index;
 4532         u_int32_t *sbss;
 4533 
 4534         /* BSS section. */
 4535         u_int32_t bss_addr;
 4536         u_int32_t bss_len;
 4537         u_int32_t bss_index;
 4538         u_int32_t *bss;
 4539 
 4540         /* Read-only section. */
 4541         u_int32_t rodata_addr;
 4542         u_int32_t rodata_len;
 4543         u_int32_t rodata_index;
 4544         u_int32_t *rodata;
 4545 };
 4546 
 4547 #define RV2P_PROC1                              0
 4548 #define RV2P_PROC2                              1
 4549 
 4550 #define BNX_MIREG(x)    ((x & 0x1F) << 16)
 4551 #define BNX_MIPHY(x)    ((x & 0x1F) << 21)
 4552 #define BNX_PHY_TIMEOUT 50
 4553 
 4554 #define BNX_NVRAM_SIZE                                  0x200
 4555 #define BNX_NVRAM_MAGIC                                 0x669955aa
 4556 #define BNX_CRC32_RESIDUAL                              0xdebb20e3
 4557 
 4558 #define BNX_TX_TIMEOUT                                  5
 4559 
 4560 #define BNX_MAX_SEGMENTS                                8
 4561 #define BNX_DMA_ALIGN                                   8
 4562 #define BNX_DMA_BOUNDARY                                0
 4563 
 4564 #define BNX_MIN_MTU                                             60
 4565 #define BNX_MIN_ETHER_MTU                               64
 4566 
 4567 #define BNX_MAX_STD_MTU                                 1500
 4568 #define BNX_MAX_STD_ETHER_MTU                   1518
 4569 #define BNX_MAX_STD_ETHER_MTU_VLAN              1522
 4570 
 4571 #define BNX_MAX_JUMBO_MTU                               9000
 4572 #define BNX_MAX_JUMBO_ETHER_MTU                 9018
 4573 #define BNX_MAX_JUMBO_ETHER_MTU_VLAN    9022
 4574 
 4575 #define BNX_MAX_MRU                             MCLBYTES
 4576 #define BNX_MAX_JUMBO_MRU                       9216
 4577 
 4578 /****************************************************************************/
 4579 /* BNX Device State Data Structure                                          */
 4580 /****************************************************************************/
 4581 
 4582 #define BNX_STATUS_BLK_SZ               sizeof(struct status_block)
 4583 #define BNX_STATS_BLK_SZ                sizeof(struct statistics_block)
 4584 #define BNX_TX_CHAIN_PAGE_SZ    BCM_PAGE_SIZE
 4585 #define BNX_RX_CHAIN_PAGE_SZ    BCM_PAGE_SIZE
 4586 
 4587 struct bnx_softc
 4588 {
 4589         struct device                   bnx_dev;                        /* Parent device handle */
 4590         struct arpcom                   arpcom;
 4591 
 4592         struct pci_attach_args          bnx_pa;
 4593         pci_intr_handle_t               bnx_ih;
 4594 
 4595         struct ifmedia          bnx_ifmedia;            /* TBI media info */
 4596 
 4597         bus_space_tag_t         bnx_btag;                       /* Device bus tag */
 4598         bus_space_handle_t      bnx_bhandle;            /* Device bus handle */
 4599         bus_size_t              bnx_size;
 4600 
 4601         void                            *bnx_intrhand;          /* Interrupt handler */
 4602         void                            *bnx_powerhook;
 4603         void                            *bnx_shutdownhook;
 4604 
 4605         /* ASIC Chip ID. */
 4606         u_int32_t                                       bnx_chipid;
 4607 
 4608         /* General controller flags. */
 4609         u_int32_t                                       bnx_flags;
 4610 #define BNX_PCIX_FLAG                   0x01
 4611 #define BNX_PCI_32BIT_FLAG              0x02
 4612 #define BNX_ONE_TDMA_FLAG               0x04            /* Deprecated */
 4613 #define BNX_NO_WOL_FLAG                 0x08
 4614 #define BNX_USING_DAC_FLAG              0x10
 4615 #define BNX_USING_MSI_FLAG              0x20
 4616 #define BNX_MFW_ENABLE_FLAG             0x40
 4617 #define BNX_ACTIVE_FLAG                 0x80
 4618 
 4619         /* PHY specific flags. */
 4620         u_int32_t                                       bnx_phy_flags;
 4621 #define BNX_PHY_SERDES_FLAG                                     1
 4622 #define BNX_PHY_CRC_FIX_FLAG                            2
 4623 #define BNX_PHY_PARALLEL_DETECT_FLAG            4
 4624 #define BNX_PHY_2_5G_CAPABLE_FLAG                       8
 4625 #define BNX_PHY_INT_MODE_MASK_FLAG                      0x300
 4626 #define BNX_PHY_INT_MODE_AUTO_POLLING_FLAG      0x100
 4627 #define BNX_PHY_INT_MODE_LINK_READY_FLAG        0x200
 4628 
 4629         int                                     bnx_if_flags;
 4630 
 4631         u_int16_t                                       bus_speed_mhz;          /* PCI bus speed */
 4632         struct flash_spec       *bnx_flash_info;        /* Flash NVRAM settings */
 4633         u_int32_t                                       bnx_flash_size;         /* Flash NVRAM size */
 4634         u_int32_t                                       bnx_shmem_base;         /* Shared Memory base address */
 4635         char *                          bnx_name;                       /* Name string */
 4636 
 4637         /* Tracks the version of bootcode firmware. */
 4638         u_int32_t                                       bnx_fw_ver;
 4639 
 4640         /* Tracks the state of the firmware.  0 = Running while any     */
 4641         /* other value indicates that the firmware is not responding.   */
 4642         u_int16_t                                       bnx_fw_timed_out;
 4643 
 4644         /* An incrementing sequence used to coordinate messages passed   */
 4645         /* from the driver to the firmware.                              */
 4646         u_int16_t                                       bnx_fw_wr_seq;
 4647 
 4648         /* An incrementing sequence used to let the firmware know that   */
 4649         /* the driver is still operating.  Without the pulse, management */
 4650         /* firmware such as IPMI or UMP will operate in OS absent state. */
 4651         u_int16_t                                       bnx_fw_drv_pulse_wr_seq;
 4652 
 4653         /* Ethernet MAC address. */
 4654         u_char                          eaddr[6];
 4655 
 4656         /* These setting are used by the host coalescing (HC) block to   */
 4657         /* to control how often the status block, statistics block and   */
 4658         /* interrupts are generated.                                     */
 4659         u_int16_t                                       bnx_tx_quick_cons_trip_int;
 4660         u_int16_t                                       bnx_tx_quick_cons_trip;
 4661         u_int16_t                                       bnx_rx_quick_cons_trip_int;
 4662         u_int16_t                                       bnx_rx_quick_cons_trip;
 4663         u_int16_t                                       bnx_comp_prod_trip_int;
 4664         u_int16_t                                       bnx_comp_prod_trip;
 4665         u_int16_t                                       bnx_tx_ticks_int;
 4666         u_int16_t                                       bnx_tx_ticks;
 4667         u_int16_t                                       bnx_rx_ticks_int;
 4668         u_int16_t                                       bnx_rx_ticks;
 4669         u_int16_t                                       bnx_com_ticks_int;
 4670         u_int16_t                                       bnx_com_ticks;
 4671         u_int16_t                                       bnx_cmd_ticks_int;
 4672         u_int16_t                                       bnx_cmd_ticks;
 4673         u_int32_t                                       bnx_stats_ticks;
 4674 
 4675         /* The address of the integrated PHY on the MII bus. */
 4676         int                                     bnx_phy_addr;
 4677 
 4678         /* The device handle for the MII bus child device. */
 4679         struct mii_data                         bnx_mii;
 4680 
 4681         /* Driver maintained TX chain pointers and byte counter. */
 4682         u_int16_t                                       rx_prod;
 4683         u_int16_t                                       rx_cons;
 4684         u_int32_t                                       rx_prod_bseq;   /* Counts the bytes used.  */
 4685         u_int16_t                                       tx_prod;
 4686         u_int16_t                                       tx_cons;
 4687         u_int32_t                                       tx_prod_bseq;   /* Counts the bytes used.  */
 4688 
 4689         int                                     bnx_link;
 4690         struct timeout                          bnx_timeout;
 4691 
 4692         /* Frame size and mbuf allocation size for RX frames. */
 4693         u_int32_t                                       max_frame_size;
 4694         int                                     mbuf_alloc_size;
 4695 
 4696         /* Receive mode settings (i.e promiscuous, multicast, etc.). */
 4697         u_int32_t                                       rx_mode;
 4698 
 4699         /* Bus tag for the bnx controller. */
 4700         bus_dma_tag_t           bnx_dmatag;
 4701 
 4702         /* H/W maintained TX buffer descriptor chain structure. */
 4703         bus_dma_segment_t       tx_bd_chain_seg[TX_PAGES];
 4704         int                     tx_bd_chain_rseg[TX_PAGES];
 4705         bus_dmamap_t            tx_bd_chain_map[TX_PAGES];
 4706         struct tx_bd            *tx_bd_chain[TX_PAGES];
 4707         bus_addr_t                      tx_bd_chain_paddr[TX_PAGES];
 4708 
 4709         /* H/W maintained RX buffer descriptor chain structure. */
 4710         bus_dma_segment_t       rx_bd_chain_seg[TX_PAGES];
 4711         int                     rx_bd_chain_rseg[TX_PAGES];
 4712         bus_dmamap_t            rx_bd_chain_map[RX_PAGES];
 4713         struct rx_bd            *rx_bd_chain[RX_PAGES];
 4714         bus_addr_t                      rx_bd_chain_paddr[RX_PAGES];
 4715 
 4716         /* H/W maintained status block. */
 4717         bus_dma_segment_t       status_seg;
 4718         int                     status_rseg;
 4719         bus_dmamap_t            status_map;
 4720         struct status_block     *status_block;                          /* virtual address */
 4721         bus_addr_t                      status_block_paddr;                     /* Physical address */
 4722 
 4723         /* Driver maintained status block values. */
 4724         u_int16_t                                       last_status_idx;
 4725         u_int16_t                                       hw_rx_cons;
 4726         u_int16_t                                       hw_tx_cons;
 4727 
 4728         /* H/W maintained statistics block. */
 4729         bus_dma_segment_t       stats_seg;
 4730         int                     stats_rseg;
 4731         bus_dmamap_t            stats_map;
 4732         struct statistics_block *stats_block;           /* Virtual address */
 4733         bus_addr_t                      stats_block_paddr;              /* Physical address */
 4734 
 4735         /* Bus tag for RX/TX mbufs. */
 4736         bus_dma_segment_t       rx_mbuf_seg;
 4737         int                     rx_mbuf_rseg;
 4738         bus_dma_segment_t       tx_mbuf_seg;
 4739         int                     tx_mbuf_rseg;
 4740 
 4741         /* S/W maintained mbuf TX chain structure. */
 4742         bus_dmamap_t            tx_mbuf_map[TOTAL_TX_BD];
 4743         struct mbuf                     *tx_mbuf_ptr[TOTAL_TX_BD];
 4744 
 4745         /* S/W maintained mbuf RX chain structure. */
 4746         bus_dmamap_t            rx_mbuf_map[TOTAL_RX_BD];
 4747         struct mbuf                     *rx_mbuf_ptr[TOTAL_RX_BD];
 4748 
 4749         /* Track the number of rx_bd and tx_bd's in use. */
 4750         u_int16_t free_rx_bd;
 4751         u_int16_t used_tx_bd;
 4752 
 4753         /* Provides access to hardware statistics through sysctl. */
 4754         u_int64_t stat_IfHCInOctets;
 4755         u_int64_t stat_IfHCInBadOctets;
 4756         u_int64_t stat_IfHCOutOctets;
 4757         u_int64_t stat_IfHCOutBadOctets;
 4758         u_int64_t stat_IfHCInUcastPkts;
 4759         u_int64_t stat_IfHCInMulticastPkts;
 4760         u_int64_t stat_IfHCInBroadcastPkts;
 4761         u_int64_t stat_IfHCOutUcastPkts;
 4762         u_int64_t stat_IfHCOutMulticastPkts;
 4763         u_int64_t stat_IfHCOutBroadcastPkts;
 4764 
 4765         u_int32_t stat_emac_tx_stat_dot3statsinternalmactransmiterrors;
 4766         u_int32_t stat_Dot3StatsCarrierSenseErrors;
 4767         u_int32_t stat_Dot3StatsFCSErrors;
 4768         u_int32_t stat_Dot3StatsAlignmentErrors;
 4769         u_int32_t stat_Dot3StatsSingleCollisionFrames;
 4770         u_int32_t stat_Dot3StatsMultipleCollisionFrames;
 4771         u_int32_t stat_Dot3StatsDeferredTransmissions;
 4772         u_int32_t stat_Dot3StatsExcessiveCollisions;
 4773         u_int32_t stat_Dot3StatsLateCollisions;
 4774         u_int32_t stat_EtherStatsCollisions;
 4775         u_int32_t stat_EtherStatsFragments;
 4776         u_int32_t stat_EtherStatsJabbers;
 4777         u_int32_t stat_EtherStatsUndersizePkts;
 4778         u_int32_t stat_EtherStatsOverrsizePkts;
 4779         u_int32_t stat_EtherStatsPktsRx64Octets;
 4780         u_int32_t stat_EtherStatsPktsRx65Octetsto127Octets;
 4781         u_int32_t stat_EtherStatsPktsRx128Octetsto255Octets;
 4782         u_int32_t stat_EtherStatsPktsRx256Octetsto511Octets;
 4783         u_int32_t stat_EtherStatsPktsRx512Octetsto1023Octets;
 4784         u_int32_t stat_EtherStatsPktsRx1024Octetsto1522Octets;
 4785         u_int32_t stat_EtherStatsPktsRx1523Octetsto9022Octets;
 4786         u_int32_t stat_EtherStatsPktsTx64Octets;
 4787         u_int32_t stat_EtherStatsPktsTx65Octetsto127Octets;
 4788         u_int32_t stat_EtherStatsPktsTx128Octetsto255Octets;
 4789         u_int32_t stat_EtherStatsPktsTx256Octetsto511Octets;
 4790         u_int32_t stat_EtherStatsPktsTx512Octetsto1023Octets;
 4791         u_int32_t stat_EtherStatsPktsTx1024Octetsto1522Octets;
 4792         u_int32_t stat_EtherStatsPktsTx1523Octetsto9022Octets;
 4793         u_int32_t stat_XonPauseFramesReceived;
 4794         u_int32_t stat_XoffPauseFramesReceived;
 4795         u_int32_t stat_OutXonSent;
 4796         u_int32_t stat_OutXoffSent;
 4797         u_int32_t stat_FlowControlDone;
 4798         u_int32_t stat_MacControlFramesReceived;
 4799         u_int32_t stat_XoffStateEntered;
 4800         u_int32_t stat_IfInFramesL2FilterDiscards;
 4801         u_int32_t stat_IfInRuleCheckerDiscards;
 4802         u_int32_t stat_IfInFTQDiscards;
 4803         u_int32_t stat_IfInMBUFDiscards;
 4804         u_int32_t stat_IfInRuleCheckerP4Hit;
 4805         u_int32_t stat_CatchupInRuleCheckerDiscards;
 4806         u_int32_t stat_CatchupInFTQDiscards;
 4807         u_int32_t stat_CatchupInMBUFDiscards;
 4808         u_int32_t stat_CatchupInRuleCheckerP4Hit;
 4809 
 4810 #ifdef BNX_DEBUG
 4811         /* Track the number of enqueued mbufs. */
 4812         int     tx_mbuf_alloc;
 4813         int rx_mbuf_alloc;
 4814 
 4815         /* Track how many and what type of interrupts are generated. */
 4816         u_int32_t interrupts_generated;
 4817         u_int32_t interrupts_handled;
 4818         u_int32_t rx_interrupts;
 4819         u_int32_t tx_interrupts;
 4820 
 4821         u_int32_t       rx_low_watermark;                       /* Lowest number of rx_bd's free. */
 4822         u_int32_t tx_hi_watermark;                      /* Greatest number of tx_bd's used. */
 4823         u_int32_t       mbuf_alloc_failed;                      /* Mbuf allocation failure counter. */
 4824         u_int32_t l2fhdr_status_errors;
 4825         u_int32_t unexpected_attentions;
 4826         u_int32_t       lost_status_block_updates;
 4827 #endif
 4828 };
 4829 
 4830 #endif /* _KERNEL */
 4831 
 4832 struct bnx_firmware_header {
 4833         int             bnx_COM_b06FwReleaseMajor;
 4834         int             bnx_COM_b06FwReleaseMinor;
 4835         int             bnx_COM_b06FwReleaseFix;
 4836         u_int32_t       bnx_COM_b06FwStartAddr;
 4837         u_int32_t       bnx_COM_b06FwTextAddr;
 4838         int             bnx_COM_b06FwTextLen;
 4839         u_int32_t       bnx_COM_b06FwDataAddr;
 4840         int             bnx_COM_b06FwDataLen;
 4841         u_int32_t       bnx_COM_b06FwRodataAddr;
 4842         int             bnx_COM_b06FwRodataLen;
 4843         u_int32_t       bnx_COM_b06FwBssAddr;
 4844         int             bnx_COM_b06FwBssLen;
 4845         u_int32_t       bnx_COM_b06FwSbssAddr;
 4846         int             bnx_COM_b06FwSbssLen;
 4847 
 4848         int             bnx_RXP_b06FwReleaseMajor;
 4849         int             bnx_RXP_b06FwReleaseMinor;
 4850         int             bnx_RXP_b06FwReleaseFix;
 4851         u_int32_t       bnx_RXP_b06FwStartAddr;
 4852         u_int32_t       bnx_RXP_b06FwTextAddr;
 4853         int             bnx_RXP_b06FwTextLen;
 4854         u_int32_t       bnx_RXP_b06FwDataAddr;
 4855         int             bnx_RXP_b06FwDataLen;
 4856         u_int32_t       bnx_RXP_b06FwRodataAddr;
 4857         int             bnx_RXP_b06FwRodataLen;
 4858         u_int32_t       bnx_RXP_b06FwBssAddr;
 4859         int             bnx_RXP_b06FwBssLen;
 4860         u_int32_t       bnx_RXP_b06FwSbssAddr;
 4861         int             bnx_RXP_b06FwSbssLen;
 4862         
 4863         int             bnx_TPAT_b06FwReleaseMajor;
 4864         int             bnx_TPAT_b06FwReleaseMinor;
 4865         int             bnx_TPAT_b06FwReleaseFix;
 4866         u_int32_t       bnx_TPAT_b06FwStartAddr;
 4867         u_int32_t       bnx_TPAT_b06FwTextAddr;
 4868         int             bnx_TPAT_b06FwTextLen;
 4869         u_int32_t       bnx_TPAT_b06FwDataAddr;
 4870         int             bnx_TPAT_b06FwDataLen;
 4871         u_int32_t       bnx_TPAT_b06FwRodataAddr;
 4872         int             bnx_TPAT_b06FwRodataLen;
 4873         u_int32_t       bnx_TPAT_b06FwBssAddr;
 4874         int             bnx_TPAT_b06FwBssLen;
 4875         u_int32_t       bnx_TPAT_b06FwSbssAddr;
 4876         int             bnx_TPAT_b06FwSbssLen;
 4877 
 4878         int             bnx_TXP_b06FwReleaseMajor;
 4879         int             bnx_TXP_b06FwReleaseMinor;
 4880         int             bnx_TXP_b06FwReleaseFix;
 4881         u_int32_t       bnx_TXP_b06FwStartAddr;
 4882         u_int32_t       bnx_TXP_b06FwTextAddr;
 4883         int             bnx_TXP_b06FwTextLen;
 4884         u_int32_t       bnx_TXP_b06FwDataAddr;
 4885         int             bnx_TXP_b06FwDataLen;
 4886         u_int32_t       bnx_TXP_b06FwRodataAddr;
 4887         int             bnx_TXP_b06FwRodataLen;
 4888         u_int32_t       bnx_TXP_b06FwBssAddr;
 4889         int             bnx_TXP_b06FwBssLen;
 4890         u_int32_t       bnx_TXP_b06FwSbssAddr;
 4891         int             bnx_TXP_b06FwSbssLen;
 4892 
 4893         int             bnx_rv2p_proc1len;
 4894         int             bnx_rv2p_proc2len;
 4895 
 4896         /* Followed by blocks of data, each sized according to
 4897          * the (rather obvious) block length stated above.
 4898          *
 4899          * bnx_COM_b06FwText, bnx_COM_b06FwData, bnx_COM_b06FwRodata,
 4900          * bnx_COM_b06FwBss, bnx_COM_b06FwSbss,
 4901          * 
 4902          * bnx_RXP_b06FwText, bnx_RXP_b06FwData, bnx_RXP_b06FwRodata,
 4903          * bnx_RXP_b06FwBss, bnx_RXP_b06FwSbss,
 4904          * 
 4905          * bnx_TPAT_b06FwText, bnx_TPAT_b06FwData, bnx_TPAT_b06FwRodata,
 4906          * bnx_TPAT_b06FwBss, bnx_TPAT_b06FwSbss,
 4907          * 
 4908          * bnx_TXP_b06FwText, bnx_TXP_b06FwData, bnx_TXP_b06FwRodata,
 4909          * bnx_TXP_b06FwBss, bnx_TXP_b06FwSbss,
 4910          * 
 4911          * bnx_rv2p_proc1, bnx_rv2p_proc2
 4912          */
 4913 };
 4914 
 4915 #endif /* #ifndef _BNX_H_DEFINED */

/* [<][>][^][v][top][bottom][index][help] */