aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x_hsi.h
diff options
context:
space:
mode:
authorEilon Greenstein <eilong@broadcom.com>2009-02-16 02:24:08 -0500
committerDavid S. Miller <davem@davemloft.net>2009-02-16 02:24:08 -0500
commit8d9c5f34a25d6a30d15a800d83a3428ad44271d8 (patch)
tree64b1115e74d23ae5dc24f38ab070f85acfcde430 /drivers/net/bnx2x_hsi.h
parent33af6bcc005a826726b48e8775df5d58112bc10b (diff)
bnx2x: New FW
This is the FW blob and the relevant definitions without any logic. It also contains the minimal mandatory code changes to work with this FW but it does not contain enabling of the new features that this FW provides. This FW is needed for: - More efficient multi-queue - per queue statistics - Big-endian issue with MSI - Improved pause response Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x_hsi.h')
-rw-r--r--drivers/net/bnx2x_hsi.h174
1 files changed, 91 insertions, 83 deletions
diff --git a/drivers/net/bnx2x_hsi.h b/drivers/net/bnx2x_hsi.h
index efd764427fa1..c41682353050 100644
--- a/drivers/net/bnx2x_hsi.h
+++ b/drivers/net/bnx2x_hsi.h
@@ -1212,8 +1212,9 @@ struct host_func_stats {
1212 1212
1213 1213
1214#define BCM_5710_FW_MAJOR_VERSION 4 1214#define BCM_5710_FW_MAJOR_VERSION 4
1215#define BCM_5710_FW_MINOR_VERSION 5 1215#define BCM_5710_FW_MINOR_VERSION 8
1216#define BCM_5710_FW_REVISION_VERSION 1 1216#define BCM_5710_FW_REVISION_VERSION 53
1217#define BCM_5710_FW_ENGINEERING_VERSION 0
1217#define BCM_5710_FW_COMPILE_FLAGS 1 1218#define BCM_5710_FW_COMPILE_FLAGS 1
1218 1219
1219 1220
@@ -1465,9 +1466,11 @@ struct ustorm_eth_st_context_config {
1465#endif 1466#endif
1466#if defined(__BIG_ENDIAN) 1467#if defined(__BIG_ENDIAN)
1467 u16 bd_buff_size; 1468 u16 bd_buff_size;
1468 u16 mc_alignment_size; 1469 u8 statistics_counter_id;
1470 u8 mc_alignment_log_size;
1469#elif defined(__LITTLE_ENDIAN) 1471#elif defined(__LITTLE_ENDIAN)
1470 u16 mc_alignment_size; 1472 u8 mc_alignment_log_size;
1473 u8 statistics_counter_id;
1471 u16 bd_buff_size; 1474 u16 bd_buff_size;
1472#endif 1475#endif
1473#if defined(__BIG_ENDIAN) 1476#if defined(__BIG_ENDIAN)
@@ -1479,13 +1482,7 @@ struct ustorm_eth_st_context_config {
1479 u8 __local_bd_prod; 1482 u8 __local_bd_prod;
1480 u8 __local_sge_prod; 1483 u8 __local_sge_prod;
1481#endif 1484#endif
1482#if defined(__BIG_ENDIAN) 1485 u32 reserved;
1483 u16 __bd_cons;
1484 u16 __sge_cons;
1485#elif defined(__LITTLE_ENDIAN)
1486 u16 __sge_cons;
1487 u16 __bd_cons;
1488#endif
1489 u32 bd_page_base_lo; 1486 u32 bd_page_base_lo;
1490 u32 bd_page_base_hi; 1487 u32 bd_page_base_hi;
1491 u32 sge_page_base_lo; 1488 u32 sge_page_base_lo;
@@ -2162,9 +2159,9 @@ struct host_status_block {
2162 * The data for RSS setup ramrod 2159 * The data for RSS setup ramrod
2163 */ 2160 */
2164struct eth_client_setup_ramrod_data { 2161struct eth_client_setup_ramrod_data {
2165 u32 client_id_5b; 2162 u32 client_id;
2166 u8 is_rdma_1b; 2163 u8 is_rdma;
2167 u8 reserved0; 2164 u8 is_fcoe;
2168 u16 reserved1; 2165 u16 reserved1;
2169}; 2166};
2170 2167
@@ -2225,7 +2222,7 @@ struct eth_fast_path_rx_cqe {
2225 * The data for RSS setup ramrod 2222 * The data for RSS setup ramrod
2226 */ 2223 */
2227struct eth_halt_ramrod_data { 2224struct eth_halt_ramrod_data {
2228 u32 client_id_5b; 2225 u32 client_id;
2229 u32 reserved0; 2226 u32 reserved0;
2230}; 2227};
2231 2228
@@ -2236,11 +2233,11 @@ struct eth_halt_ramrod_data {
2236struct eth_query_ramrod_data { 2233struct eth_query_ramrod_data {
2237#if defined(__BIG_ENDIAN) 2234#if defined(__BIG_ENDIAN)
2238 u8 reserved0; 2235 u8 reserved0;
2239 u8 collect_port_1b; 2236 u8 collect_port;
2240 u16 drv_counter; 2237 u16 drv_counter;
2241#elif defined(__LITTLE_ENDIAN) 2238#elif defined(__LITTLE_ENDIAN)
2242 u16 drv_counter; 2239 u16 drv_counter;
2243 u8 collect_port_1b; 2240 u8 collect_port;
2244 u8 reserved0; 2241 u8 reserved0;
2245#endif 2242#endif
2246 u32 ctr_id_vector; 2243 u32 ctr_id_vector;
@@ -2282,7 +2279,7 @@ struct common_ramrod_eth_rx_cqe {
2282#define COMMON_RAMROD_ETH_RX_CQE_TYPE_SHIFT 0 2279#define COMMON_RAMROD_ETH_RX_CQE_TYPE_SHIFT 0
2283#define COMMON_RAMROD_ETH_RX_CQE_RESERVED0 (0x7F<<1) 2280#define COMMON_RAMROD_ETH_RX_CQE_RESERVED0 (0x7F<<1)
2284#define COMMON_RAMROD_ETH_RX_CQE_RESERVED0_SHIFT 1 2281#define COMMON_RAMROD_ETH_RX_CQE_RESERVED0_SHIFT 1
2285 u8 conn_type_3b; 2282 u8 conn_type;
2286 u16 reserved1; 2283 u16 reserved1;
2287 u32 conn_and_cmd_data; 2284 u32 conn_and_cmd_data;
2288#define COMMON_RAMROD_ETH_RX_CQE_CID (0xFFFFFF<<0) 2285#define COMMON_RAMROD_ETH_RX_CQE_CID (0xFFFFFF<<0)
@@ -2377,14 +2374,16 @@ struct tstorm_eth_function_common_config {
2377#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY_SHIFT 2 2374#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY_SHIFT 2
2378#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY (0x1<<3) 2375#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY (0x1<<3)
2379#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY_SHIFT 3 2376#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY_SHIFT 3
2380#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_ENABLE (0x1<<4) 2377#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_MODE (0x7<<4)
2381#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_ENABLE_SHIFT 4 2378#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_MODE_SHIFT 4
2382#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE (0x1<<5) 2379#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE (0x1<<7)
2383#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE_SHIFT 5 2380#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE_SHIFT 7
2384#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM (0x1<<6) 2381#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM (0x1<<8)
2385#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 6 2382#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 8
2386#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x1FF<<7) 2383#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM (0x1<<9)
2387#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 7 2384#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM_SHIFT 9
2385#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x3F<<10)
2386#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 10
2388#elif defined(__LITTLE_ENDIAN) 2387#elif defined(__LITTLE_ENDIAN)
2389 u16 config_flags; 2388 u16 config_flags;
2390#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY (0x1<<0) 2389#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY (0x1<<0)
@@ -2395,14 +2394,16 @@ struct tstorm_eth_function_common_config {
2395#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY_SHIFT 2 2394#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY_SHIFT 2
2396#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY (0x1<<3) 2395#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY (0x1<<3)
2397#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY_SHIFT 3 2396#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY_SHIFT 3
2398#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_ENABLE (0x1<<4) 2397#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_MODE (0x7<<4)
2399#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_ENABLE_SHIFT 4 2398#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_MODE_SHIFT 4
2400#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE (0x1<<5) 2399#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE (0x1<<7)
2401#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE_SHIFT 5 2400#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE_SHIFT 7
2402#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM (0x1<<6) 2401#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM (0x1<<8)
2403#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 6 2402#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_VLAN_IN_CAM_SHIFT 8
2404#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x1FF<<7) 2403#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM (0x1<<9)
2405#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 7 2404#define TSTORM_ETH_FUNCTION_COMMON_CONFIG_E1HOV_IN_CAM_SHIFT 9
2405#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x3F<<10)
2406#define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 10
2406 u8 rss_result_mask; 2407 u8 rss_result_mask;
2407 u8 leading_client_id; 2408 u8 leading_client_id;
2408#endif 2409#endif
@@ -2422,7 +2423,7 @@ struct eth_update_ramrod_data {
2422 * MAC filtering configuration command header 2423 * MAC filtering configuration command header
2423 */ 2424 */
2424struct mac_configuration_hdr { 2425struct mac_configuration_hdr {
2425 u8 length_6b; 2426 u8 length;
2426 u8 offset; 2427 u8 offset;
2427 u16 client_id; 2428 u16 client_id;
2428 u32 reserved1; 2429 u32 reserved1;
@@ -2544,24 +2545,28 @@ struct tstorm_eth_client_config {
2544#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0xFFF<<4) 2545#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0xFFF<<4)
2545#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 4 2546#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 4
2546 u16 config_flags; 2547 u16 config_flags;
2547#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE (0x1<<0) 2548#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE (0x1<<0)
2548#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE_SHIFT 0 2549#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE_SHIFT 0
2549#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<1) 2550#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE (0x1<<1)
2550#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 1 2551#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE_SHIFT 1
2551#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING (0x1<<2) 2552#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<2)
2552#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING_SHIFT 2 2553#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 2
2553#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0x1FFF<<3) 2554#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING (0x1<<3)
2554#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 3 2555#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING_SHIFT 3
2556#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0xFFF<<4)
2557#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 4
2555#elif defined(__LITTLE_ENDIAN) 2558#elif defined(__LITTLE_ENDIAN)
2556 u16 config_flags; 2559 u16 config_flags;
2557#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE (0x1<<0) 2560#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE (0x1<<0)
2558#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE_SHIFT 0 2561#define TSTORM_ETH_CLIENT_CONFIG_VLAN_REM_ENABLE_SHIFT 0
2559#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<1) 2562#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE (0x1<<1)
2560#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 1 2563#define TSTORM_ETH_CLIENT_CONFIG_E1HOV_REM_ENABLE_SHIFT 1
2561#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING (0x1<<2) 2564#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<2)
2562#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING_SHIFT 2 2565#define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 2
2563#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0x1FFF<<3) 2566#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING (0x1<<3)
2564#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 3 2567#define TSTORM_ETH_CLIENT_CONFIG_ENABLE_SGE_RING_SHIFT 3
2568#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0xFFF<<4)
2569#define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 4
2565 u16 drop_flags; 2570 u16 drop_flags;
2566#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR (0x1<<0) 2571#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR (0x1<<0)
2567#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR_SHIFT 0 2572#define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR_SHIFT 0
@@ -2594,9 +2599,26 @@ struct tstorm_eth_mac_filter_config {
2594 2599
2595 2600
2596/* 2601/*
2602 * common flag to indicate existance of TPA.
2603 */
2604struct tstorm_eth_tpa_exist {
2605#if defined(__BIG_ENDIAN)
2606 u16 reserved1;
2607 u8 reserved0;
2608 u8 tpa_exist;
2609#elif defined(__LITTLE_ENDIAN)
2610 u8 tpa_exist;
2611 u8 reserved0;
2612 u16 reserved1;
2613#endif
2614 u32 reserved2;
2615};
2616
2617
2618/*
2597 * Three RX producers for ETH 2619 * Three RX producers for ETH
2598 */ 2620 */
2599struct tstorm_eth_rx_producers { 2621struct ustorm_eth_rx_producers {
2600#if defined(__BIG_ENDIAN) 2622#if defined(__BIG_ENDIAN)
2601 u16 bd_prod; 2623 u16 bd_prod;
2602 u16 cqe_prod; 2624 u16 cqe_prod;
@@ -2615,23 +2637,6 @@ struct tstorm_eth_rx_producers {
2615 2637
2616 2638
2617/* 2639/*
2618 * common flag to indicate existence of TPA.
2619 */
2620struct tstorm_eth_tpa_exist {
2621#if defined(__BIG_ENDIAN)
2622 u16 reserved1;
2623 u8 reserved0;
2624 u8 tpa_exist;
2625#elif defined(__LITTLE_ENDIAN)
2626 u8 tpa_exist;
2627 u8 reserved0;
2628 u16 reserved1;
2629#endif
2630 u32 reserved2;
2631};
2632
2633
2634/*
2635 * per-port SAFC demo variables 2640 * per-port SAFC demo variables
2636 */ 2641 */
2637struct cmng_flags_per_port { 2642struct cmng_flags_per_port {
@@ -2674,15 +2679,15 @@ struct fairness_vars_per_port {
2674 */ 2679 */
2675struct safc_struct_per_port { 2680struct safc_struct_per_port {
2676#if defined(__BIG_ENDIAN) 2681#if defined(__BIG_ENDIAN)
2677 u16 __reserved0; 2682 u16 __reserved1;
2678 u8 cur_cos_types; 2683 u8 __reserved0;
2679 u8 safc_timeout_usec; 2684 u8 safc_timeout_usec;
2680#elif defined(__LITTLE_ENDIAN) 2685#elif defined(__LITTLE_ENDIAN)
2681 u8 safc_timeout_usec; 2686 u8 safc_timeout_usec;
2682 u8 cur_cos_types; 2687 u8 __reserved0;
2683 u16 __reserved0; 2688 u16 __reserved1;
2684#endif 2689#endif
2685 u8 cos_to_protocol[MAX_COS_NUMBER]; 2690 u16 cos_to_pause_mask[NUM_OF_SAFC_BITS];
2686}; 2691};
2687 2692
2688 2693
@@ -2788,13 +2793,15 @@ struct fairness_vars_per_vn {
2788 */ 2793 */
2789struct fw_version { 2794struct fw_version {
2790#if defined(__BIG_ENDIAN) 2795#if defined(__BIG_ENDIAN)
2791 u16 patch; 2796 u8 engineering;
2792 u8 primary; 2797 u8 revision;
2793 u8 client; 2798 u8 minor;
2799 u8 major;
2794#elif defined(__LITTLE_ENDIAN) 2800#elif defined(__LITTLE_ENDIAN)
2795 u8 client; 2801 u8 major;
2796 u8 primary; 2802 u8 minor;
2797 u16 patch; 2803 u8 revision;
2804 u8 engineering;
2798#endif 2805#endif
2799 u32 flags; 2806 u32 flags;
2800#define FW_VERSION_OPTIMIZED (0x1<<0) 2807#define FW_VERSION_OPTIMIZED (0x1<<0)
@@ -2812,9 +2819,10 @@ struct fw_version {
2812 * FW version stored in first line of pram 2819 * FW version stored in first line of pram
2813 */ 2820 */
2814struct pram_fw_version { 2821struct pram_fw_version {
2815 u8 client; 2822 u8 major;
2816 u8 primary; 2823 u8 minor;
2817 u16 patch; 2824 u8 revision;
2825 u8 engineering;
2818 u8 flags; 2826 u8 flags;
2819#define PRAM_FW_VERSION_OPTIMIZED (0x1<<0) 2827#define PRAM_FW_VERSION_OPTIMIZED (0x1<<0)
2820#define PRAM_FW_VERSION_OPTIMIZED_SHIFT 0 2828#define PRAM_FW_VERSION_OPTIMIZED_SHIFT 0