diff options
author | Vlad Zolotarov <vladz@broadcom.com> | 2011-06-14 07:33:44 -0400 |
---|---|---|
committer | David S. Miller <davem@conan.davemloft.net> | 2011-06-15 10:56:37 -0400 |
commit | 619c5cb6885b936c44ae1422ef805b69c6291485 (patch) | |
tree | 4604ae08f1eb12c6ad1f65106879c2e73946ae12 /drivers/net/bnx2x/bnx2x_link.h | |
parent | 042181f5aa8833a8918e1a91cfaf292146ffc62c (diff) |
New 7.0 FW: bnx2x, cnic, bnx2i, bnx2fc
New FW/HSI (7.0):
- Added support to 578xx chips
- Improved HSI - much less driver's direct access to the FW internal
memory needed.
New implementation of the HSI handling layer in the bnx2x (bnx2x_sp.c):
- Introduced chip dependent objects that have chip independent interfaces
for configuration of MACs, multicast addresses, Rx mode, indirection table,
fast path queues and function initialization/cleanup.
- Objects functionality is based on the private function pointers, which
allows not only a per-chip but also PF/VF differentiation while still
preserving the same interface towards the driver.
- Objects interface is not influenced by the HSI changes which do not require
providing new parameters keeping the code outside the bnx2x_sp.c invariant
with regard to such HSI chnages.
Changes in a CNIC, bnx2fc and bnx2i modules due to the new HSI.
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@conan.davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x/bnx2x_link.h')
-rw-r--r-- | drivers/net/bnx2x/bnx2x_link.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/net/bnx2x/bnx2x_link.h b/drivers/net/bnx2x/bnx2x_link.h index a106d8cbd69f..3fef7782490a 100644 --- a/drivers/net/bnx2x/bnx2x_link.h +++ b/drivers/net/bnx2x/bnx2x_link.h | |||
@@ -81,6 +81,7 @@ | |||
81 | #define PFC_BRB_FULL_LB_XOFF_THRESHOLD 170 | 81 | #define PFC_BRB_FULL_LB_XOFF_THRESHOLD 170 |
82 | #define PFC_BRB_FULL_LB_XON_THRESHOLD 250 | 82 | #define PFC_BRB_FULL_LB_XON_THRESHOLD 250 |
83 | 83 | ||
84 | #define MAXVAL(a, b) (((a) > (b)) ? (a) : (b)) | ||
84 | /***********************************************************/ | 85 | /***********************************************************/ |
85 | /* Structs */ | 86 | /* Structs */ |
86 | /***********************************************************/ | 87 | /***********************************************************/ |
@@ -262,6 +263,8 @@ struct link_vars { | |||
262 | #define MAC_TYPE_NONE 0 | 263 | #define MAC_TYPE_NONE 0 |
263 | #define MAC_TYPE_EMAC 1 | 264 | #define MAC_TYPE_EMAC 1 |
264 | #define MAC_TYPE_BMAC 2 | 265 | #define MAC_TYPE_BMAC 2 |
266 | #define MAC_TYPE_UMAC 3 | ||
267 | #define MAC_TYPE_XMAC 4 | ||
265 | 268 | ||
266 | u8 phy_link_up; /* internal phy link indication */ | 269 | u8 phy_link_up; /* internal phy link indication */ |
267 | u8 link_up; | 270 | u8 link_up; |
@@ -363,6 +366,20 @@ int bnx2x_phy_probe(struct link_params *params); | |||
363 | u8 bnx2x_fan_failure_det_req(struct bnx2x *bp, u32 shmem_base, | 366 | u8 bnx2x_fan_failure_det_req(struct bnx2x *bp, u32 shmem_base, |
364 | u32 shmem2_base, u8 port); | 367 | u32 shmem2_base, u8 port); |
365 | 368 | ||
369 | /* DCBX structs */ | ||
370 | |||
371 | /* Number of maximum COS per chip */ | ||
372 | #define DCBX_E2E3_MAX_NUM_COS (2) | ||
373 | #define DCBX_E3B0_MAX_NUM_COS_PORT0 (6) | ||
374 | #define DCBX_E3B0_MAX_NUM_COS_PORT1 (3) | ||
375 | #define DCBX_E3B0_MAX_NUM_COS ( \ | ||
376 | MAXVAL(DCBX_E3B0_MAX_NUM_COS_PORT0, \ | ||
377 | DCBX_E3B0_MAX_NUM_COS_PORT1)) | ||
378 | |||
379 | #define DCBX_MAX_NUM_COS ( \ | ||
380 | MAXVAL(DCBX_E3B0_MAX_NUM_COS, \ | ||
381 | DCBX_E2E3_MAX_NUM_COS)) | ||
382 | |||
366 | /* PFC port configuration params */ | 383 | /* PFC port configuration params */ |
367 | struct bnx2x_nig_brb_pfc_port_params { | 384 | struct bnx2x_nig_brb_pfc_port_params { |
368 | /* NIG */ | 385 | /* NIG */ |
@@ -370,8 +387,8 @@ struct bnx2x_nig_brb_pfc_port_params { | |||
370 | u32 llfc_out_en; | 387 | u32 llfc_out_en; |
371 | u32 llfc_enable; | 388 | u32 llfc_enable; |
372 | u32 pkt_priority_to_cos; | 389 | u32 pkt_priority_to_cos; |
373 | u32 rx_cos0_priority_mask; | 390 | u8 num_of_rx_cos_priority_mask; |
374 | u32 rx_cos1_priority_mask; | 391 | u32 rx_cos_priority_mask[DCBX_MAX_NUM_COS]; |
375 | u32 llfc_high_priority_classes; | 392 | u32 llfc_high_priority_classes; |
376 | u32 llfc_low_priority_classes; | 393 | u32 llfc_low_priority_classes; |
377 | /* BRB */ | 394 | /* BRB */ |