Annotation of qemu/roms/ipxe/src/drivers/net/bnx2.h, revision 1.1.1.1

1.1       root        1: /* bnx2.h: Broadcom NX2 network driver.
                      2:  *
                      3:  * Copyright (c) 2004, 2005, 2006 Broadcom Corporation
                      4:  *
                      5:  * This program is free software; you can redistribute it and/or modify
                      6:  * it under the terms of the GNU General Public License as published by
                      7:  * the Free Software Foundation.
                      8:  *
                      9:  * Written by: Michael Chan  ([email protected])
                     10:  */
                     11: 
                     12: FILE_LICENCE ( GPL_ANY );
                     13: 
                     14: #ifndef BNX2_H
                     15: #define BNX2_H
                     16: 
                     17: #define L1_CACHE_BYTES 128 /* Rough approximaition of the cache line size */
                     18: #define L1_CACHE_ALIGN(X) (((X) + L1_CACHE_BYTES-1)&~(L1_CACHE_BYTES -1))
                     19: 
                     20: typedef unsigned long dma_addr_t;
                     21: 
                     22: /* From pci.h */
                     23: typedef int pci_power_t;
                     24: 
                     25: #define PCI_D0          ((pci_power_t) 0)
                     26: #define PCI_D1          ((pci_power_t) 1)
                     27: #define PCI_D2          ((pci_power_t) 2)
                     28: #define PCI_D3hot       ((pci_power_t) 3)
                     29: #define PCI_D3cold      ((pci_power_t) 4)
                     30: #define PCI_UNKNOWN     ((pci_power_t) 5)
                     31: #define PCI_POWER_ERROR ((pci_power_t) -1)
                     32: 
                     33: /* From pci_regs.h */
                     34: 
                     35: #define  PCI_CAP_ID_PCIX       0x07    /* PCI-X */
                     36: #define  PCI_X_CMD             2       /* Modes & Features */
                     37: #define  PCI_X_CMD_ERO         0x0002  /* Enable Relaxed Ordering */
                     38: 
                     39: /* From mii.h */
                     40: 
                     41: /* Indicates what features are advertised by the interface. */
                     42: #define ADVERTISED_10baseT_Half                (1 << 0)
                     43: #define ADVERTISED_10baseT_Full                (1 << 1)
                     44: #define ADVERTISED_100baseT_Half       (1 << 2)
                     45: #define ADVERTISED_100baseT_Full       (1 << 3)
                     46: #define ADVERTISED_1000baseT_Half      (1 << 4)
                     47: #define ADVERTISED_1000baseT_Full      (1 << 5)
                     48: #define ADVERTISED_Autoneg             (1 << 6)
                     49: #define ADVERTISED_TP                  (1 << 7)
                     50: #define ADVERTISED_AUI                 (1 << 8)
                     51: #define ADVERTISED_MII                 (1 << 9)
                     52: #define ADVERTISED_FIBRE               (1 << 10)
                     53: #define ADVERTISED_BNC                 (1 << 11)
                     54: 
                     55: /* The following are all involved in forcing a particular link
                     56:  * mode for the device for setting things.  When getting the
                     57:  * devices settings, these indicate the current mode and whether
                     58:  * it was foced up into this mode or autonegotiated.
                     59:  */
                     60: 
                     61: /* Duplex, half or full. */
                     62: #define DUPLEX_HALF            0x00
                     63: #define DUPLEX_FULL            0x01
                     64: #define DUPLEX_INVALID          0x02
                     65: 
                     66: /* Which connector port. */
                     67: #define PORT_TP                        0x00
                     68: #define PORT_AUI               0x01
                     69: #define PORT_MII               0x02
                     70: #define PORT_FIBRE             0x03
                     71: #define PORT_BNC               0x04
                     72: 
                     73: /* Which tranceiver to use. */
                     74: #define XCVR_INTERNAL          0x00
                     75: #define XCVR_EXTERNAL          0x01
                     76: #define XCVR_DUMMY1            0x02
                     77: #define XCVR_DUMMY2            0x03
                     78: #define XCVR_DUMMY3            0x04
                     79: 
                     80: /* Enable or disable autonegotiation.  If this is set to enable,
                     81:  * the forced link modes above are completely ignored.
                     82:  */
                     83: #define AUTONEG_DISABLE                0x00
                     84: #define AUTONEG_ENABLE         0x01
                     85: 
                     86: /* Wake-On-Lan options. */
                     87: #define WAKE_PHY               (1 << 0)
                     88: #define WAKE_UCAST             (1 << 1)
                     89: #define WAKE_MCAST             (1 << 2)
                     90: #define WAKE_BCAST             (1 << 3)
                     91: #define WAKE_ARP               (1 << 4)
                     92: #define WAKE_MAGIC             (1 << 5)
                     93: #define WAKE_MAGICSECURE       (1 << 6) /* only meaningful if WAKE_MAGIC */
                     94: 
                     95: /* The following are all involved in forcing a particular link
                     96:  *  * mode for the device for setting things.  When getting the
                     97:  *   * devices settings, these indicate the current mode and whether
                     98:  *    * it was foced up into this mode or autonegotiated.
                     99:  *     */
                    100: 
                    101: /* The forced speed, 10Mb, 100Mb, gigabit. */
                    102: #define SPEED_10                10
                    103: #define SPEED_100               100
                    104: #define SPEED_1000              1000
                    105: #define SPEED_2500             2500
                    106: #define SPEED_INVALID           0 /* XXX was 3 */
                    107: 
                    108: 
                    109: /* Duplex, half or full. */
                    110: #define DUPLEX_HALF             0x00
                    111: #define DUPLEX_FULL             0x01
                    112: #define DUPLEX_INVALID          0x02
                    113: 
                    114: /* Which connector port. */
                    115: #define PORT_TP                 0x00
                    116: #define PORT_AUI                0x01
                    117: #define PORT_MII                0x02
                    118: #define PORT_FIBRE              0x03
                    119: #define PORT_BNC                0x04
                    120: 
                    121: /* Which tranceiver to use. */
                    122: #define XCVR_INTERNAL           0x00
                    123: #define XCVR_EXTERNAL           0x01
                    124: #define XCVR_DUMMY1             0x02
                    125: #define XCVR_DUMMY2             0x03
                    126: #define XCVR_DUMMY3             0x04
                    127: 
                    128: /* Enable or disable autonegotiation.  If this is set to enable,
                    129:  *  * the forced link modes above are completely ignored.
                    130:  *   */
                    131: #define AUTONEG_DISABLE         0x00
                    132: #define AUTONEG_ENABLE          0x01
                    133: 
                    134: /* Wake-On-Lan options. */
                    135: #define WAKE_PHY                (1 << 0)
                    136: #define WAKE_UCAST              (1 << 1)
                    137: #define WAKE_MCAST              (1 << 2)
                    138: #define WAKE_BCAST              (1 << 3)
                    139: #define WAKE_ARP                (1 << 4)
                    140: #define WAKE_MAGIC              (1 << 5)
                    141: #define WAKE_MAGICSECURE        (1 << 6) /* only meaningful if WAKE_MAGIC */
                    142: 
                    143: /* Hardware data structures and register definitions automatically
                    144:  * generated from RTL code. Do not modify.
                    145:  */
                    146: 
                    147: /*
                    148:  *  tx_bd definition
                    149:  */
                    150: struct tx_bd {
                    151:        u32 tx_bd_haddr_hi;
                    152:        u32 tx_bd_haddr_lo;                                   
                    153:        u32 tx_bd_mss_nbytes;                                     
                    154:        u32 tx_bd_vlan_tag_flags;                                      
                    155:                #define TX_BD_FLAGS_CONN_FAULT          (1<<0)
                    156:                #define TX_BD_FLAGS_TCP_UDP_CKSUM       (1<<1)
                    157:                #define TX_BD_FLAGS_IP_CKSUM            (1<<2)
                    158:                #define TX_BD_FLAGS_VLAN_TAG            (1<<3)
                    159:                #define TX_BD_FLAGS_COAL_NOW            (1<<4)
                    160:                #define TX_BD_FLAGS_DONT_GEN_CRC        (1<<5)
                    161:                #define TX_BD_FLAGS_END                 (1<<6)
                    162:                #define TX_BD_FLAGS_START               (1<<7)
                    163:                #define TX_BD_FLAGS_SW_OPTION_WORD      (0x1f<<8)
                    164:                #define TX_BD_FLAGS_SW_FLAGS            (1<<13)
                    165:                #define TX_BD_FLAGS_SW_SNAP             (1<<14)
                    166:                #define TX_BD_FLAGS_SW_LSO              (1<<15)
                    167: 
                    168: };
                    169: 
                    170: 
                    171: /*
                    172:  *  rx_bd definition
                    173:  */
                    174: struct rx_bd {
                    175:        u32 rx_bd_haddr_hi;
                    176:        u32 rx_bd_haddr_lo;
                    177:        u32 rx_bd_len;
                    178:        u32 rx_bd_flags;
                    179:                #define RX_BD_FLAGS_NOPUSH              (1<<0)
                    180:                #define RX_BD_FLAGS_DUMMY               (1<<1)
                    181:                #define RX_BD_FLAGS_END                 (1<<2)
                    182:                #define RX_BD_FLAGS_START               (1<<3)
                    183: 
                    184: };
                    185: 
                    186: 
                    187: /*
                    188:  *  status_block definition
                    189:  */
                    190: struct status_block {
                    191:        u32 status_attn_bits;
                    192:                #define STATUS_ATTN_BITS_LINK_STATE             (1L<<0)
                    193:                #define STATUS_ATTN_BITS_TX_SCHEDULER_ABORT     (1L<<1)
                    194:                #define STATUS_ATTN_BITS_TX_BD_READ_ABORT       (1L<<2)
                    195:                #define STATUS_ATTN_BITS_TX_BD_CACHE_ABORT      (1L<<3)
                    196:                #define STATUS_ATTN_BITS_TX_PROCESSOR_ABORT     (1L<<4)
                    197:                #define STATUS_ATTN_BITS_TX_DMA_ABORT           (1L<<5)
                    198:                #define STATUS_ATTN_BITS_TX_PATCHUP_ABORT       (1L<<6)
                    199:                #define STATUS_ATTN_BITS_TX_ASSEMBLER_ABORT     (1L<<7)
                    200:                #define STATUS_ATTN_BITS_RX_PARSER_MAC_ABORT    (1L<<8)
                    201:                #define STATUS_ATTN_BITS_RX_PARSER_CATCHUP_ABORT        (1L<<9)
                    202:                #define STATUS_ATTN_BITS_RX_MBUF_ABORT          (1L<<10)
                    203:                #define STATUS_ATTN_BITS_RX_LOOKUP_ABORT        (1L<<11)
                    204:                #define STATUS_ATTN_BITS_RX_PROCESSOR_ABORT     (1L<<12)
                    205:                #define STATUS_ATTN_BITS_RX_V2P_ABORT           (1L<<13)
                    206:                #define STATUS_ATTN_BITS_RX_BD_CACHE_ABORT      (1L<<14)
                    207:                #define STATUS_ATTN_BITS_RX_DMA_ABORT           (1L<<15)
                    208:                #define STATUS_ATTN_BITS_COMPLETION_ABORT       (1L<<16)
                    209:                #define STATUS_ATTN_BITS_HOST_COALESCE_ABORT    (1L<<17)
                    210:                #define STATUS_ATTN_BITS_MAILBOX_QUEUE_ABORT    (1L<<18)
                    211:                #define STATUS_ATTN_BITS_CONTEXT_ABORT          (1L<<19)
                    212:                #define STATUS_ATTN_BITS_CMD_SCHEDULER_ABORT    (1L<<20)
                    213:                #define STATUS_ATTN_BITS_CMD_PROCESSOR_ABORT    (1L<<21)
                    214:                #define STATUS_ATTN_BITS_MGMT_PROCESSOR_ABORT   (1L<<22)
                    215:                #define STATUS_ATTN_BITS_MAC_ABORT              (1L<<23)
                    216:                #define STATUS_ATTN_BITS_TIMER_ABORT            (1L<<24)
                    217:                #define STATUS_ATTN_BITS_DMAE_ABORT             (1L<<25)
                    218:                #define STATUS_ATTN_BITS_FLSH_ABORT             (1L<<26)
                    219:                #define STATUS_ATTN_BITS_GRC_ABORT              (1L<<27)
                    220:                #define STATUS_ATTN_BITS_PARITY_ERROR           (1L<<31)
                    221: 
                    222:        u32 status_attn_bits_ack;
                    223: #if __BYTE_ORDER == __BIG_ENDIAN
                    224:        u16 status_tx_quick_consumer_index0;
                    225:        u16 status_tx_quick_consumer_index1;
                    226:        u16 status_tx_quick_consumer_index2;
                    227:        u16 status_tx_quick_consumer_index3;
                    228:        u16 status_rx_quick_consumer_index0;
                    229:        u16 status_rx_quick_consumer_index1;
                    230:        u16 status_rx_quick_consumer_index2;
                    231:        u16 status_rx_quick_consumer_index3;
                    232:        u16 status_rx_quick_consumer_index4;
                    233:        u16 status_rx_quick_consumer_index5;
                    234:        u16 status_rx_quick_consumer_index6;
                    235:        u16 status_rx_quick_consumer_index7;
                    236:        u16 status_rx_quick_consumer_index8;
                    237:        u16 status_rx_quick_consumer_index9;
                    238:        u16 status_rx_quick_consumer_index10;
                    239:        u16 status_rx_quick_consumer_index11;
                    240:        u16 status_rx_quick_consumer_index12;
                    241:        u16 status_rx_quick_consumer_index13;
                    242:        u16 status_rx_quick_consumer_index14;
                    243:        u16 status_rx_quick_consumer_index15;
                    244:        u16 status_completion_producer_index;
                    245:        u16 status_cmd_consumer_index;
                    246:        u16 status_idx;
                    247:        u16 status_unused;
                    248: #elif __BYTE_ORDER == __LITTLE_ENDIAN
                    249:        u16 status_tx_quick_consumer_index1;
                    250:        u16 status_tx_quick_consumer_index0;
                    251:        u16 status_tx_quick_consumer_index3;
                    252:        u16 status_tx_quick_consumer_index2;
                    253:        u16 status_rx_quick_consumer_index1;
                    254:        u16 status_rx_quick_consumer_index0;
                    255:        u16 status_rx_quick_consumer_index3;
                    256:        u16 status_rx_quick_consumer_index2;
                    257:        u16 status_rx_quick_consumer_index5;
                    258:        u16 status_rx_quick_consumer_index4;
                    259:        u16 status_rx_quick_consumer_index7;
                    260:        u16 status_rx_quick_consumer_index6;
                    261:        u16 status_rx_quick_consumer_index9;
                    262:        u16 status_rx_quick_consumer_index8;
                    263:        u16 status_rx_quick_consumer_index11;
                    264:        u16 status_rx_quick_consumer_index10;
                    265:        u16 status_rx_quick_consumer_index13;
                    266:        u16 status_rx_quick_consumer_index12;
                    267:        u16 status_rx_quick_consumer_index15;
                    268:        u16 status_rx_quick_consumer_index14;
                    269:        u16 status_cmd_consumer_index;
                    270:        u16 status_completion_producer_index;
                    271:        u16 status_unused;
                    272:        u16 status_idx;
                    273: #endif
                    274: };
                    275: 
                    276: 
                    277: /*
                    278:  *  statistics_block definition
                    279:  */
                    280: struct statistics_block {
                    281:        u32 stat_IfHCInOctets_hi;
                    282:        u32 stat_IfHCInOctets_lo;
                    283:        u32 stat_IfHCInBadOctets_hi;
                    284:        u32 stat_IfHCInBadOctets_lo;
                    285:        u32 stat_IfHCOutOctets_hi;
                    286:        u32 stat_IfHCOutOctets_lo;
                    287:        u32 stat_IfHCOutBadOctets_hi;
                    288:        u32 stat_IfHCOutBadOctets_lo;
                    289:        u32 stat_IfHCInUcastPkts_hi;
                    290:        u32 stat_IfHCInUcastPkts_lo;
                    291:        u32 stat_IfHCInMulticastPkts_hi;
                    292:        u32 stat_IfHCInMulticastPkts_lo;
                    293:        u32 stat_IfHCInBroadcastPkts_hi;
                    294:        u32 stat_IfHCInBroadcastPkts_lo;
                    295:        u32 stat_IfHCOutUcastPkts_hi;
                    296:        u32 stat_IfHCOutUcastPkts_lo;
                    297:        u32 stat_IfHCOutMulticastPkts_hi;
                    298:        u32 stat_IfHCOutMulticastPkts_lo;
                    299:        u32 stat_IfHCOutBroadcastPkts_hi;
                    300:        u32 stat_IfHCOutBroadcastPkts_lo;
                    301:        u32 stat_emac_tx_stat_dot3statsinternalmactransmiterrors;
                    302:        u32 stat_Dot3StatsCarrierSenseErrors;
                    303:        u32 stat_Dot3StatsFCSErrors;
                    304:        u32 stat_Dot3StatsAlignmentErrors;
                    305:        u32 stat_Dot3StatsSingleCollisionFrames;
                    306:        u32 stat_Dot3StatsMultipleCollisionFrames;
                    307:        u32 stat_Dot3StatsDeferredTransmissions;
                    308:        u32 stat_Dot3StatsExcessiveCollisions;
                    309:        u32 stat_Dot3StatsLateCollisions;
                    310:        u32 stat_EtherStatsCollisions;
                    311:        u32 stat_EtherStatsFragments;
                    312:        u32 stat_EtherStatsJabbers;
                    313:        u32 stat_EtherStatsUndersizePkts;
                    314:        u32 stat_EtherStatsOverrsizePkts;
                    315:        u32 stat_EtherStatsPktsRx64Octets;
                    316:        u32 stat_EtherStatsPktsRx65Octetsto127Octets;
                    317:        u32 stat_EtherStatsPktsRx128Octetsto255Octets;
                    318:        u32 stat_EtherStatsPktsRx256Octetsto511Octets;
                    319:        u32 stat_EtherStatsPktsRx512Octetsto1023Octets;
                    320:        u32 stat_EtherStatsPktsRx1024Octetsto1522Octets;
                    321:        u32 stat_EtherStatsPktsRx1523Octetsto9022Octets;
                    322:        u32 stat_EtherStatsPktsTx64Octets;
                    323:        u32 stat_EtherStatsPktsTx65Octetsto127Octets;
                    324:        u32 stat_EtherStatsPktsTx128Octetsto255Octets;
                    325:        u32 stat_EtherStatsPktsTx256Octetsto511Octets;
                    326:        u32 stat_EtherStatsPktsTx512Octetsto1023Octets;
                    327:        u32 stat_EtherStatsPktsTx1024Octetsto1522Octets;
                    328:        u32 stat_EtherStatsPktsTx1523Octetsto9022Octets;
                    329:        u32 stat_XonPauseFramesReceived;
                    330:        u32 stat_XoffPauseFramesReceived;
                    331:        u32 stat_OutXonSent;
                    332:        u32 stat_OutXoffSent;
                    333:        u32 stat_FlowControlDone;
                    334:        u32 stat_MacControlFramesReceived;
                    335:        u32 stat_XoffStateEntered;
                    336:        u32 stat_IfInFramesL2FilterDiscards;
                    337:        u32 stat_IfInRuleCheckerDiscards;
                    338:        u32 stat_IfInFTQDiscards;
                    339:        u32 stat_IfInMBUFDiscards;
                    340:        u32 stat_IfInRuleCheckerP4Hit;
                    341:        u32 stat_CatchupInRuleCheckerDiscards;
                    342:        u32 stat_CatchupInFTQDiscards;
                    343:        u32 stat_CatchupInMBUFDiscards;
                    344:        u32 stat_CatchupInRuleCheckerP4Hit;
                    345:        u32 stat_GenStat00;
                    346:        u32 stat_GenStat01;
                    347:        u32 stat_GenStat02;
                    348:        u32 stat_GenStat03;
                    349:        u32 stat_GenStat04;
                    350:        u32 stat_GenStat05;
                    351:        u32 stat_GenStat06;
                    352:        u32 stat_GenStat07;
                    353:        u32 stat_GenStat08;
                    354:        u32 stat_GenStat09;
                    355:        u32 stat_GenStat10;
                    356:        u32 stat_GenStat11;
                    357:        u32 stat_GenStat12;
                    358:        u32 stat_GenStat13;
                    359:        u32 stat_GenStat14;
                    360:        u32 stat_GenStat15;
                    361: };
                    362: 
                    363: 
                    364: /*
                    365:  *  l2_fhdr definition
                    366:  */
                    367: struct l2_fhdr {
                    368:        u32 l2_fhdr_status;
                    369:                #define L2_FHDR_STATUS_RULE_CLASS       (0x7<<0)
                    370:                #define L2_FHDR_STATUS_RULE_P2          (1<<3)
                    371:                #define L2_FHDR_STATUS_RULE_P3          (1<<4)
                    372:                #define L2_FHDR_STATUS_RULE_P4          (1<<5)
                    373:                #define L2_FHDR_STATUS_L2_VLAN_TAG      (1<<6)
                    374:                #define L2_FHDR_STATUS_L2_LLC_SNAP      (1<<7)
                    375:                #define L2_FHDR_STATUS_RSS_HASH         (1<<8)
                    376:                #define L2_FHDR_STATUS_IP_DATAGRAM      (1<<13)
                    377:                #define L2_FHDR_STATUS_TCP_SEGMENT      (1<<14)
                    378:                #define L2_FHDR_STATUS_UDP_DATAGRAM     (1<<15)
                    379: 
                    380:                #define L2_FHDR_ERRORS_BAD_CRC          (1<<17)
                    381:                #define L2_FHDR_ERRORS_PHY_DECODE       (1<<18)
                    382:                #define L2_FHDR_ERRORS_ALIGNMENT        (1<<19)
                    383:                #define L2_FHDR_ERRORS_TOO_SHORT        (1<<20)
                    384:                #define L2_FHDR_ERRORS_GIANT_FRAME      (1<<21)
                    385:                #define L2_FHDR_ERRORS_TCP_XSUM         (1<<28)
                    386:                #define L2_FHDR_ERRORS_UDP_XSUM         (1<<31)
                    387: 
                    388:        u32 l2_fhdr_hash;
                    389: #if __BYTE_ORDER == __BIG_ENDIAN
                    390:        u16 l2_fhdr_pkt_len;
                    391:        u16 l2_fhdr_vlan_tag;
                    392:        u16 l2_fhdr_ip_xsum;
                    393:        u16 l2_fhdr_tcp_udp_xsum;
                    394: #elif __BYTE_ORDER == __LITTLE_ENDIAN
                    395:        u16 l2_fhdr_vlan_tag;
                    396:        u16 l2_fhdr_pkt_len;
                    397:        u16 l2_fhdr_tcp_udp_xsum;
                    398:        u16 l2_fhdr_ip_xsum;
                    399: #endif
                    400: };
                    401: 
                    402: 
                    403: /*
                    404:  *  l2_context definition
                    405:  */
                    406: #define BNX2_L2CTX_TYPE                                        0x00000000
                    407: #define BNX2_L2CTX_TYPE_SIZE_L2                                 ((0xc0/0x20)<<16)
                    408: #define BNX2_L2CTX_TYPE_TYPE                            (0xf<<28)
                    409: #define BNX2_L2CTX_TYPE_TYPE_EMPTY                      (0<<28)
                    410: #define BNX2_L2CTX_TYPE_TYPE_L2                                 (1<<28)
                    411: 
                    412: #define BNX2_L2CTX_TX_HOST_BIDX                                0x00000088
                    413: #define BNX2_L2CTX_EST_NBD                             0x00000088
                    414: #define BNX2_L2CTX_CMD_TYPE                            0x00000088
                    415: #define BNX2_L2CTX_CMD_TYPE_TYPE                        (0xf<<24)
                    416: #define BNX2_L2CTX_CMD_TYPE_TYPE_L2                     (0<<24)
                    417: #define BNX2_L2CTX_CMD_TYPE_TYPE_TCP                    (1<<24)
                    418: 
                    419: #define BNX2_L2CTX_TX_HOST_BSEQ                                0x00000090
                    420: #define BNX2_L2CTX_TSCH_BSEQ                           0x00000094
                    421: #define BNX2_L2CTX_TBDR_BSEQ                           0x00000098
                    422: #define BNX2_L2CTX_TBDR_BOFF                           0x0000009c
                    423: #define BNX2_L2CTX_TBDR_BIDX                           0x0000009c
                    424: #define BNX2_L2CTX_TBDR_BHADDR_HI                      0x000000a0
                    425: #define BNX2_L2CTX_TBDR_BHADDR_LO                      0x000000a4
                    426: #define BNX2_L2CTX_TXP_BOFF                            0x000000a8
                    427: #define BNX2_L2CTX_TXP_BIDX                            0x000000a8
                    428: #define BNX2_L2CTX_TXP_BSEQ                            0x000000ac
                    429: 
                    430: 
                    431: /*
                    432:  *  l2_bd_chain_context definition
                    433:  */
                    434: #define BNX2_L2CTX_BD_PRE_READ                         0x00000000
                    435: #define BNX2_L2CTX_CTX_SIZE                            0x00000000
                    436: #define BNX2_L2CTX_CTX_TYPE                            0x00000000
                    437: #define BNX2_L2CTX_CTX_TYPE_SIZE_L2                     ((0x20/20)<<16)
                    438: #define BNX2_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE             (0xf<<28)
                    439: #define BNX2_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE_UNDEFINED   (0<<28)
                    440: #define BNX2_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE_VALUE       (1<<28)
                    441: 
                    442: #define BNX2_L2CTX_HOST_BDIDX                          0x00000004
                    443: #define BNX2_L2CTX_HOST_BSEQ                           0x00000008
                    444: #define BNX2_L2CTX_NX_BSEQ                             0x0000000c
                    445: #define BNX2_L2CTX_NX_BDHADDR_HI                       0x00000010
                    446: #define BNX2_L2CTX_NX_BDHADDR_LO                       0x00000014
                    447: #define BNX2_L2CTX_NX_BDIDX                            0x00000018
                    448: 
                    449: 
                    450: /*
                    451:  *  pci_config_l definition
                    452:  *  offset: 0000
                    453:  */
                    454: #define BNX2_PCICFG_MISC_CONFIG                                0x00000068
                    455: #define BNX2_PCICFG_MISC_CONFIG_TARGET_BYTE_SWAP        (1L<<2)
                    456: #define BNX2_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP     (1L<<3)
                    457: #define BNX2_PCICFG_MISC_CONFIG_CLOCK_CTL_ENA           (1L<<5)
                    458: #define BNX2_PCICFG_MISC_CONFIG_TARGET_GRC_WORD_SWAP    (1L<<6)
                    459: #define BNX2_PCICFG_MISC_CONFIG_REG_WINDOW_ENA          (1L<<7)
                    460: #define BNX2_PCICFG_MISC_CONFIG_CORE_RST_REQ            (1L<<8)
                    461: #define BNX2_PCICFG_MISC_CONFIG_CORE_RST_BSY            (1L<<9)
                    462: #define BNX2_PCICFG_MISC_CONFIG_ASIC_METAL_REV          (0xffL<<16)
                    463: #define BNX2_PCICFG_MISC_CONFIG_ASIC_BASE_REV           (0xfL<<24)
                    464: #define BNX2_PCICFG_MISC_CONFIG_ASIC_ID                         (0xfL<<28)
                    465: 
                    466: #define BNX2_PCICFG_MISC_STATUS                                0x0000006c
                    467: #define BNX2_PCICFG_MISC_STATUS_INTA_VALUE              (1L<<0)
                    468: #define BNX2_PCICFG_MISC_STATUS_32BIT_DET               (1L<<1)
                    469: #define BNX2_PCICFG_MISC_STATUS_M66EN                   (1L<<2)
                    470: #define BNX2_PCICFG_MISC_STATUS_PCIX_DET                (1L<<3)
                    471: #define BNX2_PCICFG_MISC_STATUS_PCIX_SPEED              (0x3L<<4)
                    472: #define BNX2_PCICFG_MISC_STATUS_PCIX_SPEED_66           (0L<<4)
                    473: #define BNX2_PCICFG_MISC_STATUS_PCIX_SPEED_100          (1L<<4)
                    474: #define BNX2_PCICFG_MISC_STATUS_PCIX_SPEED_133          (2L<<4)
                    475: #define BNX2_PCICFG_MISC_STATUS_PCIX_SPEED_PCI_MODE     (3L<<4)
                    476: 
                    477: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS             0x00000070
                    478: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET      (0xfL<<0)
                    479: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_32MHZ        (0L<<0)
                    480: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_38MHZ        (1L<<0)
                    481: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_48MHZ        (2L<<0)
                    482: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_55MHZ        (3L<<0)
                    483: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_66MHZ        (4L<<0)
                    484: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_80MHZ        (5L<<0)
                    485: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_95MHZ        (6L<<0)
                    486: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ       (7L<<0)
                    487: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_LOW  (0xfL<<0)
                    488: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_DISABLE     (1L<<6)
                    489: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT         (1L<<7)
                    490: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC     (0x7L<<8)
                    491: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_UNDEF       (0L<<8)
                    492: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_12  (1L<<8)
                    493: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_6   (2L<<8)
                    494: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_62  (4L<<8)
                    495: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PLAY_DEAD    (1L<<11)
                    496: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED   (0xfL<<12)
                    497: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_100       (0L<<12)
                    498: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_80        (1L<<12)
                    499: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_50        (2L<<12)
                    500: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_40        (4L<<12)
                    501: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_25        (8L<<12)
                    502: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_STOP    (1L<<16)
                    503: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_PLL_STOP         (1L<<17)
                    504: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_RESERVED_18  (1L<<18)
                    505: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_USE_SPD_DET  (1L<<19)
                    506: #define BNX2_PCICFG_PCI_CLOCK_CONTROL_BITS_RESERVED     (0xfffL<<20)
                    507: 
                    508: #define BNX2_PCICFG_REG_WINDOW_ADDRESS                 0x00000078
                    509: #define BNX2_PCICFG_REG_WINDOW                         0x00000080
                    510: #define BNX2_PCICFG_INT_ACK_CMD                                0x00000084
                    511: #define BNX2_PCICFG_INT_ACK_CMD_INDEX                   (0xffffL<<0)
                    512: #define BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID             (1L<<16)
                    513: #define BNX2_PCICFG_INT_ACK_CMD_USE_INT_HC_PARAM        (1L<<17)
                    514: #define BNX2_PCICFG_INT_ACK_CMD_MASK_INT                (1L<<18)
                    515: 
                    516: #define BNX2_PCICFG_STATUS_BIT_SET_CMD                 0x00000088
                    517: #define BNX2_PCICFG_STATUS_BIT_CLEAR_CMD               0x0000008c
                    518: #define BNX2_PCICFG_MAILBOX_QUEUE_ADDR                 0x00000090
                    519: #define BNX2_PCICFG_MAILBOX_QUEUE_DATA                 0x00000094
                    520: 
                    521: 
                    522: /*
                    523:  *  pci_reg definition
                    524:  *  offset: 0x400
                    525:  */
                    526: #define BNX2_PCI_GRC_WINDOW_ADDR                       0x00000400
                    527: #define BNX2_PCI_GRC_WINDOW_ADDR_PCI_GRC_WINDOW_ADDR_VALUE      (0x3ffffL<<8)
                    528: 
                    529: #define BNX2_PCI_CONFIG_1                              0x00000404
                    530: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY                         (0x7L<<8)
                    531: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_OFF             (0L<<8)
                    532: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_16              (1L<<8)
                    533: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_32              (2L<<8)
                    534: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_64              (3L<<8)
                    535: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_128             (4L<<8)
                    536: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_256             (5L<<8)
                    537: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_512             (6L<<8)
                    538: #define BNX2_PCI_CONFIG_1_READ_BOUNDARY_1024            (7L<<8)
                    539: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY                (0x7L<<11)
                    540: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_OFF            (0L<<11)
                    541: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_16             (1L<<11)
                    542: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_32             (2L<<11)
                    543: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_64             (3L<<11)
                    544: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_128            (4L<<11)
                    545: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_256            (5L<<11)
                    546: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_512            (6L<<11)
                    547: #define BNX2_PCI_CONFIG_1_WRITE_BOUNDARY_1024           (7L<<11)
                    548: 
                    549: #define BNX2_PCI_CONFIG_2                              0x00000408
                    550: #define BNX2_PCI_CONFIG_2_BAR1_SIZE                     (0xfL<<0)
                    551: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_DISABLED            (0L<<0)
                    552: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_64K                         (1L<<0)
                    553: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_128K                (2L<<0)
                    554: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_256K                (3L<<0)
                    555: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_512K                (4L<<0)
                    556: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_1M                  (5L<<0)
                    557: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_2M                  (6L<<0)
                    558: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_4M                  (7L<<0)
                    559: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_8M                  (8L<<0)
                    560: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_16M                         (9L<<0)
                    561: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_32M                         (10L<<0)
                    562: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_64M                         (11L<<0)
                    563: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_128M                (12L<<0)
                    564: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_256M                (13L<<0)
                    565: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_512M                (14L<<0)
                    566: #define BNX2_PCI_CONFIG_2_BAR1_SIZE_1G                  (15L<<0)
                    567: #define BNX2_PCI_CONFIG_2_BAR1_64ENA                    (1L<<4)
                    568: #define BNX2_PCI_CONFIG_2_EXP_ROM_RETRY                         (1L<<5)
                    569: #define BNX2_PCI_CONFIG_2_CFG_CYCLE_RETRY               (1L<<6)
                    570: #define BNX2_PCI_CONFIG_2_FIRST_CFG_DONE                (1L<<7)
                    571: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE                  (0xffL<<8)
                    572: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_DISABLED                 (0L<<8)
                    573: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_1K               (1L<<8)
                    574: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_2K               (2L<<8)
                    575: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_4K               (3L<<8)
                    576: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_8K               (4L<<8)
                    577: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_16K              (5L<<8)
                    578: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_32K              (6L<<8)
                    579: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_64K              (7L<<8)
                    580: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_128K             (8L<<8)
                    581: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_256K             (9L<<8)
                    582: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_512K             (10L<<8)
                    583: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_1M               (11L<<8)
                    584: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_2M               (12L<<8)
                    585: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_4M               (13L<<8)
                    586: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_8M               (14L<<8)
                    587: #define BNX2_PCI_CONFIG_2_EXP_ROM_SIZE_16M              (15L<<8)
                    588: #define BNX2_PCI_CONFIG_2_MAX_SPLIT_LIMIT               (0x1fL<<16)
                    589: #define BNX2_PCI_CONFIG_2_MAX_READ_LIMIT                (0x3L<<21)
                    590: #define BNX2_PCI_CONFIG_2_MAX_READ_LIMIT_512            (0L<<21)
                    591: #define BNX2_PCI_CONFIG_2_MAX_READ_LIMIT_1K             (1L<<21)
                    592: #define BNX2_PCI_CONFIG_2_MAX_READ_LIMIT_2K             (2L<<21)
                    593: #define BNX2_PCI_CONFIG_2_MAX_READ_LIMIT_4K             (3L<<21)
                    594: #define BNX2_PCI_CONFIG_2_FORCE_32_BIT_MSTR             (1L<<23)
                    595: #define BNX2_PCI_CONFIG_2_FORCE_32_BIT_TGT              (1L<<24)
                    596: #define BNX2_PCI_CONFIG_2_KEEP_REQ_ASSERT               (1L<<25)
                    597: 
                    598: #define BNX2_PCI_CONFIG_3                              0x0000040c
                    599: #define BNX2_PCI_CONFIG_3_STICKY_BYTE                   (0xffL<<0)
                    600: #define BNX2_PCI_CONFIG_3_FORCE_PME                     (1L<<24)
                    601: #define BNX2_PCI_CONFIG_3_PME_STATUS                    (1L<<25)
                    602: #define BNX2_PCI_CONFIG_3_PME_ENABLE                    (1L<<26)
                    603: #define BNX2_PCI_CONFIG_3_PM_STATE                      (0x3L<<27)
                    604: #define BNX2_PCI_CONFIG_3_VAUX_PRESET                   (1L<<30)
                    605: #define BNX2_PCI_CONFIG_3_PCI_POWER                     (1L<<31)
                    606: 
                    607: #define BNX2_PCI_PM_DATA_A                             0x00000410
                    608: #define BNX2_PCI_PM_DATA_A_PM_DATA_0_PRG                (0xffL<<0)
                    609: #define BNX2_PCI_PM_DATA_A_PM_DATA_1_PRG                (0xffL<<8)
                    610: #define BNX2_PCI_PM_DATA_A_PM_DATA_2_PRG                (0xffL<<16)
                    611: #define BNX2_PCI_PM_DATA_A_PM_DATA_3_PRG                (0xffL<<24)
                    612: 
                    613: #define BNX2_PCI_PM_DATA_B                             0x00000414
                    614: #define BNX2_PCI_PM_DATA_B_PM_DATA_4_PRG                (0xffL<<0)
                    615: #define BNX2_PCI_PM_DATA_B_PM_DATA_5_PRG                (0xffL<<8)
                    616: #define BNX2_PCI_PM_DATA_B_PM_DATA_6_PRG                (0xffL<<16)
                    617: #define BNX2_PCI_PM_DATA_B_PM_DATA_7_PRG                (0xffL<<24)
                    618: 
                    619: #define BNX2_PCI_SWAP_DIAG0                            0x00000418
                    620: #define BNX2_PCI_SWAP_DIAG1                            0x0000041c
                    621: #define BNX2_PCI_EXP_ROM_ADDR                          0x00000420
                    622: #define BNX2_PCI_EXP_ROM_ADDR_ADDRESS                   (0x3fffffL<<2)
                    623: #define BNX2_PCI_EXP_ROM_ADDR_REQ                       (1L<<31)
                    624: 
                    625: #define BNX2_PCI_EXP_ROM_DATA                          0x00000424
                    626: #define BNX2_PCI_VPD_INTF                              0x00000428
                    627: #define BNX2_PCI_VPD_INTF_INTF_REQ                      (1L<<0)
                    628: 
                    629: #define BNX2_PCI_VPD_ADDR_FLAG                         0x0000042c
                    630: #define BNX2_PCI_VPD_ADDR_FLAG_ADDRESS                  (0x1fff<<2)
                    631: #define BNX2_PCI_VPD_ADDR_FLAG_WR                       (1<<15)
                    632: 
                    633: #define BNX2_PCI_VPD_DATA                              0x00000430
                    634: #define BNX2_PCI_ID_VAL1                               0x00000434
                    635: #define BNX2_PCI_ID_VAL1_DEVICE_ID                      (0xffffL<<0)
                    636: #define BNX2_PCI_ID_VAL1_VENDOR_ID                      (0xffffL<<16)
                    637: 
                    638: #define BNX2_PCI_ID_VAL2                               0x00000438
                    639: #define BNX2_PCI_ID_VAL2_SUBSYSTEM_VENDOR_ID            (0xffffL<<0)
                    640: #define BNX2_PCI_ID_VAL2_SUBSYSTEM_ID                   (0xffffL<<16)
                    641: 
                    642: #define BNX2_PCI_ID_VAL3                               0x0000043c
                    643: #define BNX2_PCI_ID_VAL3_CLASS_CODE                     (0xffffffL<<0)
                    644: #define BNX2_PCI_ID_VAL3_REVISION_ID                    (0xffL<<24)
                    645: 
                    646: #define BNX2_PCI_ID_VAL4                               0x00000440
                    647: #define BNX2_PCI_ID_VAL4_CAP_ENA                        (0xfL<<0)
                    648: #define BNX2_PCI_ID_VAL4_CAP_ENA_0                      (0L<<0)
                    649: #define BNX2_PCI_ID_VAL4_CAP_ENA_1                      (1L<<0)
                    650: #define BNX2_PCI_ID_VAL4_CAP_ENA_2                      (2L<<0)
                    651: #define BNX2_PCI_ID_VAL4_CAP_ENA_3                      (3L<<0)
                    652: #define BNX2_PCI_ID_VAL4_CAP_ENA_4                      (4L<<0)
                    653: #define BNX2_PCI_ID_VAL4_CAP_ENA_5                      (5L<<0)
                    654: #define BNX2_PCI_ID_VAL4_CAP_ENA_6                      (6L<<0)
                    655: #define BNX2_PCI_ID_VAL4_CAP_ENA_7                      (7L<<0)
                    656: #define BNX2_PCI_ID_VAL4_CAP_ENA_8                      (8L<<0)
                    657: #define BNX2_PCI_ID_VAL4_CAP_ENA_9                      (9L<<0)
                    658: #define BNX2_PCI_ID_VAL4_CAP_ENA_10                     (10L<<0)
                    659: #define BNX2_PCI_ID_VAL4_CAP_ENA_11                     (11L<<0)
                    660: #define BNX2_PCI_ID_VAL4_CAP_ENA_12                     (12L<<0)
                    661: #define BNX2_PCI_ID_VAL4_CAP_ENA_13                     (13L<<0)
                    662: #define BNX2_PCI_ID_VAL4_CAP_ENA_14                     (14L<<0)
                    663: #define BNX2_PCI_ID_VAL4_CAP_ENA_15                     (15L<<0)
                    664: #define BNX2_PCI_ID_VAL4_PM_SCALE_PRG                   (0x3L<<6)
                    665: #define BNX2_PCI_ID_VAL4_PM_SCALE_PRG_0                         (0L<<6)
                    666: #define BNX2_PCI_ID_VAL4_PM_SCALE_PRG_1                         (1L<<6)
                    667: #define BNX2_PCI_ID_VAL4_PM_SCALE_PRG_2                         (2L<<6)
                    668: #define BNX2_PCI_ID_VAL4_PM_SCALE_PRG_3                         (3L<<6)
                    669: #define BNX2_PCI_ID_VAL4_MSI_LIMIT                      (0x7L<<9)
                    670: #define BNX2_PCI_ID_VAL4_MSI_ADVERTIZE                  (0x7L<<12)
                    671: #define BNX2_PCI_ID_VAL4_MSI_ENABLE                     (1L<<15)
                    672: #define BNX2_PCI_ID_VAL4_MAX_64_ADVERTIZE               (1L<<16)
                    673: #define BNX2_PCI_ID_VAL4_MAX_133_ADVERTIZE              (1L<<17)
                    674: #define BNX2_PCI_ID_VAL4_MAX_MEM_READ_SIZE              (0x3L<<21)
                    675: #define BNX2_PCI_ID_VAL4_MAX_SPLIT_SIZE                         (0x7L<<23)
                    676: #define BNX2_PCI_ID_VAL4_MAX_CUMULATIVE_SIZE            (0x7L<<26)
                    677: 
                    678: #define BNX2_PCI_ID_VAL5                               0x00000444
                    679: #define BNX2_PCI_ID_VAL5_D1_SUPPORT                     (1L<<0)
                    680: #define BNX2_PCI_ID_VAL5_D2_SUPPORT                     (1L<<1)
                    681: #define BNX2_PCI_ID_VAL5_PME_IN_D0                      (1L<<2)
                    682: #define BNX2_PCI_ID_VAL5_PME_IN_D1                      (1L<<3)
                    683: #define BNX2_PCI_ID_VAL5_PME_IN_D2                      (1L<<4)
                    684: #define BNX2_PCI_ID_VAL5_PME_IN_D3_HOT                  (1L<<5)
                    685: 
                    686: #define BNX2_PCI_PCIX_EXTENDED_STATUS                  0x00000448
                    687: #define BNX2_PCI_PCIX_EXTENDED_STATUS_NO_SNOOP          (1L<<8)
                    688: #define BNX2_PCI_PCIX_EXTENDED_STATUS_LONG_BURST        (1L<<9)
                    689: #define BNX2_PCI_PCIX_EXTENDED_STATUS_SPLIT_COMP_MSG_CLASS      (0xfL<<16)
                    690: #define BNX2_PCI_PCIX_EXTENDED_STATUS_SPLIT_COMP_MSG_IDX        (0xffL<<24)
                    691: 
                    692: #define BNX2_PCI_ID_VAL6                               0x0000044c
                    693: #define BNX2_PCI_ID_VAL6_MAX_LAT                        (0xffL<<0)
                    694: #define BNX2_PCI_ID_VAL6_MIN_GNT                        (0xffL<<8)
                    695: #define BNX2_PCI_ID_VAL6_BIST                           (0xffL<<16)
                    696: 
                    697: #define BNX2_PCI_MSI_DATA                              0x00000450
                    698: #define BNX2_PCI_MSI_DATA_PCI_MSI_DATA                  (0xffffL<<0)
                    699: 
                    700: #define BNX2_PCI_MSI_ADDR_H                            0x00000454
                    701: #define BNX2_PCI_MSI_ADDR_L                            0x00000458
                    702: 
                    703: 
                    704: /*
                    705:  *  misc_reg definition
                    706:  *  offset: 0x800
                    707:  */
                    708: #define BNX2_MISC_COMMAND                              0x00000800
                    709: #define BNX2_MISC_COMMAND_ENABLE_ALL                    (1L<<0)
                    710: #define BNX2_MISC_COMMAND_DISABLE_ALL                   (1L<<1)
                    711: #define BNX2_MISC_COMMAND_CORE_RESET                    (1L<<4)
                    712: #define BNX2_MISC_COMMAND_HARD_RESET                    (1L<<5)
                    713: #define BNX2_MISC_COMMAND_PAR_ERROR                     (1L<<8)
                    714: #define BNX2_MISC_COMMAND_PAR_ERR_RAM                   (0x7fL<<16)
                    715: 
                    716: #define BNX2_MISC_CFG                                  0x00000804
                    717: #define BNX2_MISC_CFG_PCI_GRC_TMOUT                     (1L<<0)
                    718: #define BNX2_MISC_CFG_NVM_WR_EN                                 (0x3L<<1)
                    719: #define BNX2_MISC_CFG_NVM_WR_EN_PROTECT                         (0L<<1)
                    720: #define BNX2_MISC_CFG_NVM_WR_EN_PCI                     (1L<<1)
                    721: #define BNX2_MISC_CFG_NVM_WR_EN_ALLOW                   (2L<<1)
                    722: #define BNX2_MISC_CFG_NVM_WR_EN_ALLOW2                  (3L<<1)
                    723: #define BNX2_MISC_CFG_BIST_EN                           (1L<<3)
                    724: #define BNX2_MISC_CFG_CK25_OUT_ALT_SRC                  (1L<<4)
                    725: #define BNX2_MISC_CFG_BYPASS_BSCAN                      (1L<<5)
                    726: #define BNX2_MISC_CFG_BYPASS_EJTAG                      (1L<<6)
                    727: #define BNX2_MISC_CFG_CLK_CTL_OVERRIDE                  (1L<<7)
                    728: #define BNX2_MISC_CFG_LEDMODE                           (0x3L<<8)
                    729: #define BNX2_MISC_CFG_LEDMODE_MAC                       (0L<<8)
                    730: #define BNX2_MISC_CFG_LEDMODE_GPHY1                     (1L<<8)
                    731: #define BNX2_MISC_CFG_LEDMODE_GPHY2                     (2L<<8)
                    732: 
                    733: #define BNX2_MISC_ID                                   0x00000808
                    734: #define BNX2_MISC_ID_BOND_ID                            (0xfL<<0)
                    735: #define BNX2_MISC_ID_CHIP_METAL                                 (0xffL<<4)
                    736: #define BNX2_MISC_ID_CHIP_REV                           (0xfL<<12)
                    737: #define BNX2_MISC_ID_CHIP_NUM                           (0xffffL<<16)
                    738: 
                    739: #define BNX2_MISC_ENABLE_STATUS_BITS                   0x0000080c
                    740: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_SCHEDULER_ENABLE        (1L<<0)
                    741: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_BD_READ_ENABLE  (1L<<1)
                    742: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_BD_CACHE_ENABLE         (1L<<2)
                    743: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_PROCESSOR_ENABLE        (1L<<3)
                    744: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_DMA_ENABLE      (1L<<4)
                    745: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_PATCHUP_ENABLE  (1L<<5)
                    746: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_PAYLOAD_Q_ENABLE        (1L<<6)
                    747: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_HEADER_Q_ENABLE         (1L<<7)
                    748: #define BNX2_MISC_ENABLE_STATUS_BITS_TX_ASSEMBLER_ENABLE        (1L<<8)
                    749: #define BNX2_MISC_ENABLE_STATUS_BITS_EMAC_ENABLE        (1L<<9)
                    750: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_PARSER_MAC_ENABLE       (1L<<10)
                    751: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_PARSER_CATCHUP_ENABLE   (1L<<11)
                    752: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_MBUF_ENABLE     (1L<<12)
                    753: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_LOOKUP_ENABLE   (1L<<13)
                    754: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_PROCESSOR_ENABLE        (1L<<14)
                    755: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_V2P_ENABLE      (1L<<15)
                    756: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_BD_CACHE_ENABLE         (1L<<16)
                    757: #define BNX2_MISC_ENABLE_STATUS_BITS_RX_DMA_ENABLE      (1L<<17)
                    758: #define BNX2_MISC_ENABLE_STATUS_BITS_COMPLETION_ENABLE  (1L<<18)
                    759: #define BNX2_MISC_ENABLE_STATUS_BITS_HOST_COALESCE_ENABLE       (1L<<19)
                    760: #define BNX2_MISC_ENABLE_STATUS_BITS_MAILBOX_QUEUE_ENABLE       (1L<<20)
                    761: #define BNX2_MISC_ENABLE_STATUS_BITS_CONTEXT_ENABLE     (1L<<21)
                    762: #define BNX2_MISC_ENABLE_STATUS_BITS_CMD_SCHEDULER_ENABLE       (1L<<22)
                    763: #define BNX2_MISC_ENABLE_STATUS_BITS_CMD_PROCESSOR_ENABLE       (1L<<23)
                    764: #define BNX2_MISC_ENABLE_STATUS_BITS_MGMT_PROCESSOR_ENABLE      (1L<<24)
                    765: #define BNX2_MISC_ENABLE_STATUS_BITS_TIMER_ENABLE       (1L<<25)
                    766: #define BNX2_MISC_ENABLE_STATUS_BITS_DMA_ENGINE_ENABLE  (1L<<26)
                    767: #define BNX2_MISC_ENABLE_STATUS_BITS_UMP_ENABLE                 (1L<<27)
                    768: 
                    769: #define BNX2_MISC_ENABLE_SET_BITS                      0x00000810
                    770: #define BNX2_MISC_ENABLE_SET_BITS_TX_SCHEDULER_ENABLE   (1L<<0)
                    771: #define BNX2_MISC_ENABLE_SET_BITS_TX_BD_READ_ENABLE     (1L<<1)
                    772: #define BNX2_MISC_ENABLE_SET_BITS_TX_BD_CACHE_ENABLE    (1L<<2)
                    773: #define BNX2_MISC_ENABLE_SET_BITS_TX_PROCESSOR_ENABLE   (1L<<3)
                    774: #define BNX2_MISC_ENABLE_SET_BITS_TX_DMA_ENABLE                 (1L<<4)
                    775: #define BNX2_MISC_ENABLE_SET_BITS_TX_PATCHUP_ENABLE     (1L<<5)
                    776: #define BNX2_MISC_ENABLE_SET_BITS_TX_PAYLOAD_Q_ENABLE   (1L<<6)
                    777: #define BNX2_MISC_ENABLE_SET_BITS_TX_HEADER_Q_ENABLE    (1L<<7)
                    778: #define BNX2_MISC_ENABLE_SET_BITS_TX_ASSEMBLER_ENABLE   (1L<<8)
                    779: #define BNX2_MISC_ENABLE_SET_BITS_EMAC_ENABLE           (1L<<9)
                    780: #define BNX2_MISC_ENABLE_SET_BITS_RX_PARSER_MAC_ENABLE  (1L<<10)
                    781: #define BNX2_MISC_ENABLE_SET_BITS_RX_PARSER_CATCHUP_ENABLE      (1L<<11)
                    782: #define BNX2_MISC_ENABLE_SET_BITS_RX_MBUF_ENABLE        (1L<<12)
                    783: #define BNX2_MISC_ENABLE_SET_BITS_RX_LOOKUP_ENABLE      (1L<<13)
                    784: #define BNX2_MISC_ENABLE_SET_BITS_RX_PROCESSOR_ENABLE   (1L<<14)
                    785: #define BNX2_MISC_ENABLE_SET_BITS_RX_V2P_ENABLE                 (1L<<15)
                    786: #define BNX2_MISC_ENABLE_SET_BITS_RX_BD_CACHE_ENABLE    (1L<<16)
                    787: #define BNX2_MISC_ENABLE_SET_BITS_RX_DMA_ENABLE                 (1L<<17)
                    788: #define BNX2_MISC_ENABLE_SET_BITS_COMPLETION_ENABLE     (1L<<18)
                    789: #define BNX2_MISC_ENABLE_SET_BITS_HOST_COALESCE_ENABLE  (1L<<19)
                    790: #define BNX2_MISC_ENABLE_SET_BITS_MAILBOX_QUEUE_ENABLE  (1L<<20)
                    791: #define BNX2_MISC_ENABLE_SET_BITS_CONTEXT_ENABLE        (1L<<21)
                    792: #define BNX2_MISC_ENABLE_SET_BITS_CMD_SCHEDULER_ENABLE  (1L<<22)
                    793: #define BNX2_MISC_ENABLE_SET_BITS_CMD_PROCESSOR_ENABLE  (1L<<23)
                    794: #define BNX2_MISC_ENABLE_SET_BITS_MGMT_PROCESSOR_ENABLE         (1L<<24)
                    795: #define BNX2_MISC_ENABLE_SET_BITS_TIMER_ENABLE          (1L<<25)
                    796: #define BNX2_MISC_ENABLE_SET_BITS_DMA_ENGINE_ENABLE     (1L<<26)
                    797: #define BNX2_MISC_ENABLE_SET_BITS_UMP_ENABLE            (1L<<27)
                    798: 
                    799: #define BNX2_MISC_ENABLE_CLR_BITS                      0x00000814
                    800: #define BNX2_MISC_ENABLE_CLR_BITS_TX_SCHEDULER_ENABLE   (1L<<0)
                    801: #define BNX2_MISC_ENABLE_CLR_BITS_TX_BD_READ_ENABLE     (1L<<1)
                    802: #define BNX2_MISC_ENABLE_CLR_BITS_TX_BD_CACHE_ENABLE    (1L<<2)
                    803: #define BNX2_MISC_ENABLE_CLR_BITS_TX_PROCESSOR_ENABLE   (1L<<3)
                    804: #define BNX2_MISC_ENABLE_CLR_BITS_TX_DMA_ENABLE                 (1L<<4)
                    805: #define BNX2_MISC_ENABLE_CLR_BITS_TX_PATCHUP_ENABLE     (1L<<5)
                    806: #define BNX2_MISC_ENABLE_CLR_BITS_TX_PAYLOAD_Q_ENABLE   (1L<<6)
                    807: #define BNX2_MISC_ENABLE_CLR_BITS_TX_HEADER_Q_ENABLE    (1L<<7)
                    808: #define BNX2_MISC_ENABLE_CLR_BITS_TX_ASSEMBLER_ENABLE   (1L<<8)
                    809: #define BNX2_MISC_ENABLE_CLR_BITS_EMAC_ENABLE           (1L<<9)
                    810: #define BNX2_MISC_ENABLE_CLR_BITS_RX_PARSER_MAC_ENABLE  (1L<<10)
                    811: #define BNX2_MISC_ENABLE_CLR_BITS_RX_PARSER_CATCHUP_ENABLE      (1L<<11)
                    812: #define BNX2_MISC_ENABLE_CLR_BITS_RX_MBUF_ENABLE        (1L<<12)
                    813: #define BNX2_MISC_ENABLE_CLR_BITS_RX_LOOKUP_ENABLE      (1L<<13)
                    814: #define BNX2_MISC_ENABLE_CLR_BITS_RX_PROCESSOR_ENABLE   (1L<<14)
                    815: #define BNX2_MISC_ENABLE_CLR_BITS_RX_V2P_ENABLE                 (1L<<15)
                    816: #define BNX2_MISC_ENABLE_CLR_BITS_RX_BD_CACHE_ENABLE    (1L<<16)
                    817: #define BNX2_MISC_ENABLE_CLR_BITS_RX_DMA_ENABLE                 (1L<<17)
                    818: #define BNX2_MISC_ENABLE_CLR_BITS_COMPLETION_ENABLE     (1L<<18)
                    819: #define BNX2_MISC_ENABLE_CLR_BITS_HOST_COALESCE_ENABLE  (1L<<19)
                    820: #define BNX2_MISC_ENABLE_CLR_BITS_MAILBOX_QUEUE_ENABLE  (1L<<20)
                    821: #define BNX2_MISC_ENABLE_CLR_BITS_CONTEXT_ENABLE        (1L<<21)
                    822: #define BNX2_MISC_ENABLE_CLR_BITS_CMD_SCHEDULER_ENABLE  (1L<<22)
                    823: #define BNX2_MISC_ENABLE_CLR_BITS_CMD_PROCESSOR_ENABLE  (1L<<23)
                    824: #define BNX2_MISC_ENABLE_CLR_BITS_MGMT_PROCESSOR_ENABLE         (1L<<24)
                    825: #define BNX2_MISC_ENABLE_CLR_BITS_TIMER_ENABLE          (1L<<25)
                    826: #define BNX2_MISC_ENABLE_CLR_BITS_DMA_ENGINE_ENABLE     (1L<<26)
                    827: #define BNX2_MISC_ENABLE_CLR_BITS_UMP_ENABLE            (1L<<27)
                    828: 
                    829: #define BNX2_MISC_CLOCK_CONTROL_BITS                   0x00000818
                    830: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET    (0xfL<<0)
                    831: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_32MHZ      (0L<<0)
                    832: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_38MHZ      (1L<<0)
                    833: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_48MHZ      (2L<<0)
                    834: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_55MHZ      (3L<<0)
                    835: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_66MHZ      (4L<<0)
                    836: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_80MHZ      (5L<<0)
                    837: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_95MHZ      (6L<<0)
                    838: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ     (7L<<0)
                    839: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_LOW        (0xfL<<0)
                    840: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_DISABLE   (1L<<6)
                    841: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT       (1L<<7)
                    842: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC   (0x7L<<8)
                    843: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_UNDEF     (0L<<8)
                    844: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_12        (1L<<8)
                    845: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_6         (2L<<8)
                    846: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_62        (4L<<8)
                    847: #define BNX2_MISC_CLOCK_CONTROL_BITS_PLAY_DEAD          (1L<<11)
                    848: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED         (0xfL<<12)
                    849: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_100     (0L<<12)
                    850: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_80      (1L<<12)
                    851: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_50      (2L<<12)
                    852: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_40      (4L<<12)
                    853: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_25      (8L<<12)
                    854: #define BNX2_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_STOP  (1L<<16)
                    855: #define BNX2_MISC_CLOCK_CONTROL_BITS_PCI_PLL_STOP       (1L<<17)
                    856: #define BNX2_MISC_CLOCK_CONTROL_BITS_RESERVED_18        (1L<<18)
                    857: #define BNX2_MISC_CLOCK_CONTROL_BITS_USE_SPD_DET        (1L<<19)
                    858: #define BNX2_MISC_CLOCK_CONTROL_BITS_RESERVED           (0xfffL<<20)
                    859: 
                    860: #define BNX2_MISC_GPIO                                 0x0000081c
                    861: #define BNX2_MISC_GPIO_VALUE                            (0xffL<<0)
                    862: #define BNX2_MISC_GPIO_SET                              (0xffL<<8)
                    863: #define BNX2_MISC_GPIO_CLR                              (0xffL<<16)
                    864: #define BNX2_MISC_GPIO_FLOAT                            (0xffL<<24)
                    865: 
                    866: #define BNX2_MISC_GPIO_INT                             0x00000820
                    867: #define BNX2_MISC_GPIO_INT_INT_STATE                    (0xfL<<0)
                    868: #define BNX2_MISC_GPIO_INT_OLD_VALUE                    (0xfL<<8)
                    869: #define BNX2_MISC_GPIO_INT_OLD_SET                      (0xfL<<16)
                    870: #define BNX2_MISC_GPIO_INT_OLD_CLR                      (0xfL<<24)
                    871: 
                    872: #define BNX2_MISC_CONFIG_LFSR                          0x00000824
                    873: #define BNX2_MISC_CONFIG_LFSR_DIV                       (0xffffL<<0)
                    874: 
                    875: #define BNX2_MISC_LFSR_MASK_BITS                       0x00000828
                    876: #define BNX2_MISC_LFSR_MASK_BITS_TX_SCHEDULER_ENABLE    (1L<<0)
                    877: #define BNX2_MISC_LFSR_MASK_BITS_TX_BD_READ_ENABLE      (1L<<1)
                    878: #define BNX2_MISC_LFSR_MASK_BITS_TX_BD_CACHE_ENABLE     (1L<<2)
                    879: #define BNX2_MISC_LFSR_MASK_BITS_TX_PROCESSOR_ENABLE    (1L<<3)
                    880: #define BNX2_MISC_LFSR_MASK_BITS_TX_DMA_ENABLE          (1L<<4)
                    881: #define BNX2_MISC_LFSR_MASK_BITS_TX_PATCHUP_ENABLE      (1L<<5)
                    882: #define BNX2_MISC_LFSR_MASK_BITS_TX_PAYLOAD_Q_ENABLE    (1L<<6)
                    883: #define BNX2_MISC_LFSR_MASK_BITS_TX_HEADER_Q_ENABLE     (1L<<7)
                    884: #define BNX2_MISC_LFSR_MASK_BITS_TX_ASSEMBLER_ENABLE    (1L<<8)
                    885: #define BNX2_MISC_LFSR_MASK_BITS_EMAC_ENABLE            (1L<<9)
                    886: #define BNX2_MISC_LFSR_MASK_BITS_RX_PARSER_MAC_ENABLE   (1L<<10)
                    887: #define BNX2_MISC_LFSR_MASK_BITS_RX_PARSER_CATCHUP_ENABLE       (1L<<11)
                    888: #define BNX2_MISC_LFSR_MASK_BITS_RX_MBUF_ENABLE                 (1L<<12)
                    889: #define BNX2_MISC_LFSR_MASK_BITS_RX_LOOKUP_ENABLE       (1L<<13)
                    890: #define BNX2_MISC_LFSR_MASK_BITS_RX_PROCESSOR_ENABLE    (1L<<14)
                    891: #define BNX2_MISC_LFSR_MASK_BITS_RX_V2P_ENABLE          (1L<<15)
                    892: #define BNX2_MISC_LFSR_MASK_BITS_RX_BD_CACHE_ENABLE     (1L<<16)
                    893: #define BNX2_MISC_LFSR_MASK_BITS_RX_DMA_ENABLE          (1L<<17)
                    894: #define BNX2_MISC_LFSR_MASK_BITS_COMPLETION_ENABLE      (1L<<18)
                    895: #define BNX2_MISC_LFSR_MASK_BITS_HOST_COALESCE_ENABLE   (1L<<19)
                    896: #define BNX2_MISC_LFSR_MASK_BITS_MAILBOX_QUEUE_ENABLE   (1L<<20)
                    897: #define BNX2_MISC_LFSR_MASK_BITS_CONTEXT_ENABLE                 (1L<<21)
                    898: #define BNX2_MISC_LFSR_MASK_BITS_CMD_SCHEDULER_ENABLE   (1L<<22)
                    899: #define BNX2_MISC_LFSR_MASK_BITS_CMD_PROCESSOR_ENABLE   (1L<<23)
                    900: #define BNX2_MISC_LFSR_MASK_BITS_MGMT_PROCESSOR_ENABLE  (1L<<24)
                    901: #define BNX2_MISC_LFSR_MASK_BITS_TIMER_ENABLE           (1L<<25)
                    902: #define BNX2_MISC_LFSR_MASK_BITS_DMA_ENGINE_ENABLE      (1L<<26)
                    903: #define BNX2_MISC_LFSR_MASK_BITS_UMP_ENABLE             (1L<<27)
                    904: 
                    905: #define BNX2_MISC_ARB_REQ0                             0x0000082c
                    906: #define BNX2_MISC_ARB_REQ1                             0x00000830
                    907: #define BNX2_MISC_ARB_REQ2                             0x00000834
                    908: #define BNX2_MISC_ARB_REQ3                             0x00000838
                    909: #define BNX2_MISC_ARB_REQ4                             0x0000083c
                    910: #define BNX2_MISC_ARB_FREE0                            0x00000840
                    911: #define BNX2_MISC_ARB_FREE1                            0x00000844
                    912: #define BNX2_MISC_ARB_FREE2                            0x00000848
                    913: #define BNX2_MISC_ARB_FREE3                            0x0000084c
                    914: #define BNX2_MISC_ARB_FREE4                            0x00000850
                    915: #define BNX2_MISC_ARB_REQ_STATUS0                      0x00000854
                    916: #define BNX2_MISC_ARB_REQ_STATUS1                      0x00000858
                    917: #define BNX2_MISC_ARB_REQ_STATUS2                      0x0000085c
                    918: #define BNX2_MISC_ARB_REQ_STATUS3                      0x00000860
                    919: #define BNX2_MISC_ARB_REQ_STATUS4                      0x00000864
                    920: #define BNX2_MISC_ARB_GNT0                             0x00000868
                    921: #define BNX2_MISC_ARB_GNT0_0                            (0x7L<<0)
                    922: #define BNX2_MISC_ARB_GNT0_1                            (0x7L<<4)
                    923: #define BNX2_MISC_ARB_GNT0_2                            (0x7L<<8)
                    924: #define BNX2_MISC_ARB_GNT0_3                            (0x7L<<12)
                    925: #define BNX2_MISC_ARB_GNT0_4                            (0x7L<<16)
                    926: #define BNX2_MISC_ARB_GNT0_5                            (0x7L<<20)
                    927: #define BNX2_MISC_ARB_GNT0_6                            (0x7L<<24)
                    928: #define BNX2_MISC_ARB_GNT0_7                            (0x7L<<28)
                    929: 
                    930: #define BNX2_MISC_ARB_GNT1                             0x0000086c
                    931: #define BNX2_MISC_ARB_GNT1_8                            (0x7L<<0)
                    932: #define BNX2_MISC_ARB_GNT1_9                            (0x7L<<4)
                    933: #define BNX2_MISC_ARB_GNT1_10                           (0x7L<<8)
                    934: #define BNX2_MISC_ARB_GNT1_11                           (0x7L<<12)
                    935: #define BNX2_MISC_ARB_GNT1_12                           (0x7L<<16)
                    936: #define BNX2_MISC_ARB_GNT1_13                           (0x7L<<20)
                    937: #define BNX2_MISC_ARB_GNT1_14                           (0x7L<<24)
                    938: #define BNX2_MISC_ARB_GNT1_15                           (0x7L<<28)
                    939: 
                    940: #define BNX2_MISC_ARB_GNT2                             0x00000870
                    941: #define BNX2_MISC_ARB_GNT2_16                           (0x7L<<0)
                    942: #define BNX2_MISC_ARB_GNT2_17                           (0x7L<<4)
                    943: #define BNX2_MISC_ARB_GNT2_18                           (0x7L<<8)
                    944: #define BNX2_MISC_ARB_GNT2_19                           (0x7L<<12)
                    945: #define BNX2_MISC_ARB_GNT2_20                           (0x7L<<16)
                    946: #define BNX2_MISC_ARB_GNT2_21                           (0x7L<<20)
                    947: #define BNX2_MISC_ARB_GNT2_22                           (0x7L<<24)
                    948: #define BNX2_MISC_ARB_GNT2_23                           (0x7L<<28)
                    949: 
                    950: #define BNX2_MISC_ARB_GNT3                             0x00000874
                    951: #define BNX2_MISC_ARB_GNT3_24                           (0x7L<<0)
                    952: #define BNX2_MISC_ARB_GNT3_25                           (0x7L<<4)
                    953: #define BNX2_MISC_ARB_GNT3_26                           (0x7L<<8)
                    954: #define BNX2_MISC_ARB_GNT3_27                           (0x7L<<12)
                    955: #define BNX2_MISC_ARB_GNT3_28                           (0x7L<<16)
                    956: #define BNX2_MISC_ARB_GNT3_29                           (0x7L<<20)
                    957: #define BNX2_MISC_ARB_GNT3_30                           (0x7L<<24)
                    958: #define BNX2_MISC_ARB_GNT3_31                           (0x7L<<28)
                    959: 
                    960: #define BNX2_MISC_PRBS_CONTROL                         0x00000878
                    961: #define BNX2_MISC_PRBS_CONTROL_EN                       (1L<<0)
                    962: #define BNX2_MISC_PRBS_CONTROL_RSTB                     (1L<<1)
                    963: #define BNX2_MISC_PRBS_CONTROL_INV                      (1L<<2)
                    964: #define BNX2_MISC_PRBS_CONTROL_ERR_CLR                  (1L<<3)
                    965: #define BNX2_MISC_PRBS_CONTROL_ORDER                    (0x3L<<4)
                    966: #define BNX2_MISC_PRBS_CONTROL_ORDER_7TH                (0L<<4)
                    967: #define BNX2_MISC_PRBS_CONTROL_ORDER_15TH               (1L<<4)
                    968: #define BNX2_MISC_PRBS_CONTROL_ORDER_23RD               (2L<<4)
                    969: #define BNX2_MISC_PRBS_CONTROL_ORDER_31ST               (3L<<4)
                    970: 
                    971: #define BNX2_MISC_PRBS_STATUS                          0x0000087c
                    972: #define BNX2_MISC_PRBS_STATUS_LOCK                      (1L<<0)
                    973: #define BNX2_MISC_PRBS_STATUS_STKY                      (1L<<1)
                    974: #define BNX2_MISC_PRBS_STATUS_ERRORS                    (0x3fffL<<2)
                    975: #define BNX2_MISC_PRBS_STATUS_STATE                     (0xfL<<16)
                    976: 
                    977: #define BNX2_MISC_SM_ASF_CONTROL                       0x00000880
                    978: #define BNX2_MISC_SM_ASF_CONTROL_ASF_RST                (1L<<0)
                    979: #define BNX2_MISC_SM_ASF_CONTROL_TSC_EN                         (1L<<1)
                    980: #define BNX2_MISC_SM_ASF_CONTROL_WG_TO                  (1L<<2)
                    981: #define BNX2_MISC_SM_ASF_CONTROL_HB_TO                  (1L<<3)
                    982: #define BNX2_MISC_SM_ASF_CONTROL_PA_TO                  (1L<<4)
                    983: #define BNX2_MISC_SM_ASF_CONTROL_PL_TO                  (1L<<5)
                    984: #define BNX2_MISC_SM_ASF_CONTROL_RT_TO                  (1L<<6)
                    985: #define BNX2_MISC_SM_ASF_CONTROL_SMB_EVENT              (1L<<7)
                    986: #define BNX2_MISC_SM_ASF_CONTROL_RES                    (0xfL<<8)
                    987: #define BNX2_MISC_SM_ASF_CONTROL_SMB_EN                         (1L<<12)
                    988: #define BNX2_MISC_SM_ASF_CONTROL_SMB_BB_EN              (1L<<13)
                    989: #define BNX2_MISC_SM_ASF_CONTROL_SMB_NO_ADDR_FILT       (1L<<14)
                    990: #define BNX2_MISC_SM_ASF_CONTROL_SMB_AUTOREAD           (1L<<15)
                    991: #define BNX2_MISC_SM_ASF_CONTROL_NIC_SMB_ADDR1          (0x3fL<<16)
                    992: #define BNX2_MISC_SM_ASF_CONTROL_NIC_SMB_ADDR2          (0x3fL<<24)
                    993: #define BNX2_MISC_SM_ASF_CONTROL_EN_NIC_SMB_ADDR_0      (1L<<30)
                    994: #define BNX2_MISC_SM_ASF_CONTROL_SMB_EARLY_ATTN                 (1L<<31)
                    995: 
                    996: #define BNX2_MISC_SMB_IN                               0x00000884
                    997: #define BNX2_MISC_SMB_IN_DAT_IN                                 (0xffL<<0)
                    998: #define BNX2_MISC_SMB_IN_RDY                            (1L<<8)
                    999: #define BNX2_MISC_SMB_IN_DONE                           (1L<<9)
                   1000: #define BNX2_MISC_SMB_IN_FIRSTBYTE                      (1L<<10)
                   1001: #define BNX2_MISC_SMB_IN_STATUS                                 (0x7L<<11)
                   1002: #define BNX2_MISC_SMB_IN_STATUS_OK                      (0x0L<<11)
                   1003: #define BNX2_MISC_SMB_IN_STATUS_PEC                     (0x1L<<11)
                   1004: #define BNX2_MISC_SMB_IN_STATUS_OFLOW                   (0x2L<<11)
                   1005: #define BNX2_MISC_SMB_IN_STATUS_STOP                    (0x3L<<11)
                   1006: #define BNX2_MISC_SMB_IN_STATUS_TIMEOUT                         (0x4L<<11)
                   1007: 
                   1008: #define BNX2_MISC_SMB_OUT                              0x00000888
                   1009: #define BNX2_MISC_SMB_OUT_DAT_OUT                       (0xffL<<0)
                   1010: #define BNX2_MISC_SMB_OUT_RDY                           (1L<<8)
                   1011: #define BNX2_MISC_SMB_OUT_START                                 (1L<<9)
                   1012: #define BNX2_MISC_SMB_OUT_LAST                          (1L<<10)
                   1013: #define BNX2_MISC_SMB_OUT_ACC_TYPE                      (1L<<11)
                   1014: #define BNX2_MISC_SMB_OUT_ENB_PEC                       (1L<<12)
                   1015: #define BNX2_MISC_SMB_OUT_GET_RX_LEN                    (1L<<13)
                   1016: #define BNX2_MISC_SMB_OUT_SMB_READ_LEN                  (0x3fL<<14)
                   1017: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS                (0xfL<<20)
                   1018: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_OK             (0L<<20)
                   1019: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_FIRST_NACK     (1L<<20)
                   1020: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_SUB_NACK       (9L<<20)
                   1021: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_UFLOW          (2L<<20)
                   1022: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_STOP           (3L<<20)
                   1023: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_TIMEOUT        (4L<<20)
                   1024: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_FIRST_LOST     (5L<<20)
                   1025: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_SUB_LOST       (0xdL<<20)
                   1026: #define BNX2_MISC_SMB_OUT_SMB_OUT_STATUS_BADACK                 (0x6L<<20)
                   1027: #define BNX2_MISC_SMB_OUT_SMB_OUT_SLAVEMODE             (1L<<24)
                   1028: #define BNX2_MISC_SMB_OUT_SMB_OUT_DAT_EN                (1L<<25)
                   1029: #define BNX2_MISC_SMB_OUT_SMB_OUT_DAT_IN                (1L<<26)
                   1030: #define BNX2_MISC_SMB_OUT_SMB_OUT_CLK_EN                (1L<<27)
                   1031: #define BNX2_MISC_SMB_OUT_SMB_OUT_CLK_IN                (1L<<28)
                   1032: 
                   1033: #define BNX2_MISC_SMB_WATCHDOG                         0x0000088c
                   1034: #define BNX2_MISC_SMB_WATCHDOG_WATCHDOG                         (0xffffL<<0)
                   1035: 
                   1036: #define BNX2_MISC_SMB_HEARTBEAT                                0x00000890
                   1037: #define BNX2_MISC_SMB_HEARTBEAT_HEARTBEAT               (0xffffL<<0)
                   1038: 
                   1039: #define BNX2_MISC_SMB_POLL_ASF                         0x00000894
                   1040: #define BNX2_MISC_SMB_POLL_ASF_POLL_ASF                         (0xffffL<<0)
                   1041: 
                   1042: #define BNX2_MISC_SMB_POLL_LEGACY                      0x00000898
                   1043: #define BNX2_MISC_SMB_POLL_LEGACY_POLL_LEGACY           (0xffffL<<0)
                   1044: 
                   1045: #define BNX2_MISC_SMB_RETRAN                           0x0000089c
                   1046: #define BNX2_MISC_SMB_RETRAN_RETRAN                     (0xffL<<0)
                   1047: 
                   1048: #define BNX2_MISC_SMB_TIMESTAMP                                0x000008a0
                   1049: #define BNX2_MISC_SMB_TIMESTAMP_TIMESTAMP               (0xffffffffL<<0)
                   1050: 
                   1051: #define BNX2_MISC_PERR_ENA0                            0x000008a4
                   1052: #define BNX2_MISC_PERR_ENA0_COM_MISC_CTXC               (1L<<0)
                   1053: #define BNX2_MISC_PERR_ENA0_COM_MISC_REGF               (1L<<1)
                   1054: #define BNX2_MISC_PERR_ENA0_COM_MISC_SCPAD              (1L<<2)
                   1055: #define BNX2_MISC_PERR_ENA0_CP_MISC_CTXC                (1L<<3)
                   1056: #define BNX2_MISC_PERR_ENA0_CP_MISC_REGF                (1L<<4)
                   1057: #define BNX2_MISC_PERR_ENA0_CP_MISC_SCPAD               (1L<<5)
                   1058: #define BNX2_MISC_PERR_ENA0_CS_MISC_TMEM                (1L<<6)
                   1059: #define BNX2_MISC_PERR_ENA0_CTX_MISC_ACCM0              (1L<<7)
                   1060: #define BNX2_MISC_PERR_ENA0_CTX_MISC_ACCM1              (1L<<8)
                   1061: #define BNX2_MISC_PERR_ENA0_CTX_MISC_ACCM2              (1L<<9)
                   1062: #define BNX2_MISC_PERR_ENA0_CTX_MISC_ACCM3              (1L<<10)
                   1063: #define BNX2_MISC_PERR_ENA0_CTX_MISC_ACCM4              (1L<<11)
                   1064: #define BNX2_MISC_PERR_ENA0_CTX_MISC_ACCM5              (1L<<12)
                   1065: #define BNX2_MISC_PERR_ENA0_CTX_MISC_PGTBL              (1L<<13)
                   1066: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DR0               (1L<<14)
                   1067: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DR1               (1L<<15)
                   1068: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DR2               (1L<<16)
                   1069: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DR3               (1L<<17)
                   1070: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DR4               (1L<<18)
                   1071: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DW0               (1L<<19)
                   1072: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DW1               (1L<<20)
                   1073: #define BNX2_MISC_PERR_ENA0_DMAE_MISC_DW2               (1L<<21)
                   1074: #define BNX2_MISC_PERR_ENA0_HC_MISC_DMA                         (1L<<22)
                   1075: #define BNX2_MISC_PERR_ENA0_MCP_MISC_REGF               (1L<<23)
                   1076: #define BNX2_MISC_PERR_ENA0_MCP_MISC_SCPAD              (1L<<24)
                   1077: #define BNX2_MISC_PERR_ENA0_MQ_MISC_CTX                         (1L<<25)
                   1078: #define BNX2_MISC_PERR_ENA0_RBDC_MISC                   (1L<<26)
                   1079: #define BNX2_MISC_PERR_ENA0_RBUF_MISC_MB                (1L<<27)
                   1080: #define BNX2_MISC_PERR_ENA0_RBUF_MISC_PTR               (1L<<28)
                   1081: #define BNX2_MISC_PERR_ENA0_RDE_MISC_RPC                (1L<<29)
                   1082: #define BNX2_MISC_PERR_ENA0_RDE_MISC_RPM                (1L<<30)
                   1083: #define BNX2_MISC_PERR_ENA0_RV2P_MISC_CB0REGS           (1L<<31)
                   1084: 
                   1085: #define BNX2_MISC_PERR_ENA1                            0x000008a8
                   1086: #define BNX2_MISC_PERR_ENA1_RV2P_MISC_CB1REGS           (1L<<0)
                   1087: #define BNX2_MISC_PERR_ENA1_RV2P_MISC_P1IRAM            (1L<<1)
                   1088: #define BNX2_MISC_PERR_ENA1_RV2P_MISC_P2IRAM            (1L<<2)
                   1089: #define BNX2_MISC_PERR_ENA1_RXP_MISC_CTXC               (1L<<3)
                   1090: #define BNX2_MISC_PERR_ENA1_RXP_MISC_REGF               (1L<<4)
                   1091: #define BNX2_MISC_PERR_ENA1_RXP_MISC_SCPAD              (1L<<5)
                   1092: #define BNX2_MISC_PERR_ENA1_RXP_MISC_RBUFC              (1L<<6)
                   1093: #define BNX2_MISC_PERR_ENA1_TBDC_MISC                   (1L<<7)
                   1094: #define BNX2_MISC_PERR_ENA1_TDMA_MISC                   (1L<<8)
                   1095: #define BNX2_MISC_PERR_ENA1_THBUF_MISC_MB0              (1L<<9)
                   1096: #define BNX2_MISC_PERR_ENA1_THBUF_MISC_MB1              (1L<<10)
                   1097: #define BNX2_MISC_PERR_ENA1_TPAT_MISC_REGF              (1L<<11)
                   1098: #define BNX2_MISC_PERR_ENA1_TPAT_MISC_SCPAD             (1L<<12)
                   1099: #define BNX2_MISC_PERR_ENA1_TPBUF_MISC_MB               (1L<<13)
                   1100: #define BNX2_MISC_PERR_ENA1_TSCH_MISC_LR                (1L<<14)
                   1101: #define BNX2_MISC_PERR_ENA1_TXP_MISC_CTXC               (1L<<15)
                   1102: #define BNX2_MISC_PERR_ENA1_TXP_MISC_REGF               (1L<<16)
                   1103: #define BNX2_MISC_PERR_ENA1_TXP_MISC_SCPAD              (1L<<17)
                   1104: #define BNX2_MISC_PERR_ENA1_UMP_MISC_FIORX              (1L<<18)
                   1105: #define BNX2_MISC_PERR_ENA1_UMP_MISC_FIOTX              (1L<<19)
                   1106: #define BNX2_MISC_PERR_ENA1_UMP_MISC_RX                         (1L<<20)
                   1107: #define BNX2_MISC_PERR_ENA1_UMP_MISC_TX                         (1L<<21)
                   1108: #define BNX2_MISC_PERR_ENA1_RDMAQ_MISC                  (1L<<22)
                   1109: #define BNX2_MISC_PERR_ENA1_CSQ_MISC                    (1L<<23)
                   1110: #define BNX2_MISC_PERR_ENA1_CPQ_MISC                    (1L<<24)
                   1111: #define BNX2_MISC_PERR_ENA1_MCPQ_MISC                   (1L<<25)
                   1112: #define BNX2_MISC_PERR_ENA1_RV2PMQ_MISC                         (1L<<26)
                   1113: #define BNX2_MISC_PERR_ENA1_RV2PPQ_MISC                         (1L<<27)
                   1114: #define BNX2_MISC_PERR_ENA1_RV2PTQ_MISC                         (1L<<28)
                   1115: #define BNX2_MISC_PERR_ENA1_RXPQ_MISC                   (1L<<29)
                   1116: #define BNX2_MISC_PERR_ENA1_RXPCQ_MISC                  (1L<<30)
                   1117: #define BNX2_MISC_PERR_ENA1_RLUPQ_MISC                  (1L<<31)
                   1118: 
                   1119: #define BNX2_MISC_PERR_ENA2                            0x000008ac
                   1120: #define BNX2_MISC_PERR_ENA2_COMQ_MISC                   (1L<<0)
                   1121: #define BNX2_MISC_PERR_ENA2_COMXQ_MISC                  (1L<<1)
                   1122: #define BNX2_MISC_PERR_ENA2_COMTQ_MISC                  (1L<<2)
                   1123: #define BNX2_MISC_PERR_ENA2_TSCHQ_MISC                  (1L<<3)
                   1124: #define BNX2_MISC_PERR_ENA2_TBDRQ_MISC                  (1L<<4)
                   1125: #define BNX2_MISC_PERR_ENA2_TXPQ_MISC                   (1L<<5)
                   1126: #define BNX2_MISC_PERR_ENA2_TDMAQ_MISC                  (1L<<6)
                   1127: #define BNX2_MISC_PERR_ENA2_TPATQ_MISC                  (1L<<7)
                   1128: #define BNX2_MISC_PERR_ENA2_TASQ_MISC                   (1L<<8)
                   1129: 
                   1130: #define BNX2_MISC_DEBUG_VECTOR_SEL                     0x000008b0
                   1131: #define BNX2_MISC_DEBUG_VECTOR_SEL_0                    (0xfffL<<0)
                   1132: #define BNX2_MISC_DEBUG_VECTOR_SEL_1                    (0xfffL<<12)
                   1133: 
                   1134: #define BNX2_MISC_VREG_CONTROL                         0x000008b4
                   1135: #define BNX2_MISC_VREG_CONTROL_1_2                      (0xfL<<0)
                   1136: #define BNX2_MISC_VREG_CONTROL_2_5                      (0xfL<<4)
                   1137: 
                   1138: #define BNX2_MISC_FINAL_CLK_CTL_VAL                    0x000008b8
                   1139: #define BNX2_MISC_FINAL_CLK_CTL_VAL_MISC_FINAL_CLK_CTL_VAL      (0x3ffffffL<<6)
                   1140: 
                   1141: #define BNX2_MISC_UNUSED0                              0x000008bc
                   1142: 
                   1143: 
                   1144: /*
                   1145:  *  nvm_reg definition
                   1146:  *  offset: 0x6400
                   1147:  */
                   1148: #define BNX2_NVM_COMMAND                               0x00006400
                   1149: #define BNX2_NVM_COMMAND_RST                            (1L<<0)
                   1150: #define BNX2_NVM_COMMAND_DONE                           (1L<<3)
                   1151: #define BNX2_NVM_COMMAND_DOIT                           (1L<<4)
                   1152: #define BNX2_NVM_COMMAND_WR                             (1L<<5)
                   1153: #define BNX2_NVM_COMMAND_ERASE                          (1L<<6)
                   1154: #define BNX2_NVM_COMMAND_FIRST                          (1L<<7)
                   1155: #define BNX2_NVM_COMMAND_LAST                           (1L<<8)
                   1156: #define BNX2_NVM_COMMAND_WREN                           (1L<<16)
                   1157: #define BNX2_NVM_COMMAND_WRDI                           (1L<<17)
                   1158: #define BNX2_NVM_COMMAND_EWSR                           (1L<<18)
                   1159: #define BNX2_NVM_COMMAND_WRSR                           (1L<<19)
                   1160: 
                   1161: #define BNX2_NVM_STATUS                                        0x00006404
                   1162: #define BNX2_NVM_STATUS_PI_FSM_STATE                    (0xfL<<0)
                   1163: #define BNX2_NVM_STATUS_EE_FSM_STATE                    (0xfL<<4)
                   1164: #define BNX2_NVM_STATUS_EQ_FSM_STATE                    (0xfL<<8)
                   1165: 
                   1166: #define BNX2_NVM_WRITE                                 0x00006408
                   1167: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE                  (0xffffffffL<<0)
                   1168: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE_BIT_BANG                 (0L<<0)
                   1169: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE_EECLK            (1L<<0)
                   1170: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE_EEDATA           (2L<<0)
                   1171: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE_SCLK             (4L<<0)
                   1172: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE_CS_B             (8L<<0)
                   1173: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE_SO               (16L<<0)
                   1174: #define BNX2_NVM_WRITE_NVM_WRITE_VALUE_SI               (32L<<0)
                   1175: 
                   1176: #define BNX2_NVM_ADDR                                  0x0000640c
                   1177: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE                    (0xffffffL<<0)
                   1178: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE_BIT_BANG           (0L<<0)
                   1179: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE_EECLK              (1L<<0)
                   1180: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE_EEDATA             (2L<<0)
                   1181: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE_SCLK               (4L<<0)
                   1182: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE_CS_B               (8L<<0)
                   1183: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE_SO                         (16L<<0)
                   1184: #define BNX2_NVM_ADDR_NVM_ADDR_VALUE_SI                         (32L<<0)
                   1185: 
                   1186: #define BNX2_NVM_READ                                  0x00006410
                   1187: #define BNX2_NVM_READ_NVM_READ_VALUE                    (0xffffffffL<<0)
                   1188: #define BNX2_NVM_READ_NVM_READ_VALUE_BIT_BANG           (0L<<0)
                   1189: #define BNX2_NVM_READ_NVM_READ_VALUE_EECLK              (1L<<0)
                   1190: #define BNX2_NVM_READ_NVM_READ_VALUE_EEDATA             (2L<<0)
                   1191: #define BNX2_NVM_READ_NVM_READ_VALUE_SCLK               (4L<<0)
                   1192: #define BNX2_NVM_READ_NVM_READ_VALUE_CS_B               (8L<<0)
                   1193: #define BNX2_NVM_READ_NVM_READ_VALUE_SO                         (16L<<0)
                   1194: #define BNX2_NVM_READ_NVM_READ_VALUE_SI                         (32L<<0)
                   1195: 
                   1196: #define BNX2_NVM_CFG1                                  0x00006414
                   1197: #define BNX2_NVM_CFG1_FLASH_MODE                        (1L<<0)
                   1198: #define BNX2_NVM_CFG1_BUFFER_MODE                       (1L<<1)
                   1199: #define BNX2_NVM_CFG1_PASS_MODE                                 (1L<<2)
                   1200: #define BNX2_NVM_CFG1_BITBANG_MODE                      (1L<<3)
                   1201: #define BNX2_NVM_CFG1_STATUS_BIT                        (0x7L<<4)
                   1202: #define BNX2_NVM_CFG1_STATUS_BIT_FLASH_RDY              (0L<<4)
                   1203: #define BNX2_NVM_CFG1_STATUS_BIT_BUFFER_RDY             (7L<<4)
                   1204: #define BNX2_NVM_CFG1_SPI_CLK_DIV                       (0xfL<<7)
                   1205: #define BNX2_NVM_CFG1_SEE_CLK_DIV                       (0x7ffL<<11)
                   1206: #define BNX2_NVM_CFG1_PROTECT_MODE                      (1L<<24)
                   1207: #define BNX2_NVM_CFG1_FLASH_SIZE                        (1L<<25)
                   1208: #define BNX2_NVM_CFG1_COMPAT_BYPASSS                    (1L<<31)
                   1209: 
                   1210: #define BNX2_NVM_CFG2                                  0x00006418
                   1211: #define BNX2_NVM_CFG2_ERASE_CMD                                 (0xffL<<0)
                   1212: #define BNX2_NVM_CFG2_DUMMY                             (0xffL<<8)
                   1213: #define BNX2_NVM_CFG2_STATUS_CMD                        (0xffL<<16)
                   1214: 
                   1215: #define BNX2_NVM_CFG3                                  0x0000641c
                   1216: #define BNX2_NVM_CFG3_BUFFER_RD_CMD                     (0xffL<<0)
                   1217: #define BNX2_NVM_CFG3_WRITE_CMD                                 (0xffL<<8)
                   1218: #define BNX2_NVM_CFG3_BUFFER_WRITE_CMD                  (0xffL<<16)
                   1219: #define BNX2_NVM_CFG3_READ_CMD                          (0xffL<<24)
                   1220: 
                   1221: #define BNX2_NVM_SW_ARB                                        0x00006420
                   1222: #define BNX2_NVM_SW_ARB_ARB_REQ_SET0                    (1L<<0)
                   1223: #define BNX2_NVM_SW_ARB_ARB_REQ_SET1                    (1L<<1)
                   1224: #define BNX2_NVM_SW_ARB_ARB_REQ_SET2                    (1L<<2)
                   1225: #define BNX2_NVM_SW_ARB_ARB_REQ_SET3                    (1L<<3)
                   1226: #define BNX2_NVM_SW_ARB_ARB_REQ_CLR0                    (1L<<4)
                   1227: #define BNX2_NVM_SW_ARB_ARB_REQ_CLR1                    (1L<<5)
                   1228: #define BNX2_NVM_SW_ARB_ARB_REQ_CLR2                    (1L<<6)
                   1229: #define BNX2_NVM_SW_ARB_ARB_REQ_CLR3                    (1L<<7)
                   1230: #define BNX2_NVM_SW_ARB_ARB_ARB0                        (1L<<8)
                   1231: #define BNX2_NVM_SW_ARB_ARB_ARB1                        (1L<<9)
                   1232: #define BNX2_NVM_SW_ARB_ARB_ARB2                        (1L<<10)
                   1233: #define BNX2_NVM_SW_ARB_ARB_ARB3                        (1L<<11)
                   1234: #define BNX2_NVM_SW_ARB_REQ0                            (1L<<12)
                   1235: #define BNX2_NVM_SW_ARB_REQ1                            (1L<<13)
                   1236: #define BNX2_NVM_SW_ARB_REQ2                            (1L<<14)
                   1237: #define BNX2_NVM_SW_ARB_REQ3                            (1L<<15)
                   1238: 
                   1239: #define BNX2_NVM_ACCESS_ENABLE                         0x00006424
                   1240: #define BNX2_NVM_ACCESS_ENABLE_EN                       (1L<<0)
                   1241: #define BNX2_NVM_ACCESS_ENABLE_WR_EN                    (1L<<1)
                   1242: 
                   1243: #define BNX2_NVM_WRITE1                                        0x00006428
                   1244: #define BNX2_NVM_WRITE1_WREN_CMD                        (0xffL<<0)
                   1245: #define BNX2_NVM_WRITE1_WRDI_CMD                        (0xffL<<8)
                   1246: #define BNX2_NVM_WRITE1_SR_DATA                                 (0xffL<<16)
                   1247: 
                   1248: 
                   1249: 
                   1250: /*
                   1251:  *  dma_reg definition
                   1252:  *  offset: 0xc00
                   1253:  */
                   1254: #define BNX2_DMA_COMMAND                               0x00000c00
                   1255: #define BNX2_DMA_COMMAND_ENABLE                                 (1L<<0)
                   1256: 
                   1257: #define BNX2_DMA_STATUS                                        0x00000c04
                   1258: #define BNX2_DMA_STATUS_PAR_ERROR_STATE                         (1L<<0)
                   1259: #define BNX2_DMA_STATUS_READ_TRANSFERS_STAT             (1L<<16)
                   1260: #define BNX2_DMA_STATUS_READ_DELAY_PCI_CLKS_STAT        (1L<<17)
                   1261: #define BNX2_DMA_STATUS_BIG_READ_TRANSFERS_STAT                 (1L<<18)
                   1262: #define BNX2_DMA_STATUS_BIG_READ_DELAY_PCI_CLKS_STAT    (1L<<19)
                   1263: #define BNX2_DMA_STATUS_BIG_READ_RETRY_AFTER_DATA_STAT  (1L<<20)
                   1264: #define BNX2_DMA_STATUS_WRITE_TRANSFERS_STAT            (1L<<21)
                   1265: #define BNX2_DMA_STATUS_WRITE_DELAY_PCI_CLKS_STAT       (1L<<22)
                   1266: #define BNX2_DMA_STATUS_BIG_WRITE_TRANSFERS_STAT        (1L<<23)
                   1267: #define BNX2_DMA_STATUS_BIG_WRITE_DELAY_PCI_CLKS_STAT   (1L<<24)
                   1268: #define BNX2_DMA_STATUS_BIG_WRITE_RETRY_AFTER_DATA_STAT         (1L<<25)
                   1269: 
                   1270: #define BNX2_DMA_CONFIG                                        0x00000c08
                   1271: #define BNX2_DMA_CONFIG_DATA_BYTE_SWAP                  (1L<<0)
                   1272: #define BNX2_DMA_CONFIG_DATA_WORD_SWAP                  (1L<<1)
                   1273: #define BNX2_DMA_CONFIG_CNTL_BYTE_SWAP                  (1L<<4)
                   1274: #define BNX2_DMA_CONFIG_CNTL_WORD_SWAP                  (1L<<5)
                   1275: #define BNX2_DMA_CONFIG_ONE_DMA                                 (1L<<6)
                   1276: #define BNX2_DMA_CONFIG_CNTL_TWO_DMA                    (1L<<7)
                   1277: #define BNX2_DMA_CONFIG_CNTL_FPGA_MODE                  (1L<<8)
                   1278: #define BNX2_DMA_CONFIG_CNTL_PING_PONG_DMA              (1L<<10)
                   1279: #define BNX2_DMA_CONFIG_CNTL_PCI_COMP_DLY               (1L<<11)
                   1280: #define BNX2_DMA_CONFIG_NO_RCHANS_IN_USE                (0xfL<<12)
                   1281: #define BNX2_DMA_CONFIG_NO_WCHANS_IN_USE                (0xfL<<16)
                   1282: #define BNX2_DMA_CONFIG_PCI_CLK_CMP_BITS                (0x7L<<20)
                   1283: #define BNX2_DMA_CONFIG_PCI_FAST_CLK_CMP                (1L<<23)
                   1284: #define BNX2_DMA_CONFIG_BIG_SIZE                        (0xfL<<24)
                   1285: #define BNX2_DMA_CONFIG_BIG_SIZE_NONE                   (0x0L<<24)
                   1286: #define BNX2_DMA_CONFIG_BIG_SIZE_64                     (0x1L<<24)
                   1287: #define BNX2_DMA_CONFIG_BIG_SIZE_128                    (0x2L<<24)
                   1288: #define BNX2_DMA_CONFIG_BIG_SIZE_256                    (0x4L<<24)
                   1289: #define BNX2_DMA_CONFIG_BIG_SIZE_512                    (0x8L<<24)
                   1290: 
                   1291: #define BNX2_DMA_BLACKOUT                              0x00000c0c
                   1292: #define BNX2_DMA_BLACKOUT_RD_RETRY_BLACKOUT             (0xffL<<0)
                   1293: #define BNX2_DMA_BLACKOUT_2ND_RD_RETRY_BLACKOUT                 (0xffL<<8)
                   1294: #define BNX2_DMA_BLACKOUT_WR_RETRY_BLACKOUT             (0xffL<<16)
                   1295: 
                   1296: #define BNX2_DMA_RCHAN_STAT                            0x00000c30
                   1297: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_0                         (0x7L<<0)
                   1298: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_0                   (1L<<3)
                   1299: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_1                         (0x7L<<4)
                   1300: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_1                   (1L<<7)
                   1301: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_2                         (0x7L<<8)
                   1302: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_2                   (1L<<11)
                   1303: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_3                         (0x7L<<12)
                   1304: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_3                   (1L<<15)
                   1305: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_4                         (0x7L<<16)
                   1306: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_4                   (1L<<19)
                   1307: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_5                         (0x7L<<20)
                   1308: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_5                   (1L<<23)
                   1309: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_6                         (0x7L<<24)
                   1310: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_6                   (1L<<27)
                   1311: #define BNX2_DMA_RCHAN_STAT_COMP_CODE_7                         (0x7L<<28)
                   1312: #define BNX2_DMA_RCHAN_STAT_PAR_ERR_7                   (1L<<31)
                   1313: 
                   1314: #define BNX2_DMA_WCHAN_STAT                            0x00000c34
                   1315: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_0                         (0x7L<<0)
                   1316: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_0                   (1L<<3)
                   1317: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_1                         (0x7L<<4)
                   1318: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_1                   (1L<<7)
                   1319: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_2                         (0x7L<<8)
                   1320: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_2                   (1L<<11)
                   1321: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_3                         (0x7L<<12)
                   1322: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_3                   (1L<<15)
                   1323: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_4                         (0x7L<<16)
                   1324: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_4                   (1L<<19)
                   1325: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_5                         (0x7L<<20)
                   1326: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_5                   (1L<<23)
                   1327: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_6                         (0x7L<<24)
                   1328: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_6                   (1L<<27)
                   1329: #define BNX2_DMA_WCHAN_STAT_COMP_CODE_7                         (0x7L<<28)
                   1330: #define BNX2_DMA_WCHAN_STAT_PAR_ERR_7                   (1L<<31)
                   1331: 
                   1332: #define BNX2_DMA_RCHAN_ASSIGNMENT                      0x00000c38
                   1333: #define BNX2_DMA_RCHAN_ASSIGNMENT_0                     (0xfL<<0)
                   1334: #define BNX2_DMA_RCHAN_ASSIGNMENT_1                     (0xfL<<4)
                   1335: #define BNX2_DMA_RCHAN_ASSIGNMENT_2                     (0xfL<<8)
                   1336: #define BNX2_DMA_RCHAN_ASSIGNMENT_3                     (0xfL<<12)
                   1337: #define BNX2_DMA_RCHAN_ASSIGNMENT_4                     (0xfL<<16)
                   1338: #define BNX2_DMA_RCHAN_ASSIGNMENT_5                     (0xfL<<20)
                   1339: #define BNX2_DMA_RCHAN_ASSIGNMENT_6                     (0xfL<<24)
                   1340: #define BNX2_DMA_RCHAN_ASSIGNMENT_7                     (0xfL<<28)
                   1341: 
                   1342: #define BNX2_DMA_WCHAN_ASSIGNMENT                      0x00000c3c
                   1343: #define BNX2_DMA_WCHAN_ASSIGNMENT_0                     (0xfL<<0)
                   1344: #define BNX2_DMA_WCHAN_ASSIGNMENT_1                     (0xfL<<4)
                   1345: #define BNX2_DMA_WCHAN_ASSIGNMENT_2                     (0xfL<<8)
                   1346: #define BNX2_DMA_WCHAN_ASSIGNMENT_3                     (0xfL<<12)
                   1347: #define BNX2_DMA_WCHAN_ASSIGNMENT_4                     (0xfL<<16)
                   1348: #define BNX2_DMA_WCHAN_ASSIGNMENT_5                     (0xfL<<20)
                   1349: #define BNX2_DMA_WCHAN_ASSIGNMENT_6                     (0xfL<<24)
                   1350: #define BNX2_DMA_WCHAN_ASSIGNMENT_7                     (0xfL<<28)
                   1351: 
                   1352: #define BNX2_DMA_RCHAN_STAT_00                         0x00000c40
                   1353: #define BNX2_DMA_RCHAN_STAT_00_RCHAN_STA_HOST_ADDR_LOW  (0xffffffffL<<0)
                   1354: 
                   1355: #define BNX2_DMA_RCHAN_STAT_01                         0x00000c44
                   1356: #define BNX2_DMA_RCHAN_STAT_01_RCHAN_STA_HOST_ADDR_HIGH         (0xffffffffL<<0)
                   1357: 
                   1358: #define BNX2_DMA_RCHAN_STAT_02                         0x00000c48
                   1359: #define BNX2_DMA_RCHAN_STAT_02_LENGTH                   (0xffffL<<0)
                   1360: #define BNX2_DMA_RCHAN_STAT_02_WORD_SWAP                (1L<<16)
                   1361: #define BNX2_DMA_RCHAN_STAT_02_BYTE_SWAP                (1L<<17)
                   1362: #define BNX2_DMA_RCHAN_STAT_02_PRIORITY_LVL             (1L<<18)
                   1363: 
                   1364: #define BNX2_DMA_RCHAN_STAT_10                         0x00000c4c
                   1365: #define BNX2_DMA_RCHAN_STAT_11                         0x00000c50
                   1366: #define BNX2_DMA_RCHAN_STAT_12                         0x00000c54
                   1367: #define BNX2_DMA_RCHAN_STAT_20                         0x00000c58
                   1368: #define BNX2_DMA_RCHAN_STAT_21                         0x00000c5c
                   1369: #define BNX2_DMA_RCHAN_STAT_22                         0x00000c60
                   1370: #define BNX2_DMA_RCHAN_STAT_30                         0x00000c64
                   1371: #define BNX2_DMA_RCHAN_STAT_31                         0x00000c68
                   1372: #define BNX2_DMA_RCHAN_STAT_32                         0x00000c6c
                   1373: #define BNX2_DMA_RCHAN_STAT_40                         0x00000c70
                   1374: #define BNX2_DMA_RCHAN_STAT_41                         0x00000c74
                   1375: #define BNX2_DMA_RCHAN_STAT_42                         0x00000c78
                   1376: #define BNX2_DMA_RCHAN_STAT_50                         0x00000c7c
                   1377: #define BNX2_DMA_RCHAN_STAT_51                         0x00000c80
                   1378: #define BNX2_DMA_RCHAN_STAT_52                         0x00000c84
                   1379: #define BNX2_DMA_RCHAN_STAT_60                         0x00000c88
                   1380: #define BNX2_DMA_RCHAN_STAT_61                         0x00000c8c
                   1381: #define BNX2_DMA_RCHAN_STAT_62                         0x00000c90
                   1382: #define BNX2_DMA_RCHAN_STAT_70                         0x00000c94
                   1383: #define BNX2_DMA_RCHAN_STAT_71                         0x00000c98
                   1384: #define BNX2_DMA_RCHAN_STAT_72                         0x00000c9c
                   1385: #define BNX2_DMA_WCHAN_STAT_00                         0x00000ca0
                   1386: #define BNX2_DMA_WCHAN_STAT_00_WCHAN_STA_HOST_ADDR_LOW  (0xffffffffL<<0)
                   1387: 
                   1388: #define BNX2_DMA_WCHAN_STAT_01                         0x00000ca4
                   1389: #define BNX2_DMA_WCHAN_STAT_01_WCHAN_STA_HOST_ADDR_HIGH         (0xffffffffL<<0)
                   1390: 
                   1391: #define BNX2_DMA_WCHAN_STAT_02                         0x00000ca8
                   1392: #define BNX2_DMA_WCHAN_STAT_02_LENGTH                   (0xffffL<<0)
                   1393: #define BNX2_DMA_WCHAN_STAT_02_WORD_SWAP                (1L<<16)
                   1394: #define BNX2_DMA_WCHAN_STAT_02_BYTE_SWAP                (1L<<17)
                   1395: #define BNX2_DMA_WCHAN_STAT_02_PRIORITY_LVL             (1L<<18)
                   1396: 
                   1397: #define BNX2_DMA_WCHAN_STAT_10                         0x00000cac
                   1398: #define BNX2_DMA_WCHAN_STAT_11                         0x00000cb0
                   1399: #define BNX2_DMA_WCHAN_STAT_12                         0x00000cb4
                   1400: #define BNX2_DMA_WCHAN_STAT_20                         0x00000cb8
                   1401: #define BNX2_DMA_WCHAN_STAT_21                         0x00000cbc
                   1402: #define BNX2_DMA_WCHAN_STAT_22                         0x00000cc0
                   1403: #define BNX2_DMA_WCHAN_STAT_30                         0x00000cc4
                   1404: #define BNX2_DMA_WCHAN_STAT_31                         0x00000cc8
                   1405: #define BNX2_DMA_WCHAN_STAT_32                         0x00000ccc
                   1406: #define BNX2_DMA_WCHAN_STAT_40                         0x00000cd0
                   1407: #define BNX2_DMA_WCHAN_STAT_41                         0x00000cd4
                   1408: #define BNX2_DMA_WCHAN_STAT_42                         0x00000cd8
                   1409: #define BNX2_DMA_WCHAN_STAT_50                         0x00000cdc
                   1410: #define BNX2_DMA_WCHAN_STAT_51                         0x00000ce0
                   1411: #define BNX2_DMA_WCHAN_STAT_52                         0x00000ce4
                   1412: #define BNX2_DMA_WCHAN_STAT_60                         0x00000ce8
                   1413: #define BNX2_DMA_WCHAN_STAT_61                         0x00000cec
                   1414: #define BNX2_DMA_WCHAN_STAT_62                         0x00000cf0
                   1415: #define BNX2_DMA_WCHAN_STAT_70                         0x00000cf4
                   1416: #define BNX2_DMA_WCHAN_STAT_71                         0x00000cf8
                   1417: #define BNX2_DMA_WCHAN_STAT_72                         0x00000cfc
                   1418: #define BNX2_DMA_ARB_STAT_00                           0x00000d00
                   1419: #define BNX2_DMA_ARB_STAT_00_MASTER                     (0xffffL<<0)
                   1420: #define BNX2_DMA_ARB_STAT_00_MASTER_ENC                         (0xffL<<16)
                   1421: #define BNX2_DMA_ARB_STAT_00_CUR_BINMSTR                (0xffL<<24)
                   1422: 
                   1423: #define BNX2_DMA_ARB_STAT_01                           0x00000d04
                   1424: #define BNX2_DMA_ARB_STAT_01_LPR_RPTR                   (0xfL<<0)
                   1425: #define BNX2_DMA_ARB_STAT_01_LPR_WPTR                   (0xfL<<4)
                   1426: #define BNX2_DMA_ARB_STAT_01_LPB_RPTR                   (0xfL<<8)
                   1427: #define BNX2_DMA_ARB_STAT_01_LPB_WPTR                   (0xfL<<12)
                   1428: #define BNX2_DMA_ARB_STAT_01_HPR_RPTR                   (0xfL<<16)
                   1429: #define BNX2_DMA_ARB_STAT_01_HPR_WPTR                   (0xfL<<20)
                   1430: #define BNX2_DMA_ARB_STAT_01_HPB_RPTR                   (0xfL<<24)
                   1431: #define BNX2_DMA_ARB_STAT_01_HPB_WPTR                   (0xfL<<28)
                   1432: 
                   1433: #define BNX2_DMA_FUSE_CTRL0_CMD                                0x00000f00
                   1434: #define BNX2_DMA_FUSE_CTRL0_CMD_PWRUP_DONE              (1L<<0)
                   1435: #define BNX2_DMA_FUSE_CTRL0_CMD_SHIFT_DONE              (1L<<1)
                   1436: #define BNX2_DMA_FUSE_CTRL0_CMD_SHIFT                   (1L<<2)
                   1437: #define BNX2_DMA_FUSE_CTRL0_CMD_LOAD                    (1L<<3)
                   1438: #define BNX2_DMA_FUSE_CTRL0_CMD_SEL                     (0xfL<<8)
                   1439: 
                   1440: #define BNX2_DMA_FUSE_CTRL0_DATA                       0x00000f04
                   1441: #define BNX2_DMA_FUSE_CTRL1_CMD                                0x00000f08
                   1442: #define BNX2_DMA_FUSE_CTRL1_CMD_PWRUP_DONE              (1L<<0)
                   1443: #define BNX2_DMA_FUSE_CTRL1_CMD_SHIFT_DONE              (1L<<1)
                   1444: #define BNX2_DMA_FUSE_CTRL1_CMD_SHIFT                   (1L<<2)
                   1445: #define BNX2_DMA_FUSE_CTRL1_CMD_LOAD                    (1L<<3)
                   1446: #define BNX2_DMA_FUSE_CTRL1_CMD_SEL                     (0xfL<<8)
                   1447: 
                   1448: #define BNX2_DMA_FUSE_CTRL1_DATA                       0x00000f0c
                   1449: #define BNX2_DMA_FUSE_CTRL2_CMD                                0x00000f10
                   1450: #define BNX2_DMA_FUSE_CTRL2_CMD_PWRUP_DONE              (1L<<0)
                   1451: #define BNX2_DMA_FUSE_CTRL2_CMD_SHIFT_DONE              (1L<<1)
                   1452: #define BNX2_DMA_FUSE_CTRL2_CMD_SHIFT                   (1L<<2)
                   1453: #define BNX2_DMA_FUSE_CTRL2_CMD_LOAD                    (1L<<3)
                   1454: #define BNX2_DMA_FUSE_CTRL2_CMD_SEL                     (0xfL<<8)
                   1455: 
                   1456: #define BNX2_DMA_FUSE_CTRL2_DATA                       0x00000f14
                   1457: 
                   1458: 
                   1459: /*
                   1460:  *  context_reg definition
                   1461:  *  offset: 0x1000
                   1462:  */
                   1463: #define BNX2_CTX_COMMAND                               0x00001000
                   1464: #define BNX2_CTX_COMMAND_ENABLED                        (1L<<0)
                   1465: 
                   1466: #define BNX2_CTX_STATUS                                        0x00001004
                   1467: #define BNX2_CTX_STATUS_LOCK_WAIT                       (1L<<0)
                   1468: #define BNX2_CTX_STATUS_READ_STAT                       (1L<<16)
                   1469: #define BNX2_CTX_STATUS_WRITE_STAT                      (1L<<17)
                   1470: #define BNX2_CTX_STATUS_ACC_STALL_STAT                  (1L<<18)
                   1471: #define BNX2_CTX_STATUS_LOCK_STALL_STAT                         (1L<<19)
                   1472: 
                   1473: #define BNX2_CTX_VIRT_ADDR                             0x00001008
                   1474: #define BNX2_CTX_VIRT_ADDR_VIRT_ADDR                    (0x7fffL<<6)
                   1475: 
                   1476: #define BNX2_CTX_PAGE_TBL                              0x0000100c
                   1477: #define BNX2_CTX_PAGE_TBL_PAGE_TBL                      (0x3fffL<<6)
                   1478: 
                   1479: #define BNX2_CTX_DATA_ADR                              0x00001010
                   1480: #define BNX2_CTX_DATA_ADR_DATA_ADR                      (0x7ffffL<<2)
                   1481: 
                   1482: #define BNX2_CTX_DATA                                  0x00001014
                   1483: #define BNX2_CTX_LOCK                                  0x00001018
                   1484: #define BNX2_CTX_LOCK_TYPE                              (0x7L<<0)
                   1485: #define BNX2_CTX_LOCK_TYPE_LOCK_TYPE_VOID               (0x0L<<0)
                   1486: #define BNX2_CTX_LOCK_TYPE_LOCK_TYPE_COMPLETE           (0x7L<<0)
                   1487: #define BNX2_CTX_LOCK_TYPE_LOCK_TYPE_PROTOCOL           (0x1L<<0)
                   1488: #define BNX2_CTX_LOCK_TYPE_LOCK_TYPE_TX                         (0x2L<<0)
                   1489: #define BNX2_CTX_LOCK_TYPE_LOCK_TYPE_TIMER              (0x4L<<0)
                   1490: #define BNX2_CTX_LOCK_CID_VALUE                                 (0x3fffL<<7)
                   1491: #define BNX2_CTX_LOCK_GRANTED                           (1L<<26)
                   1492: #define BNX2_CTX_LOCK_MODE                              (0x7L<<27)
                   1493: #define BNX2_CTX_LOCK_MODE_UNLOCK                       (0x0L<<27)
                   1494: #define BNX2_CTX_LOCK_MODE_IMMEDIATE                    (0x1L<<27)
                   1495: #define BNX2_CTX_LOCK_MODE_SURE                                 (0x2L<<27)
                   1496: #define BNX2_CTX_LOCK_STATUS                            (1L<<30)
                   1497: #define BNX2_CTX_LOCK_REQ                               (1L<<31)
                   1498: 
                   1499: #define BNX2_CTX_ACCESS_STATUS                         0x00001040
                   1500: #define BNX2_CTX_ACCESS_STATUS_MASTERENCODED            (0xfL<<0)
                   1501: #define BNX2_CTX_ACCESS_STATUS_ACCESSMEMORYSM           (0x3L<<10)
                   1502: #define BNX2_CTX_ACCESS_STATUS_PAGETABLEINITSM          (0x3L<<12)
                   1503: #define BNX2_CTX_ACCESS_STATUS_ACCESSMEMORYINITSM       (0x3L<<14)
                   1504: #define BNX2_CTX_ACCESS_STATUS_QUALIFIED_REQUEST        (0x7ffL<<17)
                   1505: 
                   1506: #define BNX2_CTX_DBG_LOCK_STATUS                       0x00001044
                   1507: #define BNX2_CTX_DBG_LOCK_STATUS_SM                     (0x3ffL<<0)
                   1508: #define BNX2_CTX_DBG_LOCK_STATUS_MATCH                  (0x3ffL<<22)
                   1509: 
                   1510: #define BNX2_CTX_CHNL_LOCK_STATUS_0                    0x00001080
                   1511: #define BNX2_CTX_CHNL_LOCK_STATUS_0_CID                         (0x3fffL<<0)
                   1512: #define BNX2_CTX_CHNL_LOCK_STATUS_0_TYPE                (0x3L<<14)
                   1513: #define BNX2_CTX_CHNL_LOCK_STATUS_0_MODE                (1L<<16)
                   1514: 
                   1515: #define BNX2_CTX_CHNL_LOCK_STATUS_1                    0x00001084
                   1516: #define BNX2_CTX_CHNL_LOCK_STATUS_2                    0x00001088
                   1517: #define BNX2_CTX_CHNL_LOCK_STATUS_3                    0x0000108c
                   1518: #define BNX2_CTX_CHNL_LOCK_STATUS_4                    0x00001090
                   1519: #define BNX2_CTX_CHNL_LOCK_STATUS_5                    0x00001094
                   1520: #define BNX2_CTX_CHNL_LOCK_STATUS_6                    0x00001098
                   1521: #define BNX2_CTX_CHNL_LOCK_STATUS_7                    0x0000109c
                   1522: #define BNX2_CTX_CHNL_LOCK_STATUS_8                    0x000010a0
                   1523: 
                   1524: 
                   1525: /*
                   1526:  *  emac_reg definition
                   1527:  *  offset: 0x1400
                   1528:  */
                   1529: #define BNX2_EMAC_MODE                                 0x00001400
                   1530: #define BNX2_EMAC_MODE_RESET                            (1L<<0)
                   1531: #define BNX2_EMAC_MODE_HALF_DUPLEX                      (1L<<1)
                   1532: #define BNX2_EMAC_MODE_PORT                             (0x3L<<2)
                   1533: #define BNX2_EMAC_MODE_PORT_NONE                        (0L<<2)
                   1534: #define BNX2_EMAC_MODE_PORT_MII                                 (1L<<2)
                   1535: #define BNX2_EMAC_MODE_PORT_GMII                        (2L<<2)
                   1536: #define BNX2_EMAC_MODE_PORT_MII_10                      (3L<<2)
                   1537: #define BNX2_EMAC_MODE_MAC_LOOP                                 (1L<<4)
                   1538: #define BNX2_EMAC_MODE_25G                              (1L<<5)
                   1539: #define BNX2_EMAC_MODE_TAGGED_MAC_CTL                   (1L<<7)
                   1540: #define BNX2_EMAC_MODE_TX_BURST                                 (1L<<8)
                   1541: #define BNX2_EMAC_MODE_MAX_DEFER_DROP_ENA               (1L<<9)
                   1542: #define BNX2_EMAC_MODE_EXT_LINK_POL                     (1L<<10)
                   1543: #define BNX2_EMAC_MODE_FORCE_LINK                       (1L<<11)
                   1544: #define BNX2_EMAC_MODE_MPKT                             (1L<<18)
                   1545: #define BNX2_EMAC_MODE_MPKT_RCVD                        (1L<<19)
                   1546: #define BNX2_EMAC_MODE_ACPI_RCVD                        (1L<<20)
                   1547: 
                   1548: #define BNX2_EMAC_STATUS                               0x00001404
                   1549: #define BNX2_EMAC_STATUS_LINK                           (1L<<11)
                   1550: #define BNX2_EMAC_STATUS_LINK_CHANGE                    (1L<<12)
                   1551: #define BNX2_EMAC_STATUS_MI_COMPLETE                    (1L<<22)
                   1552: #define BNX2_EMAC_STATUS_MI_INT                                 (1L<<23)
                   1553: #define BNX2_EMAC_STATUS_AP_ERROR                       (1L<<24)
                   1554: #define BNX2_EMAC_STATUS_PARITY_ERROR_STATE             (1L<<31)
                   1555: 
                   1556: #define BNX2_EMAC_ATTENTION_ENA                                0x00001408
                   1557: #define BNX2_EMAC_ATTENTION_ENA_LINK                    (1L<<11)
                   1558: #define BNX2_EMAC_ATTENTION_ENA_MI_COMPLETE             (1L<<22)
                   1559: #define BNX2_EMAC_ATTENTION_ENA_MI_INT                  (1L<<23)
                   1560: #define BNX2_EMAC_ATTENTION_ENA_AP_ERROR                (1L<<24)
                   1561: 
                   1562: #define BNX2_EMAC_LED                                  0x0000140c
                   1563: #define BNX2_EMAC_LED_OVERRIDE                          (1L<<0)
                   1564: #define BNX2_EMAC_LED_1000MB_OVERRIDE                   (1L<<1)
                   1565: #define BNX2_EMAC_LED_100MB_OVERRIDE                    (1L<<2)
                   1566: #define BNX2_EMAC_LED_10MB_OVERRIDE                     (1L<<3)
                   1567: #define BNX2_EMAC_LED_TRAFFIC_OVERRIDE                  (1L<<4)
                   1568: #define BNX2_EMAC_LED_BLNK_TRAFFIC                      (1L<<5)
                   1569: #define BNX2_EMAC_LED_TRAFFIC                           (1L<<6)
                   1570: #define BNX2_EMAC_LED_1000MB                            (1L<<7)
                   1571: #define BNX2_EMAC_LED_100MB                             (1L<<8)
                   1572: #define BNX2_EMAC_LED_10MB                              (1L<<9)
                   1573: #define BNX2_EMAC_LED_TRAFFIC_STAT                      (1L<<10)
                   1574: #define BNX2_EMAC_LED_BLNK_RATE                                 (0xfffL<<19)
                   1575: #define BNX2_EMAC_LED_BLNK_RATE_ENA                     (1L<<31)
                   1576: 
                   1577: #define BNX2_EMAC_MAC_MATCH0                           0x00001410
                   1578: #define BNX2_EMAC_MAC_MATCH1                           0x00001414
                   1579: #define BNX2_EMAC_MAC_MATCH2                           0x00001418
                   1580: #define BNX2_EMAC_MAC_MATCH3                           0x0000141c
                   1581: #define BNX2_EMAC_MAC_MATCH4                           0x00001420
                   1582: #define BNX2_EMAC_MAC_MATCH5                           0x00001424
                   1583: #define BNX2_EMAC_MAC_MATCH6                           0x00001428
                   1584: #define BNX2_EMAC_MAC_MATCH7                           0x0000142c
                   1585: #define BNX2_EMAC_MAC_MATCH8                           0x00001430
                   1586: #define BNX2_EMAC_MAC_MATCH9                           0x00001434
                   1587: #define BNX2_EMAC_MAC_MATCH10                          0x00001438
                   1588: #define BNX2_EMAC_MAC_MATCH11                          0x0000143c
                   1589: #define BNX2_EMAC_MAC_MATCH12                          0x00001440
                   1590: #define BNX2_EMAC_MAC_MATCH13                          0x00001444
                   1591: #define BNX2_EMAC_MAC_MATCH14                          0x00001448
                   1592: #define BNX2_EMAC_MAC_MATCH15                          0x0000144c
                   1593: #define BNX2_EMAC_MAC_MATCH16                          0x00001450
                   1594: #define BNX2_EMAC_MAC_MATCH17                          0x00001454
                   1595: #define BNX2_EMAC_MAC_MATCH18                          0x00001458
                   1596: #define BNX2_EMAC_MAC_MATCH19                          0x0000145c
                   1597: #define BNX2_EMAC_MAC_MATCH20                          0x00001460
                   1598: #define BNX2_EMAC_MAC_MATCH21                          0x00001464
                   1599: #define BNX2_EMAC_MAC_MATCH22                          0x00001468
                   1600: #define BNX2_EMAC_MAC_MATCH23                          0x0000146c
                   1601: #define BNX2_EMAC_MAC_MATCH24                          0x00001470
                   1602: #define BNX2_EMAC_MAC_MATCH25                          0x00001474
                   1603: #define BNX2_EMAC_MAC_MATCH26                          0x00001478
                   1604: #define BNX2_EMAC_MAC_MATCH27                          0x0000147c
                   1605: #define BNX2_EMAC_MAC_MATCH28                          0x00001480
                   1606: #define BNX2_EMAC_MAC_MATCH29                          0x00001484
                   1607: #define BNX2_EMAC_MAC_MATCH30                          0x00001488
                   1608: #define BNX2_EMAC_MAC_MATCH31                          0x0000148c
                   1609: #define BNX2_EMAC_BACKOFF_SEED                         0x00001498
                   1610: #define BNX2_EMAC_BACKOFF_SEED_EMAC_BACKOFF_SEED        (0x3ffL<<0)
                   1611: 
                   1612: #define BNX2_EMAC_RX_MTU_SIZE                          0x0000149c
                   1613: #define BNX2_EMAC_RX_MTU_SIZE_MTU_SIZE                  (0xffffL<<0)
                   1614: #define BNX2_EMAC_RX_MTU_SIZE_JUMBO_ENA                         (1L<<31)
                   1615: 
                   1616: #define BNX2_EMAC_SERDES_CNTL                          0x000014a4
                   1617: #define BNX2_EMAC_SERDES_CNTL_RXR                       (0x7L<<0)
                   1618: #define BNX2_EMAC_SERDES_CNTL_RXG                       (0x3L<<3)
                   1619: #define BNX2_EMAC_SERDES_CNTL_RXCKSEL                   (1L<<6)
                   1620: #define BNX2_EMAC_SERDES_CNTL_TXBIAS                    (0x7L<<7)
                   1621: #define BNX2_EMAC_SERDES_CNTL_BGMAX                     (1L<<10)
                   1622: #define BNX2_EMAC_SERDES_CNTL_BGMIN                     (1L<<11)
                   1623: #define BNX2_EMAC_SERDES_CNTL_TXMODE                    (1L<<12)
                   1624: #define BNX2_EMAC_SERDES_CNTL_TXEDGE                    (1L<<13)
                   1625: #define BNX2_EMAC_SERDES_CNTL_SERDES_MODE               (1L<<14)
                   1626: #define BNX2_EMAC_SERDES_CNTL_PLLTEST                   (1L<<15)
                   1627: #define BNX2_EMAC_SERDES_CNTL_CDET_EN                   (1L<<16)
                   1628: #define BNX2_EMAC_SERDES_CNTL_TBI_LBK                   (1L<<17)
                   1629: #define BNX2_EMAC_SERDES_CNTL_REMOTE_LBK                (1L<<18)
                   1630: #define BNX2_EMAC_SERDES_CNTL_REV_PHASE                         (1L<<19)
                   1631: #define BNX2_EMAC_SERDES_CNTL_REGCTL12                  (0x3L<<20)
                   1632: #define BNX2_EMAC_SERDES_CNTL_REGCTL25                  (0x3L<<22)
                   1633: 
                   1634: #define BNX2_EMAC_SERDES_STATUS                                0x000014a8
                   1635: #define BNX2_EMAC_SERDES_STATUS_RX_STAT                         (0xffL<<0)
                   1636: #define BNX2_EMAC_SERDES_STATUS_COMMA_DET               (1L<<8)
                   1637: 
                   1638: #define BNX2_EMAC_MDIO_COMM                            0x000014ac
                   1639: #define BNX2_EMAC_MDIO_COMM_DATA                        (0xffffL<<0)
                   1640: #define BNX2_EMAC_MDIO_COMM_REG_ADDR                    (0x1fL<<16)
                   1641: #define BNX2_EMAC_MDIO_COMM_PHY_ADDR                    (0x1fL<<21)
                   1642: #define BNX2_EMAC_MDIO_COMM_COMMAND                     (0x3L<<26)
                   1643: #define BNX2_EMAC_MDIO_COMM_COMMAND_UNDEFINED_0                 (0L<<26)
                   1644: #define BNX2_EMAC_MDIO_COMM_COMMAND_WRITE               (1L<<26)
                   1645: #define BNX2_EMAC_MDIO_COMM_COMMAND_READ                (2L<<26)
                   1646: #define BNX2_EMAC_MDIO_COMM_COMMAND_UNDEFINED_3                 (3L<<26)
                   1647: #define BNX2_EMAC_MDIO_COMM_FAIL                        (1L<<28)
                   1648: #define BNX2_EMAC_MDIO_COMM_START_BUSY                  (1L<<29)
                   1649: #define BNX2_EMAC_MDIO_COMM_DISEXT                      (1L<<30)
                   1650: 
                   1651: #define BNX2_EMAC_MDIO_STATUS                          0x000014b0
                   1652: #define BNX2_EMAC_MDIO_STATUS_LINK                      (1L<<0)
                   1653: #define BNX2_EMAC_MDIO_STATUS_10MB                      (1L<<1)
                   1654: 
                   1655: #define BNX2_EMAC_MDIO_MODE                            0x000014b4
                   1656: #define BNX2_EMAC_MDIO_MODE_SHORT_PREAMBLE              (1L<<1)
                   1657: #define BNX2_EMAC_MDIO_MODE_AUTO_POLL                   (1L<<4)
                   1658: #define BNX2_EMAC_MDIO_MODE_BIT_BANG                    (1L<<8)
                   1659: #define BNX2_EMAC_MDIO_MODE_MDIO                        (1L<<9)
                   1660: #define BNX2_EMAC_MDIO_MODE_MDIO_OE                     (1L<<10)
                   1661: #define BNX2_EMAC_MDIO_MODE_MDC                                 (1L<<11)
                   1662: #define BNX2_EMAC_MDIO_MODE_MDINT                       (1L<<12)
                   1663: #define BNX2_EMAC_MDIO_MODE_CLOCK_CNT                   (0x1fL<<16)
                   1664: 
                   1665: #define BNX2_EMAC_MDIO_AUTO_STATUS                     0x000014b8
                   1666: #define BNX2_EMAC_MDIO_AUTO_STATUS_AUTO_ERR             (1L<<0)
                   1667: 
                   1668: #define BNX2_EMAC_TX_MODE                              0x000014bc
                   1669: #define BNX2_EMAC_TX_MODE_RESET                                 (1L<<0)
                   1670: #define BNX2_EMAC_TX_MODE_EXT_PAUSE_EN                  (1L<<3)
                   1671: #define BNX2_EMAC_TX_MODE_FLOW_EN                       (1L<<4)
                   1672: #define BNX2_EMAC_TX_MODE_BIG_BACKOFF                   (1L<<5)
                   1673: #define BNX2_EMAC_TX_MODE_LONG_PAUSE                    (1L<<6)
                   1674: #define BNX2_EMAC_TX_MODE_LINK_AWARE                    (1L<<7)
                   1675: 
                   1676: #define BNX2_EMAC_TX_STATUS                            0x000014c0
                   1677: #define BNX2_EMAC_TX_STATUS_XOFFED                      (1L<<0)
                   1678: #define BNX2_EMAC_TX_STATUS_XOFF_SENT                   (1L<<1)
                   1679: #define BNX2_EMAC_TX_STATUS_XON_SENT                    (1L<<2)
                   1680: #define BNX2_EMAC_TX_STATUS_LINK_UP                     (1L<<3)
                   1681: #define BNX2_EMAC_TX_STATUS_UNDERRUN                    (1L<<4)
                   1682: 
                   1683: #define BNX2_EMAC_TX_LENGTHS                           0x000014c4
                   1684: #define BNX2_EMAC_TX_LENGTHS_SLOT                       (0xffL<<0)
                   1685: #define BNX2_EMAC_TX_LENGTHS_IPG                        (0xfL<<8)
                   1686: #define BNX2_EMAC_TX_LENGTHS_IPG_CRS                    (0x3L<<12)
                   1687: 
                   1688: #define BNX2_EMAC_RX_MODE                              0x000014c8
                   1689: #define BNX2_EMAC_RX_MODE_RESET                                 (1L<<0)
                   1690: #define BNX2_EMAC_RX_MODE_FLOW_EN                       (1L<<2)
                   1691: #define BNX2_EMAC_RX_MODE_KEEP_MAC_CONTROL              (1L<<3)
                   1692: #define BNX2_EMAC_RX_MODE_KEEP_PAUSE                    (1L<<4)
                   1693: #define BNX2_EMAC_RX_MODE_ACCEPT_OVERSIZE               (1L<<5)
                   1694: #define BNX2_EMAC_RX_MODE_ACCEPT_RUNTS                  (1L<<6)
                   1695: #define BNX2_EMAC_RX_MODE_LLC_CHK                       (1L<<7)
                   1696: #define BNX2_EMAC_RX_MODE_PROMISCUOUS                   (1L<<8)
                   1697: #define BNX2_EMAC_RX_MODE_NO_CRC_CHK                    (1L<<9)
                   1698: #define BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG                         (1L<<10)
                   1699: #define BNX2_EMAC_RX_MODE_FILT_BROADCAST                (1L<<11)
                   1700: #define BNX2_EMAC_RX_MODE_SORT_MODE                     (1L<<12)
                   1701: 
                   1702: #define BNX2_EMAC_RX_STATUS                            0x000014cc
                   1703: #define BNX2_EMAC_RX_STATUS_FFED                        (1L<<0)
                   1704: #define BNX2_EMAC_RX_STATUS_FF_RECEIVED                         (1L<<1)
                   1705: #define BNX2_EMAC_RX_STATUS_N_RECEIVED                  (1L<<2)
                   1706: 
                   1707: #define BNX2_EMAC_MULTICAST_HASH0                      0x000014d0
                   1708: #define BNX2_EMAC_MULTICAST_HASH1                      0x000014d4
                   1709: #define BNX2_EMAC_MULTICAST_HASH2                      0x000014d8
                   1710: #define BNX2_EMAC_MULTICAST_HASH3                      0x000014dc
                   1711: #define BNX2_EMAC_MULTICAST_HASH4                      0x000014e0
                   1712: #define BNX2_EMAC_MULTICAST_HASH5                      0x000014e4
                   1713: #define BNX2_EMAC_MULTICAST_HASH6                      0x000014e8
                   1714: #define BNX2_EMAC_MULTICAST_HASH7                      0x000014ec
                   1715: #define BNX2_EMAC_RX_STAT_IFHCINOCTETS                 0x00001500
                   1716: #define BNX2_EMAC_RX_STAT_IFHCINBADOCTETS              0x00001504
                   1717: #define BNX2_EMAC_RX_STAT_ETHERSTATSFRAGMENTS          0x00001508
                   1718: #define BNX2_EMAC_RX_STAT_IFHCINUCASTPKTS              0x0000150c
                   1719: #define BNX2_EMAC_RX_STAT_IFHCINMULTICASTPKTS          0x00001510
                   1720: #define BNX2_EMAC_RX_STAT_IFHCINBROADCASTPKTS          0x00001514
                   1721: #define BNX2_EMAC_RX_STAT_DOT3STATSFCSERRORS           0x00001518
                   1722: #define BNX2_EMAC_RX_STAT_DOT3STATSALIGNMENTERRORS     0x0000151c
                   1723: #define BNX2_EMAC_RX_STAT_DOT3STATSCARRIERSENSEERRORS  0x00001520
                   1724: #define BNX2_EMAC_RX_STAT_XONPAUSEFRAMESRECEIVED       0x00001524
                   1725: #define BNX2_EMAC_RX_STAT_XOFFPAUSEFRAMESRECEIVED      0x00001528
                   1726: #define BNX2_EMAC_RX_STAT_MACCONTROLFRAMESRECEIVED     0x0000152c
                   1727: #define BNX2_EMAC_RX_STAT_XOFFSTATEENTERED             0x00001530
                   1728: #define BNX2_EMAC_RX_STAT_DOT3STATSFRAMESTOOLONG       0x00001534
                   1729: #define BNX2_EMAC_RX_STAT_ETHERSTATSJABBERS            0x00001538
                   1730: #define BNX2_EMAC_RX_STAT_ETHERSTATSUNDERSIZEPKTS      0x0000153c
                   1731: #define BNX2_EMAC_RX_STAT_ETHERSTATSPKTS64OCTETS       0x00001540
                   1732: #define BNX2_EMAC_RX_STAT_ETHERSTATSPKTS65OCTETSTO127OCTETS    0x00001544
                   1733: #define BNX2_EMAC_RX_STAT_ETHERSTATSPKTS128OCTETSTO255OCTETS   0x00001548
                   1734: #define BNX2_EMAC_RX_STAT_ETHERSTATSPKTS256OCTETSTO511OCTETS   0x0000154c
                   1735: #define BNX2_EMAC_RX_STAT_ETHERSTATSPKTS512OCTETSTO1023OCTETS  0x00001550
                   1736: #define BNX2_EMAC_RX_STAT_ETHERSTATSPKTS1024OCTETSTO1522OCTETS 0x00001554
                   1737: #define BNX2_EMAC_RX_STAT_ETHERSTATSPKTS1523OCTETSTO9022OCTETS 0x00001558
                   1738: #define BNX2_EMAC_RXMAC_DEBUG0                         0x0000155c
                   1739: #define BNX2_EMAC_RXMAC_DEBUG1                         0x00001560
                   1740: #define BNX2_EMAC_RXMAC_DEBUG1_LENGTH_NE_BYTE_COUNT     (1L<<0)
                   1741: #define BNX2_EMAC_RXMAC_DEBUG1_LENGTH_OUT_RANGE                 (1L<<1)
                   1742: #define BNX2_EMAC_RXMAC_DEBUG1_BAD_CRC                  (1L<<2)
                   1743: #define BNX2_EMAC_RXMAC_DEBUG1_RX_ERROR                         (1L<<3)
                   1744: #define BNX2_EMAC_RXMAC_DEBUG1_ALIGN_ERROR              (1L<<4)
                   1745: #define BNX2_EMAC_RXMAC_DEBUG1_LAST_DATA                (1L<<5)
                   1746: #define BNX2_EMAC_RXMAC_DEBUG1_ODD_BYTE_START           (1L<<6)
                   1747: #define BNX2_EMAC_RXMAC_DEBUG1_BYTE_COUNT               (0xffffL<<7)
                   1748: #define BNX2_EMAC_RXMAC_DEBUG1_SLOT_TIME                (0xffL<<23)
                   1749: 
                   1750: #define BNX2_EMAC_RXMAC_DEBUG2                         0x00001564
                   1751: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE                         (0x7L<<0)
                   1752: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_IDLE            (0x0L<<0)
                   1753: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_SFD             (0x1L<<0)
                   1754: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_DATA            (0x2L<<0)
                   1755: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_SKEEP           (0x3L<<0)
                   1756: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_EXT             (0x4L<<0)
                   1757: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_DROP            (0x5L<<0)
                   1758: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_SDROP           (0x6L<<0)
                   1759: #define BNX2_EMAC_RXMAC_DEBUG2_SM_STATE_FC              (0x7L<<0)
                   1760: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE                (0xfL<<3)
                   1761: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_IDLE           (0x0L<<3)
                   1762: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA0          (0x1L<<3)
                   1763: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA1          (0x2L<<3)
                   1764: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA2          (0x3L<<3)
                   1765: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA3          (0x4L<<3)
                   1766: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_ABORT          (0x5L<<3)
                   1767: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_WAIT           (0x6L<<3)
                   1768: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_STATUS                 (0x7L<<3)
                   1769: #define BNX2_EMAC_RXMAC_DEBUG2_IDI_STATE_LAST           (0x8L<<3)
                   1770: #define BNX2_EMAC_RXMAC_DEBUG2_BYTE_IN                  (0xffL<<7)
                   1771: #define BNX2_EMAC_RXMAC_DEBUG2_FALSEC                   (1L<<15)
                   1772: #define BNX2_EMAC_RXMAC_DEBUG2_TAGGED                   (1L<<16)
                   1773: #define BNX2_EMAC_RXMAC_DEBUG2_PAUSE_STATE              (1L<<18)
                   1774: #define BNX2_EMAC_RXMAC_DEBUG2_PAUSE_STATE_IDLE                 (0L<<18)
                   1775: #define BNX2_EMAC_RXMAC_DEBUG2_PAUSE_STATE_PAUSED       (1L<<18)
                   1776: #define BNX2_EMAC_RXMAC_DEBUG2_SE_COUNTER               (0xfL<<19)
                   1777: #define BNX2_EMAC_RXMAC_DEBUG2_QUANTA                   (0x1fL<<23)
                   1778: 
                   1779: #define BNX2_EMAC_RXMAC_DEBUG3                         0x00001568
                   1780: #define BNX2_EMAC_RXMAC_DEBUG3_PAUSE_CTR                (0xffffL<<0)
                   1781: #define BNX2_EMAC_RXMAC_DEBUG3_TMP_PAUSE_CTR            (0xffffL<<16)
                   1782: 
                   1783: #define BNX2_EMAC_RXMAC_DEBUG4                         0x0000156c
                   1784: #define BNX2_EMAC_RXMAC_DEBUG4_TYPE_FIELD               (0xffffL<<0)
                   1785: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE               (0x3fL<<16)
                   1786: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_IDLE          (0x0L<<16)
                   1787: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_UMAC2                 (0x1L<<16)
                   1788: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_UMAC3                 (0x2L<<16)
                   1789: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_UNI           (0x3L<<16)
                   1790: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MMAC2                 (0x7L<<16)
                   1791: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MMAC3                 (0x5L<<16)
                   1792: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA1          (0x6L<<16)
                   1793: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA2          (0x7L<<16)
                   1794: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA3          (0x8L<<16)
                   1795: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MC2           (0x9L<<16)
                   1796: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MC3           (0xaL<<16)
                   1797: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MWAIT1        (0xeL<<16)
                   1798: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MWAIT2        (0xfL<<16)
                   1799: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MCHECK        (0x10L<<16)
                   1800: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MC            (0x11L<<16)
                   1801: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_BC2           (0x12L<<16)
                   1802: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_BC3           (0x13L<<16)
                   1803: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA1          (0x14L<<16)
                   1804: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA2          (0x15L<<16)
                   1805: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA3          (0x16L<<16)
                   1806: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_BTYPE                 (0x17L<<16)
                   1807: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_BC            (0x18L<<16)
                   1808: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_PTYPE                 (0x19L<<16)
                   1809: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_CMD           (0x1aL<<16)
                   1810: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MAC           (0x1bL<<16)
                   1811: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_LATCH                 (0x1cL<<16)
                   1812: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_XOFF          (0x1dL<<16)
                   1813: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_XON           (0x1eL<<16)
                   1814: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_PAUSED        (0x1fL<<16)
                   1815: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_NPAUSED       (0x20L<<16)
                   1816: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_TTYPE                 (0x21L<<16)
                   1817: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_TVAL          (0x22L<<16)
                   1818: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_USA1          (0x23L<<16)
                   1819: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_USA2          (0x24L<<16)
                   1820: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_USA3          (0x25L<<16)
                   1821: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_UTYPE                 (0x26L<<16)
                   1822: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_UTTYPE        (0x27L<<16)
                   1823: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_UTVAL                 (0x28L<<16)
                   1824: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_MTYPE                 (0x29L<<16)
                   1825: #define BNX2_EMAC_RXMAC_DEBUG4_FILT_STATE_DROP          (0x2aL<<16)
                   1826: #define BNX2_EMAC_RXMAC_DEBUG4_DROP_PKT                         (1L<<22)
                   1827: #define BNX2_EMAC_RXMAC_DEBUG4_SLOT_FILLED              (1L<<23)
                   1828: #define BNX2_EMAC_RXMAC_DEBUG4_FALSE_CARRIER            (1L<<24)
                   1829: #define BNX2_EMAC_RXMAC_DEBUG4_LAST_DATA                (1L<<25)
                   1830: #define BNX2_EMAC_RXMAC_DEBUG4_sfd_FOUND                (1L<<26)
                   1831: #define BNX2_EMAC_RXMAC_DEBUG4_ADVANCE                  (1L<<27)
                   1832: #define BNX2_EMAC_RXMAC_DEBUG4_START                    (1L<<28)
                   1833: 
                   1834: #define BNX2_EMAC_RXMAC_DEBUG5                         0x00001570
                   1835: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM                         (0x7L<<0)
                   1836: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM_IDLE            (0L<<0)
                   1837: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM_WAIT_EOF        (1L<<0)
                   1838: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM_WAIT_STAT       (2L<<0)
                   1839: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4FCRC    (3L<<0)
                   1840: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4RDE     (4L<<0)
                   1841: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4ALL     (5L<<0)
                   1842: #define BNX2_EMAC_RXMAC_DEBUG5_PS_IDISM_1WD_WAIT_STAT   (6L<<0)
                   1843: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1               (0x7L<<4)
                   1844: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1_VDW           (0x0L<<4)
                   1845: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1_STAT          (0x1L<<4)
                   1846: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1_AEOF          (0x2L<<4)
                   1847: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1_NEOF          (0x3L<<4)
                   1848: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SOF           (0x4L<<4)
                   1849: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SAEOF                 (0x6L<<4)
                   1850: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SNEOF                 (0x7L<<4)
                   1851: #define BNX2_EMAC_RXMAC_DEBUG5_EOF_DETECTED             (1L<<7)
                   1852: #define BNX2_EMAC_RXMAC_DEBUG5_CCODE_BUF0               (0x7L<<8)
                   1853: #define BNX2_EMAC_RXMAC_DEBUG5_RPM_IDI_FIFO_FULL        (1L<<11)
                   1854: #define BNX2_EMAC_RXMAC_DEBUG5_LOAD_CCODE               (1L<<12)
                   1855: #define BNX2_EMAC_RXMAC_DEBUG5_LOAD_DATA                (1L<<13)
                   1856: #define BNX2_EMAC_RXMAC_DEBUG5_LOAD_STAT                (1L<<14)
                   1857: #define BNX2_EMAC_RXMAC_DEBUG5_CLR_STAT                         (1L<<15)
                   1858: #define BNX2_EMAC_RXMAC_DEBUG5_IDI_RPM_CCODE            (0x3L<<16)
                   1859: #define BNX2_EMAC_RXMAC_DEBUG5_IDI_RPM_ACCEPT           (1L<<19)
                   1860: #define BNX2_EMAC_RXMAC_DEBUG5_FMLEN                    (0xfffL<<20)
                   1861: 
                   1862: #define BNX2_EMAC_RX_STAT_AC0                          0x00001580
                   1863: #define BNX2_EMAC_RX_STAT_AC1                          0x00001584
                   1864: #define BNX2_EMAC_RX_STAT_AC2                          0x00001588
                   1865: #define BNX2_EMAC_RX_STAT_AC3                          0x0000158c
                   1866: #define BNX2_EMAC_RX_STAT_AC4                          0x00001590
                   1867: #define BNX2_EMAC_RX_STAT_AC5                          0x00001594
                   1868: #define BNX2_EMAC_RX_STAT_AC6                          0x00001598
                   1869: #define BNX2_EMAC_RX_STAT_AC7                          0x0000159c
                   1870: #define BNX2_EMAC_RX_STAT_AC8                          0x000015a0
                   1871: #define BNX2_EMAC_RX_STAT_AC9                          0x000015a4
                   1872: #define BNX2_EMAC_RX_STAT_AC10                         0x000015a8
                   1873: #define BNX2_EMAC_RX_STAT_AC11                         0x000015ac
                   1874: #define BNX2_EMAC_RX_STAT_AC12                         0x000015b0
                   1875: #define BNX2_EMAC_RX_STAT_AC13                         0x000015b4
                   1876: #define BNX2_EMAC_RX_STAT_AC14                         0x000015b8
                   1877: #define BNX2_EMAC_RX_STAT_AC15                         0x000015bc
                   1878: #define BNX2_EMAC_RX_STAT_AC16                         0x000015c0
                   1879: #define BNX2_EMAC_RX_STAT_AC17                         0x000015c4
                   1880: #define BNX2_EMAC_RX_STAT_AC18                         0x000015c8
                   1881: #define BNX2_EMAC_RX_STAT_AC19                         0x000015cc
                   1882: #define BNX2_EMAC_RX_STAT_AC20                         0x000015d0
                   1883: #define BNX2_EMAC_RX_STAT_AC21                         0x000015d4
                   1884: #define BNX2_EMAC_RX_STAT_AC22                         0x000015d8
                   1885: #define BNX2_EMAC_RXMAC_SUC_DBG_OVERRUNVEC             0x000015dc
                   1886: #define BNX2_EMAC_TX_STAT_IFHCOUTOCTETS                        0x00001600
                   1887: #define BNX2_EMAC_TX_STAT_IFHCOUTBADOCTETS             0x00001604
                   1888: #define BNX2_EMAC_TX_STAT_ETHERSTATSCOLLISIONS         0x00001608
                   1889: #define BNX2_EMAC_TX_STAT_OUTXONSENT                   0x0000160c
                   1890: #define BNX2_EMAC_TX_STAT_OUTXOFFSENT                  0x00001610
                   1891: #define BNX2_EMAC_TX_STAT_FLOWCONTROLDONE              0x00001614
                   1892: #define BNX2_EMAC_TX_STAT_DOT3STATSSINGLECOLLISIONFRAMES       0x00001618
                   1893: #define BNX2_EMAC_TX_STAT_DOT3STATSMULTIPLECOLLISIONFRAMES     0x0000161c
                   1894: #define BNX2_EMAC_TX_STAT_DOT3STATSDEFERREDTRANSMISSIONS       0x00001620
                   1895: #define BNX2_EMAC_TX_STAT_DOT3STATSEXCESSIVECOLLISIONS 0x00001624
                   1896: #define BNX2_EMAC_TX_STAT_DOT3STATSLATECOLLISIONS      0x00001628
                   1897: #define BNX2_EMAC_TX_STAT_IFHCOUTUCASTPKTS             0x0000162c
                   1898: #define BNX2_EMAC_TX_STAT_IFHCOUTMULTICASTPKTS         0x00001630
                   1899: #define BNX2_EMAC_TX_STAT_IFHCOUTBROADCASTPKTS         0x00001634
                   1900: #define BNX2_EMAC_TX_STAT_ETHERSTATSPKTS64OCTETS       0x00001638
                   1901: #define BNX2_EMAC_TX_STAT_ETHERSTATSPKTS65OCTETSTO127OCTETS    0x0000163c
                   1902: #define BNX2_EMAC_TX_STAT_ETHERSTATSPKTS128OCTETSTO255OCTETS   0x00001640
                   1903: #define BNX2_EMAC_TX_STAT_ETHERSTATSPKTS256OCTETSTO511OCTETS   0x00001644
                   1904: #define BNX2_EMAC_TX_STAT_ETHERSTATSPKTS512OCTETSTO1023OCTETS  0x00001648
                   1905: #define BNX2_EMAC_TX_STAT_ETHERSTATSPKTS1024OCTETSTO1522OCTETS 0x0000164c
                   1906: #define BNX2_EMAC_TX_STAT_ETHERSTATSPKTS1523OCTETSTO9022OCTETS 0x00001650
                   1907: #define BNX2_EMAC_TX_STAT_DOT3STATSINTERNALMACTRANSMITERRORS   0x00001654
                   1908: #define BNX2_EMAC_TXMAC_DEBUG0                         0x00001658
                   1909: #define BNX2_EMAC_TXMAC_DEBUG1                         0x0000165c
                   1910: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE                (0xfL<<0)
                   1911: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_IDLE           (0x0L<<0)
                   1912: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_START0                 (0x1L<<0)
                   1913: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA0          (0x4L<<0)
                   1914: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA1          (0x5L<<0)
                   1915: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA2          (0x6L<<0)
                   1916: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA3          (0x7L<<0)
                   1917: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_WAIT0          (0x8L<<0)
                   1918: #define BNX2_EMAC_TXMAC_DEBUG1_ODI_STATE_WAIT1          (0x9L<<0)
                   1919: #define BNX2_EMAC_TXMAC_DEBUG1_CRS_ENABLE               (1L<<4)
                   1920: #define BNX2_EMAC_TXMAC_DEBUG1_BAD_CRC                  (1L<<5)
                   1921: #define BNX2_EMAC_TXMAC_DEBUG1_SE_COUNTER               (0xfL<<6)
                   1922: #define BNX2_EMAC_TXMAC_DEBUG1_SEND_PAUSE               (1L<<10)
                   1923: #define BNX2_EMAC_TXMAC_DEBUG1_LATE_COLLISION           (1L<<11)
                   1924: #define BNX2_EMAC_TXMAC_DEBUG1_MAX_DEFER                (1L<<12)
                   1925: #define BNX2_EMAC_TXMAC_DEBUG1_DEFERRED                         (1L<<13)
                   1926: #define BNX2_EMAC_TXMAC_DEBUG1_ONE_BYTE                         (1L<<14)
                   1927: #define BNX2_EMAC_TXMAC_DEBUG1_IPG_TIME                         (0xfL<<15)
                   1928: #define BNX2_EMAC_TXMAC_DEBUG1_SLOT_TIME                (0xffL<<19)
                   1929: 
                   1930: #define BNX2_EMAC_TXMAC_DEBUG2                         0x00001660
                   1931: #define BNX2_EMAC_TXMAC_DEBUG2_BACK_OFF                         (0x3ffL<<0)
                   1932: #define BNX2_EMAC_TXMAC_DEBUG2_BYTE_COUNT               (0xffffL<<10)
                   1933: #define BNX2_EMAC_TXMAC_DEBUG2_COL_COUNT                (0x1fL<<26)
                   1934: #define BNX2_EMAC_TXMAC_DEBUG2_COL_BIT                  (1L<<31)
                   1935: 
                   1936: #define BNX2_EMAC_TXMAC_DEBUG3                         0x00001664
                   1937: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE                         (0xfL<<0)
                   1938: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_IDLE            (0x0L<<0)
                   1939: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_PRE1            (0x1L<<0)
                   1940: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_PRE2            (0x2L<<0)
                   1941: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_SFD             (0x3L<<0)
                   1942: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_DATA            (0x4L<<0)
                   1943: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_CRC1            (0x5L<<0)
                   1944: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_CRC2            (0x6L<<0)
                   1945: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_EXT             (0x7L<<0)
                   1946: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_STATB           (0x8L<<0)
                   1947: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_STATG           (0x9L<<0)
                   1948: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_JAM             (0xaL<<0)
                   1949: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_EJAM            (0xbL<<0)
                   1950: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_BJAM            (0xcL<<0)
                   1951: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_SWAIT           (0xdL<<0)
                   1952: #define BNX2_EMAC_TXMAC_DEBUG3_SM_STATE_BACKOFF                 (0xeL<<0)
                   1953: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE               (0x7L<<4)
                   1954: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE_IDLE          (0x0L<<4)
                   1955: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE_WAIT          (0x1L<<4)
                   1956: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE_UNI           (0x2L<<4)
                   1957: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE_MC            (0x3L<<4)
                   1958: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE_BC2           (0x4L<<4)
                   1959: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE_BC3           (0x5L<<4)
                   1960: #define BNX2_EMAC_TXMAC_DEBUG3_FILT_STATE_BC            (0x6L<<4)
                   1961: #define BNX2_EMAC_TXMAC_DEBUG3_CRS_DONE                         (1L<<7)
                   1962: #define BNX2_EMAC_TXMAC_DEBUG3_XOFF                     (1L<<8)
                   1963: #define BNX2_EMAC_TXMAC_DEBUG3_SE_COUNTER               (0xfL<<9)
                   1964: #define BNX2_EMAC_TXMAC_DEBUG3_QUANTA_COUNTER           (0x1fL<<13)
                   1965: 
                   1966: #define BNX2_EMAC_TXMAC_DEBUG4                         0x00001668
                   1967: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_COUNTER            (0xffffL<<0)
                   1968: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE              (0xfL<<16)
                   1969: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_IDLE                 (0x0L<<16)
                   1970: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA1                 (0x2L<<16)
                   1971: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA2                 (0x3L<<16)
                   1972: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA3                 (0x6L<<16)
                   1973: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC1                 (0x7L<<16)
                   1974: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC2                 (0x5L<<16)
                   1975: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC3                 (0x4L<<16)
                   1976: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_TYPE                 (0xcL<<16)
                   1977: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CMD          (0xeL<<16)
                   1978: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_TIME                 (0xaL<<16)
                   1979: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CRC1                 (0x8L<<16)
                   1980: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CRC2                 (0x9L<<16)
                   1981: #define BNX2_EMAC_TXMAC_DEBUG4_PAUSE_STATE_WAIT                 (0xdL<<16)
                   1982: #define BNX2_EMAC_TXMAC_DEBUG4_STATS0_VALID             (1L<<20)
                   1983: #define BNX2_EMAC_TXMAC_DEBUG4_APPEND_CRC               (1L<<21)
                   1984: #define BNX2_EMAC_TXMAC_DEBUG4_SLOT_FILLED              (1L<<22)
                   1985: #define BNX2_EMAC_TXMAC_DEBUG4_MAX_DEFER                (1L<<23)
                   1986: #define BNX2_EMAC_TXMAC_DEBUG4_SEND_EXTEND              (1L<<24)
                   1987: #define BNX2_EMAC_TXMAC_DEBUG4_SEND_PADDING             (1L<<25)
                   1988: #define BNX2_EMAC_TXMAC_DEBUG4_EOF_LOC                  (1L<<26)
                   1989: #define BNX2_EMAC_TXMAC_DEBUG4_COLLIDING                (1L<<27)
                   1990: #define BNX2_EMAC_TXMAC_DEBUG4_COL_IN                   (1L<<28)
                   1991: #define BNX2_EMAC_TXMAC_DEBUG4_BURSTING                         (1L<<29)
                   1992: #define BNX2_EMAC_TXMAC_DEBUG4_ADVANCE                  (1L<<30)
                   1993: #define BNX2_EMAC_TXMAC_DEBUG4_GO                       (1L<<31)
                   1994: 
                   1995: #define BNX2_EMAC_TX_STAT_AC0                          0x00001680
                   1996: #define BNX2_EMAC_TX_STAT_AC1                          0x00001684
                   1997: #define BNX2_EMAC_TX_STAT_AC2                          0x00001688
                   1998: #define BNX2_EMAC_TX_STAT_AC3                          0x0000168c
                   1999: #define BNX2_EMAC_TX_STAT_AC4                          0x00001690
                   2000: #define BNX2_EMAC_TX_STAT_AC5                          0x00001694
                   2001: #define BNX2_EMAC_TX_STAT_AC6                          0x00001698
                   2002: #define BNX2_EMAC_TX_STAT_AC7                          0x0000169c
                   2003: #define BNX2_EMAC_TX_STAT_AC8                          0x000016a0
                   2004: #define BNX2_EMAC_TX_STAT_AC9                          0x000016a4
                   2005: #define BNX2_EMAC_TX_STAT_AC10                         0x000016a8
                   2006: #define BNX2_EMAC_TX_STAT_AC11                         0x000016ac
                   2007: #define BNX2_EMAC_TX_STAT_AC12                         0x000016b0
                   2008: #define BNX2_EMAC_TX_STAT_AC13                         0x000016b4
                   2009: #define BNX2_EMAC_TX_STAT_AC14                         0x000016b8
                   2010: #define BNX2_EMAC_TX_STAT_AC15                         0x000016bc
                   2011: #define BNX2_EMAC_TX_STAT_AC16                         0x000016c0
                   2012: #define BNX2_EMAC_TX_STAT_AC17                         0x000016c4
                   2013: #define BNX2_EMAC_TX_STAT_AC18                         0x000016c8
                   2014: #define BNX2_EMAC_TX_STAT_AC19                         0x000016cc
                   2015: #define BNX2_EMAC_TX_STAT_AC20                         0x000016d0
                   2016: #define BNX2_EMAC_TX_STAT_AC21                         0x000016d4
                   2017: #define BNX2_EMAC_TXMAC_SUC_DBG_OVERRUNVEC             0x000016d8
                   2018: 
                   2019: 
                   2020: /*
                   2021:  *  rpm_reg definition
                   2022:  *  offset: 0x1800
                   2023:  */
                   2024: #define BNX2_RPM_COMMAND                               0x00001800
                   2025: #define BNX2_RPM_COMMAND_ENABLED                        (1L<<0)
                   2026: #define BNX2_RPM_COMMAND_OVERRUN_ABORT                  (1L<<4)
                   2027: 
                   2028: #define BNX2_RPM_STATUS                                        0x00001804
                   2029: #define BNX2_RPM_STATUS_MBUF_WAIT                       (1L<<0)
                   2030: #define BNX2_RPM_STATUS_FREE_WAIT                       (1L<<1)
                   2031: 
                   2032: #define BNX2_RPM_CONFIG                                        0x00001808
                   2033: #define BNX2_RPM_CONFIG_NO_PSD_HDR_CKSUM                (1L<<0)
                   2034: #define BNX2_RPM_CONFIG_ACPI_ENA                        (1L<<1)
                   2035: #define BNX2_RPM_CONFIG_ACPI_KEEP                       (1L<<2)
                   2036: #define BNX2_RPM_CONFIG_MP_KEEP                                 (1L<<3)
                   2037: #define BNX2_RPM_CONFIG_SORT_VECT_VAL                   (0xfL<<4)
                   2038: #define BNX2_RPM_CONFIG_IGNORE_VLAN                     (1L<<31)
                   2039: 
                   2040: #define BNX2_RPM_VLAN_MATCH0                           0x00001810
                   2041: #define BNX2_RPM_VLAN_MATCH0_RPM_VLAN_MTCH0_VALUE       (0xfffL<<0)
                   2042: 
                   2043: #define BNX2_RPM_VLAN_MATCH1                           0x00001814
                   2044: #define BNX2_RPM_VLAN_MATCH1_RPM_VLAN_MTCH1_VALUE       (0xfffL<<0)
                   2045: 
                   2046: #define BNX2_RPM_VLAN_MATCH2                           0x00001818
                   2047: #define BNX2_RPM_VLAN_MATCH2_RPM_VLAN_MTCH2_VALUE       (0xfffL<<0)
                   2048: 
                   2049: #define BNX2_RPM_VLAN_MATCH3                           0x0000181c
                   2050: #define BNX2_RPM_VLAN_MATCH3_RPM_VLAN_MTCH3_VALUE       (0xfffL<<0)
                   2051: 
                   2052: #define BNX2_RPM_SORT_USER0                            0x00001820
                   2053: #define BNX2_RPM_SORT_USER0_PM_EN                       (0xffffL<<0)
                   2054: #define BNX2_RPM_SORT_USER0_BC_EN                       (1L<<16)
                   2055: #define BNX2_RPM_SORT_USER0_MC_EN                       (1L<<17)
                   2056: #define BNX2_RPM_SORT_USER0_MC_HSH_EN                   (1L<<18)
                   2057: #define BNX2_RPM_SORT_USER0_PROM_EN                     (1L<<19)
                   2058: #define BNX2_RPM_SORT_USER0_VLAN_EN                     (0xfL<<20)
                   2059: #define BNX2_RPM_SORT_USER0_PROM_VLAN                   (1L<<24)
                   2060: #define BNX2_RPM_SORT_USER0_ENA                                 (1L<<31)
                   2061: 
                   2062: #define BNX2_RPM_SORT_USER1                            0x00001824
                   2063: #define BNX2_RPM_SORT_USER1_PM_EN                       (0xffffL<<0)
                   2064: #define BNX2_RPM_SORT_USER1_BC_EN                       (1L<<16)
                   2065: #define BNX2_RPM_SORT_USER1_MC_EN                       (1L<<17)
                   2066: #define BNX2_RPM_SORT_USER1_MC_HSH_EN                   (1L<<18)
                   2067: #define BNX2_RPM_SORT_USER1_PROM_EN                     (1L<<19)
                   2068: #define BNX2_RPM_SORT_USER1_VLAN_EN                     (0xfL<<20)
                   2069: #define BNX2_RPM_SORT_USER1_PROM_VLAN                   (1L<<24)
                   2070: #define BNX2_RPM_SORT_USER1_ENA                                 (1L<<31)
                   2071: 
                   2072: #define BNX2_RPM_SORT_USER2                            0x00001828
                   2073: #define BNX2_RPM_SORT_USER2_PM_EN                       (0xffffL<<0)
                   2074: #define BNX2_RPM_SORT_USER2_BC_EN                       (1L<<16)
                   2075: #define BNX2_RPM_SORT_USER2_MC_EN                       (1L<<17)
                   2076: #define BNX2_RPM_SORT_USER2_MC_HSH_EN                   (1L<<18)
                   2077: #define BNX2_RPM_SORT_USER2_PROM_EN                     (1L<<19)
                   2078: #define BNX2_RPM_SORT_USER2_VLAN_EN                     (0xfL<<20)
                   2079: #define BNX2_RPM_SORT_USER2_PROM_VLAN                   (1L<<24)
                   2080: #define BNX2_RPM_SORT_USER2_ENA                                 (1L<<31)
                   2081: 
                   2082: #define BNX2_RPM_SORT_USER3                            0x0000182c
                   2083: #define BNX2_RPM_SORT_USER3_PM_EN                       (0xffffL<<0)
                   2084: #define BNX2_RPM_SORT_USER3_BC_EN                       (1L<<16)
                   2085: #define BNX2_RPM_SORT_USER3_MC_EN                       (1L<<17)
                   2086: #define BNX2_RPM_SORT_USER3_MC_HSH_EN                   (1L<<18)
                   2087: #define BNX2_RPM_SORT_USER3_PROM_EN                     (1L<<19)
                   2088: #define BNX2_RPM_SORT_USER3_VLAN_EN                     (0xfL<<20)
                   2089: #define BNX2_RPM_SORT_USER3_PROM_VLAN                   (1L<<24)
                   2090: #define BNX2_RPM_SORT_USER3_ENA                                 (1L<<31)
                   2091: 
                   2092: #define BNX2_RPM_STAT_L2_FILTER_DISCARDS               0x00001840
                   2093: #define BNX2_RPM_STAT_RULE_CHECKER_DISCARDS            0x00001844
                   2094: #define BNX2_RPM_STAT_IFINFTQDISCARDS                  0x00001848
                   2095: #define BNX2_RPM_STAT_IFINMBUFDISCARD                  0x0000184c
                   2096: #define BNX2_RPM_STAT_RULE_CHECKER_P4_HIT              0x00001850
                   2097: #define BNX2_RPM_STAT_AC0                              0x00001880
                   2098: #define BNX2_RPM_STAT_AC1                              0x00001884
                   2099: #define BNX2_RPM_STAT_AC2                              0x00001888
                   2100: #define BNX2_RPM_STAT_AC3                              0x0000188c
                   2101: #define BNX2_RPM_STAT_AC4                              0x00001890
                   2102: #define BNX2_RPM_RC_CNTL_0                             0x00001900
                   2103: #define BNX2_RPM_RC_CNTL_0_OFFSET                       (0xffL<<0)
                   2104: #define BNX2_RPM_RC_CNTL_0_CLASS                        (0x7L<<8)
                   2105: #define BNX2_RPM_RC_CNTL_0_PRIORITY                     (1L<<11)
                   2106: #define BNX2_RPM_RC_CNTL_0_P4                           (1L<<12)
                   2107: #define BNX2_RPM_RC_CNTL_0_HDR_TYPE                     (0x7L<<13)
                   2108: #define BNX2_RPM_RC_CNTL_0_HDR_TYPE_START               (0L<<13)
                   2109: #define BNX2_RPM_RC_CNTL_0_HDR_TYPE_IP                  (1L<<13)
                   2110: #define BNX2_RPM_RC_CNTL_0_HDR_TYPE_TCP                         (2L<<13)
                   2111: #define BNX2_RPM_RC_CNTL_0_HDR_TYPE_UDP                         (3L<<13)
                   2112: #define BNX2_RPM_RC_CNTL_0_HDR_TYPE_DATA                (4L<<13)
                   2113: #define BNX2_RPM_RC_CNTL_0_COMP                                 (0x3L<<16)
                   2114: #define BNX2_RPM_RC_CNTL_0_COMP_EQUAL                   (0L<<16)
                   2115: #define BNX2_RPM_RC_CNTL_0_COMP_NEQUAL                  (1L<<16)
                   2116: #define BNX2_RPM_RC_CNTL_0_COMP_GREATER                         (2L<<16)
                   2117: #define BNX2_RPM_RC_CNTL_0_COMP_LESS                    (3L<<16)
                   2118: #define BNX2_RPM_RC_CNTL_0_SBIT                                 (1L<<19)
                   2119: #define BNX2_RPM_RC_CNTL_0_CMDSEL                       (0xfL<<20)
                   2120: #define BNX2_RPM_RC_CNTL_0_MAP                          (1L<<24)
                   2121: #define BNX2_RPM_RC_CNTL_0_DISCARD                      (1L<<25)
                   2122: #define BNX2_RPM_RC_CNTL_0_MASK                                 (1L<<26)
                   2123: #define BNX2_RPM_RC_CNTL_0_P1                           (1L<<27)
                   2124: #define BNX2_RPM_RC_CNTL_0_P2                           (1L<<28)
                   2125: #define BNX2_RPM_RC_CNTL_0_P3                           (1L<<29)
                   2126: #define BNX2_RPM_RC_CNTL_0_NBIT                                 (1L<<30)
                   2127: 
                   2128: #define BNX2_RPM_RC_VALUE_MASK_0                       0x00001904
                   2129: #define BNX2_RPM_RC_VALUE_MASK_0_VALUE                  (0xffffL<<0)
                   2130: #define BNX2_RPM_RC_VALUE_MASK_0_MASK                   (0xffffL<<16)
                   2131: 
                   2132: #define BNX2_RPM_RC_CNTL_1                             0x00001908
                   2133: #define BNX2_RPM_RC_CNTL_1_A                            (0x3ffffL<<0)
                   2134: #define BNX2_RPM_RC_CNTL_1_B                            (0xfffL<<19)
                   2135: 
                   2136: #define BNX2_RPM_RC_VALUE_MASK_1                       0x0000190c
                   2137: #define BNX2_RPM_RC_CNTL_2                             0x00001910
                   2138: #define BNX2_RPM_RC_CNTL_2_A                            (0x3ffffL<<0)
                   2139: #define BNX2_RPM_RC_CNTL_2_B                            (0xfffL<<19)
                   2140: 
                   2141: #define BNX2_RPM_RC_VALUE_MASK_2                       0x00001914
                   2142: #define BNX2_RPM_RC_CNTL_3                             0x00001918
                   2143: #define BNX2_RPM_RC_CNTL_3_A                            (0x3ffffL<<0)
                   2144: #define BNX2_RPM_RC_CNTL_3_B                            (0xfffL<<19)
                   2145: 
                   2146: #define BNX2_RPM_RC_VALUE_MASK_3                       0x0000191c
                   2147: #define BNX2_RPM_RC_CNTL_4                             0x00001920
                   2148: #define BNX2_RPM_RC_CNTL_4_A                            (0x3ffffL<<0)
                   2149: #define BNX2_RPM_RC_CNTL_4_B                            (0xfffL<<19)
                   2150: 
                   2151: #define BNX2_RPM_RC_VALUE_MASK_4                       0x00001924
                   2152: #define BNX2_RPM_RC_CNTL_5                             0x00001928
                   2153: #define BNX2_RPM_RC_CNTL_5_A                            (0x3ffffL<<0)
                   2154: #define BNX2_RPM_RC_CNTL_5_B                            (0xfffL<<19)
                   2155: 
                   2156: #define BNX2_RPM_RC_VALUE_MASK_5                       0x0000192c
                   2157: #define BNX2_RPM_RC_CNTL_6                             0x00001930
                   2158: #define BNX2_RPM_RC_CNTL_6_A                            (0x3ffffL<<0)
                   2159: #define BNX2_RPM_RC_CNTL_6_B                            (0xfffL<<19)
                   2160: 
                   2161: #define BNX2_RPM_RC_VALUE_MASK_6                       0x00001934
                   2162: #define BNX2_RPM_RC_CNTL_7                             0x00001938
                   2163: #define BNX2_RPM_RC_CNTL_7_A                            (0x3ffffL<<0)
                   2164: #define BNX2_RPM_RC_CNTL_7_B                            (0xfffL<<19)
                   2165: 
                   2166: #define BNX2_RPM_RC_VALUE_MASK_7                       0x0000193c
                   2167: #define BNX2_RPM_RC_CNTL_8                             0x00001940
                   2168: #define BNX2_RPM_RC_CNTL_8_A                            (0x3ffffL<<0)
                   2169: #define BNX2_RPM_RC_CNTL_8_B                            (0xfffL<<19)
                   2170: 
                   2171: #define BNX2_RPM_RC_VALUE_MASK_8                       0x00001944
                   2172: #define BNX2_RPM_RC_CNTL_9                             0x00001948
                   2173: #define BNX2_RPM_RC_CNTL_9_A                            (0x3ffffL<<0)
                   2174: #define BNX2_RPM_RC_CNTL_9_B                            (0xfffL<<19)
                   2175: 
                   2176: #define BNX2_RPM_RC_VALUE_MASK_9                       0x0000194c
                   2177: #define BNX2_RPM_RC_CNTL_10                            0x00001950
                   2178: #define BNX2_RPM_RC_CNTL_10_A                           (0x3ffffL<<0)
                   2179: #define BNX2_RPM_RC_CNTL_10_B                           (0xfffL<<19)
                   2180: 
                   2181: #define BNX2_RPM_RC_VALUE_MASK_10                      0x00001954
                   2182: #define BNX2_RPM_RC_CNTL_11                            0x00001958
                   2183: #define BNX2_RPM_RC_CNTL_11_A                           (0x3ffffL<<0)
                   2184: #define BNX2_RPM_RC_CNTL_11_B                           (0xfffL<<19)
                   2185: 
                   2186: #define BNX2_RPM_RC_VALUE_MASK_11                      0x0000195c
                   2187: #define BNX2_RPM_RC_CNTL_12                            0x00001960
                   2188: #define BNX2_RPM_RC_CNTL_12_A                           (0x3ffffL<<0)
                   2189: #define BNX2_RPM_RC_CNTL_12_B                           (0xfffL<<19)
                   2190: 
                   2191: #define BNX2_RPM_RC_VALUE_MASK_12                      0x00001964
                   2192: #define BNX2_RPM_RC_CNTL_13                            0x00001968
                   2193: #define BNX2_RPM_RC_CNTL_13_A                           (0x3ffffL<<0)
                   2194: #define BNX2_RPM_RC_CNTL_13_B                           (0xfffL<<19)
                   2195: 
                   2196: #define BNX2_RPM_RC_VALUE_MASK_13                      0x0000196c
                   2197: #define BNX2_RPM_RC_CNTL_14                            0x00001970
                   2198: #define BNX2_RPM_RC_CNTL_14_A                           (0x3ffffL<<0)
                   2199: #define BNX2_RPM_RC_CNTL_14_B                           (0xfffL<<19)
                   2200: 
                   2201: #define BNX2_RPM_RC_VALUE_MASK_14                      0x00001974
                   2202: #define BNX2_RPM_RC_CNTL_15                            0x00001978
                   2203: #define BNX2_RPM_RC_CNTL_15_A                           (0x3ffffL<<0)
                   2204: #define BNX2_RPM_RC_CNTL_15_B                           (0xfffL<<19)
                   2205: 
                   2206: #define BNX2_RPM_RC_VALUE_MASK_15                      0x0000197c
                   2207: #define BNX2_RPM_RC_CONFIG                             0x00001980
                   2208: #define BNX2_RPM_RC_CONFIG_RULE_ENABLE                  (0xffffL<<0)
                   2209: #define BNX2_RPM_RC_CONFIG_DEF_CLASS                    (0x7L<<24)
                   2210: 
                   2211: #define BNX2_RPM_DEBUG0                                        0x00001984
                   2212: #define BNX2_RPM_DEBUG0_FM_BCNT                                 (0xffffL<<0)
                   2213: #define BNX2_RPM_DEBUG0_T_DATA_OFST_VLD                         (1L<<16)
                   2214: #define BNX2_RPM_DEBUG0_T_UDP_OFST_VLD                  (1L<<17)
                   2215: #define BNX2_RPM_DEBUG0_T_TCP_OFST_VLD                  (1L<<18)
                   2216: #define BNX2_RPM_DEBUG0_T_IP_OFST_VLD                   (1L<<19)
                   2217: #define BNX2_RPM_DEBUG0_IP_MORE_FRGMT                   (1L<<20)
                   2218: #define BNX2_RPM_DEBUG0_T_IP_NO_TCP_UDP_HDR             (1L<<21)
                   2219: #define BNX2_RPM_DEBUG0_LLC_SNAP                        (1L<<22)
                   2220: #define BNX2_RPM_DEBUG0_FM_STARTED                      (1L<<23)
                   2221: #define BNX2_RPM_DEBUG0_DONE                            (1L<<24)
                   2222: #define BNX2_RPM_DEBUG0_WAIT_4_DONE                     (1L<<25)
                   2223: #define BNX2_RPM_DEBUG0_USE_TPBUF_CKSUM                         (1L<<26)
                   2224: #define BNX2_RPM_DEBUG0_RX_NO_PSD_HDR_CKSUM             (1L<<27)
                   2225: #define BNX2_RPM_DEBUG0_IGNORE_VLAN                     (1L<<28)
                   2226: #define BNX2_RPM_DEBUG0_RP_ENA_ACTIVE                   (1L<<31)
                   2227: 
                   2228: #define BNX2_RPM_DEBUG1                                        0x00001988
                   2229: #define BNX2_RPM_DEBUG1_FSM_CUR_ST                      (0xffffL<<0)
                   2230: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_IDLE                         (0L<<0)
                   2231: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B6_ALL                 (1L<<0)
                   2232: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B2_IPLLC       (2L<<0)
                   2233: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B6_IP          (4L<<0)
                   2234: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B2_IP          (8L<<0)
                   2235: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_IP_START             (16L<<0)
                   2236: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_IP                   (32L<<0)
                   2237: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_TCP                  (64L<<0)
                   2238: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_UDP                  (128L<<0)
                   2239: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_AH                   (256L<<0)
                   2240: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ESP                  (512L<<0)
                   2241: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ESP_PAYLOAD          (1024L<<0)
                   2242: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_DATA                         (2048L<<0)
                   2243: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ADD_CARRY            (0x2000L<<0)
                   2244: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_ADD_CARRYOUT                 (0x4000L<<0)
                   2245: #define BNX2_RPM_DEBUG1_FSM_CUR_ST_LATCH_RESULT                 (0x8000L<<0)
                   2246: #define BNX2_RPM_DEBUG1_HDR_BCNT                        (0x7ffL<<16)
                   2247: #define BNX2_RPM_DEBUG1_UNKNOWN_ETYPE_D                         (1L<<28)
                   2248: #define BNX2_RPM_DEBUG1_VLAN_REMOVED_D2                         (1L<<29)
                   2249: #define BNX2_RPM_DEBUG1_VLAN_REMOVED_D1                         (1L<<30)
                   2250: #define BNX2_RPM_DEBUG1_EOF_0XTRA_WD                    (1L<<31)
                   2251: 
                   2252: #define BNX2_RPM_DEBUG2                                        0x0000198c
                   2253: #define BNX2_RPM_DEBUG2_CMD_HIT_VEC                     (0xffffL<<0)
                   2254: #define BNX2_RPM_DEBUG2_IP_BCNT                                 (0xffL<<16)
                   2255: #define BNX2_RPM_DEBUG2_THIS_CMD_M4                     (1L<<24)
                   2256: #define BNX2_RPM_DEBUG2_THIS_CMD_M3                     (1L<<25)
                   2257: #define BNX2_RPM_DEBUG2_THIS_CMD_M2                     (1L<<26)
                   2258: #define BNX2_RPM_DEBUG2_THIS_CMD_M1                     (1L<<27)
                   2259: #define BNX2_RPM_DEBUG2_IPIPE_EMPTY                     (1L<<28)
                   2260: #define BNX2_RPM_DEBUG2_FM_DISCARD                      (1L<<29)
                   2261: #define BNX2_RPM_DEBUG2_LAST_RULE_IN_FM_D2              (1L<<30)
                   2262: #define BNX2_RPM_DEBUG2_LAST_RULE_IN_FM_D1              (1L<<31)
                   2263: 
                   2264: #define BNX2_RPM_DEBUG3                                        0x00001990
                   2265: #define BNX2_RPM_DEBUG3_AVAIL_MBUF_PTR                  (0x1ffL<<0)
                   2266: #define BNX2_RPM_DEBUG3_RDE_RLUPQ_WR_REQ_INT            (1L<<9)
                   2267: #define BNX2_RPM_DEBUG3_RDE_RBUF_WR_LAST_INT            (1L<<10)
                   2268: #define BNX2_RPM_DEBUG3_RDE_RBUF_WR_REQ_INT             (1L<<11)
                   2269: #define BNX2_RPM_DEBUG3_RDE_RBUF_FREE_REQ               (1L<<12)
                   2270: #define BNX2_RPM_DEBUG3_RDE_RBUF_ALLOC_REQ              (1L<<13)
                   2271: #define BNX2_RPM_DEBUG3_DFSM_MBUF_NOTAVAIL              (1L<<14)
                   2272: #define BNX2_RPM_DEBUG3_RBUF_RDE_SOF_DROP               (1L<<15)
                   2273: #define BNX2_RPM_DEBUG3_DFIFO_VLD_ENTRY_CT              (0xfL<<16)
                   2274: #define BNX2_RPM_DEBUG3_RDE_SRC_FIFO_ALMFULL            (1L<<21)
                   2275: #define BNX2_RPM_DEBUG3_DROP_NXT_VLD                    (1L<<22)
                   2276: #define BNX2_RPM_DEBUG3_DROP_NXT                        (1L<<23)
                   2277: #define BNX2_RPM_DEBUG3_FTQ_FSM                                 (0x3L<<24)
                   2278: #define BNX2_RPM_DEBUG3_FTQ_FSM_IDLE                    (0x0L<<24)
                   2279: #define BNX2_RPM_DEBUG3_FTQ_FSM_WAIT_ACK                (0x1L<<24)
                   2280: #define BNX2_RPM_DEBUG3_FTQ_FSM_WAIT_FREE               (0x2L<<24)
                   2281: #define BNX2_RPM_DEBUG3_MBWRITE_FSM                     (0x3L<<26)
                   2282: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_WAIT_SOF            (0x0L<<26)
                   2283: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_GET_MBUF            (0x1L<<26)
                   2284: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_DMA_DATA            (0x2L<<26)
                   2285: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_WAIT_DATA           (0x3L<<26)
                   2286: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_WAIT_EOF            (0x4L<<26)
                   2287: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_WAIT_MF_ACK                 (0x5L<<26)
                   2288: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_WAIT_DROP_NXT_VLD   (0x6L<<26)
                   2289: #define BNX2_RPM_DEBUG3_MBWRITE_FSM_DONE                (0x7L<<26)
                   2290: #define BNX2_RPM_DEBUG3_MBFREE_FSM                      (1L<<29)
                   2291: #define BNX2_RPM_DEBUG3_MBFREE_FSM_IDLE                         (0L<<29)
                   2292: #define BNX2_RPM_DEBUG3_MBFREE_FSM_WAIT_ACK             (1L<<29)
                   2293: #define BNX2_RPM_DEBUG3_MBALLOC_FSM                     (1L<<30)
                   2294: #define BNX2_RPM_DEBUG3_MBALLOC_FSM_ET_MBUF             (0x0L<<30)
                   2295: #define BNX2_RPM_DEBUG3_MBALLOC_FSM_IVE_MBUF            (0x1L<<30)
                   2296: #define BNX2_RPM_DEBUG3_CCODE_EOF_ERROR                         (1L<<31)
                   2297: 
                   2298: #define BNX2_RPM_DEBUG4                                        0x00001994
                   2299: #define BNX2_RPM_DEBUG4_DFSM_MBUF_CLUSTER               (0x1ffffffL<<0)
                   2300: #define BNX2_RPM_DEBUG4_DFIFO_CUR_CCODE                         (0x7L<<25)
                   2301: #define BNX2_RPM_DEBUG4_MBWRITE_FSM                     (0x7L<<28)
                   2302: #define BNX2_RPM_DEBUG4_DFIFO_EMPTY                     (1L<<31)
                   2303: 
                   2304: #define BNX2_RPM_DEBUG5                                        0x00001998
                   2305: #define BNX2_RPM_DEBUG5_RDROP_WPTR                      (0x1fL<<0)
                   2306: #define BNX2_RPM_DEBUG5_RDROP_ACPI_RPTR                         (0x1fL<<5)
                   2307: #define BNX2_RPM_DEBUG5_RDROP_MC_RPTR                   (0x1fL<<10)
                   2308: #define BNX2_RPM_DEBUG5_RDROP_RC_RPTR                   (0x1fL<<15)
                   2309: #define BNX2_RPM_DEBUG5_RDROP_ACPI_EMPTY                (1L<<20)
                   2310: #define BNX2_RPM_DEBUG5_RDROP_MC_EMPTY                  (1L<<21)
                   2311: #define BNX2_RPM_DEBUG5_RDROP_AEOF_VEC_AT_RDROP_MC_RPTR         (1L<<22)
                   2312: #define BNX2_RPM_DEBUG5_HOLDREG_WOL_DROP_INT            (1L<<23)
                   2313: #define BNX2_RPM_DEBUG5_HOLDREG_DISCARD                         (1L<<24)
                   2314: #define BNX2_RPM_DEBUG5_HOLDREG_MBUF_NOTAVAIL           (1L<<25)
                   2315: #define BNX2_RPM_DEBUG5_HOLDREG_MC_EMPTY                (1L<<26)
                   2316: #define BNX2_RPM_DEBUG5_HOLDREG_RC_EMPTY                (1L<<27)
                   2317: #define BNX2_RPM_DEBUG5_HOLDREG_FC_EMPTY                (1L<<28)
                   2318: #define BNX2_RPM_DEBUG5_HOLDREG_ACPI_EMPTY              (1L<<29)
                   2319: #define BNX2_RPM_DEBUG5_HOLDREG_FULL_T                  (1L<<30)
                   2320: #define BNX2_RPM_DEBUG5_HOLDREG_RD                      (1L<<31)
                   2321: 
                   2322: #define BNX2_RPM_DEBUG6                                        0x0000199c
                   2323: #define BNX2_RPM_DEBUG6_ACPI_VEC                        (0xffffL<<0)
                   2324: #define BNX2_RPM_DEBUG6_VEC                             (0xffffL<<16)
                   2325: 
                   2326: #define BNX2_RPM_DEBUG7                                        0x000019a0
                   2327: #define BNX2_RPM_DEBUG7_RPM_DBG7_LAST_CRC               (0xffffffffL<<0)
                   2328: 
                   2329: #define BNX2_RPM_DEBUG8                                        0x000019a4
                   2330: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM                     (0xfL<<0)
                   2331: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_IDLE                (0L<<0)
                   2332: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_SOF_W1_ADDR                 (1L<<0)
                   2333: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_SOF_W2_ADDR                 (2L<<0)
                   2334: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_SOF_W3_ADDR                 (3L<<0)
                   2335: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_SOF_WAIT_THBUF      (4L<<0)
                   2336: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_W3_DATA             (5L<<0)
                   2337: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_W0_ADDR             (6L<<0)
                   2338: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_W1_ADDR             (7L<<0)
                   2339: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_W2_ADDR             (8L<<0)
                   2340: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_W3_ADDR             (9L<<0)
                   2341: #define BNX2_RPM_DEBUG8_PS_ACPI_FSM_WAIT_THBUF          (10L<<0)
                   2342: #define BNX2_RPM_DEBUG8_COMPARE_AT_W0                   (1L<<4)
                   2343: #define BNX2_RPM_DEBUG8_COMPARE_AT_W3_DATA              (1L<<5)
                   2344: #define BNX2_RPM_DEBUG8_COMPARE_AT_SOF_WAIT             (1L<<6)
                   2345: #define BNX2_RPM_DEBUG8_COMPARE_AT_SOF_W3               (1L<<7)
                   2346: #define BNX2_RPM_DEBUG8_COMPARE_AT_SOF_W2               (1L<<8)
                   2347: #define BNX2_RPM_DEBUG8_EOF_W_LTEQ6_VLDBYTES            (1L<<9)
                   2348: #define BNX2_RPM_DEBUG8_EOF_W_LTEQ4_VLDBYTES            (1L<<10)
                   2349: #define BNX2_RPM_DEBUG8_NXT_EOF_W_12_VLDBYTES           (1L<<11)
                   2350: #define BNX2_RPM_DEBUG8_EOF_DET                                 (1L<<12)
                   2351: #define BNX2_RPM_DEBUG8_SOF_DET                                 (1L<<13)
                   2352: #define BNX2_RPM_DEBUG8_WAIT_4_SOF                      (1L<<14)
                   2353: #define BNX2_RPM_DEBUG8_ALL_DONE                        (1L<<15)
                   2354: #define BNX2_RPM_DEBUG8_THBUF_ADDR                      (0x7fL<<16)
                   2355: #define BNX2_RPM_DEBUG8_BYTE_CTR                        (0xffL<<24)
                   2356: 
                   2357: #define BNX2_RPM_DEBUG9                                        0x000019a8
                   2358: #define BNX2_RPM_DEBUG9_OUTFIFO_COUNT                   (0x7L<<0)
                   2359: #define BNX2_RPM_DEBUG9_RDE_ACPI_RDY                    (1L<<3)
                   2360: #define BNX2_RPM_DEBUG9_VLD_RD_ENTRY_CT                         (0x7L<<4)
                   2361: #define BNX2_RPM_DEBUG9_OUTFIFO_OVERRUN_OCCURRED        (1L<<28)
                   2362: #define BNX2_RPM_DEBUG9_INFIFO_OVERRUN_OCCURRED                 (1L<<29)
                   2363: #define BNX2_RPM_DEBUG9_ACPI_MATCH_INT                  (1L<<30)
                   2364: #define BNX2_RPM_DEBUG9_ACPI_ENABLE_SYN                         (1L<<31)
                   2365: 
                   2366: #define BNX2_RPM_ACPI_DBG_BUF_W00                      0x000019c0
                   2367: #define BNX2_RPM_ACPI_DBG_BUF_W01                      0x000019c4
                   2368: #define BNX2_RPM_ACPI_DBG_BUF_W02                      0x000019c8
                   2369: #define BNX2_RPM_ACPI_DBG_BUF_W03                      0x000019cc
                   2370: #define BNX2_RPM_ACPI_DBG_BUF_W10                      0x000019d0
                   2371: #define BNX2_RPM_ACPI_DBG_BUF_W11                      0x000019d4
                   2372: #define BNX2_RPM_ACPI_DBG_BUF_W12                      0x000019d8
                   2373: #define BNX2_RPM_ACPI_DBG_BUF_W13                      0x000019dc
                   2374: #define BNX2_RPM_ACPI_DBG_BUF_W20                      0x000019e0
                   2375: #define BNX2_RPM_ACPI_DBG_BUF_W21                      0x000019e4
                   2376: #define BNX2_RPM_ACPI_DBG_BUF_W22                      0x000019e8
                   2377: #define BNX2_RPM_ACPI_DBG_BUF_W23                      0x000019ec
                   2378: #define BNX2_RPM_ACPI_DBG_BUF_W30                      0x000019f0
                   2379: #define BNX2_RPM_ACPI_DBG_BUF_W31                      0x000019f4
                   2380: #define BNX2_RPM_ACPI_DBG_BUF_W32                      0x000019f8
                   2381: #define BNX2_RPM_ACPI_DBG_BUF_W33                      0x000019fc
                   2382: 
                   2383: 
                   2384: /*
                   2385:  *  rbuf_reg definition
                   2386:  *  offset: 0x200000
                   2387:  */
                   2388: #define BNX2_RBUF_COMMAND                              0x00200000
                   2389: #define BNX2_RBUF_COMMAND_ENABLED                       (1L<<0)
                   2390: #define BNX2_RBUF_COMMAND_FREE_INIT                     (1L<<1)
                   2391: #define BNX2_RBUF_COMMAND_RAM_INIT                      (1L<<2)
                   2392: #define BNX2_RBUF_COMMAND_OVER_FREE                     (1L<<4)
                   2393: #define BNX2_RBUF_COMMAND_ALLOC_REQ                     (1L<<5)
                   2394: 
                   2395: #define BNX2_RBUF_STATUS1                              0x00200004
                   2396: #define BNX2_RBUF_STATUS1_FREE_COUNT                    (0x3ffL<<0)
                   2397: 
                   2398: #define BNX2_RBUF_STATUS2                              0x00200008
                   2399: #define BNX2_RBUF_STATUS2_FREE_TAIL                     (0x3ffL<<0)
                   2400: #define BNX2_RBUF_STATUS2_FREE_HEAD                     (0x3ffL<<16)
                   2401: 
                   2402: #define BNX2_RBUF_CONFIG                               0x0020000c
                   2403: #define BNX2_RBUF_CONFIG_XOFF_TRIP                      (0x3ffL<<0)
                   2404: #define BNX2_RBUF_CONFIG_XON_TRIP                       (0x3ffL<<16)
                   2405: 
                   2406: #define BNX2_RBUF_FW_BUF_ALLOC                         0x00200010
                   2407: #define BNX2_RBUF_FW_BUF_ALLOC_VALUE                    (0x1ffL<<7)
                   2408: 
                   2409: #define BNX2_RBUF_FW_BUF_FREE                          0x00200014
                   2410: #define BNX2_RBUF_FW_BUF_FREE_COUNT                     (0x7fL<<0)
                   2411: #define BNX2_RBUF_FW_BUF_FREE_TAIL                      (0x1ffL<<7)
                   2412: #define BNX2_RBUF_FW_BUF_FREE_HEAD                      (0x1ffL<<16)
                   2413: 
                   2414: #define BNX2_RBUF_FW_BUF_SEL                           0x00200018
                   2415: #define BNX2_RBUF_FW_BUF_SEL_COUNT                      (0x7fL<<0)
                   2416: #define BNX2_RBUF_FW_BUF_SEL_TAIL                       (0x1ffL<<7)
                   2417: #define BNX2_RBUF_FW_BUF_SEL_HEAD                       (0x1ffL<<16)
                   2418: 
                   2419: #define BNX2_RBUF_CONFIG2                              0x0020001c
                   2420: #define BNX2_RBUF_CONFIG2_MAC_DROP_TRIP                         (0x3ffL<<0)
                   2421: #define BNX2_RBUF_CONFIG2_MAC_KEEP_TRIP                         (0x3ffL<<16)
                   2422: 
                   2423: #define BNX2_RBUF_CONFIG3                              0x00200020
                   2424: #define BNX2_RBUF_CONFIG3_CU_DROP_TRIP                  (0x3ffL<<0)
                   2425: #define BNX2_RBUF_CONFIG3_CU_KEEP_TRIP                  (0x3ffL<<16)
                   2426: 
                   2427: #define BNX2_RBUF_PKT_DATA                             0x00208000
                   2428: #define BNX2_RBUF_CLIST_DATA                           0x00210000
                   2429: #define BNX2_RBUF_BUF_DATA                             0x00220000
                   2430: 
                   2431: 
                   2432: /*
                   2433:  *  rv2p_reg definition
                   2434:  *  offset: 0x2800
                   2435:  */
                   2436: #define BNX2_RV2P_COMMAND                              0x00002800
                   2437: #define BNX2_RV2P_COMMAND_ENABLED                       (1L<<0)
                   2438: #define BNX2_RV2P_COMMAND_PROC1_INTRPT                  (1L<<1)
                   2439: #define BNX2_RV2P_COMMAND_PROC2_INTRPT                  (1L<<2)
                   2440: #define BNX2_RV2P_COMMAND_ABORT0                        (1L<<4)
                   2441: #define BNX2_RV2P_COMMAND_ABORT1                        (1L<<5)
                   2442: #define BNX2_RV2P_COMMAND_ABORT2                        (1L<<6)
                   2443: #define BNX2_RV2P_COMMAND_ABORT3                        (1L<<7)
                   2444: #define BNX2_RV2P_COMMAND_ABORT4                        (1L<<8)
                   2445: #define BNX2_RV2P_COMMAND_ABORT5                        (1L<<9)
                   2446: #define BNX2_RV2P_COMMAND_PROC1_RESET                   (1L<<16)
                   2447: #define BNX2_RV2P_COMMAND_PROC2_RESET                   (1L<<17)
                   2448: #define BNX2_RV2P_COMMAND_CTXIF_RESET                   (1L<<18)
                   2449: 
                   2450: #define BNX2_RV2P_STATUS                               0x00002804
                   2451: #define BNX2_RV2P_STATUS_ALWAYS_0                       (1L<<0)
                   2452: #define BNX2_RV2P_STATUS_RV2P_GEN_STAT0_CNT             (1L<<8)
                   2453: #define BNX2_RV2P_STATUS_RV2P_GEN_STAT1_CNT             (1L<<9)
                   2454: #define BNX2_RV2P_STATUS_RV2P_GEN_STAT2_CNT             (1L<<10)
                   2455: #define BNX2_RV2P_STATUS_RV2P_GEN_STAT3_CNT             (1L<<11)
                   2456: #define BNX2_RV2P_STATUS_RV2P_GEN_STAT4_CNT             (1L<<12)
                   2457: #define BNX2_RV2P_STATUS_RV2P_GEN_STAT5_CNT             (1L<<13)
                   2458: 
                   2459: #define BNX2_RV2P_CONFIG                               0x00002808
                   2460: #define BNX2_RV2P_CONFIG_STALL_PROC1                    (1L<<0)
                   2461: #define BNX2_RV2P_CONFIG_STALL_PROC2                    (1L<<1)
                   2462: #define BNX2_RV2P_CONFIG_PROC1_STALL_ON_ABORT0          (1L<<8)
                   2463: #define BNX2_RV2P_CONFIG_PROC1_STALL_ON_ABORT1          (1L<<9)
                   2464: #define BNX2_RV2P_CONFIG_PROC1_STALL_ON_ABORT2          (1L<<10)
                   2465: #define BNX2_RV2P_CONFIG_PROC1_STALL_ON_ABORT3          (1L<<11)
                   2466: #define BNX2_RV2P_CONFIG_PROC1_STALL_ON_ABORT4          (1L<<12)
                   2467: #define BNX2_RV2P_CONFIG_PROC1_STALL_ON_ABORT5          (1L<<13)
                   2468: #define BNX2_RV2P_CONFIG_PROC2_STALL_ON_ABORT0          (1L<<16)
                   2469: #define BNX2_RV2P_CONFIG_PROC2_STALL_ON_ABORT1          (1L<<17)
                   2470: #define BNX2_RV2P_CONFIG_PROC2_STALL_ON_ABORT2          (1L<<18)
                   2471: #define BNX2_RV2P_CONFIG_PROC2_STALL_ON_ABORT3          (1L<<19)
                   2472: #define BNX2_RV2P_CONFIG_PROC2_STALL_ON_ABORT4          (1L<<20)
                   2473: #define BNX2_RV2P_CONFIG_PROC2_STALL_ON_ABORT5          (1L<<21)
                   2474: #define BNX2_RV2P_CONFIG_PAGE_SIZE                      (0xfL<<24)
                   2475: #define BNX2_RV2P_CONFIG_PAGE_SIZE_256                  (0L<<24)
                   2476: #define BNX2_RV2P_CONFIG_PAGE_SIZE_512                  (1L<<24)
                   2477: #define BNX2_RV2P_CONFIG_PAGE_SIZE_1K                   (2L<<24)
                   2478: #define BNX2_RV2P_CONFIG_PAGE_SIZE_2K                   (3L<<24)
                   2479: #define BNX2_RV2P_CONFIG_PAGE_SIZE_4K                   (4L<<24)
                   2480: #define BNX2_RV2P_CONFIG_PAGE_SIZE_8K                   (5L<<24)
                   2481: #define BNX2_RV2P_CONFIG_PAGE_SIZE_16K                  (6L<<24)
                   2482: #define BNX2_RV2P_CONFIG_PAGE_SIZE_32K                  (7L<<24)
                   2483: #define BNX2_RV2P_CONFIG_PAGE_SIZE_64K                  (8L<<24)
                   2484: #define BNX2_RV2P_CONFIG_PAGE_SIZE_128K                         (9L<<24)
                   2485: #define BNX2_RV2P_CONFIG_PAGE_SIZE_256K                         (10L<<24)
                   2486: #define BNX2_RV2P_CONFIG_PAGE_SIZE_512K                         (11L<<24)
                   2487: #define BNX2_RV2P_CONFIG_PAGE_SIZE_1M                   (12L<<24)
                   2488: 
                   2489: #define BNX2_RV2P_GEN_BFR_ADDR_0                       0x00002810
                   2490: #define BNX2_RV2P_GEN_BFR_ADDR_0_VALUE                  (0xffffL<<16)
                   2491: 
                   2492: #define BNX2_RV2P_GEN_BFR_ADDR_1                       0x00002814
                   2493: #define BNX2_RV2P_GEN_BFR_ADDR_1_VALUE                  (0xffffL<<16)
                   2494: 
                   2495: #define BNX2_RV2P_GEN_BFR_ADDR_2                       0x00002818
                   2496: #define BNX2_RV2P_GEN_BFR_ADDR_2_VALUE                  (0xffffL<<16)
                   2497: 
                   2498: #define BNX2_RV2P_GEN_BFR_ADDR_3                       0x0000281c
                   2499: #define BNX2_RV2P_GEN_BFR_ADDR_3_VALUE                  (0xffffL<<16)
                   2500: 
                   2501: #define BNX2_RV2P_INSTR_HIGH                           0x00002830
                   2502: #define BNX2_RV2P_INSTR_HIGH_HIGH                       (0x1fL<<0)
                   2503: 
                   2504: #define BNX2_RV2P_INSTR_LOW                            0x00002834
                   2505: #define BNX2_RV2P_PROC1_ADDR_CMD                       0x00002838
                   2506: #define BNX2_RV2P_PROC1_ADDR_CMD_ADD                    (0x3ffL<<0)
                   2507: #define BNX2_RV2P_PROC1_ADDR_CMD_RDWR                   (1L<<31)
                   2508: 
                   2509: #define BNX2_RV2P_PROC2_ADDR_CMD                       0x0000283c
                   2510: #define BNX2_RV2P_PROC2_ADDR_CMD_ADD                    (0x3ffL<<0)
                   2511: #define BNX2_RV2P_PROC2_ADDR_CMD_RDWR                   (1L<<31)
                   2512: 
                   2513: #define BNX2_RV2P_PROC1_GRC_DEBUG                      0x00002840
                   2514: #define BNX2_RV2P_PROC2_GRC_DEBUG                      0x00002844
                   2515: #define BNX2_RV2P_GRC_PROC_DEBUG                       0x00002848
                   2516: #define BNX2_RV2P_DEBUG_VECT_PEEK                      0x0000284c
                   2517: #define BNX2_RV2P_DEBUG_VECT_PEEK_1_VALUE               (0x7ffL<<0)
                   2518: #define BNX2_RV2P_DEBUG_VECT_PEEK_1_PEEK_EN             (1L<<11)
                   2519: #define BNX2_RV2P_DEBUG_VECT_PEEK_1_SEL                         (0xfL<<12)
                   2520: #define BNX2_RV2P_DEBUG_VECT_PEEK_2_VALUE               (0x7ffL<<16)
                   2521: #define BNX2_RV2P_DEBUG_VECT_PEEK_2_PEEK_EN             (1L<<27)
                   2522: #define BNX2_RV2P_DEBUG_VECT_PEEK_2_SEL                         (0xfL<<28)
                   2523: 
                   2524: #define BNX2_RV2P_PFTQ_DATA                            0x00002b40
                   2525: #define BNX2_RV2P_PFTQ_CMD                             0x00002b78
                   2526: #define BNX2_RV2P_PFTQ_CMD_OFFSET                       (0x3ffL<<0)
                   2527: #define BNX2_RV2P_PFTQ_CMD_WR_TOP                       (1L<<10)
                   2528: #define BNX2_RV2P_PFTQ_CMD_WR_TOP_0                     (0L<<10)
                   2529: #define BNX2_RV2P_PFTQ_CMD_WR_TOP_1                     (1L<<10)
                   2530: #define BNX2_RV2P_PFTQ_CMD_SFT_RESET                    (1L<<25)
                   2531: #define BNX2_RV2P_PFTQ_CMD_RD_DATA                      (1L<<26)
                   2532: #define BNX2_RV2P_PFTQ_CMD_ADD_INTERVEN                         (1L<<27)
                   2533: #define BNX2_RV2P_PFTQ_CMD_ADD_DATA                     (1L<<28)
                   2534: #define BNX2_RV2P_PFTQ_CMD_INTERVENE_CLR                (1L<<29)
                   2535: #define BNX2_RV2P_PFTQ_CMD_POP                          (1L<<30)
                   2536: #define BNX2_RV2P_PFTQ_CMD_BUSY                                 (1L<<31)
                   2537: 
                   2538: #define BNX2_RV2P_PFTQ_CTL                             0x00002b7c
                   2539: #define BNX2_RV2P_PFTQ_CTL_INTERVENE                    (1L<<0)
                   2540: #define BNX2_RV2P_PFTQ_CTL_OVERFLOW                     (1L<<1)
                   2541: #define BNX2_RV2P_PFTQ_CTL_FORCE_INTERVENE              (1L<<2)
                   2542: #define BNX2_RV2P_PFTQ_CTL_MAX_DEPTH                    (0x3ffL<<12)
                   2543: #define BNX2_RV2P_PFTQ_CTL_CUR_DEPTH                    (0x3ffL<<22)
                   2544: 
                   2545: #define BNX2_RV2P_TFTQ_DATA                            0x00002b80
                   2546: #define BNX2_RV2P_TFTQ_CMD                             0x00002bb8
                   2547: #define BNX2_RV2P_TFTQ_CMD_OFFSET                       (0x3ffL<<0)
                   2548: #define BNX2_RV2P_TFTQ_CMD_WR_TOP                       (1L<<10)
                   2549: #define BNX2_RV2P_TFTQ_CMD_WR_TOP_0                     (0L<<10)
                   2550: #define BNX2_RV2P_TFTQ_CMD_WR_TOP_1                     (1L<<10)
                   2551: #define BNX2_RV2P_TFTQ_CMD_SFT_RESET                    (1L<<25)
                   2552: #define BNX2_RV2P_TFTQ_CMD_RD_DATA                      (1L<<26)
                   2553: #define BNX2_RV2P_TFTQ_CMD_ADD_INTERVEN                         (1L<<27)
                   2554: #define BNX2_RV2P_TFTQ_CMD_ADD_DATA                     (1L<<28)
                   2555: #define BNX2_RV2P_TFTQ_CMD_INTERVENE_CLR                (1L<<29)
                   2556: #define BNX2_RV2P_TFTQ_CMD_POP                          (1L<<30)
                   2557: #define BNX2_RV2P_TFTQ_CMD_BUSY                                 (1L<<31)
                   2558: 
                   2559: #define BNX2_RV2P_TFTQ_CTL                             0x00002bbc
                   2560: #define BNX2_RV2P_TFTQ_CTL_INTERVENE                    (1L<<0)
                   2561: #define BNX2_RV2P_TFTQ_CTL_OVERFLOW                     (1L<<1)
                   2562: #define BNX2_RV2P_TFTQ_CTL_FORCE_INTERVENE              (1L<<2)
                   2563: #define BNX2_RV2P_TFTQ_CTL_MAX_DEPTH                    (0x3ffL<<12)
                   2564: #define BNX2_RV2P_TFTQ_CTL_CUR_DEPTH                    (0x3ffL<<22)
                   2565: 
                   2566: #define BNX2_RV2P_MFTQ_DATA                            0x00002bc0
                   2567: #define BNX2_RV2P_MFTQ_CMD                             0x00002bf8
                   2568: #define BNX2_RV2P_MFTQ_CMD_OFFSET                       (0x3ffL<<0)
                   2569: #define BNX2_RV2P_MFTQ_CMD_WR_TOP                       (1L<<10)
                   2570: #define BNX2_RV2P_MFTQ_CMD_WR_TOP_0                     (0L<<10)
                   2571: #define BNX2_RV2P_MFTQ_CMD_WR_TOP_1                     (1L<<10)
                   2572: #define BNX2_RV2P_MFTQ_CMD_SFT_RESET                    (1L<<25)
                   2573: #define BNX2_RV2P_MFTQ_CMD_RD_DATA                      (1L<<26)
                   2574: #define BNX2_RV2P_MFTQ_CMD_ADD_INTERVEN                         (1L<<27)
                   2575: #define BNX2_RV2P_MFTQ_CMD_ADD_DATA                     (1L<<28)
                   2576: #define BNX2_RV2P_MFTQ_CMD_INTERVENE_CLR                (1L<<29)
                   2577: #define BNX2_RV2P_MFTQ_CMD_POP                          (1L<<30)
                   2578: #define BNX2_RV2P_MFTQ_CMD_BUSY                                 (1L<<31)
                   2579: 
                   2580: #define BNX2_RV2P_MFTQ_CTL                             0x00002bfc
                   2581: #define BNX2_RV2P_MFTQ_CTL_INTERVENE                    (1L<<0)
                   2582: #define BNX2_RV2P_MFTQ_CTL_OVERFLOW                     (1L<<1)
                   2583: #define BNX2_RV2P_MFTQ_CTL_FORCE_INTERVENE              (1L<<2)
                   2584: #define BNX2_RV2P_MFTQ_CTL_MAX_DEPTH                    (0x3ffL<<12)
                   2585: #define BNX2_RV2P_MFTQ_CTL_CUR_DEPTH                    (0x3ffL<<22)
                   2586: 
                   2587: 
                   2588: 
                   2589: /*
                   2590:  *  mq_reg definition
                   2591:  *  offset: 0x3c00
                   2592:  */
                   2593: #define BNX2_MQ_COMMAND                                        0x00003c00
                   2594: #define BNX2_MQ_COMMAND_ENABLED                                 (1L<<0)
                   2595: #define BNX2_MQ_COMMAND_OVERFLOW                        (1L<<4)
                   2596: #define BNX2_MQ_COMMAND_WR_ERROR                        (1L<<5)
                   2597: #define BNX2_MQ_COMMAND_RD_ERROR                        (1L<<6)
                   2598: 
                   2599: #define BNX2_MQ_STATUS                                 0x00003c04
                   2600: #define BNX2_MQ_STATUS_CTX_ACCESS_STAT                  (1L<<16)
                   2601: #define BNX2_MQ_STATUS_CTX_ACCESS64_STAT                (1L<<17)
                   2602: #define BNX2_MQ_STATUS_PCI_STALL_STAT                   (1L<<18)
                   2603: 
                   2604: #define BNX2_MQ_CONFIG                                 0x00003c08
                   2605: #define BNX2_MQ_CONFIG_TX_HIGH_PRI                      (1L<<0)
                   2606: #define BNX2_MQ_CONFIG_HALT_DIS                                 (1L<<1)
                   2607: #define BNX2_MQ_CONFIG_KNL_BYP_BLK_SIZE                         (0x7L<<4)
                   2608: #define BNX2_MQ_CONFIG_KNL_BYP_BLK_SIZE_256             (0L<<4)
                   2609: #define BNX2_MQ_CONFIG_KNL_BYP_BLK_SIZE_512             (1L<<4)
                   2610: #define BNX2_MQ_CONFIG_KNL_BYP_BLK_SIZE_1K              (2L<<4)
                   2611: #define BNX2_MQ_CONFIG_KNL_BYP_BLK_SIZE_2K              (3L<<4)
                   2612: #define BNX2_MQ_CONFIG_KNL_BYP_BLK_SIZE_4K              (4L<<4)
                   2613: #define BNX2_MQ_CONFIG_MAX_DEPTH                        (0x7fL<<8)
                   2614: #define BNX2_MQ_CONFIG_CUR_DEPTH                        (0x7fL<<20)
                   2615: 
                   2616: #define BNX2_MQ_ENQUEUE1                               0x00003c0c
                   2617: #define BNX2_MQ_ENQUEUE1_OFFSET                                 (0x3fL<<2)
                   2618: #define BNX2_MQ_ENQUEUE1_CID                            (0x3fffL<<8)
                   2619: #define BNX2_MQ_ENQUEUE1_BYTE_MASK                      (0xfL<<24)
                   2620: #define BNX2_MQ_ENQUEUE1_KNL_MODE                       (1L<<28)
                   2621: 
                   2622: #define BNX2_MQ_ENQUEUE2                               0x00003c10
                   2623: #define BNX2_MQ_BAD_WR_ADDR                            0x00003c14
                   2624: #define BNX2_MQ_BAD_RD_ADDR                            0x00003c18
                   2625: #define BNX2_MQ_KNL_BYP_WIND_START                     0x00003c1c
                   2626: #define BNX2_MQ_KNL_BYP_WIND_START_VALUE                (0xfffffL<<12)
                   2627: 
                   2628: #define BNX2_MQ_KNL_WIND_END                           0x00003c20
                   2629: #define BNX2_MQ_KNL_WIND_END_VALUE                      (0xffffffL<<8)
                   2630: 
                   2631: #define BNX2_MQ_KNL_WRITE_MASK1                                0x00003c24
                   2632: #define BNX2_MQ_KNL_TX_MASK1                           0x00003c28
                   2633: #define BNX2_MQ_KNL_CMD_MASK1                          0x00003c2c
                   2634: #define BNX2_MQ_KNL_COND_ENQUEUE_MASK1                 0x00003c30
                   2635: #define BNX2_MQ_KNL_RX_V2P_MASK1                       0x00003c34
                   2636: #define BNX2_MQ_KNL_WRITE_MASK2                                0x00003c38
                   2637: #define BNX2_MQ_KNL_TX_MASK2                           0x00003c3c
                   2638: #define BNX2_MQ_KNL_CMD_MASK2                          0x00003c40
                   2639: #define BNX2_MQ_KNL_COND_ENQUEUE_MASK2                 0x00003c44
                   2640: #define BNX2_MQ_KNL_RX_V2P_MASK2                       0x00003c48
                   2641: #define BNX2_MQ_KNL_BYP_WRITE_MASK1                    0x00003c4c
                   2642: #define BNX2_MQ_KNL_BYP_TX_MASK1                       0x00003c50
                   2643: #define BNX2_MQ_KNL_BYP_CMD_MASK1                      0x00003c54
                   2644: #define BNX2_MQ_KNL_BYP_COND_ENQUEUE_MASK1             0x00003c58
                   2645: #define BNX2_MQ_KNL_BYP_RX_V2P_MASK1                   0x00003c5c
                   2646: #define BNX2_MQ_KNL_BYP_WRITE_MASK2                    0x00003c60
                   2647: #define BNX2_MQ_KNL_BYP_TX_MASK2                       0x00003c64
                   2648: #define BNX2_MQ_KNL_BYP_CMD_MASK2                      0x00003c68
                   2649: #define BNX2_MQ_KNL_BYP_COND_ENQUEUE_MASK2             0x00003c6c
                   2650: #define BNX2_MQ_KNL_BYP_RX_V2P_MASK2                   0x00003c70
                   2651: #define BNX2_MQ_MEM_WR_ADDR                            0x00003c74
                   2652: #define BNX2_MQ_MEM_WR_ADDR_VALUE                       (0x3fL<<0)
                   2653: 
                   2654: #define BNX2_MQ_MEM_WR_DATA0                           0x00003c78
                   2655: #define BNX2_MQ_MEM_WR_DATA0_VALUE                      (0xffffffffL<<0)
                   2656: 
                   2657: #define BNX2_MQ_MEM_WR_DATA1                           0x00003c7c
                   2658: #define BNX2_MQ_MEM_WR_DATA1_VALUE                      (0xffffffffL<<0)
                   2659: 
                   2660: #define BNX2_MQ_MEM_WR_DATA2                           0x00003c80
                   2661: #define BNX2_MQ_MEM_WR_DATA2_VALUE                      (0x3fffffffL<<0)
                   2662: 
                   2663: #define BNX2_MQ_MEM_RD_ADDR                            0x00003c84
                   2664: #define BNX2_MQ_MEM_RD_ADDR_VALUE                       (0x3fL<<0)
                   2665: 
                   2666: #define BNX2_MQ_MEM_RD_DATA0                           0x00003c88
                   2667: #define BNX2_MQ_MEM_RD_DATA0_VALUE                      (0xffffffffL<<0)
                   2668: 
                   2669: #define BNX2_MQ_MEM_RD_DATA1                           0x00003c8c
                   2670: #define BNX2_MQ_MEM_RD_DATA1_VALUE                      (0xffffffffL<<0)
                   2671: 
                   2672: #define BNX2_MQ_MEM_RD_DATA2                           0x00003c90
                   2673: #define BNX2_MQ_MEM_RD_DATA2_VALUE                      (0x3fffffffL<<0)
                   2674: 
                   2675: 
                   2676: 
                   2677: /*
                   2678:  *  tbdr_reg definition
                   2679:  *  offset: 0x5000
                   2680:  */
                   2681: #define BNX2_TBDR_COMMAND                              0x00005000
                   2682: #define BNX2_TBDR_COMMAND_ENABLE                        (1L<<0)
                   2683: #define BNX2_TBDR_COMMAND_SOFT_RST                      (1L<<1)
                   2684: #define BNX2_TBDR_COMMAND_MSTR_ABORT                    (1L<<4)
                   2685: 
                   2686: #define BNX2_TBDR_STATUS                               0x00005004
                   2687: #define BNX2_TBDR_STATUS_DMA_WAIT                       (1L<<0)
                   2688: #define BNX2_TBDR_STATUS_FTQ_WAIT                       (1L<<1)
                   2689: #define BNX2_TBDR_STATUS_FIFO_OVERFLOW                  (1L<<2)
                   2690: #define BNX2_TBDR_STATUS_FIFO_UNDERFLOW                         (1L<<3)
                   2691: #define BNX2_TBDR_STATUS_SEARCHMISS_ERROR               (1L<<4)
                   2692: #define BNX2_TBDR_STATUS_FTQ_ENTRY_CNT                  (1L<<5)
                   2693: #define BNX2_TBDR_STATUS_BURST_CNT                      (1L<<6)
                   2694: 
                   2695: #define BNX2_TBDR_CONFIG                               0x00005008
                   2696: #define BNX2_TBDR_CONFIG_MAX_BDS                        (0xffL<<0)
                   2697: #define BNX2_TBDR_CONFIG_SWAP_MODE                      (1L<<8)
                   2698: #define BNX2_TBDR_CONFIG_PRIORITY                       (1L<<9)
                   2699: #define BNX2_TBDR_CONFIG_CACHE_NEXT_PAGE_PTRS           (1L<<10)
                   2700: #define BNX2_TBDR_CONFIG_PAGE_SIZE                      (0xfL<<24)
                   2701: #define BNX2_TBDR_CONFIG_PAGE_SIZE_256                  (0L<<24)
                   2702: #define BNX2_TBDR_CONFIG_PAGE_SIZE_512                  (1L<<24)
                   2703: #define BNX2_TBDR_CONFIG_PAGE_SIZE_1K                   (2L<<24)
                   2704: #define BNX2_TBDR_CONFIG_PAGE_SIZE_2K                   (3L<<24)
                   2705: #define BNX2_TBDR_CONFIG_PAGE_SIZE_4K                   (4L<<24)
                   2706: #define BNX2_TBDR_CONFIG_PAGE_SIZE_8K                   (5L<<24)
                   2707: #define BNX2_TBDR_CONFIG_PAGE_SIZE_16K                  (6L<<24)
                   2708: #define BNX2_TBDR_CONFIG_PAGE_SIZE_32K                  (7L<<24)
                   2709: #define BNX2_TBDR_CONFIG_PAGE_SIZE_64K                  (8L<<24)
                   2710: #define BNX2_TBDR_CONFIG_PAGE_SIZE_128K                         (9L<<24)
                   2711: #define BNX2_TBDR_CONFIG_PAGE_SIZE_256K                         (10L<<24)
                   2712: #define BNX2_TBDR_CONFIG_PAGE_SIZE_512K                         (11L<<24)
                   2713: #define BNX2_TBDR_CONFIG_PAGE_SIZE_1M                   (12L<<24)
                   2714: 
                   2715: #define BNX2_TBDR_DEBUG_VECT_PEEK                      0x0000500c
                   2716: #define BNX2_TBDR_DEBUG_VECT_PEEK_1_VALUE               (0x7ffL<<0)
                   2717: #define BNX2_TBDR_DEBUG_VECT_PEEK_1_PEEK_EN             (1L<<11)
                   2718: #define BNX2_TBDR_DEBUG_VECT_PEEK_1_SEL                         (0xfL<<12)
                   2719: #define BNX2_TBDR_DEBUG_VECT_PEEK_2_VALUE               (0x7ffL<<16)
                   2720: #define BNX2_TBDR_DEBUG_VECT_PEEK_2_PEEK_EN             (1L<<27)
                   2721: #define BNX2_TBDR_DEBUG_VECT_PEEK_2_SEL                         (0xfL<<28)
                   2722: 
                   2723: #define BNX2_TBDR_FTQ_DATA                             0x000053c0
                   2724: #define BNX2_TBDR_FTQ_CMD                              0x000053f8
                   2725: #define BNX2_TBDR_FTQ_CMD_OFFSET                        (0x3ffL<<0)
                   2726: #define BNX2_TBDR_FTQ_CMD_WR_TOP                        (1L<<10)
                   2727: #define BNX2_TBDR_FTQ_CMD_WR_TOP_0                      (0L<<10)
                   2728: #define BNX2_TBDR_FTQ_CMD_WR_TOP_1                      (1L<<10)
                   2729: #define BNX2_TBDR_FTQ_CMD_SFT_RESET                     (1L<<25)
                   2730: #define BNX2_TBDR_FTQ_CMD_RD_DATA                       (1L<<26)
                   2731: #define BNX2_TBDR_FTQ_CMD_ADD_INTERVEN                  (1L<<27)
                   2732: #define BNX2_TBDR_FTQ_CMD_ADD_DATA                      (1L<<28)
                   2733: #define BNX2_TBDR_FTQ_CMD_INTERVENE_CLR                         (1L<<29)
                   2734: #define BNX2_TBDR_FTQ_CMD_POP                           (1L<<30)
                   2735: #define BNX2_TBDR_FTQ_CMD_BUSY                          (1L<<31)
                   2736: 
                   2737: #define BNX2_TBDR_FTQ_CTL                              0x000053fc
                   2738: #define BNX2_TBDR_FTQ_CTL_INTERVENE                     (1L<<0)
                   2739: #define BNX2_TBDR_FTQ_CTL_OVERFLOW                      (1L<<1)
                   2740: #define BNX2_TBDR_FTQ_CTL_FORCE_INTERVENE               (1L<<2)
                   2741: #define BNX2_TBDR_FTQ_CTL_MAX_DEPTH                     (0x3ffL<<12)
                   2742: #define BNX2_TBDR_FTQ_CTL_CUR_DEPTH                     (0x3ffL<<22)
                   2743: 
                   2744: 
                   2745: 
                   2746: /*
                   2747:  *  tdma_reg definition
                   2748:  *  offset: 0x5c00
                   2749:  */
                   2750: #define BNX2_TDMA_COMMAND                              0x00005c00
                   2751: #define BNX2_TDMA_COMMAND_ENABLED                       (1L<<0)
                   2752: #define BNX2_TDMA_COMMAND_MASTER_ABORT                  (1L<<4)
                   2753: #define BNX2_TDMA_COMMAND_BAD_L2_LENGTH_ABORT           (1L<<7)
                   2754: 
                   2755: #define BNX2_TDMA_STATUS                               0x00005c04
                   2756: #define BNX2_TDMA_STATUS_DMA_WAIT                       (1L<<0)
                   2757: #define BNX2_TDMA_STATUS_PAYLOAD_WAIT                   (1L<<1)
                   2758: #define BNX2_TDMA_STATUS_PATCH_FTQ_WAIT                         (1L<<2)
                   2759: #define BNX2_TDMA_STATUS_LOCK_WAIT                      (1L<<3)
                   2760: #define BNX2_TDMA_STATUS_FTQ_ENTRY_CNT                  (1L<<16)
                   2761: #define BNX2_TDMA_STATUS_BURST_CNT                      (1L<<17)
                   2762: 
                   2763: #define BNX2_TDMA_CONFIG                               0x00005c08
                   2764: #define BNX2_TDMA_CONFIG_ONE_DMA                        (1L<<0)
                   2765: #define BNX2_TDMA_CONFIG_ONE_RECORD                     (1L<<1)
                   2766: #define BNX2_TDMA_CONFIG_LIMIT_SZ                       (0xfL<<4)
                   2767: #define BNX2_TDMA_CONFIG_LIMIT_SZ_64                    (0L<<4)
                   2768: #define BNX2_TDMA_CONFIG_LIMIT_SZ_128                   (0x4L<<4)
                   2769: #define BNX2_TDMA_CONFIG_LIMIT_SZ_256                   (0x6L<<4)
                   2770: #define BNX2_TDMA_CONFIG_LIMIT_SZ_512                   (0x8L<<4)
                   2771: #define BNX2_TDMA_CONFIG_LINE_SZ                        (0xfL<<8)
                   2772: #define BNX2_TDMA_CONFIG_LINE_SZ_64                     (0L<<8)
                   2773: #define BNX2_TDMA_CONFIG_LINE_SZ_128                    (4L<<8)
                   2774: #define BNX2_TDMA_CONFIG_LINE_SZ_256                    (6L<<8)
                   2775: #define BNX2_TDMA_CONFIG_LINE_SZ_512                    (8L<<8)
                   2776: #define BNX2_TDMA_CONFIG_ALIGN_ENA                      (1L<<15)
                   2777: #define BNX2_TDMA_CONFIG_CHK_L2_BD                      (1L<<16)
                   2778: #define BNX2_TDMA_CONFIG_FIFO_CMP                       (0xfL<<20)
                   2779: 
                   2780: #define BNX2_TDMA_PAYLOAD_PROD                         0x00005c0c
                   2781: #define BNX2_TDMA_PAYLOAD_PROD_VALUE                    (0x1fffL<<3)
                   2782: 
                   2783: #define BNX2_TDMA_DBG_WATCHDOG                         0x00005c10
                   2784: #define BNX2_TDMA_DBG_TRIGGER                          0x00005c14
                   2785: #define BNX2_TDMA_DMAD_FSM                             0x00005c80
                   2786: #define BNX2_TDMA_DMAD_FSM_BD_INVLD                     (1L<<0)
                   2787: #define BNX2_TDMA_DMAD_FSM_PUSH                                 (0xfL<<4)
                   2788: #define BNX2_TDMA_DMAD_FSM_ARB_TBDC                     (0x3L<<8)
                   2789: #define BNX2_TDMA_DMAD_FSM_ARB_CTX                      (1L<<12)
                   2790: #define BNX2_TDMA_DMAD_FSM_DR_INTF                      (1L<<16)
                   2791: #define BNX2_TDMA_DMAD_FSM_DMAD                                 (0x7L<<20)
                   2792: #define BNX2_TDMA_DMAD_FSM_BD                           (0xfL<<24)
                   2793: 
                   2794: #define BNX2_TDMA_DMAD_STATUS                          0x00005c84
                   2795: #define BNX2_TDMA_DMAD_STATUS_RHOLD_PUSH_ENTRY          (0x3L<<0)
                   2796: #define BNX2_TDMA_DMAD_STATUS_RHOLD_DMAD_ENTRY          (0x3L<<4)
                   2797: #define BNX2_TDMA_DMAD_STATUS_RHOLD_BD_ENTRY            (0x3L<<8)
                   2798: #define BNX2_TDMA_DMAD_STATUS_IFTQ_ENUM                         (0xfL<<12)
                   2799: 
                   2800: #define BNX2_TDMA_DR_INTF_FSM                          0x00005c88
                   2801: #define BNX2_TDMA_DR_INTF_FSM_L2_COMP                   (0x3L<<0)
                   2802: #define BNX2_TDMA_DR_INTF_FSM_TPATQ                     (0x7L<<4)
                   2803: #define BNX2_TDMA_DR_INTF_FSM_TPBUF                     (0x3L<<8)
                   2804: #define BNX2_TDMA_DR_INTF_FSM_DR_BUF                    (0x7L<<12)
                   2805: #define BNX2_TDMA_DR_INTF_FSM_DMAD                      (0x7L<<16)
                   2806: 
                   2807: #define BNX2_TDMA_DR_INTF_STATUS                       0x00005c8c
                   2808: #define BNX2_TDMA_DR_INTF_STATUS_HOLE_PHASE             (0x7L<<0)
                   2809: #define BNX2_TDMA_DR_INTF_STATUS_DATA_AVAIL             (0x3L<<4)
                   2810: #define BNX2_TDMA_DR_INTF_STATUS_SHIFT_ADDR             (0x7L<<8)
                   2811: #define BNX2_TDMA_DR_INTF_STATUS_NXT_PNTR               (0xfL<<12)
                   2812: #define BNX2_TDMA_DR_INTF_STATUS_BYTE_COUNT             (0x7L<<16)
                   2813: 
                   2814: #define BNX2_TDMA_FTQ_DATA                             0x00005fc0
                   2815: #define BNX2_TDMA_FTQ_CMD                              0x00005ff8
                   2816: #define BNX2_TDMA_FTQ_CMD_OFFSET                        (0x3ffL<<0)
                   2817: #define BNX2_TDMA_FTQ_CMD_WR_TOP                        (1L<<10)
                   2818: #define BNX2_TDMA_FTQ_CMD_WR_TOP_0                      (0L<<10)
                   2819: #define BNX2_TDMA_FTQ_CMD_WR_TOP_1                      (1L<<10)
                   2820: #define BNX2_TDMA_FTQ_CMD_SFT_RESET                     (1L<<25)
                   2821: #define BNX2_TDMA_FTQ_CMD_RD_DATA                       (1L<<26)
                   2822: #define BNX2_TDMA_FTQ_CMD_ADD_INTERVEN                  (1L<<27)
                   2823: #define BNX2_TDMA_FTQ_CMD_ADD_DATA                      (1L<<28)
                   2824: #define BNX2_TDMA_FTQ_CMD_INTERVENE_CLR                         (1L<<29)
                   2825: #define BNX2_TDMA_FTQ_CMD_POP                           (1L<<30)
                   2826: #define BNX2_TDMA_FTQ_CMD_BUSY                          (1L<<31)
                   2827: 
                   2828: #define BNX2_TDMA_FTQ_CTL                              0x00005ffc
                   2829: #define BNX2_TDMA_FTQ_CTL_INTERVENE                     (1L<<0)
                   2830: #define BNX2_TDMA_FTQ_CTL_OVERFLOW                      (1L<<1)
                   2831: #define BNX2_TDMA_FTQ_CTL_FORCE_INTERVENE               (1L<<2)
                   2832: #define BNX2_TDMA_FTQ_CTL_MAX_DEPTH                     (0x3ffL<<12)
                   2833: #define BNX2_TDMA_FTQ_CTL_CUR_DEPTH                     (0x3ffL<<22)
                   2834: 
                   2835: 
                   2836: 
                   2837: /*
                   2838:  *  hc_reg definition
                   2839:  *  offset: 0x6800
                   2840:  */
                   2841: #define BNX2_HC_COMMAND                                        0x00006800
                   2842: #define BNX2_HC_COMMAND_ENABLE                          (1L<<0)
                   2843: #define BNX2_HC_COMMAND_SKIP_ABORT                      (1L<<4)
                   2844: #define BNX2_HC_COMMAND_COAL_NOW                        (1L<<16)
                   2845: #define BNX2_HC_COMMAND_COAL_NOW_WO_INT                         (1L<<17)
                   2846: #define BNX2_HC_COMMAND_STATS_NOW                       (1L<<18)
                   2847: #define BNX2_HC_COMMAND_FORCE_INT                       (0x3L<<19)
                   2848: #define BNX2_HC_COMMAND_FORCE_INT_NULL                  (0L<<19)
                   2849: #define BNX2_HC_COMMAND_FORCE_INT_HIGH                  (1L<<19)
                   2850: #define BNX2_HC_COMMAND_FORCE_INT_LOW                   (2L<<19)
                   2851: #define BNX2_HC_COMMAND_FORCE_INT_FREE                  (3L<<19)
                   2852: #define BNX2_HC_COMMAND_CLR_STAT_NOW                    (1L<<21)
                   2853: 
                   2854: #define BNX2_HC_STATUS                                 0x00006804
                   2855: #define BNX2_HC_STATUS_MASTER_ABORT                     (1L<<0)
                   2856: #define BNX2_HC_STATUS_PARITY_ERROR_STATE               (1L<<1)
                   2857: #define BNX2_HC_STATUS_PCI_CLK_CNT_STAT                         (1L<<16)
                   2858: #define BNX2_HC_STATUS_CORE_CLK_CNT_STAT                (1L<<17)
                   2859: #define BNX2_HC_STATUS_NUM_STATUS_BLOCKS_STAT           (1L<<18)
                   2860: #define BNX2_HC_STATUS_NUM_INT_GEN_STAT                         (1L<<19)
                   2861: #define BNX2_HC_STATUS_NUM_INT_MBOX_WR_STAT             (1L<<20)
                   2862: #define BNX2_HC_STATUS_CORE_CLKS_TO_HW_INTACK_STAT      (1L<<23)
                   2863: #define BNX2_HC_STATUS_CORE_CLKS_TO_SW_INTACK_STAT      (1L<<24)
                   2864: #define BNX2_HC_STATUS_CORE_CLKS_DURING_SW_INTACK_STAT  (1L<<25)
                   2865: 
                   2866: #define BNX2_HC_CONFIG                                 0x00006808
                   2867: #define BNX2_HC_CONFIG_COLLECT_STATS                    (1L<<0)
                   2868: #define BNX2_HC_CONFIG_RX_TMR_MODE                      (1L<<1)
                   2869: #define BNX2_HC_CONFIG_TX_TMR_MODE                      (1L<<2)
                   2870: #define BNX2_HC_CONFIG_COM_TMR_MODE                     (1L<<3)
                   2871: #define BNX2_HC_CONFIG_CMD_TMR_MODE                     (1L<<4)
                   2872: #define BNX2_HC_CONFIG_STATISTIC_PRIORITY               (1L<<5)
                   2873: #define BNX2_HC_CONFIG_STATUS_PRIORITY                  (1L<<6)
                   2874: #define BNX2_HC_CONFIG_STAT_MEM_ADDR                    (0xffL<<8)
                   2875: 
                   2876: #define BNX2_HC_ATTN_BITS_ENABLE                       0x0000680c
                   2877: #define BNX2_HC_STATUS_ADDR_L                          0x00006810
                   2878: #define BNX2_HC_STATUS_ADDR_H                          0x00006814
                   2879: #define BNX2_HC_STATISTICS_ADDR_L                      0x00006818
                   2880: #define BNX2_HC_STATISTICS_ADDR_H                      0x0000681c
                   2881: #define BNX2_HC_TX_QUICK_CONS_TRIP                     0x00006820
                   2882: #define BNX2_HC_TX_QUICK_CONS_TRIP_VALUE                (0xffL<<0)
                   2883: #define BNX2_HC_TX_QUICK_CONS_TRIP_INT                  (0xffL<<16)
                   2884: 
                   2885: #define BNX2_HC_COMP_PROD_TRIP                         0x00006824
                   2886: #define BNX2_HC_COMP_PROD_TRIP_VALUE                    (0xffL<<0)
                   2887: #define BNX2_HC_COMP_PROD_TRIP_INT                      (0xffL<<16)
                   2888: 
                   2889: #define BNX2_HC_RX_QUICK_CONS_TRIP                     0x00006828
                   2890: #define BNX2_HC_RX_QUICK_CONS_TRIP_VALUE                (0xffL<<0)
                   2891: #define BNX2_HC_RX_QUICK_CONS_TRIP_INT                  (0xffL<<16)
                   2892: 
                   2893: #define BNX2_HC_RX_TICKS                               0x0000682c
                   2894: #define BNX2_HC_RX_TICKS_VALUE                          (0x3ffL<<0)
                   2895: #define BNX2_HC_RX_TICKS_INT                            (0x3ffL<<16)
                   2896: 
                   2897: #define BNX2_HC_TX_TICKS                               0x00006830
                   2898: #define BNX2_HC_TX_TICKS_VALUE                          (0x3ffL<<0)
                   2899: #define BNX2_HC_TX_TICKS_INT                            (0x3ffL<<16)
                   2900: 
                   2901: #define BNX2_HC_COM_TICKS                              0x00006834
                   2902: #define BNX2_HC_COM_TICKS_VALUE                                 (0x3ffL<<0)
                   2903: #define BNX2_HC_COM_TICKS_INT                           (0x3ffL<<16)
                   2904: 
                   2905: #define BNX2_HC_CMD_TICKS                              0x00006838
                   2906: #define BNX2_HC_CMD_TICKS_VALUE                                 (0x3ffL<<0)
                   2907: #define BNX2_HC_CMD_TICKS_INT                           (0x3ffL<<16)
                   2908: 
                   2909: #define BNX2_HC_PERIODIC_TICKS                         0x0000683c
                   2910: #define BNX2_HC_PERIODIC_TICKS_HC_PERIODIC_TICKS        (0xffffL<<0)
                   2911: 
                   2912: #define BNX2_HC_STAT_COLLECT_TICKS                     0x00006840
                   2913: #define BNX2_HC_STAT_COLLECT_TICKS_HC_STAT_COLL_TICKS   (0xffL<<4)
                   2914: 
                   2915: #define BNX2_HC_STATS_TICKS                            0x00006844
                   2916: #define BNX2_HC_STATS_TICKS_HC_STAT_TICKS               (0xffffL<<8)
                   2917: 
                   2918: #define BNX2_HC_STAT_MEM_DATA                          0x0000684c
                   2919: #define BNX2_HC_STAT_GEN_SEL_0                         0x00006850
                   2920: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0                (0x7fL<<0)
                   2921: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT0      (0L<<0)
                   2922: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT1      (1L<<0)
                   2923: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT2      (2L<<0)
                   2924: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT3      (3L<<0)
                   2925: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT4      (4L<<0)
                   2926: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT5      (5L<<0)
                   2927: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT6      (6L<<0)
                   2928: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT7      (7L<<0)
                   2929: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT8      (8L<<0)
                   2930: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT9      (9L<<0)
                   2931: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT10     (10L<<0)
                   2932: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT11     (11L<<0)
                   2933: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT0      (12L<<0)
                   2934: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT1      (13L<<0)
                   2935: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT2      (14L<<0)
                   2936: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT3      (15L<<0)
                   2937: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT4      (16L<<0)
                   2938: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT5      (17L<<0)
                   2939: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT6      (18L<<0)
                   2940: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT7      (19L<<0)
                   2941: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT0      (20L<<0)
                   2942: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT1      (21L<<0)
                   2943: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT2      (22L<<0)
                   2944: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT3      (23L<<0)
                   2945: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT4      (24L<<0)
                   2946: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT5      (25L<<0)
                   2947: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT6      (26L<<0)
                   2948: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT7      (27L<<0)
                   2949: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT8      (28L<<0)
                   2950: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT9      (29L<<0)
                   2951: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT10     (30L<<0)
                   2952: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT11     (31L<<0)
                   2953: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT0     (32L<<0)
                   2954: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT1     (33L<<0)
                   2955: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT2     (34L<<0)
                   2956: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT3     (35L<<0)
                   2957: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT0       (36L<<0)
                   2958: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT1       (37L<<0)
                   2959: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT2       (38L<<0)
                   2960: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT3       (39L<<0)
                   2961: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT4       (40L<<0)
                   2962: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT5       (41L<<0)
                   2963: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT6       (42L<<0)
                   2964: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT7       (43L<<0)
                   2965: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT0      (44L<<0)
                   2966: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT1      (45L<<0)
                   2967: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT2      (46L<<0)
                   2968: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT3      (47L<<0)
                   2969: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT4      (48L<<0)
                   2970: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT5      (49L<<0)
                   2971: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT6      (50L<<0)
                   2972: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT7      (51L<<0)
                   2973: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_PCI_CLK_CNT    (52L<<0)
                   2974: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CORE_CLK_CNT   (53L<<0)
                   2975: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS   (54L<<0)
                   2976: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN         (55L<<0)
                   2977: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR     (56L<<0)
                   2978: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK      (59L<<0)
                   2979: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK      (60L<<0)
                   2980: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK  (61L<<0)
                   2981: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCH_CMD_CNT   (62L<<0)
                   2982: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCH_SLOT_CNT  (63L<<0)
                   2983: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSCH_CMD_CNT   (64L<<0)
                   2984: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSCH_SLOT_CNT  (65L<<0)
                   2985: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RLUPQ_VALID_CNT        (66L<<0)
                   2986: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPQ_VALID_CNT         (67L<<0)
                   2987: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPCQ_VALID_CNT        (68L<<0)
                   2988: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PPQ_VALID_CNT       (69L<<0)
                   2989: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PMQ_VALID_CNT       (70L<<0)
                   2990: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PTQ_VALID_CNT       (71L<<0)
                   2991: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMAQ_VALID_CNT        (72L<<0)
                   2992: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCHQ_VALID_CNT        (73L<<0)
                   2993: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDRQ_VALID_CNT        (74L<<0)
                   2994: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXPQ_VALID_CNT         (75L<<0)
                   2995: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMAQ_VALID_CNT        (76L<<0)
                   2996: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPATQ_VALID_CNT        (77L<<0)
                   2997: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TASQ_VALID_CNT         (78L<<0)
                   2998: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSQ_VALID_CNT  (79L<<0)
                   2999: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CPQ_VALID_CNT  (80L<<0)
                   3000: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMXQ_VALID_CNT        (81L<<0)
                   3001: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMTQ_VALID_CNT        (82L<<0)
                   3002: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMQ_VALID_CNT         (83L<<0)
                   3003: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MGMQ_VALID_CNT         (84L<<0)
                   3004: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_READ_TRANSFERS_CNT        (85L<<0)
                   3005: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_READ_DELAY_PCI_CLKS_CNT   (86L<<0)
                   3006: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_TRANSFERS_CNT    (87L<<0)
                   3007: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_DELAY_PCI_CLKS_CNT       (88L<<0)
                   3008: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_RETRY_AFTER_DATA_CNT     (89L<<0)
                   3009: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_WRITE_TRANSFERS_CNT       (90L<<0)
                   3010: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_WRITE_DELAY_PCI_CLKS_CNT  (91L<<0)
                   3011: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_TRANSFERS_CNT   (92L<<0)
                   3012: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_DELAY_PCI_CLKS_CNT      (93L<<0)
                   3013: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_RETRY_AFTER_DATA_CNT    (94L<<0)
                   3014: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_WR_CNT64   (95L<<0)
                   3015: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_RD_CNT64   (96L<<0)
                   3016: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_ACC_STALL_CLKS     (97L<<0)
                   3017: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_LOCK_STALL_CLKS    (98L<<0)
                   3018: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_CTX_ACCESS_STAT    (99L<<0)
                   3019: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_CTX_ACCESS64_STAT  (100L<<0)
                   3020: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_PCI_STALL_STAT     (101L<<0)
                   3021: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDR_FTQ_ENTRY_CNT     (102L<<0)
                   3022: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDR_BURST_CNT         (103L<<0)
                   3023: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMA_FTQ_ENTRY_CNT     (104L<<0)
                   3024: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMA_BURST_CNT         (105L<<0)
                   3025: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMA_FTQ_ENTRY_CNT     (106L<<0)
                   3026: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMA_BURST_CNT         (107L<<0)
                   3027: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RLUP_MATCH_CNT         (108L<<0)
                   3028: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_POLL_PASS_CNT      (109L<<0)
                   3029: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR1_CNT   (110L<<0)
                   3030: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR2_CNT   (111L<<0)
                   3031: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR3_CNT   (112L<<0)
                   3032: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR4_CNT   (113L<<0)
                   3033: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR5_CNT   (114L<<0)
                   3034: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT0     (115L<<0)
                   3035: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT1     (116L<<0)
                   3036: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT2     (117L<<0)
                   3037: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT3     (118L<<0)
                   3038: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT4     (119L<<0)
                   3039: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT5     (120L<<0)
                   3040: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_PROC1_MISS        (121L<<0)
                   3041: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_PROC2_MISS        (122L<<0)
                   3042: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_BURST_CNT         (127L<<0)
                   3043: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_1                (0x7fL<<8)
                   3044: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_2                (0x7fL<<16)
                   3045: #define BNX2_HC_STAT_GEN_SEL_0_GEN_SEL_3                (0x7fL<<24)
                   3046: 
                   3047: #define BNX2_HC_STAT_GEN_SEL_1                         0x00006854
                   3048: #define BNX2_HC_STAT_GEN_SEL_1_GEN_SEL_4                (0x7fL<<0)
                   3049: #define BNX2_HC_STAT_GEN_SEL_1_GEN_SEL_5                (0x7fL<<8)
                   3050: #define BNX2_HC_STAT_GEN_SEL_1_GEN_SEL_6                (0x7fL<<16)
                   3051: #define BNX2_HC_STAT_GEN_SEL_1_GEN_SEL_7                (0x7fL<<24)
                   3052: 
                   3053: #define BNX2_HC_STAT_GEN_SEL_2                         0x00006858
                   3054: #define BNX2_HC_STAT_GEN_SEL_2_GEN_SEL_8                (0x7fL<<0)
                   3055: #define BNX2_HC_STAT_GEN_SEL_2_GEN_SEL_9                (0x7fL<<8)
                   3056: #define BNX2_HC_STAT_GEN_SEL_2_GEN_SEL_10               (0x7fL<<16)
                   3057: #define BNX2_HC_STAT_GEN_SEL_2_GEN_SEL_11               (0x7fL<<24)
                   3058: 
                   3059: #define BNX2_HC_STAT_GEN_SEL_3                         0x0000685c
                   3060: #define BNX2_HC_STAT_GEN_SEL_3_GEN_SEL_12               (0x7fL<<0)
                   3061: #define BNX2_HC_STAT_GEN_SEL_3_GEN_SEL_13               (0x7fL<<8)
                   3062: #define BNX2_HC_STAT_GEN_SEL_3_GEN_SEL_14               (0x7fL<<16)
                   3063: #define BNX2_HC_STAT_GEN_SEL_3_GEN_SEL_15               (0x7fL<<24)
                   3064: 
                   3065: #define BNX2_HC_STAT_GEN_STAT0                         0x00006888
                   3066: #define BNX2_HC_STAT_GEN_STAT1                         0x0000688c
                   3067: #define BNX2_HC_STAT_GEN_STAT2                         0x00006890
                   3068: #define BNX2_HC_STAT_GEN_STAT3                         0x00006894
                   3069: #define BNX2_HC_STAT_GEN_STAT4                         0x00006898
                   3070: #define BNX2_HC_STAT_GEN_STAT5                         0x0000689c
                   3071: #define BNX2_HC_STAT_GEN_STAT6                         0x000068a0
                   3072: #define BNX2_HC_STAT_GEN_STAT7                         0x000068a4
                   3073: #define BNX2_HC_STAT_GEN_STAT8                         0x000068a8
                   3074: #define BNX2_HC_STAT_GEN_STAT9                         0x000068ac
                   3075: #define BNX2_HC_STAT_GEN_STAT10                                0x000068b0
                   3076: #define BNX2_HC_STAT_GEN_STAT11                                0x000068b4
                   3077: #define BNX2_HC_STAT_GEN_STAT12                                0x000068b8
                   3078: #define BNX2_HC_STAT_GEN_STAT13                                0x000068bc
                   3079: #define BNX2_HC_STAT_GEN_STAT14                                0x000068c0
                   3080: #define BNX2_HC_STAT_GEN_STAT15                                0x000068c4
                   3081: #define BNX2_HC_STAT_GEN_STAT_AC0                      0x000068c8
                   3082: #define BNX2_HC_STAT_GEN_STAT_AC1                      0x000068cc
                   3083: #define BNX2_HC_STAT_GEN_STAT_AC2                      0x000068d0
                   3084: #define BNX2_HC_STAT_GEN_STAT_AC3                      0x000068d4
                   3085: #define BNX2_HC_STAT_GEN_STAT_AC4                      0x000068d8
                   3086: #define BNX2_HC_STAT_GEN_STAT_AC5                      0x000068dc
                   3087: #define BNX2_HC_STAT_GEN_STAT_AC6                      0x000068e0
                   3088: #define BNX2_HC_STAT_GEN_STAT_AC7                      0x000068e4
                   3089: #define BNX2_HC_STAT_GEN_STAT_AC8                      0x000068e8
                   3090: #define BNX2_HC_STAT_GEN_STAT_AC9                      0x000068ec
                   3091: #define BNX2_HC_STAT_GEN_STAT_AC10                     0x000068f0
                   3092: #define BNX2_HC_STAT_GEN_STAT_AC11                     0x000068f4
                   3093: #define BNX2_HC_STAT_GEN_STAT_AC12                     0x000068f8
                   3094: #define BNX2_HC_STAT_GEN_STAT_AC13                     0x000068fc
                   3095: #define BNX2_HC_STAT_GEN_STAT_AC14                     0x00006900
                   3096: #define BNX2_HC_STAT_GEN_STAT_AC15                     0x00006904
                   3097: #define BNX2_HC_VIS                                    0x00006908
                   3098: #define BNX2_HC_VIS_STAT_BUILD_STATE                    (0xfL<<0)
                   3099: #define BNX2_HC_VIS_STAT_BUILD_STATE_IDLE               (0L<<0)
                   3100: #define BNX2_HC_VIS_STAT_BUILD_STATE_START              (1L<<0)
                   3101: #define BNX2_HC_VIS_STAT_BUILD_STATE_REQUEST            (2L<<0)
                   3102: #define BNX2_HC_VIS_STAT_BUILD_STATE_UPDATE64           (3L<<0)
                   3103: #define BNX2_HC_VIS_STAT_BUILD_STATE_UPDATE32           (4L<<0)
                   3104: #define BNX2_HC_VIS_STAT_BUILD_STATE_UPDATE_DONE        (5L<<0)
                   3105: #define BNX2_HC_VIS_STAT_BUILD_STATE_DMA                (6L<<0)
                   3106: #define BNX2_HC_VIS_STAT_BUILD_STATE_MSI_CONTROL        (7L<<0)
                   3107: #define BNX2_HC_VIS_STAT_BUILD_STATE_MSI_LOW            (8L<<0)
                   3108: #define BNX2_HC_VIS_STAT_BUILD_STATE_MSI_HIGH           (9L<<0)
                   3109: #define BNX2_HC_VIS_STAT_BUILD_STATE_MSI_DATA           (10L<<0)
                   3110: #define BNX2_HC_VIS_DMA_STAT_STATE                      (0xfL<<8)
                   3111: #define BNX2_HC_VIS_DMA_STAT_STATE_IDLE                         (0L<<8)
                   3112: #define BNX2_HC_VIS_DMA_STAT_STATE_STATUS_PARAM                 (1L<<8)
                   3113: #define BNX2_HC_VIS_DMA_STAT_STATE_STATUS_DMA           (2L<<8)
                   3114: #define BNX2_HC_VIS_DMA_STAT_STATE_WRITE_COMP           (3L<<8)
                   3115: #define BNX2_HC_VIS_DMA_STAT_STATE_COMP                         (4L<<8)
                   3116: #define BNX2_HC_VIS_DMA_STAT_STATE_STATISTIC_PARAM      (5L<<8)
                   3117: #define BNX2_HC_VIS_DMA_STAT_STATE_STATISTIC_DMA        (6L<<8)
                   3118: #define BNX2_HC_VIS_DMA_STAT_STATE_WRITE_COMP_1                 (7L<<8)
                   3119: #define BNX2_HC_VIS_DMA_STAT_STATE_WRITE_COMP_2                 (8L<<8)
                   3120: #define BNX2_HC_VIS_DMA_STAT_STATE_WAIT                         (9L<<8)
                   3121: #define BNX2_HC_VIS_DMA_STAT_STATE_ABORT                (15L<<8)
                   3122: #define BNX2_HC_VIS_DMA_MSI_STATE                       (0x7L<<12)
                   3123: #define BNX2_HC_VIS_STATISTIC_DMA_EN_STATE              (0x3L<<15)
                   3124: #define BNX2_HC_VIS_STATISTIC_DMA_EN_STATE_IDLE                 (0L<<15)
                   3125: #define BNX2_HC_VIS_STATISTIC_DMA_EN_STATE_COUNT        (1L<<15)
                   3126: #define BNX2_HC_VIS_STATISTIC_DMA_EN_STATE_START        (2L<<15)
                   3127: 
                   3128: #define BNX2_HC_VIS_1                                  0x0000690c
                   3129: #define BNX2_HC_VIS_1_HW_INTACK_STATE                   (1L<<4)
                   3130: #define BNX2_HC_VIS_1_HW_INTACK_STATE_IDLE              (0L<<4)
                   3131: #define BNX2_HC_VIS_1_HW_INTACK_STATE_COUNT             (1L<<4)
                   3132: #define BNX2_HC_VIS_1_SW_INTACK_STATE                   (1L<<5)
                   3133: #define BNX2_HC_VIS_1_SW_INTACK_STATE_IDLE              (0L<<5)
                   3134: #define BNX2_HC_VIS_1_SW_INTACK_STATE_COUNT             (1L<<5)
                   3135: #define BNX2_HC_VIS_1_DURING_SW_INTACK_STATE            (1L<<6)
                   3136: #define BNX2_HC_VIS_1_DURING_SW_INTACK_STATE_IDLE       (0L<<6)
                   3137: #define BNX2_HC_VIS_1_DURING_SW_INTACK_STATE_COUNT      (1L<<6)
                   3138: #define BNX2_HC_VIS_1_MAILBOX_COUNT_STATE               (1L<<7)
                   3139: #define BNX2_HC_VIS_1_MAILBOX_COUNT_STATE_IDLE          (0L<<7)
                   3140: #define BNX2_HC_VIS_1_MAILBOX_COUNT_STATE_COUNT                 (1L<<7)
                   3141: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE                  (0xfL<<17)
                   3142: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_IDLE             (0L<<17)
                   3143: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_DMA              (1L<<17)
                   3144: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_UPDATE           (2L<<17)
                   3145: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_ASSIGN           (3L<<17)
                   3146: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_WAIT             (4L<<17)
                   3147: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_REG_UPDATE       (5L<<17)
                   3148: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_REG_ASSIGN       (6L<<17)
                   3149: #define BNX2_HC_VIS_1_RAM_RD_ARB_STATE_REG_WAIT                 (7L<<17)
                   3150: #define BNX2_HC_VIS_1_RAM_WR_ARB_STATE                  (0x3L<<21)
                   3151: #define BNX2_HC_VIS_1_RAM_WR_ARB_STATE_NORMAL           (0L<<21)
                   3152: #define BNX2_HC_VIS_1_RAM_WR_ARB_STATE_CLEAR            (1L<<21)
                   3153: #define BNX2_HC_VIS_1_INT_GEN_STATE                     (1L<<23)
                   3154: #define BNX2_HC_VIS_1_INT_GEN_STATE_DLE                         (0L<<23)
                   3155: #define BNX2_HC_VIS_1_INT_GEN_STATE_NTERRUPT            (1L<<23)
                   3156: #define BNX2_HC_VIS_1_STAT_CHAN_ID                      (0x7L<<24)
                   3157: #define BNX2_HC_VIS_1_INT_B                             (1L<<27)
                   3158: 
                   3159: #define BNX2_HC_DEBUG_VECT_PEEK                                0x00006910
                   3160: #define BNX2_HC_DEBUG_VECT_PEEK_1_VALUE                         (0x7ffL<<0)
                   3161: #define BNX2_HC_DEBUG_VECT_PEEK_1_PEEK_EN               (1L<<11)
                   3162: #define BNX2_HC_DEBUG_VECT_PEEK_1_SEL                   (0xfL<<12)
                   3163: #define BNX2_HC_DEBUG_VECT_PEEK_2_VALUE                         (0x7ffL<<16)
                   3164: #define BNX2_HC_DEBUG_VECT_PEEK_2_PEEK_EN               (1L<<27)
                   3165: #define BNX2_HC_DEBUG_VECT_PEEK_2_SEL                   (0xfL<<28)
                   3166: 
                   3167: 
                   3168: 
                   3169: /*
                   3170:  *  txp_reg definition
                   3171:  *  offset: 0x40000
                   3172:  */
                   3173: #define BNX2_TXP_CPU_MODE                              0x00045000
                   3174: #define BNX2_TXP_CPU_MODE_LOCAL_RST                     (1L<<0)
                   3175: #define BNX2_TXP_CPU_MODE_STEP_ENA                      (1L<<1)
                   3176: #define BNX2_TXP_CPU_MODE_PAGE_0_DATA_ENA               (1L<<2)
                   3177: #define BNX2_TXP_CPU_MODE_PAGE_0_INST_ENA               (1L<<3)
                   3178: #define BNX2_TXP_CPU_MODE_MSG_BIT1                      (1L<<6)
                   3179: #define BNX2_TXP_CPU_MODE_INTERRUPT_ENA                         (1L<<7)
                   3180: #define BNX2_TXP_CPU_MODE_SOFT_HALT                     (1L<<10)
                   3181: #define BNX2_TXP_CPU_MODE_BAD_DATA_HALT_ENA             (1L<<11)
                   3182: #define BNX2_TXP_CPU_MODE_BAD_INST_HALT_ENA             (1L<<12)
                   3183: #define BNX2_TXP_CPU_MODE_FIO_ABORT_HALT_ENA            (1L<<13)
                   3184: #define BNX2_TXP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA       (1L<<15)
                   3185: 
                   3186: #define BNX2_TXP_CPU_STATE                             0x00045004
                   3187: #define BNX2_TXP_CPU_STATE_BREAKPOINT                   (1L<<0)
                   3188: #define BNX2_TXP_CPU_STATE_BAD_INST_HALTED              (1L<<2)
                   3189: #define BNX2_TXP_CPU_STATE_PAGE_0_DATA_HALTED           (1L<<3)
                   3190: #define BNX2_TXP_CPU_STATE_PAGE_0_INST_HALTED           (1L<<4)
                   3191: #define BNX2_TXP_CPU_STATE_BAD_DATA_ADDR_HALTED                 (1L<<5)
                   3192: #define BNX2_TXP_CPU_STATE_BAD_pc_HALTED                (1L<<6)
                   3193: #define BNX2_TXP_CPU_STATE_ALIGN_HALTED                         (1L<<7)
                   3194: #define BNX2_TXP_CPU_STATE_FIO_ABORT_HALTED             (1L<<8)
                   3195: #define BNX2_TXP_CPU_STATE_SOFT_HALTED                  (1L<<10)
                   3196: #define BNX2_TXP_CPU_STATE_SPAD_UNDERFLOW               (1L<<11)
                   3197: #define BNX2_TXP_CPU_STATE_INTERRRUPT                   (1L<<12)
                   3198: #define BNX2_TXP_CPU_STATE_DATA_ACCESS_STALL            (1L<<14)
                   3199: #define BNX2_TXP_CPU_STATE_INST_FETCH_STALL             (1L<<15)
                   3200: #define BNX2_TXP_CPU_STATE_BLOCKED_READ                         (1L<<31)
                   3201: 
                   3202: #define BNX2_TXP_CPU_EVENT_MASK                                0x00045008
                   3203: #define BNX2_TXP_CPU_EVENT_MASK_BREAKPOINT_MASK                 (1L<<0)
                   3204: #define BNX2_TXP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK    (1L<<2)
                   3205: #define BNX2_TXP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK         (1L<<3)
                   3206: #define BNX2_TXP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK         (1L<<4)
                   3207: #define BNX2_TXP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK       (1L<<5)
                   3208: #define BNX2_TXP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK      (1L<<6)
                   3209: #define BNX2_TXP_CPU_EVENT_MASK_ALIGN_HALTED_MASK       (1L<<7)
                   3210: #define BNX2_TXP_CPU_EVENT_MASK_FIO_ABORT_MASK          (1L<<8)
                   3211: #define BNX2_TXP_CPU_EVENT_MASK_SOFT_HALTED_MASK        (1L<<10)
                   3212: #define BNX2_TXP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK     (1L<<11)
                   3213: #define BNX2_TXP_CPU_EVENT_MASK_INTERRUPT_MASK          (1L<<12)
                   3214: 
                   3215: #define BNX2_TXP_CPU_PROGRAM_COUNTER                   0x0004501c
                   3216: #define BNX2_TXP_CPU_INSTRUCTION                       0x00045020
                   3217: #define BNX2_TXP_CPU_DATA_ACCESS                       0x00045024
                   3218: #define BNX2_TXP_CPU_INTERRUPT_ENABLE                  0x00045028
                   3219: #define BNX2_TXP_CPU_INTERRUPT_VECTOR                  0x0004502c
                   3220: #define BNX2_TXP_CPU_INTERRUPT_SAVED_PC                        0x00045030
                   3221: #define BNX2_TXP_CPU_HW_BREAKPOINT                     0x00045034
                   3222: #define BNX2_TXP_CPU_HW_BREAKPOINT_DISABLE              (1L<<0)
                   3223: #define BNX2_TXP_CPU_HW_BREAKPOINT_ADDRESS              (0x3fffffffL<<2)
                   3224: 
                   3225: #define BNX2_TXP_CPU_DEBUG_VECT_PEEK                   0x00045038
                   3226: #define BNX2_TXP_CPU_DEBUG_VECT_PEEK_1_VALUE            (0x7ffL<<0)
                   3227: #define BNX2_TXP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN          (1L<<11)
                   3228: #define BNX2_TXP_CPU_DEBUG_VECT_PEEK_1_SEL              (0xfL<<12)
                   3229: #define BNX2_TXP_CPU_DEBUG_VECT_PEEK_2_VALUE            (0x7ffL<<16)
                   3230: #define BNX2_TXP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN          (1L<<27)
                   3231: #define BNX2_TXP_CPU_DEBUG_VECT_PEEK_2_SEL              (0xfL<<28)
                   3232: 
                   3233: #define BNX2_TXP_CPU_LAST_BRANCH_ADDR                  0x00045048
                   3234: #define BNX2_TXP_CPU_LAST_BRANCH_ADDR_TYPE              (1L<<1)
                   3235: #define BNX2_TXP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP                 (0L<<1)
                   3236: #define BNX2_TXP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH       (1L<<1)
                   3237: #define BNX2_TXP_CPU_LAST_BRANCH_ADDR_LBA               (0x3fffffffL<<2)
                   3238: 
                   3239: #define BNX2_TXP_CPU_REG_FILE                          0x00045200
                   3240: #define BNX2_TXP_FTQ_DATA                              0x000453c0
                   3241: #define BNX2_TXP_FTQ_CMD                               0x000453f8
                   3242: #define BNX2_TXP_FTQ_CMD_OFFSET                                 (0x3ffL<<0)
                   3243: #define BNX2_TXP_FTQ_CMD_WR_TOP                                 (1L<<10)
                   3244: #define BNX2_TXP_FTQ_CMD_WR_TOP_0                       (0L<<10)
                   3245: #define BNX2_TXP_FTQ_CMD_WR_TOP_1                       (1L<<10)
                   3246: #define BNX2_TXP_FTQ_CMD_SFT_RESET                      (1L<<25)
                   3247: #define BNX2_TXP_FTQ_CMD_RD_DATA                        (1L<<26)
                   3248: #define BNX2_TXP_FTQ_CMD_ADD_INTERVEN                   (1L<<27)
                   3249: #define BNX2_TXP_FTQ_CMD_ADD_DATA                       (1L<<28)
                   3250: #define BNX2_TXP_FTQ_CMD_INTERVENE_CLR                  (1L<<29)
                   3251: #define BNX2_TXP_FTQ_CMD_POP                            (1L<<30)
                   3252: #define BNX2_TXP_FTQ_CMD_BUSY                           (1L<<31)
                   3253: 
                   3254: #define BNX2_TXP_FTQ_CTL                               0x000453fc
                   3255: #define BNX2_TXP_FTQ_CTL_INTERVENE                      (1L<<0)
                   3256: #define BNX2_TXP_FTQ_CTL_OVERFLOW                       (1L<<1)
                   3257: #define BNX2_TXP_FTQ_CTL_FORCE_INTERVENE                (1L<<2)
                   3258: #define BNX2_TXP_FTQ_CTL_MAX_DEPTH                      (0x3ffL<<12)
                   3259: #define BNX2_TXP_FTQ_CTL_CUR_DEPTH                      (0x3ffL<<22)
                   3260: 
                   3261: #define BNX2_TXP_SCRATCH                               0x00060000
                   3262: 
                   3263: 
                   3264: /*
                   3265:  *  tpat_reg definition
                   3266:  *  offset: 0x80000
                   3267:  */
                   3268: #define BNX2_TPAT_CPU_MODE                             0x00085000
                   3269: #define BNX2_TPAT_CPU_MODE_LOCAL_RST                    (1L<<0)
                   3270: #define BNX2_TPAT_CPU_MODE_STEP_ENA                     (1L<<1)
                   3271: #define BNX2_TPAT_CPU_MODE_PAGE_0_DATA_ENA              (1L<<2)
                   3272: #define BNX2_TPAT_CPU_MODE_PAGE_0_INST_ENA              (1L<<3)
                   3273: #define BNX2_TPAT_CPU_MODE_MSG_BIT1                     (1L<<6)
                   3274: #define BNX2_TPAT_CPU_MODE_INTERRUPT_ENA                (1L<<7)
                   3275: #define BNX2_TPAT_CPU_MODE_SOFT_HALT                    (1L<<10)
                   3276: #define BNX2_TPAT_CPU_MODE_BAD_DATA_HALT_ENA            (1L<<11)
                   3277: #define BNX2_TPAT_CPU_MODE_BAD_INST_HALT_ENA            (1L<<12)
                   3278: #define BNX2_TPAT_CPU_MODE_FIO_ABORT_HALT_ENA           (1L<<13)
                   3279: #define BNX2_TPAT_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA      (1L<<15)
                   3280: 
                   3281: #define BNX2_TPAT_CPU_STATE                            0x00085004
                   3282: #define BNX2_TPAT_CPU_STATE_BREAKPOINT                  (1L<<0)
                   3283: #define BNX2_TPAT_CPU_STATE_BAD_INST_HALTED             (1L<<2)
                   3284: #define BNX2_TPAT_CPU_STATE_PAGE_0_DATA_HALTED          (1L<<3)
                   3285: #define BNX2_TPAT_CPU_STATE_PAGE_0_INST_HALTED          (1L<<4)
                   3286: #define BNX2_TPAT_CPU_STATE_BAD_DATA_ADDR_HALTED        (1L<<5)
                   3287: #define BNX2_TPAT_CPU_STATE_BAD_pc_HALTED               (1L<<6)
                   3288: #define BNX2_TPAT_CPU_STATE_ALIGN_HALTED                (1L<<7)
                   3289: #define BNX2_TPAT_CPU_STATE_FIO_ABORT_HALTED            (1L<<8)
                   3290: #define BNX2_TPAT_CPU_STATE_SOFT_HALTED                         (1L<<10)
                   3291: #define BNX2_TPAT_CPU_STATE_SPAD_UNDERFLOW              (1L<<11)
                   3292: #define BNX2_TPAT_CPU_STATE_INTERRRUPT                  (1L<<12)
                   3293: #define BNX2_TPAT_CPU_STATE_DATA_ACCESS_STALL           (1L<<14)
                   3294: #define BNX2_TPAT_CPU_STATE_INST_FETCH_STALL            (1L<<15)
                   3295: #define BNX2_TPAT_CPU_STATE_BLOCKED_READ                (1L<<31)
                   3296: 
                   3297: #define BNX2_TPAT_CPU_EVENT_MASK                       0x00085008
                   3298: #define BNX2_TPAT_CPU_EVENT_MASK_BREAKPOINT_MASK        (1L<<0)
                   3299: #define BNX2_TPAT_CPU_EVENT_MASK_BAD_INST_HALTED_MASK   (1L<<2)
                   3300: #define BNX2_TPAT_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK        (1L<<3)
                   3301: #define BNX2_TPAT_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK        (1L<<4)
                   3302: #define BNX2_TPAT_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK      (1L<<5)
                   3303: #define BNX2_TPAT_CPU_EVENT_MASK_BAD_PC_HALTED_MASK     (1L<<6)
                   3304: #define BNX2_TPAT_CPU_EVENT_MASK_ALIGN_HALTED_MASK      (1L<<7)
                   3305: #define BNX2_TPAT_CPU_EVENT_MASK_FIO_ABORT_MASK                 (1L<<8)
                   3306: #define BNX2_TPAT_CPU_EVENT_MASK_SOFT_HALTED_MASK       (1L<<10)
                   3307: #define BNX2_TPAT_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK    (1L<<11)
                   3308: #define BNX2_TPAT_CPU_EVENT_MASK_INTERRUPT_MASK                 (1L<<12)
                   3309: 
                   3310: #define BNX2_TPAT_CPU_PROGRAM_COUNTER                  0x0008501c
                   3311: #define BNX2_TPAT_CPU_INSTRUCTION                      0x00085020
                   3312: #define BNX2_TPAT_CPU_DATA_ACCESS                      0x00085024
                   3313: #define BNX2_TPAT_CPU_INTERRUPT_ENABLE                 0x00085028
                   3314: #define BNX2_TPAT_CPU_INTERRUPT_VECTOR                 0x0008502c
                   3315: #define BNX2_TPAT_CPU_INTERRUPT_SAVED_PC               0x00085030
                   3316: #define BNX2_TPAT_CPU_HW_BREAKPOINT                    0x00085034
                   3317: #define BNX2_TPAT_CPU_HW_BREAKPOINT_DISABLE             (1L<<0)
                   3318: #define BNX2_TPAT_CPU_HW_BREAKPOINT_ADDRESS             (0x3fffffffL<<2)
                   3319: 
                   3320: #define BNX2_TPAT_CPU_DEBUG_VECT_PEEK                  0x00085038
                   3321: #define BNX2_TPAT_CPU_DEBUG_VECT_PEEK_1_VALUE           (0x7ffL<<0)
                   3322: #define BNX2_TPAT_CPU_DEBUG_VECT_PEEK_1_PEEK_EN                 (1L<<11)
                   3323: #define BNX2_TPAT_CPU_DEBUG_VECT_PEEK_1_SEL             (0xfL<<12)
                   3324: #define BNX2_TPAT_CPU_DEBUG_VECT_PEEK_2_VALUE           (0x7ffL<<16)
                   3325: #define BNX2_TPAT_CPU_DEBUG_VECT_PEEK_2_PEEK_EN                 (1L<<27)
                   3326: #define BNX2_TPAT_CPU_DEBUG_VECT_PEEK_2_SEL             (0xfL<<28)
                   3327: 
                   3328: #define BNX2_TPAT_CPU_LAST_BRANCH_ADDR                 0x00085048
                   3329: #define BNX2_TPAT_CPU_LAST_BRANCH_ADDR_TYPE             (1L<<1)
                   3330: #define BNX2_TPAT_CPU_LAST_BRANCH_ADDR_TYPE_JUMP        (0L<<1)
                   3331: #define BNX2_TPAT_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH      (1L<<1)
                   3332: #define BNX2_TPAT_CPU_LAST_BRANCH_ADDR_LBA              (0x3fffffffL<<2)
                   3333: 
                   3334: #define BNX2_TPAT_CPU_REG_FILE                         0x00085200
                   3335: #define BNX2_TPAT_FTQ_DATA                             0x000853c0
                   3336: #define BNX2_TPAT_FTQ_CMD                              0x000853f8
                   3337: #define BNX2_TPAT_FTQ_CMD_OFFSET                        (0x3ffL<<0)
                   3338: #define BNX2_TPAT_FTQ_CMD_WR_TOP                        (1L<<10)
                   3339: #define BNX2_TPAT_FTQ_CMD_WR_TOP_0                      (0L<<10)
                   3340: #define BNX2_TPAT_FTQ_CMD_WR_TOP_1                      (1L<<10)
                   3341: #define BNX2_TPAT_FTQ_CMD_SFT_RESET                     (1L<<25)
                   3342: #define BNX2_TPAT_FTQ_CMD_RD_DATA                       (1L<<26)
                   3343: #define BNX2_TPAT_FTQ_CMD_ADD_INTERVEN                  (1L<<27)
                   3344: #define BNX2_TPAT_FTQ_CMD_ADD_DATA                      (1L<<28)
                   3345: #define BNX2_TPAT_FTQ_CMD_INTERVENE_CLR                         (1L<<29)
                   3346: #define BNX2_TPAT_FTQ_CMD_POP                           (1L<<30)
                   3347: #define BNX2_TPAT_FTQ_CMD_BUSY                          (1L<<31)
                   3348: 
                   3349: #define BNX2_TPAT_FTQ_CTL                              0x000853fc
                   3350: #define BNX2_TPAT_FTQ_CTL_INTERVENE                     (1L<<0)
                   3351: #define BNX2_TPAT_FTQ_CTL_OVERFLOW                      (1L<<1)
                   3352: #define BNX2_TPAT_FTQ_CTL_FORCE_INTERVENE               (1L<<2)
                   3353: #define BNX2_TPAT_FTQ_CTL_MAX_DEPTH                     (0x3ffL<<12)
                   3354: #define BNX2_TPAT_FTQ_CTL_CUR_DEPTH                     (0x3ffL<<22)
                   3355: 
                   3356: #define BNX2_TPAT_SCRATCH                              0x000a0000
                   3357: 
                   3358: 
                   3359: /*
                   3360:  *  rxp_reg definition
                   3361:  *  offset: 0xc0000
                   3362:  */
                   3363: #define BNX2_RXP_CPU_MODE                              0x000c5000
                   3364: #define BNX2_RXP_CPU_MODE_LOCAL_RST                     (1L<<0)
                   3365: #define BNX2_RXP_CPU_MODE_STEP_ENA                      (1L<<1)
                   3366: #define BNX2_RXP_CPU_MODE_PAGE_0_DATA_ENA               (1L<<2)
                   3367: #define BNX2_RXP_CPU_MODE_PAGE_0_INST_ENA               (1L<<3)
                   3368: #define BNX2_RXP_CPU_MODE_MSG_BIT1                      (1L<<6)
                   3369: #define BNX2_RXP_CPU_MODE_INTERRUPT_ENA                         (1L<<7)
                   3370: #define BNX2_RXP_CPU_MODE_SOFT_HALT                     (1L<<10)
                   3371: #define BNX2_RXP_CPU_MODE_BAD_DATA_HALT_ENA             (1L<<11)
                   3372: #define BNX2_RXP_CPU_MODE_BAD_INST_HALT_ENA             (1L<<12)
                   3373: #define BNX2_RXP_CPU_MODE_FIO_ABORT_HALT_ENA            (1L<<13)
                   3374: #define BNX2_RXP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA       (1L<<15)
                   3375: 
                   3376: #define BNX2_RXP_CPU_STATE                             0x000c5004
                   3377: #define BNX2_RXP_CPU_STATE_BREAKPOINT                   (1L<<0)
                   3378: #define BNX2_RXP_CPU_STATE_BAD_INST_HALTED              (1L<<2)
                   3379: #define BNX2_RXP_CPU_STATE_PAGE_0_DATA_HALTED           (1L<<3)
                   3380: #define BNX2_RXP_CPU_STATE_PAGE_0_INST_HALTED           (1L<<4)
                   3381: #define BNX2_RXP_CPU_STATE_BAD_DATA_ADDR_HALTED                 (1L<<5)
                   3382: #define BNX2_RXP_CPU_STATE_BAD_pc_HALTED                (1L<<6)
                   3383: #define BNX2_RXP_CPU_STATE_ALIGN_HALTED                         (1L<<7)
                   3384: #define BNX2_RXP_CPU_STATE_FIO_ABORT_HALTED             (1L<<8)
                   3385: #define BNX2_RXP_CPU_STATE_SOFT_HALTED                  (1L<<10)
                   3386: #define BNX2_RXP_CPU_STATE_SPAD_UNDERFLOW               (1L<<11)
                   3387: #define BNX2_RXP_CPU_STATE_INTERRRUPT                   (1L<<12)
                   3388: #define BNX2_RXP_CPU_STATE_DATA_ACCESS_STALL            (1L<<14)
                   3389: #define BNX2_RXP_CPU_STATE_INST_FETCH_STALL             (1L<<15)
                   3390: #define BNX2_RXP_CPU_STATE_BLOCKED_READ                         (1L<<31)
                   3391: 
                   3392: #define BNX2_RXP_CPU_EVENT_MASK                                0x000c5008
                   3393: #define BNX2_RXP_CPU_EVENT_MASK_BREAKPOINT_MASK                 (1L<<0)
                   3394: #define BNX2_RXP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK    (1L<<2)
                   3395: #define BNX2_RXP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK         (1L<<3)
                   3396: #define BNX2_RXP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK         (1L<<4)
                   3397: #define BNX2_RXP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK       (1L<<5)
                   3398: #define BNX2_RXP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK      (1L<<6)
                   3399: #define BNX2_RXP_CPU_EVENT_MASK_ALIGN_HALTED_MASK       (1L<<7)
                   3400: #define BNX2_RXP_CPU_EVENT_MASK_FIO_ABORT_MASK          (1L<<8)
                   3401: #define BNX2_RXP_CPU_EVENT_MASK_SOFT_HALTED_MASK        (1L<<10)
                   3402: #define BNX2_RXP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK     (1L<<11)
                   3403: #define BNX2_RXP_CPU_EVENT_MASK_INTERRUPT_MASK          (1L<<12)
                   3404: 
                   3405: #define BNX2_RXP_CPU_PROGRAM_COUNTER                   0x000c501c
                   3406: #define BNX2_RXP_CPU_INSTRUCTION                       0x000c5020
                   3407: #define BNX2_RXP_CPU_DATA_ACCESS                       0x000c5024
                   3408: #define BNX2_RXP_CPU_INTERRUPT_ENABLE                  0x000c5028
                   3409: #define BNX2_RXP_CPU_INTERRUPT_VECTOR                  0x000c502c
                   3410: #define BNX2_RXP_CPU_INTERRUPT_SAVED_PC                        0x000c5030
                   3411: #define BNX2_RXP_CPU_HW_BREAKPOINT                     0x000c5034
                   3412: #define BNX2_RXP_CPU_HW_BREAKPOINT_DISABLE              (1L<<0)
                   3413: #define BNX2_RXP_CPU_HW_BREAKPOINT_ADDRESS              (0x3fffffffL<<2)
                   3414: 
                   3415: #define BNX2_RXP_CPU_DEBUG_VECT_PEEK                   0x000c5038
                   3416: #define BNX2_RXP_CPU_DEBUG_VECT_PEEK_1_VALUE            (0x7ffL<<0)
                   3417: #define BNX2_RXP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN          (1L<<11)
                   3418: #define BNX2_RXP_CPU_DEBUG_VECT_PEEK_1_SEL              (0xfL<<12)
                   3419: #define BNX2_RXP_CPU_DEBUG_VECT_PEEK_2_VALUE            (0x7ffL<<16)
                   3420: #define BNX2_RXP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN          (1L<<27)
                   3421: #define BNX2_RXP_CPU_DEBUG_VECT_PEEK_2_SEL              (0xfL<<28)
                   3422: 
                   3423: #define BNX2_RXP_CPU_LAST_BRANCH_ADDR                  0x000c5048
                   3424: #define BNX2_RXP_CPU_LAST_BRANCH_ADDR_TYPE              (1L<<1)
                   3425: #define BNX2_RXP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP                 (0L<<1)
                   3426: #define BNX2_RXP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH       (1L<<1)
                   3427: #define BNX2_RXP_CPU_LAST_BRANCH_ADDR_LBA               (0x3fffffffL<<2)
                   3428: 
                   3429: #define BNX2_RXP_CPU_REG_FILE                          0x000c5200
                   3430: #define BNX2_RXP_CFTQ_DATA                             0x000c5380
                   3431: #define BNX2_RXP_CFTQ_CMD                              0x000c53b8
                   3432: #define BNX2_RXP_CFTQ_CMD_OFFSET                        (0x3ffL<<0)
                   3433: #define BNX2_RXP_CFTQ_CMD_WR_TOP                        (1L<<10)
                   3434: #define BNX2_RXP_CFTQ_CMD_WR_TOP_0                      (0L<<10)
                   3435: #define BNX2_RXP_CFTQ_CMD_WR_TOP_1                      (1L<<10)
                   3436: #define BNX2_RXP_CFTQ_CMD_SFT_RESET                     (1L<<25)
                   3437: #define BNX2_RXP_CFTQ_CMD_RD_DATA                       (1L<<26)
                   3438: #define BNX2_RXP_CFTQ_CMD_ADD_INTERVEN                  (1L<<27)
                   3439: #define BNX2_RXP_CFTQ_CMD_ADD_DATA                      (1L<<28)
                   3440: #define BNX2_RXP_CFTQ_CMD_INTERVENE_CLR                         (1L<<29)
                   3441: #define BNX2_RXP_CFTQ_CMD_POP                           (1L<<30)
                   3442: #define BNX2_RXP_CFTQ_CMD_BUSY                          (1L<<31)
                   3443: 
                   3444: #define BNX2_RXP_CFTQ_CTL                              0x000c53bc
                   3445: #define BNX2_RXP_CFTQ_CTL_INTERVENE                     (1L<<0)
                   3446: #define BNX2_RXP_CFTQ_CTL_OVERFLOW                      (1L<<1)
                   3447: #define BNX2_RXP_CFTQ_CTL_FORCE_INTERVENE               (1L<<2)
                   3448: #define BNX2_RXP_CFTQ_CTL_MAX_DEPTH                     (0x3ffL<<12)
                   3449: #define BNX2_RXP_CFTQ_CTL_CUR_DEPTH                     (0x3ffL<<22)
                   3450: 
                   3451: #define BNX2_RXP_FTQ_DATA                              0x000c53c0
                   3452: #define BNX2_RXP_FTQ_CMD                               0x000c53f8
                   3453: #define BNX2_RXP_FTQ_CMD_OFFSET                                 (0x3ffL<<0)
                   3454: #define BNX2_RXP_FTQ_CMD_WR_TOP                                 (1L<<10)
                   3455: #define BNX2_RXP_FTQ_CMD_WR_TOP_0                       (0L<<10)
                   3456: #define BNX2_RXP_FTQ_CMD_WR_TOP_1                       (1L<<10)
                   3457: #define BNX2_RXP_FTQ_CMD_SFT_RESET                      (1L<<25)
                   3458: #define BNX2_RXP_FTQ_CMD_RD_DATA                        (1L<<26)
                   3459: #define BNX2_RXP_FTQ_CMD_ADD_INTERVEN                   (1L<<27)
                   3460: #define BNX2_RXP_FTQ_CMD_ADD_DATA                       (1L<<28)
                   3461: #define BNX2_RXP_FTQ_CMD_INTERVENE_CLR                  (1L<<29)
                   3462: #define BNX2_RXP_FTQ_CMD_POP                            (1L<<30)
                   3463: #define BNX2_RXP_FTQ_CMD_BUSY                           (1L<<31)
                   3464: 
                   3465: #define BNX2_RXP_FTQ_CTL                               0x000c53fc
                   3466: #define BNX2_RXP_FTQ_CTL_INTERVENE                      (1L<<0)
                   3467: #define BNX2_RXP_FTQ_CTL_OVERFLOW                       (1L<<1)
                   3468: #define BNX2_RXP_FTQ_CTL_FORCE_INTERVENE                (1L<<2)
                   3469: #define BNX2_RXP_FTQ_CTL_MAX_DEPTH                      (0x3ffL<<12)
                   3470: #define BNX2_RXP_FTQ_CTL_CUR_DEPTH                      (0x3ffL<<22)
                   3471: 
                   3472: #define BNX2_RXP_SCRATCH                               0x000e0000
                   3473: 
                   3474: 
                   3475: /*
                   3476:  *  com_reg definition
                   3477:  *  offset: 0x100000
                   3478:  */
                   3479: #define BNX2_COM_CPU_MODE                              0x00105000
                   3480: #define BNX2_COM_CPU_MODE_LOCAL_RST                     (1L<<0)
                   3481: #define BNX2_COM_CPU_MODE_STEP_ENA                      (1L<<1)
                   3482: #define BNX2_COM_CPU_MODE_PAGE_0_DATA_ENA               (1L<<2)
                   3483: #define BNX2_COM_CPU_MODE_PAGE_0_INST_ENA               (1L<<3)
                   3484: #define BNX2_COM_CPU_MODE_MSG_BIT1                      (1L<<6)
                   3485: #define BNX2_COM_CPU_MODE_INTERRUPT_ENA                         (1L<<7)
                   3486: #define BNX2_COM_CPU_MODE_SOFT_HALT                     (1L<<10)
                   3487: #define BNX2_COM_CPU_MODE_BAD_DATA_HALT_ENA             (1L<<11)
                   3488: #define BNX2_COM_CPU_MODE_BAD_INST_HALT_ENA             (1L<<12)
                   3489: #define BNX2_COM_CPU_MODE_FIO_ABORT_HALT_ENA            (1L<<13)
                   3490: #define BNX2_COM_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA       (1L<<15)
                   3491: 
                   3492: #define BNX2_COM_CPU_STATE                             0x00105004
                   3493: #define BNX2_COM_CPU_STATE_BREAKPOINT                   (1L<<0)
                   3494: #define BNX2_COM_CPU_STATE_BAD_INST_HALTED              (1L<<2)
                   3495: #define BNX2_COM_CPU_STATE_PAGE_0_DATA_HALTED           (1L<<3)
                   3496: #define BNX2_COM_CPU_STATE_PAGE_0_INST_HALTED           (1L<<4)
                   3497: #define BNX2_COM_CPU_STATE_BAD_DATA_ADDR_HALTED                 (1L<<5)
                   3498: #define BNX2_COM_CPU_STATE_BAD_pc_HALTED                (1L<<6)
                   3499: #define BNX2_COM_CPU_STATE_ALIGN_HALTED                         (1L<<7)
                   3500: #define BNX2_COM_CPU_STATE_FIO_ABORT_HALTED             (1L<<8)
                   3501: #define BNX2_COM_CPU_STATE_SOFT_HALTED                  (1L<<10)
                   3502: #define BNX2_COM_CPU_STATE_SPAD_UNDERFLOW               (1L<<11)
                   3503: #define BNX2_COM_CPU_STATE_INTERRRUPT                   (1L<<12)
                   3504: #define BNX2_COM_CPU_STATE_DATA_ACCESS_STALL            (1L<<14)
                   3505: #define BNX2_COM_CPU_STATE_INST_FETCH_STALL             (1L<<15)
                   3506: #define BNX2_COM_CPU_STATE_BLOCKED_READ                         (1L<<31)
                   3507: 
                   3508: #define BNX2_COM_CPU_EVENT_MASK                                0x00105008
                   3509: #define BNX2_COM_CPU_EVENT_MASK_BREAKPOINT_MASK                 (1L<<0)
                   3510: #define BNX2_COM_CPU_EVENT_MASK_BAD_INST_HALTED_MASK    (1L<<2)
                   3511: #define BNX2_COM_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK         (1L<<3)
                   3512: #define BNX2_COM_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK         (1L<<4)
                   3513: #define BNX2_COM_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK       (1L<<5)
                   3514: #define BNX2_COM_CPU_EVENT_MASK_BAD_PC_HALTED_MASK      (1L<<6)
                   3515: #define BNX2_COM_CPU_EVENT_MASK_ALIGN_HALTED_MASK       (1L<<7)
                   3516: #define BNX2_COM_CPU_EVENT_MASK_FIO_ABORT_MASK          (1L<<8)
                   3517: #define BNX2_COM_CPU_EVENT_MASK_SOFT_HALTED_MASK        (1L<<10)
                   3518: #define BNX2_COM_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK     (1L<<11)
                   3519: #define BNX2_COM_CPU_EVENT_MASK_INTERRUPT_MASK          (1L<<12)
                   3520: 
                   3521: #define BNX2_COM_CPU_PROGRAM_COUNTER                   0x0010501c
                   3522: #define BNX2_COM_CPU_INSTRUCTION                       0x00105020
                   3523: #define BNX2_COM_CPU_DATA_ACCESS                       0x00105024
                   3524: #define BNX2_COM_CPU_INTERRUPT_ENABLE                  0x00105028
                   3525: #define BNX2_COM_CPU_INTERRUPT_VECTOR                  0x0010502c
                   3526: #define BNX2_COM_CPU_INTERRUPT_SAVED_PC                        0x00105030
                   3527: #define BNX2_COM_CPU_HW_BREAKPOINT                     0x00105034
                   3528: #define BNX2_COM_CPU_HW_BREAKPOINT_DISABLE              (1L<<0)
                   3529: #define BNX2_COM_CPU_HW_BREAKPOINT_ADDRESS              (0x3fffffffL<<2)
                   3530: 
                   3531: #define BNX2_COM_CPU_DEBUG_VECT_PEEK                   0x00105038
                   3532: #define BNX2_COM_CPU_DEBUG_VECT_PEEK_1_VALUE            (0x7ffL<<0)
                   3533: #define BNX2_COM_CPU_DEBUG_VECT_PEEK_1_PEEK_EN          (1L<<11)
                   3534: #define BNX2_COM_CPU_DEBUG_VECT_PEEK_1_SEL              (0xfL<<12)
                   3535: #define BNX2_COM_CPU_DEBUG_VECT_PEEK_2_VALUE            (0x7ffL<<16)
                   3536: #define BNX2_COM_CPU_DEBUG_VECT_PEEK_2_PEEK_EN          (1L<<27)
                   3537: #define BNX2_COM_CPU_DEBUG_VECT_PEEK_2_SEL              (0xfL<<28)
                   3538: 
                   3539: #define BNX2_COM_CPU_LAST_BRANCH_ADDR                  0x00105048
                   3540: #define BNX2_COM_CPU_LAST_BRANCH_ADDR_TYPE              (1L<<1)
                   3541: #define BNX2_COM_CPU_LAST_BRANCH_ADDR_TYPE_JUMP                 (0L<<1)
                   3542: #define BNX2_COM_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH       (1L<<1)
                   3543: #define BNX2_COM_CPU_LAST_BRANCH_ADDR_LBA               (0x3fffffffL<<2)
                   3544: 
                   3545: #define BNX2_COM_CPU_REG_FILE                          0x00105200
                   3546: #define BNX2_COM_COMXQ_FTQ_DATA                                0x00105340
                   3547: #define BNX2_COM_COMXQ_FTQ_CMD                         0x00105378
                   3548: #define BNX2_COM_COMXQ_FTQ_CMD_OFFSET                   (0x3ffL<<0)
                   3549: #define BNX2_COM_COMXQ_FTQ_CMD_WR_TOP                   (1L<<10)
                   3550: #define BNX2_COM_COMXQ_FTQ_CMD_WR_TOP_0                         (0L<<10)
                   3551: #define BNX2_COM_COMXQ_FTQ_CMD_WR_TOP_1                         (1L<<10)
                   3552: #define BNX2_COM_COMXQ_FTQ_CMD_SFT_RESET                (1L<<25)
                   3553: #define BNX2_COM_COMXQ_FTQ_CMD_RD_DATA                  (1L<<26)
                   3554: #define BNX2_COM_COMXQ_FTQ_CMD_ADD_INTERVEN             (1L<<27)
                   3555: #define BNX2_COM_COMXQ_FTQ_CMD_ADD_DATA                         (1L<<28)
                   3556: #define BNX2_COM_COMXQ_FTQ_CMD_INTERVENE_CLR            (1L<<29)
                   3557: #define BNX2_COM_COMXQ_FTQ_CMD_POP                      (1L<<30)
                   3558: #define BNX2_COM_COMXQ_FTQ_CMD_BUSY                     (1L<<31)
                   3559: 
                   3560: #define BNX2_COM_COMXQ_FTQ_CTL                         0x0010537c
                   3561: #define BNX2_COM_COMXQ_FTQ_CTL_INTERVENE                (1L<<0)
                   3562: #define BNX2_COM_COMXQ_FTQ_CTL_OVERFLOW                         (1L<<1)
                   3563: #define BNX2_COM_COMXQ_FTQ_CTL_FORCE_INTERVENE          (1L<<2)
                   3564: #define BNX2_COM_COMXQ_FTQ_CTL_MAX_DEPTH                (0x3ffL<<12)
                   3565: #define BNX2_COM_COMXQ_FTQ_CTL_CUR_DEPTH                (0x3ffL<<22)
                   3566: 
                   3567: #define BNX2_COM_COMTQ_FTQ_DATA                                0x00105380
                   3568: #define BNX2_COM_COMTQ_FTQ_CMD                         0x001053b8
                   3569: #define BNX2_COM_COMTQ_FTQ_CMD_OFFSET                   (0x3ffL<<0)
                   3570: #define BNX2_COM_COMTQ_FTQ_CMD_WR_TOP                   (1L<<10)
                   3571: #define BNX2_COM_COMTQ_FTQ_CMD_WR_TOP_0                         (0L<<10)
                   3572: #define BNX2_COM_COMTQ_FTQ_CMD_WR_TOP_1                         (1L<<10)
                   3573: #define BNX2_COM_COMTQ_FTQ_CMD_SFT_RESET                (1L<<25)
                   3574: #define BNX2_COM_COMTQ_FTQ_CMD_RD_DATA                  (1L<<26)
                   3575: #define BNX2_COM_COMTQ_FTQ_CMD_ADD_INTERVEN             (1L<<27)
                   3576: #define BNX2_COM_COMTQ_FTQ_CMD_ADD_DATA                         (1L<<28)
                   3577: #define BNX2_COM_COMTQ_FTQ_CMD_INTERVENE_CLR            (1L<<29)
                   3578: #define BNX2_COM_COMTQ_FTQ_CMD_POP                      (1L<<30)
                   3579: #define BNX2_COM_COMTQ_FTQ_CMD_BUSY                     (1L<<31)
                   3580: 
                   3581: #define BNX2_COM_COMTQ_FTQ_CTL                         0x001053bc
                   3582: #define BNX2_COM_COMTQ_FTQ_CTL_INTERVENE                (1L<<0)
                   3583: #define BNX2_COM_COMTQ_FTQ_CTL_OVERFLOW                         (1L<<1)
                   3584: #define BNX2_COM_COMTQ_FTQ_CTL_FORCE_INTERVENE          (1L<<2)
                   3585: #define BNX2_COM_COMTQ_FTQ_CTL_MAX_DEPTH                (0x3ffL<<12)
                   3586: #define BNX2_COM_COMTQ_FTQ_CTL_CUR_DEPTH                (0x3ffL<<22)
                   3587: 
                   3588: #define BNX2_COM_COMQ_FTQ_DATA                         0x001053c0
                   3589: #define BNX2_COM_COMQ_FTQ_CMD                          0x001053f8
                   3590: #define BNX2_COM_COMQ_FTQ_CMD_OFFSET                    (0x3ffL<<0)
                   3591: #define BNX2_COM_COMQ_FTQ_CMD_WR_TOP                    (1L<<10)
                   3592: #define BNX2_COM_COMQ_FTQ_CMD_WR_TOP_0                  (0L<<10)
                   3593: #define BNX2_COM_COMQ_FTQ_CMD_WR_TOP_1                  (1L<<10)
                   3594: #define BNX2_COM_COMQ_FTQ_CMD_SFT_RESET                         (1L<<25)
                   3595: #define BNX2_COM_COMQ_FTQ_CMD_RD_DATA                   (1L<<26)
                   3596: #define BNX2_COM_COMQ_FTQ_CMD_ADD_INTERVEN              (1L<<27)
                   3597: #define BNX2_COM_COMQ_FTQ_CMD_ADD_DATA                  (1L<<28)
                   3598: #define BNX2_COM_COMQ_FTQ_CMD_INTERVENE_CLR             (1L<<29)
                   3599: #define BNX2_COM_COMQ_FTQ_CMD_POP                       (1L<<30)
                   3600: #define BNX2_COM_COMQ_FTQ_CMD_BUSY                      (1L<<31)
                   3601: 
                   3602: #define BNX2_COM_COMQ_FTQ_CTL                          0x001053fc
                   3603: #define BNX2_COM_COMQ_FTQ_CTL_INTERVENE                         (1L<<0)
                   3604: #define BNX2_COM_COMQ_FTQ_CTL_OVERFLOW                  (1L<<1)
                   3605: #define BNX2_COM_COMQ_FTQ_CTL_FORCE_INTERVENE           (1L<<2)
                   3606: #define BNX2_COM_COMQ_FTQ_CTL_MAX_DEPTH                         (0x3ffL<<12)
                   3607: #define BNX2_COM_COMQ_FTQ_CTL_CUR_DEPTH                         (0x3ffL<<22)
                   3608: 
                   3609: #define BNX2_COM_SCRATCH                               0x00120000
                   3610: 
                   3611: 
                   3612: /*
                   3613:  *  cp_reg definition
                   3614:  *  offset: 0x180000
                   3615:  */
                   3616: #define BNX2_CP_CPU_MODE                               0x00185000
                   3617: #define BNX2_CP_CPU_MODE_LOCAL_RST                      (1L<<0)
                   3618: #define BNX2_CP_CPU_MODE_STEP_ENA                       (1L<<1)
                   3619: #define BNX2_CP_CPU_MODE_PAGE_0_DATA_ENA                (1L<<2)
                   3620: #define BNX2_CP_CPU_MODE_PAGE_0_INST_ENA                (1L<<3)
                   3621: #define BNX2_CP_CPU_MODE_MSG_BIT1                       (1L<<6)
                   3622: #define BNX2_CP_CPU_MODE_INTERRUPT_ENA                  (1L<<7)
                   3623: #define BNX2_CP_CPU_MODE_SOFT_HALT                      (1L<<10)
                   3624: #define BNX2_CP_CPU_MODE_BAD_DATA_HALT_ENA              (1L<<11)
                   3625: #define BNX2_CP_CPU_MODE_BAD_INST_HALT_ENA              (1L<<12)
                   3626: #define BNX2_CP_CPU_MODE_FIO_ABORT_HALT_ENA             (1L<<13)
                   3627: #define BNX2_CP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA        (1L<<15)
                   3628: 
                   3629: #define BNX2_CP_CPU_STATE                              0x00185004
                   3630: #define BNX2_CP_CPU_STATE_BREAKPOINT                    (1L<<0)
                   3631: #define BNX2_CP_CPU_STATE_BAD_INST_HALTED               (1L<<2)
                   3632: #define BNX2_CP_CPU_STATE_PAGE_0_DATA_HALTED            (1L<<3)
                   3633: #define BNX2_CP_CPU_STATE_PAGE_0_INST_HALTED            (1L<<4)
                   3634: #define BNX2_CP_CPU_STATE_BAD_DATA_ADDR_HALTED          (1L<<5)
                   3635: #define BNX2_CP_CPU_STATE_BAD_pc_HALTED                         (1L<<6)
                   3636: #define BNX2_CP_CPU_STATE_ALIGN_HALTED                  (1L<<7)
                   3637: #define BNX2_CP_CPU_STATE_FIO_ABORT_HALTED              (1L<<8)
                   3638: #define BNX2_CP_CPU_STATE_SOFT_HALTED                   (1L<<10)
                   3639: #define BNX2_CP_CPU_STATE_SPAD_UNDERFLOW                (1L<<11)
                   3640: #define BNX2_CP_CPU_STATE_INTERRRUPT                    (1L<<12)
                   3641: #define BNX2_CP_CPU_STATE_DATA_ACCESS_STALL             (1L<<14)
                   3642: #define BNX2_CP_CPU_STATE_INST_FETCH_STALL              (1L<<15)
                   3643: #define BNX2_CP_CPU_STATE_BLOCKED_READ                  (1L<<31)
                   3644: 
                   3645: #define BNX2_CP_CPU_EVENT_MASK                         0x00185008
                   3646: #define BNX2_CP_CPU_EVENT_MASK_BREAKPOINT_MASK          (1L<<0)
                   3647: #define BNX2_CP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK     (1L<<2)
                   3648: #define BNX2_CP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK  (1L<<3)
                   3649: #define BNX2_CP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK  (1L<<4)
                   3650: #define BNX2_CP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK        (1L<<5)
                   3651: #define BNX2_CP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK       (1L<<6)
                   3652: #define BNX2_CP_CPU_EVENT_MASK_ALIGN_HALTED_MASK        (1L<<7)
                   3653: #define BNX2_CP_CPU_EVENT_MASK_FIO_ABORT_MASK           (1L<<8)
                   3654: #define BNX2_CP_CPU_EVENT_MASK_SOFT_HALTED_MASK                 (1L<<10)
                   3655: #define BNX2_CP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK      (1L<<11)
                   3656: #define BNX2_CP_CPU_EVENT_MASK_INTERRUPT_MASK           (1L<<12)
                   3657: 
                   3658: #define BNX2_CP_CPU_PROGRAM_COUNTER                    0x0018501c
                   3659: #define BNX2_CP_CPU_INSTRUCTION                                0x00185020
                   3660: #define BNX2_CP_CPU_DATA_ACCESS                                0x00185024
                   3661: #define BNX2_CP_CPU_INTERRUPT_ENABLE                   0x00185028
                   3662: #define BNX2_CP_CPU_INTERRUPT_VECTOR                   0x0018502c
                   3663: #define BNX2_CP_CPU_INTERRUPT_SAVED_PC                 0x00185030
                   3664: #define BNX2_CP_CPU_HW_BREAKPOINT                      0x00185034
                   3665: #define BNX2_CP_CPU_HW_BREAKPOINT_DISABLE               (1L<<0)
                   3666: #define BNX2_CP_CPU_HW_BREAKPOINT_ADDRESS               (0x3fffffffL<<2)
                   3667: 
                   3668: #define BNX2_CP_CPU_DEBUG_VECT_PEEK                    0x00185038
                   3669: #define BNX2_CP_CPU_DEBUG_VECT_PEEK_1_VALUE             (0x7ffL<<0)
                   3670: #define BNX2_CP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN           (1L<<11)
                   3671: #define BNX2_CP_CPU_DEBUG_VECT_PEEK_1_SEL               (0xfL<<12)
                   3672: #define BNX2_CP_CPU_DEBUG_VECT_PEEK_2_VALUE             (0x7ffL<<16)
                   3673: #define BNX2_CP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN           (1L<<27)
                   3674: #define BNX2_CP_CPU_DEBUG_VECT_PEEK_2_SEL               (0xfL<<28)
                   3675: 
                   3676: #define BNX2_CP_CPU_LAST_BRANCH_ADDR                   0x00185048
                   3677: #define BNX2_CP_CPU_LAST_BRANCH_ADDR_TYPE               (1L<<1)
                   3678: #define BNX2_CP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP          (0L<<1)
                   3679: #define BNX2_CP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH        (1L<<1)
                   3680: #define BNX2_CP_CPU_LAST_BRANCH_ADDR_LBA                (0x3fffffffL<<2)
                   3681: 
                   3682: #define BNX2_CP_CPU_REG_FILE                           0x00185200
                   3683: #define BNX2_CP_CPQ_FTQ_DATA                           0x001853c0
                   3684: #define BNX2_CP_CPQ_FTQ_CMD                            0x001853f8
                   3685: #define BNX2_CP_CPQ_FTQ_CMD_OFFSET                      (0x3ffL<<0)
                   3686: #define BNX2_CP_CPQ_FTQ_CMD_WR_TOP                      (1L<<10)
                   3687: #define BNX2_CP_CPQ_FTQ_CMD_WR_TOP_0                    (0L<<10)
                   3688: #define BNX2_CP_CPQ_FTQ_CMD_WR_TOP_1                    (1L<<10)
                   3689: #define BNX2_CP_CPQ_FTQ_CMD_SFT_RESET                   (1L<<25)
                   3690: #define BNX2_CP_CPQ_FTQ_CMD_RD_DATA                     (1L<<26)
                   3691: #define BNX2_CP_CPQ_FTQ_CMD_ADD_INTERVEN                (1L<<27)
                   3692: #define BNX2_CP_CPQ_FTQ_CMD_ADD_DATA                    (1L<<28)
                   3693: #define BNX2_CP_CPQ_FTQ_CMD_INTERVENE_CLR               (1L<<29)
                   3694: #define BNX2_CP_CPQ_FTQ_CMD_POP                                 (1L<<30)
                   3695: #define BNX2_CP_CPQ_FTQ_CMD_BUSY                        (1L<<31)
                   3696: 
                   3697: #define BNX2_CP_CPQ_FTQ_CTL                            0x001853fc
                   3698: #define BNX2_CP_CPQ_FTQ_CTL_INTERVENE                   (1L<<0)
                   3699: #define BNX2_CP_CPQ_FTQ_CTL_OVERFLOW                    (1L<<1)
                   3700: #define BNX2_CP_CPQ_FTQ_CTL_FORCE_INTERVENE             (1L<<2)
                   3701: #define BNX2_CP_CPQ_FTQ_CTL_MAX_DEPTH                   (0x3ffL<<12)
                   3702: #define BNX2_CP_CPQ_FTQ_CTL_CUR_DEPTH                   (0x3ffL<<22)
                   3703: 
                   3704: #define BNX2_CP_SCRATCH                                        0x001a0000
                   3705: 
                   3706: 
                   3707: /*
                   3708:  *  mcp_reg definition
                   3709:  *  offset: 0x140000
                   3710:  */
                   3711: #define BNX2_MCP_CPU_MODE                              0x00145000
                   3712: #define BNX2_MCP_CPU_MODE_LOCAL_RST                     (1L<<0)
                   3713: #define BNX2_MCP_CPU_MODE_STEP_ENA                      (1L<<1)
                   3714: #define BNX2_MCP_CPU_MODE_PAGE_0_DATA_ENA               (1L<<2)
                   3715: #define BNX2_MCP_CPU_MODE_PAGE_0_INST_ENA               (1L<<3)
                   3716: #define BNX2_MCP_CPU_MODE_MSG_BIT1                      (1L<<6)
                   3717: #define BNX2_MCP_CPU_MODE_INTERRUPT_ENA                         (1L<<7)
                   3718: #define BNX2_MCP_CPU_MODE_SOFT_HALT                     (1L<<10)
                   3719: #define BNX2_MCP_CPU_MODE_BAD_DATA_HALT_ENA             (1L<<11)
                   3720: #define BNX2_MCP_CPU_MODE_BAD_INST_HALT_ENA             (1L<<12)
                   3721: #define BNX2_MCP_CPU_MODE_FIO_ABORT_HALT_ENA            (1L<<13)
                   3722: #define BNX2_MCP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA       (1L<<15)
                   3723: 
                   3724: #define BNX2_MCP_CPU_STATE                             0x00145004
                   3725: #define BNX2_MCP_CPU_STATE_BREAKPOINT                   (1L<<0)
                   3726: #define BNX2_MCP_CPU_STATE_BAD_INST_HALTED              (1L<<2)
                   3727: #define BNX2_MCP_CPU_STATE_PAGE_0_DATA_HALTED           (1L<<3)
                   3728: #define BNX2_MCP_CPU_STATE_PAGE_0_INST_HALTED           (1L<<4)
                   3729: #define BNX2_MCP_CPU_STATE_BAD_DATA_ADDR_HALTED                 (1L<<5)
                   3730: #define BNX2_MCP_CPU_STATE_BAD_pc_HALTED                (1L<<6)
                   3731: #define BNX2_MCP_CPU_STATE_ALIGN_HALTED                         (1L<<7)
                   3732: #define BNX2_MCP_CPU_STATE_FIO_ABORT_HALTED             (1L<<8)
                   3733: #define BNX2_MCP_CPU_STATE_SOFT_HALTED                  (1L<<10)
                   3734: #define BNX2_MCP_CPU_STATE_SPAD_UNDERFLOW               (1L<<11)
                   3735: #define BNX2_MCP_CPU_STATE_INTERRRUPT                   (1L<<12)
                   3736: #define BNX2_MCP_CPU_STATE_DATA_ACCESS_STALL            (1L<<14)
                   3737: #define BNX2_MCP_CPU_STATE_INST_FETCH_STALL             (1L<<15)
                   3738: #define BNX2_MCP_CPU_STATE_BLOCKED_READ                         (1L<<31)
                   3739: 
                   3740: #define BNX2_MCP_CPU_EVENT_MASK                                0x00145008
                   3741: #define BNX2_MCP_CPU_EVENT_MASK_BREAKPOINT_MASK                 (1L<<0)
                   3742: #define BNX2_MCP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK    (1L<<2)
                   3743: #define BNX2_MCP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK         (1L<<3)
                   3744: #define BNX2_MCP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK         (1L<<4)
                   3745: #define BNX2_MCP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK       (1L<<5)
                   3746: #define BNX2_MCP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK      (1L<<6)
                   3747: #define BNX2_MCP_CPU_EVENT_MASK_ALIGN_HALTED_MASK       (1L<<7)
                   3748: #define BNX2_MCP_CPU_EVENT_MASK_FIO_ABORT_MASK          (1L<<8)
                   3749: #define BNX2_MCP_CPU_EVENT_MASK_SOFT_HALTED_MASK        (1L<<10)
                   3750: #define BNX2_MCP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK     (1L<<11)
                   3751: #define BNX2_MCP_CPU_EVENT_MASK_INTERRUPT_MASK          (1L<<12)
                   3752: 
                   3753: #define BNX2_MCP_CPU_PROGRAM_COUNTER                   0x0014501c
                   3754: #define BNX2_MCP_CPU_INSTRUCTION                       0x00145020
                   3755: #define BNX2_MCP_CPU_DATA_ACCESS                       0x00145024
                   3756: #define BNX2_MCP_CPU_INTERRUPT_ENABLE                  0x00145028
                   3757: #define BNX2_MCP_CPU_INTERRUPT_VECTOR                  0x0014502c
                   3758: #define BNX2_MCP_CPU_INTERRUPT_SAVED_PC                        0x00145030
                   3759: #define BNX2_MCP_CPU_HW_BREAKPOINT                     0x00145034
                   3760: #define BNX2_MCP_CPU_HW_BREAKPOINT_DISABLE              (1L<<0)
                   3761: #define BNX2_MCP_CPU_HW_BREAKPOINT_ADDRESS              (0x3fffffffL<<2)
                   3762: 
                   3763: #define BNX2_MCP_CPU_DEBUG_VECT_PEEK                   0x00145038
                   3764: #define BNX2_MCP_CPU_DEBUG_VECT_PEEK_1_VALUE            (0x7ffL<<0)
                   3765: #define BNX2_MCP_CPU_DEBUG_VECT_PEEK_1_PEEK_EN          (1L<<11)
                   3766: #define BNX2_MCP_CPU_DEBUG_VECT_PEEK_1_SEL              (0xfL<<12)
                   3767: #define BNX2_MCP_CPU_DEBUG_VECT_PEEK_2_VALUE            (0x7ffL<<16)
                   3768: #define BNX2_MCP_CPU_DEBUG_VECT_PEEK_2_PEEK_EN          (1L<<27)
                   3769: #define BNX2_MCP_CPU_DEBUG_VECT_PEEK_2_SEL              (0xfL<<28)
                   3770: 
                   3771: #define BNX2_MCP_CPU_LAST_BRANCH_ADDR                  0x00145048
                   3772: #define BNX2_MCP_CPU_LAST_BRANCH_ADDR_TYPE              (1L<<1)
                   3773: #define BNX2_MCP_CPU_LAST_BRANCH_ADDR_TYPE_JUMP                 (0L<<1)
                   3774: #define BNX2_MCP_CPU_LAST_BRANCH_ADDR_TYPE_BRANCH       (1L<<1)
                   3775: #define BNX2_MCP_CPU_LAST_BRANCH_ADDR_LBA               (0x3fffffffL<<2)
                   3776: 
                   3777: #define BNX2_MCP_CPU_REG_FILE                          0x00145200
                   3778: #define BNX2_MCP_MCPQ_FTQ_DATA                         0x001453c0
                   3779: #define BNX2_MCP_MCPQ_FTQ_CMD                          0x001453f8
                   3780: #define BNX2_MCP_MCPQ_FTQ_CMD_OFFSET                    (0x3ffL<<0)
                   3781: #define BNX2_MCP_MCPQ_FTQ_CMD_WR_TOP                    (1L<<10)
                   3782: #define BNX2_MCP_MCPQ_FTQ_CMD_WR_TOP_0                  (0L<<10)
                   3783: #define BNX2_MCP_MCPQ_FTQ_CMD_WR_TOP_1                  (1L<<10)
                   3784: #define BNX2_MCP_MCPQ_FTQ_CMD_SFT_RESET                         (1L<<25)
                   3785: #define BNX2_MCP_MCPQ_FTQ_CMD_RD_DATA                   (1L<<26)
                   3786: #define BNX2_MCP_MCPQ_FTQ_CMD_ADD_INTERVEN              (1L<<27)
                   3787: #define BNX2_MCP_MCPQ_FTQ_CMD_ADD_DATA                  (1L<<28)
                   3788: #define BNX2_MCP_MCPQ_FTQ_CMD_INTERVENE_CLR             (1L<<29)
                   3789: #define BNX2_MCP_MCPQ_FTQ_CMD_POP                       (1L<<30)
                   3790: #define BNX2_MCP_MCPQ_FTQ_CMD_BUSY                      (1L<<31)
                   3791: 
                   3792: #define BNX2_MCP_MCPQ_FTQ_CTL                          0x001453fc
                   3793: #define BNX2_MCP_MCPQ_FTQ_CTL_INTERVENE                         (1L<<0)
                   3794: #define BNX2_MCP_MCPQ_FTQ_CTL_OVERFLOW                  (1L<<1)
                   3795: #define BNX2_MCP_MCPQ_FTQ_CTL_FORCE_INTERVENE           (1L<<2)
                   3796: #define BNX2_MCP_MCPQ_FTQ_CTL_MAX_DEPTH                         (0x3ffL<<12)
                   3797: #define BNX2_MCP_MCPQ_FTQ_CTL_CUR_DEPTH                         (0x3ffL<<22)
                   3798: 
                   3799: #define BNX2_MCP_ROM                                   0x00150000
                   3800: #define BNX2_MCP_SCRATCH                               0x00160000
                   3801: 
                   3802: #define BNX2_SHM_HDR_SIGNATURE                         BNX2_MCP_SCRATCH
                   3803: #define BNX2_SHM_HDR_SIGNATURE_SIG_MASK                         0xffff0000
                   3804: #define BNX2_SHM_HDR_SIGNATURE_SIG                      0x53530000
                   3805: #define BNX2_SHM_HDR_SIGNATURE_VER_MASK                         0x000000ff
                   3806: #define BNX2_SHM_HDR_SIGNATURE_VER_ONE                  0x00000001
                   3807: 
                   3808: #define BNX2_SHM_HDR_ADDR_0                            BNX2_MCP_SCRATCH + 4
                   3809: #define BNX2_SHM_HDR_ADDR_1                            BNX2_MCP_SCRATCH + 8
                   3810: 
                   3811: 
                   3812: #define NUM_MC_HASH_REGISTERS   8
                   3813: 
                   3814: 
                   3815: /* PHY_ID1: bits 31-16; PHY_ID2: bits 15-0.  */
                   3816: #define PHY_BCM5706_PHY_ID                          0x00206160
                   3817: 
                   3818: #define PHY_ID(id)                                  ((id) & 0xfffffff0)
                   3819: #define PHY_REV_ID(id)                              ((id) & 0xf)
                   3820: 
                   3821: /* 5708 Serdes PHY registers */
                   3822: 
                   3823: #define BCM5708S_UP1                           0xb
                   3824: 
                   3825: #define BCM5708S_UP1_2G5                       0x1
                   3826: 
                   3827: #define BCM5708S_BLK_ADDR                      0x1f
                   3828: 
                   3829: #define BCM5708S_BLK_ADDR_DIG                  0x0000
                   3830: #define BCM5708S_BLK_ADDR_DIG3                 0x0002
                   3831: #define BCM5708S_BLK_ADDR_TX_MISC              0x0005
                   3832: 
                   3833: /* Digital Block */
                   3834: #define BCM5708S_1000X_CTL1                    0x10
                   3835: 
                   3836: #define BCM5708S_1000X_CTL1_FIBER_MODE         0x0001
                   3837: #define BCM5708S_1000X_CTL1_AUTODET_EN         0x0010
                   3838: 
                   3839: #define BCM5708S_1000X_CTL2                    0x11
                   3840: 
                   3841: #define BCM5708S_1000X_CTL2_PLLEL_DET_EN       0x0001
                   3842: 
                   3843: #define BCM5708S_1000X_STAT1                   0x14
                   3844: 
                   3845: #define BCM5708S_1000X_STAT1_SGMII             0x0001
                   3846: #define BCM5708S_1000X_STAT1_LINK              0x0002
                   3847: #define BCM5708S_1000X_STAT1_FD                        0x0004
                   3848: #define BCM5708S_1000X_STAT1_SPEED_MASK                0x0018
                   3849: #define BCM5708S_1000X_STAT1_SPEED_10          0x0000
                   3850: #define BCM5708S_1000X_STAT1_SPEED_100         0x0008
                   3851: #define BCM5708S_1000X_STAT1_SPEED_1G          0x0010
                   3852: #define BCM5708S_1000X_STAT1_SPEED_2G5         0x0018
                   3853: #define BCM5708S_1000X_STAT1_TX_PAUSE          0x0020
                   3854: #define BCM5708S_1000X_STAT1_RX_PAUSE          0x0040
                   3855: 
                   3856: /* Digital3 Block */
                   3857: #define BCM5708S_DIG_3_0                       0x10
                   3858: 
                   3859: #define BCM5708S_DIG_3_0_USE_IEEE              0x0001
                   3860: 
                   3861: /* Tx/Misc Block */
                   3862: #define BCM5708S_TX_ACTL1                      0x15
                   3863: 
                   3864: #define BCM5708S_TX_ACTL1_DRIVER_VCM           0x30
                   3865: 
                   3866: #define BCM5708S_TX_ACTL3                      0x17
                   3867: 
                   3868: #define MIN_ETHERNET_PACKET_SIZE       60
                   3869: #define MAX_ETHERNET_PACKET_SIZE       1514
                   3870: #define MAX_ETHERNET_JUMBO_PACKET_SIZE 9014
                   3871: 
                   3872: #define RX_COPY_THRESH                 92
                   3873: 
                   3874: #define DMA_READ_CHANS 5
                   3875: #define DMA_WRITE_CHANS        3
                   3876: 
                   3877: #define BCM_PAGE_BITS  12
                   3878: #define BCM_PAGE_SIZE  (1 << BCM_PAGE_BITS)
                   3879: 
                   3880: #define TX_DESC_CNT  (BCM_PAGE_SIZE / sizeof(struct tx_bd))
                   3881: #define MAX_TX_DESC_CNT (TX_DESC_CNT - 1)
                   3882: 
                   3883: #define MAX_RX_RINGS   4
                   3884: #define RX_DESC_CNT  (BCM_PAGE_SIZE / sizeof(struct rx_bd))
                   3885: #define MAX_RX_DESC_CNT (RX_DESC_CNT - 1)
                   3886: #define MAX_TOTAL_RX_DESC_CNT (MAX_RX_DESC_CNT * MAX_RX_RINGS)
                   3887: 
                   3888: #define NEXT_TX_BD(x) (((x) & (MAX_TX_DESC_CNT - 1)) ==                        \
                   3889:                (MAX_TX_DESC_CNT - 1)) ?                                \
                   3890:        (x) + 2 : (x) + 1
                   3891: 
                   3892: #define PREV_TX_BD(x) ((((x)-1) & (MAX_TX_DESC_CNT)) ==                        \
                   3893:                (MAX_TX_DESC_CNT)) ?                            \
                   3894:        (x) - 2 : (x) - 1
                   3895: 
                   3896: #define TX_RING_IDX(x) ((x) & MAX_TX_DESC_CNT)
                   3897: 
                   3898: #define NEXT_RX_BD(x) (((x) & (MAX_RX_DESC_CNT - 1)) ==                        \
                   3899:                (MAX_RX_DESC_CNT - 1)) ?                                \
                   3900:        (x) + 2 : (x) + 1
                   3901: 
                   3902: #define RX_RING_IDX(x) ((x) & bp->rx_max_ring_idx)
                   3903: 
                   3904: //#define RX_RING(x) (((x) & ~MAX_RX_DESC_CNT) >> 8)
                   3905: #define RX_IDX(x) ((x) & MAX_RX_DESC_CNT)
                   3906: 
                   3907: /* Context size. */
                   3908: #define CTX_SHIFT                   7
                   3909: #define CTX_SIZE                    (1 << CTX_SHIFT)
                   3910: #define CTX_MASK                    (CTX_SIZE - 1)
                   3911: #define GET_CID_ADDR(_cid)          ((_cid) << CTX_SHIFT)
                   3912: #define GET_CID(_cid_addr)          ((_cid_addr) >> CTX_SHIFT)
                   3913: 
                   3914: #define PHY_CTX_SHIFT               6
                   3915: #define PHY_CTX_SIZE                (1 << PHY_CTX_SHIFT)
                   3916: #define PHY_CTX_MASK                (PHY_CTX_SIZE - 1)
                   3917: #define GET_PCID_ADDR(_pcid)        ((_pcid) << PHY_CTX_SHIFT)
                   3918: #define GET_PCID(_pcid_addr)        ((_pcid_addr) >> PHY_CTX_SHIFT)
                   3919: 
                   3920: #define MB_KERNEL_CTX_SHIFT         8
                   3921: #define MB_KERNEL_CTX_SIZE          (1 << MB_KERNEL_CTX_SHIFT)
                   3922: #define MB_KERNEL_CTX_MASK          (MB_KERNEL_CTX_SIZE - 1)
                   3923: #define MB_GET_CID_ADDR(_cid)       (0x10000 + ((_cid) << MB_KERNEL_CTX_SHIFT))
                   3924: 
                   3925: #define MAX_CID_CNT                 0x4000
                   3926: #define MAX_CID_ADDR                (GET_CID_ADDR(MAX_CID_CNT))
                   3927: #define INVALID_CID_ADDR            0xffffffff
                   3928: 
                   3929: #define TX_CID         16
                   3930: #define RX_CID         0
                   3931: 
                   3932: #define MB_TX_CID_ADDR MB_GET_CID_ADDR(TX_CID)
                   3933: #define MB_RX_CID_ADDR MB_GET_CID_ADDR(RX_CID)
                   3934: 
                   3935: #if 0
                   3936: struct sw_bd {
                   3937:        struct sk_buff          *skb;
                   3938:        DECLARE_PCI_UNMAP_ADDR(mapping)
                   3939: };
                   3940: #endif
                   3941: 
                   3942: /* Buffered flash (Atmel: AT45DB011B) specific information */
                   3943: #define SEEPROM_PAGE_BITS                      2
                   3944: #define SEEPROM_PHY_PAGE_SIZE                  (1 << SEEPROM_PAGE_BITS)
                   3945: #define SEEPROM_BYTE_ADDR_MASK                 (SEEPROM_PHY_PAGE_SIZE-1)
                   3946: #define SEEPROM_PAGE_SIZE                      4
                   3947: #define SEEPROM_TOTAL_SIZE                     65536
                   3948: 
                   3949: #define BUFFERED_FLASH_PAGE_BITS               9
                   3950: #define BUFFERED_FLASH_PHY_PAGE_SIZE           (1 << BUFFERED_FLASH_PAGE_BITS)
                   3951: #define BUFFERED_FLASH_BYTE_ADDR_MASK          (BUFFERED_FLASH_PHY_PAGE_SIZE-1)
                   3952: #define BUFFERED_FLASH_PAGE_SIZE               264
                   3953: #define BUFFERED_FLASH_TOTAL_SIZE              0x21000
                   3954: 
                   3955: #define SAIFUN_FLASH_PAGE_BITS                 8
                   3956: #define SAIFUN_FLASH_PHY_PAGE_SIZE             (1 << SAIFUN_FLASH_PAGE_BITS)
                   3957: #define SAIFUN_FLASH_BYTE_ADDR_MASK            (SAIFUN_FLASH_PHY_PAGE_SIZE-1)
                   3958: #define SAIFUN_FLASH_PAGE_SIZE                 256
                   3959: #define SAIFUN_FLASH_BASE_TOTAL_SIZE           65536
                   3960: 
                   3961: #define ST_MICRO_FLASH_PAGE_BITS               8
                   3962: #define ST_MICRO_FLASH_PHY_PAGE_SIZE           (1 << ST_MICRO_FLASH_PAGE_BITS)
                   3963: #define ST_MICRO_FLASH_BYTE_ADDR_MASK          (ST_MICRO_FLASH_PHY_PAGE_SIZE-1)
                   3964: #define ST_MICRO_FLASH_PAGE_SIZE               256
                   3965: #define ST_MICRO_FLASH_BASE_TOTAL_SIZE         65536
                   3966: 
                   3967: #define NVRAM_TIMEOUT_COUNT                    30000
                   3968: 
                   3969: 
                   3970: #define FLASH_STRAP_MASK                       (BNX2_NVM_CFG1_FLASH_MODE   | \
                   3971:                                                 BNX2_NVM_CFG1_BUFFER_MODE  | \
                   3972:                                                 BNX2_NVM_CFG1_PROTECT_MODE | \
                   3973:                                                 BNX2_NVM_CFG1_FLASH_SIZE)
                   3974: 
                   3975: #define FLASH_BACKUP_STRAP_MASK                        (0xf << 26)
                   3976: 
                   3977: struct flash_spec {
                   3978:        u32 strapping;
                   3979:        u32 config1;
                   3980:        u32 config2;
                   3981:        u32 config3;
                   3982:        u32 write1;
                   3983:        u32 buffered;
                   3984:        u32 page_bits;
                   3985:        u32 page_size;
                   3986:        u32 addr_mask;
                   3987:        u32 total_size;
                   3988:        char  *name;
                   3989: };
                   3990: 
                   3991: struct bnx2 {
                   3992:        /* Fields used in the tx and intr/napi performance paths are grouped */
                   3993:        /* together in the beginning of the structure. */
                   3994:        void /*__iomem*/                *regview;
                   3995: 
                   3996:        struct nic              *nic;
                   3997:        struct pci_device       *pdev;
                   3998: 
                   3999:        /* atomic_t             intr_sem; */
                   4000: 
                   4001:        struct status_block     *status_blk;
                   4002:        u32                     last_status_idx;
                   4003: 
                   4004:        u32                     flags;
                   4005: #define PCIX_FLAG                      1
                   4006: #define PCI_32BIT_FLAG                 2
                   4007: #define ONE_TDMA_FLAG                  4       /* no longer used */
                   4008: #define NO_WOL_FLAG                    8
                   4009: #define USING_DAC_FLAG                 0x10
                   4010: #define USING_MSI_FLAG                 0x20
                   4011: #define ASF_ENABLE_FLAG                        0x40
                   4012: 
                   4013:        /* Put tx producer and consumer fields in separate cache lines. */
                   4014:        u32             tx_prod_bseq __attribute__((aligned(L1_CACHE_BYTES)));
                   4015:        u16             tx_prod;
                   4016: 
                   4017:        struct tx_bd    *tx_desc_ring;
                   4018:        struct sw_bd    *tx_buf_ring;
                   4019:        int             tx_ring_size;
                   4020: 
                   4021:        u16             tx_cons __attribute__((aligned(L1_CACHE_BYTES))); 
                   4022:        u16             hw_tx_cons;
                   4023: 
                   4024: #ifdef BCM_VLAN 
                   4025:        struct                  vlan_group *vlgrp;
                   4026: #endif
                   4027: 
                   4028:        u32                     rx_offset;
                   4029:        u32                     rx_buf_use_size;        /* useable size */
                   4030:        u32                     rx_buf_size;            /* with alignment */
                   4031:        u32                     rx_max_ring_idx;
                   4032: 
                   4033:        u32                     rx_prod_bseq;
                   4034:        u16                     rx_prod;
                   4035:        u16                     rx_cons;
                   4036:        u16                     hw_rx_cons;
                   4037: 
                   4038:        u32                     rx_csum;
                   4039: 
                   4040: #if 0
                   4041:        struct rx_bd            *rx_desc_ring[MAX_RX_RINGS];
                   4042: #endif
                   4043:        struct rx_bd            *rx_desc_ring;
                   4044: 
                   4045:        /* End of fields used in the performance code paths. */
                   4046: 
                   4047:        char                    *name;
                   4048: 
                   4049: #if 0
                   4050:        int                     timer_interval;
                   4051:        int                     current_interval;
                   4052:        struct                  timer_list timer;
                   4053:        struct work_struct      reset_task;
                   4054:        int                     in_reset_task;
                   4055: 
                   4056:        /* Used to synchronize phy accesses. */
                   4057:        spinlock_t              phy_lock;
                   4058: #endif
                   4059: 
                   4060:        u32                     phy_flags;
                   4061: #define PHY_SERDES_FLAG                        1
                   4062: #define PHY_CRC_FIX_FLAG               2
                   4063: #define PHY_PARALLEL_DETECT_FLAG       4
                   4064: #define PHY_2_5G_CAPABLE_FLAG          8
                   4065: #define PHY_INT_MODE_MASK_FLAG         0x300
                   4066: #define PHY_INT_MODE_AUTO_POLLING_FLAG 0x100
                   4067: #define PHY_INT_MODE_LINK_READY_FLAG   0x200
                   4068: 
                   4069:        u32                     chip_id;
                   4070:        /* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */
                   4071: #define CHIP_NUM(bp)                   (((bp)->chip_id) & 0xffff0000)
                   4072: #define CHIP_NUM_5706                  0x57060000
                   4073: #define CHIP_NUM_5708                  0x57080000
                   4074: 
                   4075: #define CHIP_REV(bp)                   (((bp)->chip_id) & 0x0000f000)
                   4076: #define CHIP_REV_Ax                    0x00000000
                   4077: #define CHIP_REV_Bx                    0x00001000
                   4078: #define CHIP_REV_Cx                    0x00002000
                   4079:     
                   4080: #define CHIP_METAL(bp)                 (((bp)->chip_id) & 0x00000ff0)
                   4081: #define CHIP_BONDING(bp)               (((bp)->chip_id) & 0x0000000f)
                   4082: 
                   4083: #define CHIP_ID(bp)                    (((bp)->chip_id) & 0xfffffff0)
                   4084: #define CHIP_ID_5706_A0                        0x57060000
                   4085: #define CHIP_ID_5706_A1                        0x57060010
                   4086: #define CHIP_ID_5706_A2                        0x57060020
                   4087: #define CHIP_ID_5708_A0                        0x57080000
                   4088: #define CHIP_ID_5708_B0                        0x57081000
                   4089: #define CHIP_ID_5708_B1                        0x57081010
                   4090: 
                   4091: #define CHIP_BOND_ID(bp)               (((bp)->chip_id) & 0xf)
                   4092: 
                   4093: /* A serdes chip will have the first bit of the bond id set. */
                   4094: #define CHIP_BOND_ID_SERDES_BIT                0x01
                   4095: 
                   4096:        u32                     phy_addr;
                   4097:        u32                     phy_id;
                   4098:        
                   4099:        u16                     bus_speed_mhz;
                   4100:        u8                      wol;
                   4101: 
                   4102:        u8                      pad;
                   4103: 
                   4104:        u16                     fw_wr_seq;
                   4105:        u16                     fw_drv_pulse_wr_seq;
                   4106: 
                   4107:        dma_addr_t              tx_desc_mapping;
                   4108: 
                   4109: 
                   4110:        int                     rx_max_ring;
                   4111:        int                     rx_ring_size;
                   4112: #if 0
                   4113:        dma_addr_t              rx_desc_mapping[MAX_RX_RINGS];
                   4114: #endif
                   4115:        dma_addr_t              rx_desc_mapping;
                   4116: 
                   4117:        u16                     tx_quick_cons_trip;
                   4118:        u16                     tx_quick_cons_trip_int;
                   4119:        u16                     rx_quick_cons_trip;
                   4120:        u16                     rx_quick_cons_trip_int;
                   4121:        u16                     comp_prod_trip;
                   4122:        u16                     comp_prod_trip_int;
                   4123:        u16                     tx_ticks;
                   4124:        u16                     tx_ticks_int;
                   4125:        u16                     com_ticks;
                   4126:        u16                     com_ticks_int;
                   4127:        u16                     cmd_ticks;
                   4128:        u16                     cmd_ticks_int;
                   4129:        u16                     rx_ticks;
                   4130:        u16                     rx_ticks_int;
                   4131: 
                   4132:        u32                     stats_ticks;
                   4133: 
                   4134:        dma_addr_t              status_blk_mapping;
                   4135: 
                   4136:        struct statistics_block *stats_blk;
                   4137:        dma_addr_t              stats_blk_mapping;
                   4138: 
                   4139:        u32                     hc_cmd;
                   4140:        u32                     rx_mode;
                   4141: 
                   4142:        u16                     req_line_speed;
                   4143:        u8                      req_duplex;
                   4144: 
                   4145:        u8                      link_up;
                   4146: 
                   4147:        u16                     line_speed;
                   4148:        u8                      duplex;
                   4149:        u8                      flow_ctrl;      /* actual flow ctrl settings */
                   4150:                                                /* may be different from     */
                   4151:                                                /* req_flow_ctrl if autoneg  */
                   4152: #define FLOW_CTRL_TX           1
                   4153: #define FLOW_CTRL_RX           2
                   4154: 
                   4155:        u32                     advertising;
                   4156: 
                   4157:        u8                      req_flow_ctrl;  /* flow ctrl advertisement */ 
                   4158:                                                /* settings or forced      */
                   4159:                                                /* settings                */
                   4160:        u8                      autoneg;
                   4161: #define AUTONEG_SPEED          1
                   4162: #define AUTONEG_FLOW_CTRL      2
                   4163: 
                   4164:        u8                      loopback;
                   4165: #define MAC_LOOPBACK           1
                   4166: #define PHY_LOOPBACK           2
                   4167: 
                   4168:        u8                      serdes_an_pending;
                   4169: #define SERDES_AN_TIMEOUT      (HZ / 3)
                   4170: 
                   4171:        u8                      mac_addr[8];
                   4172: 
                   4173:        u32                     shmem_base;
                   4174: 
                   4175:        u32                     fw_ver;
                   4176: 
                   4177:        int                     pm_cap;
                   4178:        int                     pcix_cap;
                   4179: 
                   4180:        /* struct net_device_stats net_stats; */
                   4181: 
                   4182:        struct flash_spec       *flash_info;
                   4183:        u32                     flash_size;
                   4184: 
                   4185:        int                     status_stats_size;
                   4186: };
                   4187: 
                   4188: static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset);
                   4189: static void bnx2_reg_wr_ind(struct bnx2 *bp, u32 offset, u32 val);
                   4190: 
                   4191: #define REG_RD(bp, offset)                                     \
                   4192:        readl(bp->regview + offset)
                   4193: 
                   4194: #define REG_WR(bp, offset, val)                                        \
                   4195:        writel(val, bp->regview + offset)
                   4196: 
                   4197: #define REG_WR16(bp, offset, val)                              \
                   4198:        writew(val, bp->regview + offset)
                   4199: 
                   4200: #define REG_RD_IND(bp, offset)                                 \
                   4201:        bnx2_reg_rd_ind(bp, offset)
                   4202: 
                   4203: #define REG_WR_IND(bp, offset, val)                            \
                   4204:        bnx2_reg_wr_ind(bp, offset, val)
                   4205: 
                   4206: /* Indirect context access.  Unlike the MBQ_WR, these macros will not
                   4207:  * trigger a chip event. */
                   4208: static void bnx2_ctx_wr(struct bnx2 *bp, u32 cid_addr, u32 offset, u32 val);
                   4209: 
                   4210: #define CTX_WR(bp, cid_addr, offset, val)                      \
                   4211:        bnx2_ctx_wr(bp, cid_addr, offset, val)
                   4212: 
                   4213: struct cpu_reg {
                   4214:        u32 mode;
                   4215:        u32 mode_value_halt;
                   4216:        u32 mode_value_sstep;
                   4217: 
                   4218:        u32 state;
                   4219:        u32 state_value_clear;
                   4220: 
                   4221:        u32 gpr0;
                   4222:        u32 evmask;
                   4223:        u32 pc;
                   4224:        u32 inst;
                   4225:        u32 bp;
                   4226: 
                   4227:        u32 spad_base;
                   4228: 
                   4229:        u32 mips_view_base;
                   4230: };
                   4231: 
                   4232: struct fw_info {
                   4233:        u32 ver_major;
                   4234:        u32 ver_minor;
                   4235:        u32 ver_fix;
                   4236: 
                   4237:        u32 start_addr;
                   4238: 
                   4239:        /* Text section. */
                   4240:        u32 text_addr;
                   4241:        u32 text_len;
                   4242:        u32 text_index;
                   4243:        u32 *text;
                   4244: 
                   4245:        /* Data section. */
                   4246:        u32 data_addr;
                   4247:        u32 data_len;
                   4248:        u32 data_index;
                   4249:        u32 *data;
                   4250: 
                   4251:        /* SBSS section. */
                   4252:        u32 sbss_addr;
                   4253:        u32 sbss_len;
                   4254:        u32 sbss_index;
                   4255:        u32 *sbss;
                   4256: 
                   4257:        /* BSS section. */
                   4258:        u32 bss_addr;
                   4259:        u32 bss_len;
                   4260:        u32 bss_index;
                   4261:        u32 *bss;
                   4262: 
                   4263:        /* Read-only section. */
                   4264:        u32 rodata_addr;
                   4265:        u32 rodata_len;
                   4266:        u32 rodata_index;
                   4267:        u32 *rodata;
                   4268: };
                   4269: 
                   4270: #define RV2P_PROC1                              0
                   4271: #define RV2P_PROC2                              1
                   4272: 
                   4273: 
                   4274: /* This value (in milliseconds) determines the frequency of the driver
                   4275:  * issuing the PULSE message code.  The firmware monitors this periodic
                   4276:  * pulse to determine when to switch to an OS-absent mode. */
                   4277: #define DRV_PULSE_PERIOD_MS                 250
                   4278: 
                   4279: /* This value (in milliseconds) determines how long the driver should
                   4280:  * wait for an acknowledgement from the firmware before timing out.  Once
                   4281:  * the firmware has timed out, the driver will assume there is no firmware
                   4282:  * running and there won't be any firmware-driver synchronization during a
                   4283:  * driver reset. */
                   4284: #define FW_ACK_TIME_OUT_MS                  100
                   4285: 
                   4286: 
                   4287: #define BNX2_DRV_RESET_SIGNATURE               0x00000000
                   4288: #define BNX2_DRV_RESET_SIGNATURE_MAGIC          0x4841564b /* HAVK */
                   4289: //#define DRV_RESET_SIGNATURE_MAGIC             0x47495352 /* RSIG */
                   4290: 
                   4291: #define BNX2_DRV_MB                            0x00000004
                   4292: #define BNX2_DRV_MSG_CODE                       0xff000000
                   4293: #define BNX2_DRV_MSG_CODE_RESET                         0x01000000
                   4294: #define BNX2_DRV_MSG_CODE_UNLOAD                0x02000000
                   4295: #define BNX2_DRV_MSG_CODE_SHUTDOWN              0x03000000
                   4296: #define BNX2_DRV_MSG_CODE_SUSPEND_WOL           0x04000000
                   4297: #define BNX2_DRV_MSG_CODE_FW_TIMEOUT            0x05000000
                   4298: #define BNX2_DRV_MSG_CODE_PULSE                         0x06000000
                   4299: #define BNX2_DRV_MSG_CODE_DIAG                  0x07000000
                   4300: #define BNX2_DRV_MSG_CODE_SUSPEND_NO_WOL        0x09000000
                   4301: 
                   4302: #define BNX2_DRV_MSG_DATA                       0x00ff0000
                   4303: #define BNX2_DRV_MSG_DATA_WAIT0                         0x00010000
                   4304: #define BNX2_DRV_MSG_DATA_WAIT1                         0x00020000
                   4305: #define BNX2_DRV_MSG_DATA_WAIT2                         0x00030000
                   4306: #define BNX2_DRV_MSG_DATA_WAIT3                         0x00040000
                   4307:         
                   4308: #define BNX2_DRV_MSG_SEQ                        0x0000ffff
                   4309: 
                   4310: #define BNX2_FW_MB                             0x00000008
                   4311: #define BNX2_FW_MSG_ACK                                 0x0000ffff
                   4312: #define BNX2_FW_MSG_STATUS_MASK                         0x00ff0000
                   4313: #define BNX2_FW_MSG_STATUS_OK                   0x00000000
                   4314: #define BNX2_FW_MSG_STATUS_FAILURE              0x00ff0000
                   4315: 
                   4316: #define BNX2_LINK_STATUS                       0x0000000c
                   4317: #define BNX2_LINK_STATUS_INIT_VALUE             0xffffffff 
                   4318: #define BNX2_LINK_STATUS_LINK_UP                0x1 
                   4319: #define BNX2_LINK_STATUS_LINK_DOWN              0x0 
                   4320: #define BNX2_LINK_STATUS_SPEED_MASK             0x1e
                   4321: #define BNX2_LINK_STATUS_AN_INCOMPLETE          (0<<1) 
                   4322: #define BNX2_LINK_STATUS_10HALF                         (1<<1) 
                   4323: #define BNX2_LINK_STATUS_10FULL                         (2<<1) 
                   4324: #define BNX2_LINK_STATUS_100HALF                (3<<1) 
                   4325: #define BNX2_LINK_STATUS_100BASE_T4             (4<<1) 
                   4326: #define BNX2_LINK_STATUS_100FULL                (5<<1) 
                   4327: #define BNX2_LINK_STATUS_1000HALF               (6<<1) 
                   4328: #define BNX2_LINK_STATUS_1000FULL               (7<<1) 
                   4329: #define BNX2_LINK_STATUS_2500HALF               (8<<1) 
                   4330: #define BNX2_LINK_STATUS_2500FULL               (9<<1) 
                   4331: #define BNX2_LINK_STATUS_AN_ENABLED             (1<<5) 
                   4332: #define BNX2_LINK_STATUS_AN_COMPLETE            (1<<6) 
                   4333: #define BNX2_LINK_STATUS_PARALLEL_DET           (1<<7) 
                   4334: #define BNX2_LINK_STATUS_RESERVED               (1<<8) 
                   4335: #define BNX2_LINK_STATUS_PARTNER_AD_1000FULL    (1<<9) 
                   4336: #define BNX2_LINK_STATUS_PARTNER_AD_1000HALF    (1<<10) 
                   4337: #define BNX2_LINK_STATUS_PARTNER_AD_100BT4      (1<<11) 
                   4338: #define BNX2_LINK_STATUS_PARTNER_AD_100FULL     (1<<12) 
                   4339: #define BNX2_LINK_STATUS_PARTNER_AD_100HALF     (1<<13) 
                   4340: #define BNX2_LINK_STATUS_PARTNER_AD_10FULL      (1<<14) 
                   4341: #define BNX2_LINK_STATUS_PARTNER_AD_10HALF      (1<<15) 
                   4342: #define BNX2_LINK_STATUS_TX_FC_ENABLED          (1<<16) 
                   4343: #define BNX2_LINK_STATUS_RX_FC_ENABLED          (1<<17) 
                   4344: #define BNX2_LINK_STATUS_PARTNER_SYM_PAUSE_CAP  (1<<18) 
                   4345: #define BNX2_LINK_STATUS_PARTNER_ASYM_PAUSE_CAP         (1<<19) 
                   4346: #define BNX2_LINK_STATUS_SERDES_LINK            (1<<20) 
                   4347: #define BNX2_LINK_STATUS_PARTNER_AD_2500FULL    (1<<21) 
                   4348: #define BNX2_LINK_STATUS_PARTNER_AD_2500HALF    (1<<22) 
                   4349: 
                   4350: #define BNX2_DRV_PULSE_MB                      0x00000010
                   4351: #define BNX2_DRV_PULSE_SEQ_MASK                         0x00007fff
                   4352: 
                   4353: /* Indicate to the firmware not to go into the
                   4354:  * OS absent when it is not getting driver pulse.
                   4355:  * This is used for debugging. */
                   4356: #define BNX2_DRV_MSG_DATA_PULSE_CODE_ALWAYS_ALIVE       0x00080000
                   4357: 
                   4358: #define BNX2_DEV_INFO_SIGNATURE                        0x00000020
                   4359: #define BNX2_DEV_INFO_SIGNATURE_MAGIC           0x44564900
                   4360: #define BNX2_DEV_INFO_SIGNATURE_MAGIC_MASK      0xffffff00
                   4361: #define BNX2_DEV_INFO_FEATURE_CFG_VALID                 0x01
                   4362: #define BNX2_DEV_INFO_SECONDARY_PORT            0x80
                   4363: #define BNX2_DEV_INFO_DRV_ALWAYS_ALIVE          0x40
                   4364: 
                   4365: #define BNX2_SHARED_HW_CFG_PART_NUM            0x00000024
                   4366: 
                   4367: #define BNX2_SHARED_HW_CFG_POWER_DISSIPATED    0x00000034
                   4368: #define BNX2_SHARED_HW_CFG_POWER_STATE_D3_MASK  0xff000000
                   4369: #define BNX2_SHARED_HW_CFG_POWER_STATE_D2_MASK  0xff0000
                   4370: #define BNX2_SHARED_HW_CFG_POWER_STATE_D1_MASK  0xff00
                   4371: #define BNX2_SHARED_HW_CFG_POWER_STATE_D0_MASK  0xff
                   4372: 
                   4373: #define BNX2_SHARED_HW_CFG POWER_CONSUMED      0x00000038
                   4374: #define BNX2_SHARED_HW_CFG_CONFIG              0x0000003c
                   4375: #define BNX2_SHARED_HW_CFG_DESIGN_NIC           0
                   4376: #define BNX2_SHARED_HW_CFG_DESIGN_LOM           0x1
                   4377: #define BNX2_SHARED_HW_CFG_PHY_COPPER           0
                   4378: #define BNX2_SHARED_HW_CFG_PHY_FIBER            0x2
                   4379: #define BNX2_SHARED_HW_CFG_PHY_2_5G             0x20
                   4380: #define BNX2_SHARED_HW_CFG_PHY_BACKPLANE        0x40
                   4381: #define BNX2_SHARED_HW_CFG_LED_MODE_SHIFT_BITS  8
                   4382: #define BNX2_SHARED_HW_CFG_LED_MODE_MASK        0x300
                   4383: #define BNX2_SHARED_HW_CFG_LED_MODE_MAC                 0
                   4384: #define BNX2_SHARED_HW_CFG_LED_MODE_GPHY1       0x100
                   4385: #define BNX2_SHARED_HW_CFG_LED_MODE_GPHY2       0x200
                   4386: 
                   4387: #define BNX2_SHARED_HW_CFG_CONFIG2             0x00000040
                   4388: #define BNX2_SHARED_HW_CFG2_NVM_SIZE_MASK       0x00fff000
                   4389: 
                   4390: #define BNX2_DEV_INFO_BC_REV                   0x0000004c
                   4391: 
                   4392: #define BNX2_PORT_HW_CFG_MAC_UPPER             0x00000050
                   4393: #define BNX2_PORT_HW_CFG_UPPERMAC_MASK          0xffff
                   4394: 
                   4395: #define BNX2_PORT_HW_CFG_MAC_LOWER             0x00000054
                   4396: #define BNX2_PORT_HW_CFG_CONFIG                        0x00000058
                   4397: #define BNX2_PORT_HW_CFG_CFG_TXCTL3_MASK        0x0000ffff
                   4398: #define BNX2_PORT_HW_CFG_CFG_DFLT_LINK_MASK     0x001f0000
                   4399: #define BNX2_PORT_HW_CFG_CFG_DFLT_LINK_AN       0x00000000
                   4400: #define BNX2_PORT_HW_CFG_CFG_DFLT_LINK_1G       0x00030000
                   4401: #define BNX2_PORT_HW_CFG_CFG_DFLT_LINK_2_5G     0x00040000
                   4402: 
                   4403: #define BNX2_PORT_HW_CFG_IMD_MAC_A_UPPER       0x00000068
                   4404: #define BNX2_PORT_HW_CFG_IMD_MAC_A_LOWER       0x0000006c
                   4405: #define BNX2_PORT_HW_CFG_IMD_MAC_B_UPPER       0x00000070
                   4406: #define BNX2_PORT_HW_CFG_IMD_MAC_B_LOWER       0x00000074
                   4407: #define BNX2_PORT_HW_CFG_ISCSI_MAC_UPPER       0x00000078
                   4408: #define BNX2_PORT_HW_CFG_ISCSI_MAC_LOWER       0x0000007c
                   4409: 
                   4410: #define BNX2_DEV_INFO_PER_PORT_HW_CONFIG2      0x000000b4
                   4411: 
                   4412: #define BNX2_DEV_INFO_FORMAT_REV               0x000000c4
                   4413: #define BNX2_DEV_INFO_FORMAT_REV_MASK           0xff000000
                   4414: #define BNX2_DEV_INFO_FORMAT_REV_ID             ('A' << 24)
                   4415: 
                   4416: #define BNX2_SHARED_FEATURE                    0x000000c8
                   4417: #define BNX2_SHARED_FEATURE_MASK                0xffffffff
                   4418: 
                   4419: #define BNX2_PORT_FEATURE                      0x000000d8
                   4420: #define BNX2_PORT2_FEATURE                     0x00000014c
                   4421: #define BNX2_PORT_FEATURE_WOL_ENABLED           0x01000000
                   4422: #define BNX2_PORT_FEATURE_MBA_ENABLED           0x02000000
                   4423: #define BNX2_PORT_FEATURE_ASF_ENABLED           0x04000000
                   4424: #define BNX2_PORT_FEATURE_IMD_ENABLED           0x08000000
                   4425: #define BNX2_PORT_FEATURE_BAR1_SIZE_MASK        0xf
                   4426: #define BNX2_PORT_FEATURE_BAR1_SIZE_DISABLED    0x0
                   4427: #define BNX2_PORT_FEATURE_BAR1_SIZE_64K                 0x1
                   4428: #define BNX2_PORT_FEATURE_BAR1_SIZE_128K        0x2
                   4429: #define BNX2_PORT_FEATURE_BAR1_SIZE_256K        0x3
                   4430: #define BNX2_PORT_FEATURE_BAR1_SIZE_512K        0x4
                   4431: #define BNX2_PORT_FEATURE_BAR1_SIZE_1M          0x5
                   4432: #define BNX2_PORT_FEATURE_BAR1_SIZE_2M          0x6
                   4433: #define BNX2_PORT_FEATURE_BAR1_SIZE_4M          0x7
                   4434: #define BNX2_PORT_FEATURE_BAR1_SIZE_8M          0x8
                   4435: #define BNX2_PORT_FEATURE_BAR1_SIZE_16M                 0x9
                   4436: #define BNX2_PORT_FEATURE_BAR1_SIZE_32M                 0xa
                   4437: #define BNX2_PORT_FEATURE_BAR1_SIZE_64M                 0xb
                   4438: #define BNX2_PORT_FEATURE_BAR1_SIZE_128M        0xc
                   4439: #define BNX2_PORT_FEATURE_BAR1_SIZE_256M        0xd
                   4440: #define BNX2_PORT_FEATURE_BAR1_SIZE_512M        0xe
                   4441: #define BNX2_PORT_FEATURE_BAR1_SIZE_1G          0xf
                   4442: 
                   4443: #define BNX2_PORT_FEATURE_WOL                  0xdc
                   4444: #define BNX2_PORT2_FEATURE_WOL                 0x150
                   4445: #define BNX2_PORT_FEATURE_WOL_DEFAULT_SHIFT_BITS        4
                   4446: #define BNX2_PORT_FEATURE_WOL_DEFAULT_MASK      0x30
                   4447: #define BNX2_PORT_FEATURE_WOL_DEFAULT_DISABLE   0
                   4448: #define BNX2_PORT_FEATURE_WOL_DEFAULT_MAGIC     0x10
                   4449: #define BNX2_PORT_FEATURE_WOL_DEFAULT_ACPI      0x20
                   4450: #define BNX2_PORT_FEATURE_WOL_DEFAULT_MAGIC_AND_ACPI    0x30
                   4451: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_MASK   0xf
                   4452: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_AUTONEG        0
                   4453: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_10HALF         1
                   4454: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_10FULL         2
                   4455: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_100HALF 3
                   4456: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_100FULL 4
                   4457: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_1000HALF       5
                   4458: #define BNX2_PORT_FEATURE_WOL_LINK_SPEED_1000FULL       6
                   4459: #define BNX2_PORT_FEATURE_WOL_AUTONEG_ADVERTISE_1000    0x40
                   4460: #define BNX2_PORT_FEATURE_WOL_RESERVED_PAUSE_CAP 0x400
                   4461: #define BNX2_PORT_FEATURE_WOL_RESERVED_ASYM_PAUSE_CAP   0x800
                   4462: 
                   4463: #define BNX2_PORT_FEATURE_MBA                  0xe0
                   4464: #define BNX2_PORT2_FEATURE_MBA                 0x154
                   4465: #define BNX2_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_SHIFT_BITS        0
                   4466: #define BNX2_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_MASK      0x3
                   4467: #define BNX2_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_PXE       0
                   4468: #define BNX2_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_RPL       1
                   4469: #define BNX2_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_BOOTP     2
                   4470: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_SHIFT_BITS     2
                   4471: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_MASK   0x3c
                   4472: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_AUTONEG        0
                   4473: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_10HALF         0x4
                   4474: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_10FULL         0x8
                   4475: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_100HALF        0xc
                   4476: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_100FULL        0x10
                   4477: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_1000HALF       0x14
                   4478: #define BNX2_PORT_FEATURE_MBA_LINK_SPEED_1000FULL       0x18
                   4479: #define BNX2_PORT_FEATURE_MBA_SETUP_PROMPT_ENABLE       0x40
                   4480: #define BNX2_PORT_FEATURE_MBA_HOTKEY_CTRL_S     0
                   4481: #define BNX2_PORT_FEATURE_MBA_HOTKEY_CTRL_B     0x80
                   4482: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_SHIFT_BITS   8
                   4483: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_MASK         0xff00
                   4484: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_DISABLED     0
                   4485: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_1K   0x100
                   4486: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_2K   0x200
                   4487: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_4K   0x300
                   4488: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_8K   0x400
                   4489: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_16K  0x500
                   4490: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_32K  0x600
                   4491: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_64K  0x700
                   4492: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_128K         0x800
                   4493: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_256K         0x900
                   4494: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_512K         0xa00
                   4495: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_1M   0xb00
                   4496: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_2M   0xc00
                   4497: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_4M   0xd00
                   4498: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_8M   0xe00
                   4499: #define BNX2_PORT_FEATURE_MBA_EXP_ROM_SIZE_16M  0xf00
                   4500: #define BNX2_PORT_FEATURE_MBA_MSG_TIMEOUT_SHIFT_BITS    16
                   4501: #define BNX2_PORT_FEATURE_MBA_MSG_TIMEOUT_MASK  0xf0000
                   4502: #define BNX2_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_SHIFT_BITS         20
                   4503: #define BNX2_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_MASK       0x300000
                   4504: #define BNX2_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_AUTO       0
                   4505: #define BNX2_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_BBS        0x100000
                   4506: #define BNX2_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT18H     0x200000
                   4507: #define BNX2_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT19H     0x300000
                   4508: 
                   4509: #define BNX2_PORT_FEATURE_IMD                  0xe4
                   4510: #define BNX2_PORT2_FEATURE_IMD                 0x158
                   4511: #define BNX2_PORT_FEATURE_IMD_LINK_OVERRIDE_DEFAULT     0
                   4512: #define BNX2_PORT_FEATURE_IMD_LINK_OVERRIDE_ENABLE      1
                   4513: 
                   4514: #define BNX2_PORT_FEATURE_VLAN                 0xe8
                   4515: #define BNX2_PORT2_FEATURE_VLAN                        0x15c
                   4516: #define BNX2_PORT_FEATURE_MBA_VLAN_TAG_MASK     0xffff
                   4517: #define BNX2_PORT_FEATURE_MBA_VLAN_ENABLE       0x10000
                   4518: 
                   4519: #define BNX2_BC_STATE_RESET_TYPE               0x000001c0
                   4520: #define BNX2_BC_STATE_RESET_TYPE_SIG            0x00005254
                   4521: #define BNX2_BC_STATE_RESET_TYPE_SIG_MASK       0x0000ffff
                   4522: #define BNX2_BC_STATE_RESET_TYPE_NONE   (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4523:                                          0x00010000)
                   4524: #define BNX2_BC_STATE_RESET_TYPE_PCI    (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4525:                                          0x00020000)
                   4526: #define BNX2_BC_STATE_RESET_TYPE_VAUX   (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4527:                                          0x00030000)
                   4528: #define BNX2_BC_STATE_RESET_TYPE_DRV_MASK       DRV_MSG_CODE         
                   4529: #define BNX2_BC_STATE_RESET_TYPE_DRV_RESET (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4530:                                            DRV_MSG_CODE_RESET)
                   4531: #define BNX2_BC_STATE_RESET_TYPE_DRV_UNLOAD (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4532:                                             DRV_MSG_CODE_UNLOAD)
                   4533: #define BNX2_BC_STATE_RESET_TYPE_DRV_SHUTDOWN (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4534:                                               DRV_MSG_CODE_SHUTDOWN)
                   4535: #define BNX2_BC_STATE_RESET_TYPE_DRV_WOL (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4536:                                          DRV_MSG_CODE_WOL)
                   4537: #define BNX2_BC_STATE_RESET_TYPE_DRV_DIAG (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4538:                                           DRV_MSG_CODE_DIAG)
                   4539: #define BNX2_BC_STATE_RESET_TYPE_VALUE(msg) (BNX2_BC_STATE_RESET_TYPE_SIG | \
                   4540:                                             (msg))
                   4541: 
                   4542: #define BNX2_BC_STATE                          0x000001c4
                   4543: #define BNX2_BC_STATE_ERR_MASK                  0x0000ff00
                   4544: #define BNX2_BC_STATE_SIGN                      0x42530000
                   4545: #define BNX2_BC_STATE_SIGN_MASK                         0xffff0000
                   4546: #define BNX2_BC_STATE_BC1_START                         (BNX2_BC_STATE_SIGN | 0x1)
                   4547: #define BNX2_BC_STATE_GET_NVM_CFG1              (BNX2_BC_STATE_SIGN | 0x2)
                   4548: #define BNX2_BC_STATE_PROG_BAR                  (BNX2_BC_STATE_SIGN | 0x3)
                   4549: #define BNX2_BC_STATE_INIT_VID                  (BNX2_BC_STATE_SIGN | 0x4)
                   4550: #define BNX2_BC_STATE_GET_NVM_CFG2              (BNX2_BC_STATE_SIGN | 0x5)
                   4551: #define BNX2_BC_STATE_APPLY_WKARND              (BNX2_BC_STATE_SIGN | 0x6)
                   4552: #define BNX2_BC_STATE_LOAD_BC2                  (BNX2_BC_STATE_SIGN | 0x7)
                   4553: #define BNX2_BC_STATE_GOING_BC2                         (BNX2_BC_STATE_SIGN | 0x8)
                   4554: #define BNX2_BC_STATE_GOING_DIAG                (BNX2_BC_STATE_SIGN | 0x9)
                   4555: #define BNX2_BC_STATE_RT_FINAL_INIT             (BNX2_BC_STATE_SIGN | 0x81)
                   4556: #define BNX2_BC_STATE_RT_WKARND                         (BNX2_BC_STATE_SIGN | 0x82)
                   4557: #define BNX2_BC_STATE_RT_DRV_PULSE              (BNX2_BC_STATE_SIGN | 0x83)
                   4558: #define BNX2_BC_STATE_RT_FIOEVTS                (BNX2_BC_STATE_SIGN | 0x84)
                   4559: #define BNX2_BC_STATE_RT_DRV_CMD                (BNX2_BC_STATE_SIGN | 0x85)
                   4560: #define BNX2_BC_STATE_RT_LOW_POWER              (BNX2_BC_STATE_SIGN | 0x86)
                   4561: #define BNX2_BC_STATE_RT_SET_WOL                (BNX2_BC_STATE_SIGN | 0x87)
                   4562: #define BNX2_BC_STATE_RT_OTHER_FW               (BNX2_BC_STATE_SIGN | 0x88)
                   4563: #define BNX2_BC_STATE_RT_GOING_D3               (BNX2_BC_STATE_SIGN | 0x89)
                   4564: #define BNX2_BC_STATE_ERR_BAD_VERSION           (BNX2_BC_STATE_SIGN | 0x0100)
                   4565: #define BNX2_BC_STATE_ERR_BAD_BC2_CRC           (BNX2_BC_STATE_SIGN | 0x0200)
                   4566: #define BNX2_BC_STATE_ERR_BC1_LOOP              (BNX2_BC_STATE_SIGN | 0x0300)
                   4567: #define BNX2_BC_STATE_ERR_UNKNOWN_CMD           (BNX2_BC_STATE_SIGN | 0x0400)
                   4568: #define BNX2_BC_STATE_ERR_DRV_DEAD              (BNX2_BC_STATE_SIGN | 0x0500)
                   4569: #define BNX2_BC_STATE_ERR_NO_RXP                (BNX2_BC_STATE_SIGN | 0x0600)
                   4570: #define BNX2_BC_STATE_ERR_TOO_MANY_RBUF                 (BNX2_BC_STATE_SIGN | 0x0700)
                   4571:        
                   4572: #define BNX2_BC_STATE_DEBUG_CMD                        0x1dc
                   4573: #define BNX2_BC_STATE_BC_DBG_CMD_SIGNATURE      0x42440000
                   4574: #define BNX2_BC_STATE_BC_DBG_CMD_SIGNATURE_MASK         0xffff0000
                   4575: #define BNX2_BC_STATE_BC_DBG_CMD_LOOP_CNT_MASK  0xffff
                   4576: #define BNX2_BC_STATE_BC_DBG_CMD_LOOP_INFINITE  0xffff
                   4577: 
                   4578: #define HOST_VIEW_SHMEM_BASE                   0x167c00
                   4579: 
                   4580: /* Enable or disable autonegotiation.  If this is set to enable,
                   4581:  * the forced link modes above are completely ignored.
                   4582:  */
                   4583: #define AUTONEG_DISABLE                0x00
                   4584: #define AUTONEG_ENABLE         0x01
                   4585: 
                   4586: #define RX_OFFSET              (sizeof(struct l2_fhdr) + 2)
                   4587: 
                   4588: #define RX_BUF_CNT             20
                   4589: 
                   4590: /* 8 for CRC and VLAN */
                   4591: #define RX_BUF_USE_SIZE                (ETH_MAX_MTU + ETH_HLEN + RX_OFFSET + 8)
                   4592: 
                   4593: /* 8 for alignment */
                   4594: //#define RX_BUF_SIZE          (RX_BUF_USE_SIZE + 8)
                   4595: #define RX_BUF_SIZE            (L1_CACHE_ALIGN(RX_BUF_USE_SIZE + 8))
                   4596: 
                   4597: 
                   4598: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.