diff options
author | Eilon Greenstein <eilong@broadcom.com> | 2009-08-13 01:53:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-13 01:53:28 -0400 |
commit | ca00392cb8f5227c67ff52c656d91a764d022ab9 (patch) | |
tree | 007d82074e49d25d1ee6bfb484392032d463be91 /drivers/net/bnx2x_reg.h | |
parent | 6200f09036ee6f12822a9133dba7ed011b179c69 (diff) |
bnx2x: Using the new FW
The new FW improves the packets per second rate. It required a lot of change in
the FW which implies many changes in the driver to support it. It is now also
possible for the driver to use a separate MSI-X vector for Rx and Tx - this also
add some to the complicity of this change.
All things said - after this patch, practically all performance matrixes show
improvement.
Though Vladislav Zolotarov is not signed on this patch, he did most of the job
and deserves credit for that.
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x_reg.h')
-rw-r--r-- | drivers/net/bnx2x_reg.h | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/drivers/net/bnx2x_reg.h b/drivers/net/bnx2x_reg.h index 8e9e7a24f2fc..25639e2df52b 100644 --- a/drivers/net/bnx2x_reg.h +++ b/drivers/net/bnx2x_reg.h | |||
@@ -370,7 +370,6 @@ | |||
370 | #define CFC_REG_NUM_LCIDS_LEAVING 0x104018 | 370 | #define CFC_REG_NUM_LCIDS_LEAVING 0x104018 |
371 | /* [RW 8] The event id for aggregated interrupt 0 */ | 371 | /* [RW 8] The event id for aggregated interrupt 0 */ |
372 | #define CSDM_REG_AGG_INT_EVENT_0 0xc2038 | 372 | #define CSDM_REG_AGG_INT_EVENT_0 0xc2038 |
373 | #define CSDM_REG_AGG_INT_EVENT_1 0xc203c | ||
374 | #define CSDM_REG_AGG_INT_EVENT_10 0xc2060 | 373 | #define CSDM_REG_AGG_INT_EVENT_10 0xc2060 |
375 | #define CSDM_REG_AGG_INT_EVENT_11 0xc2064 | 374 | #define CSDM_REG_AGG_INT_EVENT_11 0xc2064 |
376 | #define CSDM_REG_AGG_INT_EVENT_12 0xc2068 | 375 | #define CSDM_REG_AGG_INT_EVENT_12 0xc2068 |
@@ -378,37 +377,27 @@ | |||
378 | #define CSDM_REG_AGG_INT_EVENT_14 0xc2070 | 377 | #define CSDM_REG_AGG_INT_EVENT_14 0xc2070 |
379 | #define CSDM_REG_AGG_INT_EVENT_15 0xc2074 | 378 | #define CSDM_REG_AGG_INT_EVENT_15 0xc2074 |
380 | #define CSDM_REG_AGG_INT_EVENT_16 0xc2078 | 379 | #define CSDM_REG_AGG_INT_EVENT_16 0xc2078 |
381 | #define CSDM_REG_AGG_INT_EVENT_17 0xc207c | ||
382 | #define CSDM_REG_AGG_INT_EVENT_18 0xc2080 | ||
383 | #define CSDM_REG_AGG_INT_EVENT_19 0xc2084 | ||
384 | #define CSDM_REG_AGG_INT_EVENT_2 0xc2040 | 380 | #define CSDM_REG_AGG_INT_EVENT_2 0xc2040 |
385 | #define CSDM_REG_AGG_INT_EVENT_20 0xc2088 | ||
386 | #define CSDM_REG_AGG_INT_EVENT_21 0xc208c | ||
387 | #define CSDM_REG_AGG_INT_EVENT_22 0xc2090 | ||
388 | #define CSDM_REG_AGG_INT_EVENT_23 0xc2094 | ||
389 | #define CSDM_REG_AGG_INT_EVENT_24 0xc2098 | ||
390 | #define CSDM_REG_AGG_INT_EVENT_25 0xc209c | ||
391 | #define CSDM_REG_AGG_INT_EVENT_26 0xc20a0 | ||
392 | #define CSDM_REG_AGG_INT_EVENT_27 0xc20a4 | ||
393 | #define CSDM_REG_AGG_INT_EVENT_28 0xc20a8 | ||
394 | #define CSDM_REG_AGG_INT_EVENT_29 0xc20ac | ||
395 | #define CSDM_REG_AGG_INT_EVENT_3 0xc2044 | 381 | #define CSDM_REG_AGG_INT_EVENT_3 0xc2044 |
396 | #define CSDM_REG_AGG_INT_EVENT_30 0xc20b0 | ||
397 | #define CSDM_REG_AGG_INT_EVENT_31 0xc20b4 | ||
398 | #define CSDM_REG_AGG_INT_EVENT_4 0xc2048 | 382 | #define CSDM_REG_AGG_INT_EVENT_4 0xc2048 |
399 | /* [RW 1] The T bit for aggregated interrupt 0 */ | 383 | #define CSDM_REG_AGG_INT_EVENT_5 0xc204c |
400 | #define CSDM_REG_AGG_INT_T_0 0xc20b8 | 384 | #define CSDM_REG_AGG_INT_EVENT_6 0xc2050 |
401 | #define CSDM_REG_AGG_INT_T_1 0xc20bc | 385 | #define CSDM_REG_AGG_INT_EVENT_7 0xc2054 |
402 | #define CSDM_REG_AGG_INT_T_10 0xc20e0 | 386 | #define CSDM_REG_AGG_INT_EVENT_8 0xc2058 |
403 | #define CSDM_REG_AGG_INT_T_11 0xc20e4 | 387 | #define CSDM_REG_AGG_INT_EVENT_9 0xc205c |
404 | #define CSDM_REG_AGG_INT_T_12 0xc20e8 | 388 | /* [RW 1] For each aggregated interrupt index whether the mode is normal (0) |
405 | #define CSDM_REG_AGG_INT_T_13 0xc20ec | 389 | or auto-mask-mode (1) */ |
406 | #define CSDM_REG_AGG_INT_T_14 0xc20f0 | 390 | #define CSDM_REG_AGG_INT_MODE_10 0xc21e0 |
407 | #define CSDM_REG_AGG_INT_T_15 0xc20f4 | 391 | #define CSDM_REG_AGG_INT_MODE_11 0xc21e4 |
408 | #define CSDM_REG_AGG_INT_T_16 0xc20f8 | 392 | #define CSDM_REG_AGG_INT_MODE_12 0xc21e8 |
409 | #define CSDM_REG_AGG_INT_T_17 0xc20fc | 393 | #define CSDM_REG_AGG_INT_MODE_13 0xc21ec |
410 | #define CSDM_REG_AGG_INT_T_18 0xc2100 | 394 | #define CSDM_REG_AGG_INT_MODE_14 0xc21f0 |
411 | #define CSDM_REG_AGG_INT_T_19 0xc2104 | 395 | #define CSDM_REG_AGG_INT_MODE_15 0xc21f4 |
396 | #define CSDM_REG_AGG_INT_MODE_16 0xc21f8 | ||
397 | #define CSDM_REG_AGG_INT_MODE_6 0xc21d0 | ||
398 | #define CSDM_REG_AGG_INT_MODE_7 0xc21d4 | ||
399 | #define CSDM_REG_AGG_INT_MODE_8 0xc21d8 | ||
400 | #define CSDM_REG_AGG_INT_MODE_9 0xc21dc | ||
412 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ | 401 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ |
413 | #define CSDM_REG_CFC_RSP_START_ADDR 0xc2008 | 402 | #define CSDM_REG_CFC_RSP_START_ADDR 0xc2008 |
414 | /* [RW 16] The maximum value of the competion counter #0 */ | 403 | /* [RW 16] The maximum value of the competion counter #0 */ |
@@ -1421,6 +1410,8 @@ | |||
1421 | /* [RW 1] e1hmf for WOL. If clr WOL signal o the PXP will be send on bit 0 | 1410 | /* [RW 1] e1hmf for WOL. If clr WOL signal o the PXP will be send on bit 0 |
1422 | only. */ | 1411 | only. */ |
1423 | #define MISC_REG_E1HMF_MODE 0xa5f8 | 1412 | #define MISC_REG_E1HMF_MODE 0xa5f8 |
1413 | /* [RW 32] Debug only: spare RW register reset by core reset */ | ||
1414 | #define MISC_REG_GENERIC_CR_0 0xa460 | ||
1424 | /* [RW 32] GPIO. [31-28] FLOAT port 0; [27-24] FLOAT port 0; When any of | 1415 | /* [RW 32] GPIO. [31-28] FLOAT port 0; [27-24] FLOAT port 0; When any of |
1425 | these bits is written as a '1'; the corresponding SPIO bit will turn off | 1416 | these bits is written as a '1'; the corresponding SPIO bit will turn off |
1426 | it's drivers and become an input. This is the reset state of all GPIO | 1417 | it's drivers and become an input. This is the reset state of all GPIO |
@@ -1729,6 +1720,7 @@ | |||
1729 | /* [RW 3] for port0 enable for llfc ppp and pause. b0 - brb1 enable; b1- | 1720 | /* [RW 3] for port0 enable for llfc ppp and pause. b0 - brb1 enable; b1- |
1730 | tsdm enable; b2- usdm enable */ | 1721 | tsdm enable; b2- usdm enable */ |
1731 | #define NIG_REG_LLFC_EGRESS_SRC_ENABLE_0 0x16070 | 1722 | #define NIG_REG_LLFC_EGRESS_SRC_ENABLE_0 0x16070 |
1723 | #define NIG_REG_LLFC_EGRESS_SRC_ENABLE_1 0x16074 | ||
1732 | /* [RW 1] SAFC enable for port0. This register may get 1 only when | 1724 | /* [RW 1] SAFC enable for port0. This register may get 1 only when |
1733 | ~ppp_enable.ppp_enable = 0 and pause_enable.pause_enable =0 for the same | 1725 | ~ppp_enable.ppp_enable = 0 and pause_enable.pause_enable =0 for the same |
1734 | port */ | 1726 | port */ |
@@ -2079,6 +2071,7 @@ | |||
2079 | #define PXP2_REG_PGL_ADDR_94_F0 0x120540 | 2071 | #define PXP2_REG_PGL_ADDR_94_F0 0x120540 |
2080 | #define PXP2_REG_PGL_CONTROL0 0x120490 | 2072 | #define PXP2_REG_PGL_CONTROL0 0x120490 |
2081 | #define PXP2_REG_PGL_CONTROL1 0x120514 | 2073 | #define PXP2_REG_PGL_CONTROL1 0x120514 |
2074 | #define PXP2_REG_PGL_DEBUG 0x120520 | ||
2082 | /* [RW 32] third dword data of expansion rom request. this register is | 2075 | /* [RW 32] third dword data of expansion rom request. this register is |
2083 | special. reading from it provides a vector outstanding read requests. if | 2076 | special. reading from it provides a vector outstanding read requests. if |
2084 | a bit is zero it means that a read request on the corresponding tag did | 2077 | a bit is zero it means that a read request on the corresponding tag did |
@@ -2239,6 +2232,9 @@ | |||
2239 | allocated for vq22 */ | 2232 | allocated for vq22 */ |
2240 | #define PXP2_REG_RD_MAX_BLKS_VQ22 0x1203d0 | 2233 | #define PXP2_REG_RD_MAX_BLKS_VQ22 0x1203d0 |
2241 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | 2234 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be |
2235 | allocated for vq25 */ | ||
2236 | #define PXP2_REG_RD_MAX_BLKS_VQ25 0x1203dc | ||
2237 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
2242 | allocated for vq6 */ | 2238 | allocated for vq6 */ |
2243 | #define PXP2_REG_RD_MAX_BLKS_VQ6 0x120390 | 2239 | #define PXP2_REG_RD_MAX_BLKS_VQ6 0x120390 |
2244 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | 2240 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be |
@@ -3835,6 +3831,7 @@ | |||
3835 | #define TM_REG_LIN0_PHY_ADDR 0x164270 | 3831 | #define TM_REG_LIN0_PHY_ADDR 0x164270 |
3836 | /* [RW 1] Linear0 physical address valid. */ | 3832 | /* [RW 1] Linear0 physical address valid. */ |
3837 | #define TM_REG_LIN0_PHY_ADDR_VALID 0x164248 | 3833 | #define TM_REG_LIN0_PHY_ADDR_VALID 0x164248 |
3834 | #define TM_REG_LIN0_SCAN_ON 0x1640d0 | ||
3838 | /* [RW 24] Linear0 array scan timeout. */ | 3835 | /* [RW 24] Linear0 array scan timeout. */ |
3839 | #define TM_REG_LIN0_SCAN_TIME 0x16403c | 3836 | #define TM_REG_LIN0_SCAN_TIME 0x16403c |
3840 | /* [RW 32] Linear1 logic address. */ | 3837 | /* [RW 32] Linear1 logic address. */ |
@@ -4363,6 +4360,7 @@ | |||
4363 | #define USDM_REG_AGG_INT_EVENT_31 0xc40b4 | 4360 | #define USDM_REG_AGG_INT_EVENT_31 0xc40b4 |
4364 | #define USDM_REG_AGG_INT_EVENT_4 0xc4048 | 4361 | #define USDM_REG_AGG_INT_EVENT_4 0xc4048 |
4365 | #define USDM_REG_AGG_INT_EVENT_5 0xc404c | 4362 | #define USDM_REG_AGG_INT_EVENT_5 0xc404c |
4363 | #define USDM_REG_AGG_INT_EVENT_6 0xc4050 | ||
4366 | /* [RW 1] For each aggregated interrupt index whether the mode is normal (0) | 4364 | /* [RW 1] For each aggregated interrupt index whether the mode is normal (0) |
4367 | or auto-mask-mode (1) */ | 4365 | or auto-mask-mode (1) */ |
4368 | #define USDM_REG_AGG_INT_MODE_0 0xc41b8 | 4366 | #define USDM_REG_AGG_INT_MODE_0 0xc41b8 |
@@ -4379,6 +4377,10 @@ | |||
4379 | #define USDM_REG_AGG_INT_MODE_19 0xc4204 | 4377 | #define USDM_REG_AGG_INT_MODE_19 0xc4204 |
4380 | #define USDM_REG_AGG_INT_MODE_4 0xc41c8 | 4378 | #define USDM_REG_AGG_INT_MODE_4 0xc41c8 |
4381 | #define USDM_REG_AGG_INT_MODE_5 0xc41cc | 4379 | #define USDM_REG_AGG_INT_MODE_5 0xc41cc |
4380 | #define USDM_REG_AGG_INT_MODE_6 0xc41d0 | ||
4381 | /* [RW 1] The T bit for aggregated interrupt 5 */ | ||
4382 | #define USDM_REG_AGG_INT_T_5 0xc40cc | ||
4383 | #define USDM_REG_AGG_INT_T_6 0xc40d0 | ||
4382 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ | 4384 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ |
4383 | #define USDM_REG_CFC_RSP_START_ADDR 0xc4008 | 4385 | #define USDM_REG_CFC_RSP_START_ADDR 0xc4008 |
4384 | /* [RW 16] The maximum value of the competion counter #0 */ | 4386 | /* [RW 16] The maximum value of the competion counter #0 */ |