]> nv-tegra.nvidia Code Review - linux-3.10.git/blobdiff - drivers/net/bnx2.h
[BNX2]: factor out gzip unpacker
[linux-3.10.git] / drivers / net / bnx2.h
index 49a5de253b17ff1af7f18fcfc7c92cacc0e7a2cb..a717459cc8d46b966153750e90f452520147cae3 100644 (file)
@@ -6338,6 +6338,8 @@ struct l2_fhdr {
 
 #define RX_COPY_THRESH                 92
 
+#define BNX2_MISC_ENABLE_DEFAULT       0x7ffffff
+
 #define DMA_READ_CHANS 5
 #define DMA_WRITE_CHANS        3
 
@@ -6431,6 +6433,11 @@ struct sw_bd {
 #define ST_MICRO_FLASH_PAGE_SIZE               256
 #define ST_MICRO_FLASH_BASE_TOTAL_SIZE         65536
 
+#define BCM5709_FLASH_PAGE_BITS                        8
+#define BCM5709_FLASH_PHY_PAGE_SIZE            (1 << BCM5709_FLASH_PAGE_BITS)
+#define BCM5709_FLASH_BYTE_ADDR_MASK           (BCM5709_FLASH_PHY_PAGE_SIZE-1)
+#define BCM5709_FLASH_PAGE_SIZE                        256
+
 #define NVRAM_TIMEOUT_COUNT                    30000
 
 
@@ -6447,7 +6454,10 @@ struct flash_spec {
        u32 config2;
        u32 config3;
        u32 write1;
-       u32 buffered;
+       u32 flags;
+#define BNX2_NV_BUFFERED       0x00000001
+#define BNX2_NV_TRANSLATE      0x00000002
+#define BNX2_NV_WREN           0x00000004
        u32 page_bits;
        u32 page_size;
        u32 addr_mask;
@@ -6463,6 +6473,8 @@ struct bnx2 {
        struct net_device       *dev;
        struct pci_dev          *pdev;
 
+       struct napi_struct      napi;
+
        atomic_t                intr_sem;
 
        struct status_block     *status_blk;
@@ -6537,6 +6549,7 @@ struct bnx2 {
 #define PHY_INT_MODE_AUTO_POLLING_FLAG 0x100
 #define PHY_INT_MODE_LINK_READY_FLAG   0x200
 #define PHY_DIS_EARLY_DAC_FLAG         0x400
+#define REMOTE_PHY_CAP_FLAG            0x800
 
        u32                     mii_bmcr;
        u32                     mii_bmsr;
@@ -6625,6 +6638,7 @@ struct bnx2 {
        u16                     req_line_speed;
        u8                      req_duplex;
 
+       u8                      phy_port;
        u8                      link_up;
 
        u16                     line_speed;
@@ -6656,7 +6670,7 @@ struct bnx2 {
 
        u32                     shmem_base;
 
-       u32                     fw_ver;
+       char                    fw_version[32];
 
        int                     pm_cap;
        int                     pcix_cap;
@@ -6667,9 +6681,6 @@ struct bnx2 {
        u32                     flash_size;
 
        int                     status_stats_size;
-
-       struct z_stream_s       *strm;
-       void                    *gunzip_buf;
 };
 
 static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset);
@@ -6727,7 +6738,7 @@ struct fw_info {
        const u32 text_addr;
        const u32 text_len;
        const u32 text_index;
-       u32 *text;
+/*     u32 *text;*/
        u8 *gz_text;
        const u32 gz_text_len;
 
@@ -6770,7 +6781,7 @@ struct fw_info {
  * the firmware has timed out, the driver will assume there is no firmware
  * running and there won't be any firmware-driver synchronization during a
  * driver reset. */
-#define FW_ACK_TIME_OUT_MS                  100
+#define FW_ACK_TIME_OUT_MS                  1000
 
 
 #define BNX2_DRV_RESET_SIGNATURE               0x00000000
@@ -6788,6 +6799,7 @@ struct fw_info {
 #define BNX2_DRV_MSG_CODE_DIAG                  0x07000000
 #define BNX2_DRV_MSG_CODE_SUSPEND_NO_WOL        0x09000000
 #define BNX2_DRV_MSG_CODE_UNLOAD_LNK_DN                 0x0b000000
+#define BNX2_DRV_MSG_CODE_CMD_SET_LINK          0x10000000
 
 #define BNX2_DRV_MSG_DATA                       0x00ff0000
 #define BNX2_DRV_MSG_DATA_WAIT0                         0x00010000
@@ -6836,6 +6848,7 @@ struct fw_info {
 #define BNX2_LINK_STATUS_SERDES_LINK            (1<<20)
 #define BNX2_LINK_STATUS_PARTNER_AD_2500FULL    (1<<21)
 #define BNX2_LINK_STATUS_PARTNER_AD_2500HALF    (1<<22)
+#define BNX2_LINK_STATUS_HEART_BEAT_EXPIRED     (1<<31)
 
 #define BNX2_DRV_PULSE_MB                      0x00000010
 #define BNX2_DRV_PULSE_SEQ_MASK                         0x00007fff
@@ -6845,6 +6858,30 @@ struct fw_info {
  * This is used for debugging. */
 #define BNX2_DRV_MSG_DATA_PULSE_CODE_ALWAYS_ALIVE       0x00080000
 
+#define BNX2_DRV_MB_ARG0                       0x00000014
+#define BNX2_NETLINK_SET_LINK_SPEED_10HALF      (1<<0)
+#define BNX2_NETLINK_SET_LINK_SPEED_10FULL      (1<<1)
+#define BNX2_NETLINK_SET_LINK_SPEED_10          \
+       (BNX2_NETLINK_SET_LINK_SPEED_10HALF |    \
+        BNX2_NETLINK_SET_LINK_SPEED_10FULL)
+#define BNX2_NETLINK_SET_LINK_SPEED_100HALF     (1<<2)
+#define BNX2_NETLINK_SET_LINK_SPEED_100FULL     (1<<3)
+#define BNX2_NETLINK_SET_LINK_SPEED_100                 \
+       (BNX2_NETLINK_SET_LINK_SPEED_100HALF |   \
+        BNX2_NETLINK_SET_LINK_SPEED_100FULL)
+#define BNX2_NETLINK_SET_LINK_SPEED_1GHALF      (1<<4)
+#define BNX2_NETLINK_SET_LINK_SPEED_1GFULL      (1<<5)
+#define BNX2_NETLINK_SET_LINK_SPEED_2G5HALF     (1<<6)
+#define BNX2_NETLINK_SET_LINK_SPEED_2G5FULL     (1<<7)
+#define BNX2_NETLINK_SET_LINK_SPEED_10GHALF     (1<<8)
+#define BNX2_NETLINK_SET_LINK_SPEED_10GFULL     (1<<9)
+#define BNX2_NETLINK_SET_LINK_ENABLE_AUTONEG    (1<<10)
+#define BNX2_NETLINK_SET_LINK_PHY_APP_REMOTE    (1<<11)
+#define BNX2_NETLINK_SET_LINK_FC_SYM_PAUSE      (1<<12)
+#define BNX2_NETLINK_SET_LINK_FC_ASYM_PAUSE     (1<<13)
+#define BNX2_NETLINK_SET_LINK_ETH_AT_WIRESPEED  (1<<14)
+#define BNX2_NETLINK_SET_LINK_PHY_RESET                 (1<<15)
+
 #define BNX2_DEV_INFO_SIGNATURE                        0x00000020
 #define BNX2_DEV_INFO_SIGNATURE_MAGIC           0x44564900
 #define BNX2_DEV_INFO_SIGNATURE_MAGIC_MASK      0xffffff00
@@ -7006,6 +7043,8 @@ struct fw_info {
 #define BNX2_PORT_FEATURE_MBA_VLAN_TAG_MASK     0xffff
 #define BNX2_PORT_FEATURE_MBA_VLAN_ENABLE       0x10000
 
+#define BNX2_MFW_VER_PTR                       0x00000014c
+
 #define BNX2_BC_STATE_RESET_TYPE               0x000001c0
 #define BNX2_BC_STATE_RESET_TYPE_SIG            0x00005254
 #define BNX2_BC_STATE_RESET_TYPE_SIG_MASK       0x0000ffff
@@ -7059,12 +7098,42 @@ struct fw_info {
 #define BNX2_BC_STATE_ERR_NO_RXP                (BNX2_BC_STATE_SIGN | 0x0600)
 #define BNX2_BC_STATE_ERR_TOO_MANY_RBUF                 (BNX2_BC_STATE_SIGN | 0x0700)
 
+#define BNX2_BC_STATE_CONDITION                        0x000001c8
+#define BNX2_CONDITION_MFW_RUN_UNKNOWN          0x00000000
+#define BNX2_CONDITION_MFW_RUN_IPMI             0x00002000
+#define BNX2_CONDITION_MFW_RUN_UMP              0x00004000
+#define BNX2_CONDITION_MFW_RUN_NCSI             0x00006000
+#define BNX2_CONDITION_MFW_RUN_NONE             0x0000e000
+#define BNX2_CONDITION_MFW_RUN_MASK             0x0000e000
+
 #define BNX2_BC_STATE_DEBUG_CMD                        0x1dc
 #define BNX2_BC_STATE_BC_DBG_CMD_SIGNATURE      0x42440000
 #define BNX2_BC_STATE_BC_DBG_CMD_SIGNATURE_MASK         0xffff0000
 #define BNX2_BC_STATE_BC_DBG_CMD_LOOP_CNT_MASK  0xffff
 #define BNX2_BC_STATE_BC_DBG_CMD_LOOP_INFINITE  0xffff
 
+#define BNX2_FW_EVT_CODE_MB                    0x354
+#define BNX2_FW_EVT_CODE_SW_TIMER_EXPIRATION_EVENT 0x00000000
+#define BNX2_FW_EVT_CODE_LINK_EVENT             0x00000001
+
+#define BNX2_DRV_ACK_CAP_MB                    0x364
+#define BNX2_DRV_ACK_CAP_SIGNATURE              0x35450000
+#define BNX2_CAPABILITY_SIGNATURE_MASK          0xFFFF0000
+
+#define BNX2_FW_CAP_MB                         0x368
+#define BNX2_FW_CAP_SIGNATURE                   0xaa550000
+#define BNX2_FW_ACK_DRV_SIGNATURE               0x52500000
+#define BNX2_FW_CAP_SIGNATURE_MASK              0xffff0000
+#define BNX2_FW_CAP_REMOTE_PHY_CAPABLE          0x00000001
+#define BNX2_FW_CAP_REMOTE_PHY_PRESENT          0x00000002
+
+#define BNX2_RPHY_SIGNATURE                    0x36c
+#define BNX2_RPHY_LOAD_SIGNATURE                0x5a5a5a5a
+
+#define BNX2_RPHY_FLAGS                                0x370
+#define BNX2_RPHY_SERDES_LINK                  0x374
+#define BNX2_RPHY_COPPER_LINK                  0x378
+
 #define HOST_VIEW_SHMEM_BASE                   0x167c00
 
 #endif