[BACK]Return to if_bnxreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / pci

Annotation of sys/dev/pci/if_bnxreg.h, Revision 1.1

1.1     ! nbrk        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 */

CVSweb