diff options
| -rw-r--r-- | drivers/net/bnx2.c | 65 | ||||
| -rw-r--r-- | drivers/net/bnx2.h | 17 | ||||
| -rw-r--r-- | firmware/Makefile | 10 | ||||
| -rw-r--r-- | firmware/WHENCE | 11 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-mips-06-5.0.0.j6.fw.ihex | 5908 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-mips-06-6.0.15.fw.ihex | 5815 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-mips-09-5.0.0.j15.fw.ihex | 6081 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-mips-09-6.0.17.fw.ihex | 6488 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-rv2p-06-5.0.0.j3.fw.ihex | 424 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex | 366 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-rv2p-09-5.0.0.j10.fw.ihex | 462 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex | 392 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw.ihex | 499 | ||||
| -rw-r--r-- | firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex | 425 |
14 files changed, 13533 insertions, 13430 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index b10be27f340a..56f3dfe70038 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
| @@ -61,11 +61,11 @@ | |||
| 61 | #define DRV_MODULE_NAME "bnx2" | 61 | #define DRV_MODULE_NAME "bnx2" |
| 62 | #define DRV_MODULE_VERSION "2.0.17" | 62 | #define DRV_MODULE_VERSION "2.0.17" |
| 63 | #define DRV_MODULE_RELDATE "July 18, 2010" | 63 | #define DRV_MODULE_RELDATE "July 18, 2010" |
| 64 | #define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-5.0.0.j6.fw" | 64 | #define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-6.0.15.fw" |
| 65 | #define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-5.0.0.j3.fw" | 65 | #define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-6.0.15.fw" |
| 66 | #define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-5.0.0.j15.fw" | 66 | #define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-6.0.17.fw" |
| 67 | #define FW_RV2P_FILE_09_Ax "bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw" | 67 | #define FW_RV2P_FILE_09_Ax "bnx2/bnx2-rv2p-09ax-6.0.17.fw" |
| 68 | #define FW_RV2P_FILE_09 "bnx2/bnx2-rv2p-09-5.0.0.j10.fw" | 68 | #define FW_RV2P_FILE_09 "bnx2/bnx2-rv2p-09-6.0.17.fw" |
| 69 | 69 | ||
| 70 | #define RUN_AT(x) (jiffies + (x)) | 70 | #define RUN_AT(x) (jiffies + (x)) |
| 71 | 71 | ||
| @@ -1269,30 +1269,9 @@ bnx2_init_rx_context(struct bnx2 *bp, u32 cid) | |||
| 1269 | val |= BNX2_L2CTX_CTX_TYPE_SIZE_L2; | 1269 | val |= BNX2_L2CTX_CTX_TYPE_SIZE_L2; |
| 1270 | val |= 0x02 << 8; | 1270 | val |= 0x02 << 8; |
| 1271 | 1271 | ||
| 1272 | if (CHIP_NUM(bp) == CHIP_NUM_5709) { | 1272 | if (bp->flow_ctrl & FLOW_CTRL_TX) |
| 1273 | u32 lo_water, hi_water; | 1273 | val |= BNX2_L2CTX_FLOW_CTRL_ENABLE; |
| 1274 | |||
| 1275 | if (bp->flow_ctrl & FLOW_CTRL_TX) | ||
| 1276 | lo_water = BNX2_L2CTX_LO_WATER_MARK_DEFAULT; | ||
| 1277 | else | ||
| 1278 | lo_water = BNX2_L2CTX_LO_WATER_MARK_DIS; | ||
| 1279 | if (lo_water >= bp->rx_ring_size) | ||
| 1280 | lo_water = 0; | ||
| 1281 | |||
| 1282 | hi_water = min_t(int, bp->rx_ring_size / 4, lo_water + 16); | ||
| 1283 | |||
| 1284 | if (hi_water <= lo_water) | ||
| 1285 | lo_water = 0; | ||
| 1286 | |||
| 1287 | hi_water /= BNX2_L2CTX_HI_WATER_MARK_SCALE; | ||
| 1288 | lo_water /= BNX2_L2CTX_LO_WATER_MARK_SCALE; | ||
| 1289 | 1274 | ||
| 1290 | if (hi_water > 0xf) | ||
| 1291 | hi_water = 0xf; | ||
| 1292 | else if (hi_water == 0) | ||
| 1293 | lo_water = 0; | ||
| 1294 | val |= lo_water | (hi_water << BNX2_L2CTX_HI_WATER_MARK_SHIFT); | ||
| 1295 | } | ||
| 1296 | bnx2_ctx_wr(bp, rx_cid_addr, BNX2_L2CTX_CTX_TYPE, val); | 1275 | bnx2_ctx_wr(bp, rx_cid_addr, BNX2_L2CTX_CTX_TYPE, val); |
| 1297 | } | 1276 | } |
| 1298 | 1277 | ||
| @@ -1373,8 +1352,7 @@ bnx2_set_mac_link(struct bnx2 *bp) | |||
| 1373 | /* Acknowledge the interrupt. */ | 1352 | /* Acknowledge the interrupt. */ |
| 1374 | REG_WR(bp, BNX2_EMAC_STATUS, BNX2_EMAC_STATUS_LINK_CHANGE); | 1353 | REG_WR(bp, BNX2_EMAC_STATUS, BNX2_EMAC_STATUS_LINK_CHANGE); |
| 1375 | 1354 | ||
| 1376 | if (CHIP_NUM(bp) == CHIP_NUM_5709) | 1355 | bnx2_init_all_rx_contexts(bp); |
| 1377 | bnx2_init_all_rx_contexts(bp); | ||
| 1378 | } | 1356 | } |
| 1379 | 1357 | ||
| 1380 | static void | 1358 | static void |
| @@ -4974,6 +4952,11 @@ bnx2_init_chip(struct bnx2 *bp) | |||
| 4974 | 4952 | ||
| 4975 | REG_WR(bp, BNX2_HC_CONFIG, val); | 4953 | REG_WR(bp, BNX2_HC_CONFIG, val); |
| 4976 | 4954 | ||
| 4955 | if (bp->rx_ticks < 25) | ||
| 4956 | bnx2_reg_wr_ind(bp, BNX2_FW_RX_LOW_LATENCY, 1); | ||
| 4957 | else | ||
| 4958 | bnx2_reg_wr_ind(bp, BNX2_FW_RX_LOW_LATENCY, 0); | ||
| 4959 | |||
| 4977 | for (i = 1; i < bp->irq_nvecs; i++) { | 4960 | for (i = 1; i < bp->irq_nvecs; i++) { |
| 4978 | u32 base = ((i - 1) * BNX2_HC_SB_CONFIG_SIZE) + | 4961 | u32 base = ((i - 1) * BNX2_HC_SB_CONFIG_SIZE) + |
| 4979 | BNX2_HC_SB_CONFIG_1; | 4962 | BNX2_HC_SB_CONFIG_1; |
| @@ -5242,18 +5225,20 @@ bnx2_init_all_rings(struct bnx2 *bp) | |||
| 5242 | bnx2_init_rx_ring(bp, i); | 5225 | bnx2_init_rx_ring(bp, i); |
| 5243 | 5226 | ||
| 5244 | if (bp->num_rx_rings > 1) { | 5227 | if (bp->num_rx_rings > 1) { |
| 5245 | u32 tbl_32; | 5228 | u32 tbl_32 = 0; |
| 5246 | u8 *tbl = (u8 *) &tbl_32; | ||
| 5247 | |||
| 5248 | bnx2_reg_wr_ind(bp, BNX2_RXP_SCRATCH_RSS_TBL_SZ, | ||
| 5249 | BNX2_RXP_SCRATCH_RSS_TBL_MAX_ENTRIES); | ||
| 5250 | 5229 | ||
| 5251 | for (i = 0; i < BNX2_RXP_SCRATCH_RSS_TBL_MAX_ENTRIES; i++) { | 5230 | for (i = 0; i < BNX2_RXP_SCRATCH_RSS_TBL_MAX_ENTRIES; i++) { |
| 5252 | tbl[i % 4] = i % (bp->num_rx_rings - 1); | 5231 | int shift = (i % 8) << 2; |
| 5253 | if ((i % 4) == 3) | 5232 | |
| 5254 | bnx2_reg_wr_ind(bp, | 5233 | tbl_32 |= (i % (bp->num_rx_rings - 1)) << shift; |
| 5255 | BNX2_RXP_SCRATCH_RSS_TBL + i, | 5234 | if ((i % 8) == 7) { |
| 5256 | cpu_to_be32(tbl_32)); | 5235 | REG_WR(bp, BNX2_RLUP_RSS_DATA, tbl_32); |
| 5236 | REG_WR(bp, BNX2_RLUP_RSS_COMMAND, (i >> 3) | | ||
| 5237 | BNX2_RLUP_RSS_COMMAND_RSS_WRITE_MASK | | ||
| 5238 | BNX2_RLUP_RSS_COMMAND_WRITE | | ||
| 5239 | BNX2_RLUP_RSS_COMMAND_HASH_MASK); | ||
| 5240 | tbl_32 = 0; | ||
| 5241 | } | ||
| 5257 | } | 5242 | } |
| 5258 | 5243 | ||
| 5259 | val = BNX2_RLUP_RSS_CONFIG_IPV4_RSS_TYPE_ALL_XI | | 5244 | val = BNX2_RLUP_RSS_CONFIG_IPV4_RSS_TYPE_ALL_XI | |
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h index 2104c1005d02..efdfbc2a9e37 100644 --- a/drivers/net/bnx2.h +++ b/drivers/net/bnx2.h | |||
| @@ -352,12 +352,7 @@ struct l2_fhdr { | |||
| 352 | #define BNX2_L2CTX_BD_PRE_READ 0x00000000 | 352 | #define BNX2_L2CTX_BD_PRE_READ 0x00000000 |
| 353 | #define BNX2_L2CTX_CTX_SIZE 0x00000000 | 353 | #define BNX2_L2CTX_CTX_SIZE 0x00000000 |
| 354 | #define BNX2_L2CTX_CTX_TYPE 0x00000000 | 354 | #define BNX2_L2CTX_CTX_TYPE 0x00000000 |
| 355 | #define BNX2_L2CTX_LO_WATER_MARK_DEFAULT 4 | 355 | #define BNX2_L2CTX_FLOW_CTRL_ENABLE 0x000000ff |
| 356 | #define BNX2_L2CTX_LO_WATER_MARK_SCALE 4 | ||
| 357 | #define BNX2_L2CTX_LO_WATER_MARK_DIS 0 | ||
| 358 | #define BNX2_L2CTX_HI_WATER_MARK_SHIFT 4 | ||
| 359 | #define BNX2_L2CTX_HI_WATER_MARK_SCALE 16 | ||
| 360 | #define BNX2_L2CTX_WATER_MARKS_MSK 0x000000ff | ||
| 361 | #define BNX2_L2CTX_CTX_TYPE_SIZE_L2 ((0x20/20)<<16) | 356 | #define BNX2_L2CTX_CTX_TYPE_SIZE_L2 ((0x20/20)<<16) |
| 362 | #define BNX2_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE (0xf<<28) | 357 | #define BNX2_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE (0xf<<28) |
| 363 | #define BNX2_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE_UNDEFINED (0<<28) | 358 | #define BNX2_L2CTX_CTX_TYPE_CTX_BD_CHN_TYPE_UNDEFINED (0<<28) |
| @@ -4185,6 +4180,15 @@ struct l2_fhdr { | |||
| 4185 | #define BNX2_RLUP_RSS_CONFIG_IPV6_RSS_TYPE_IP_ONLY_XI (2L<<2) | 4180 | #define BNX2_RLUP_RSS_CONFIG_IPV6_RSS_TYPE_IP_ONLY_XI (2L<<2) |
| 4186 | #define BNX2_RLUP_RSS_CONFIG_IPV6_RSS_TYPE_RES_XI (3L<<2) | 4181 | #define BNX2_RLUP_RSS_CONFIG_IPV6_RSS_TYPE_RES_XI (3L<<2) |
| 4187 | 4182 | ||
| 4183 | #define BNX2_RLUP_RSS_COMMAND 0x00002048 | ||
| 4184 | #define BNX2_RLUP_RSS_COMMAND_RSS_IND_TABLE_ADDR (0xfUL<<0) | ||
| 4185 | #define BNX2_RLUP_RSS_COMMAND_RSS_WRITE_MASK (0xffUL<<4) | ||
| 4186 | #define BNX2_RLUP_RSS_COMMAND_WRITE (1UL<<12) | ||
| 4187 | #define BNX2_RLUP_RSS_COMMAND_READ (1UL<<13) | ||
| 4188 | #define BNX2_RLUP_RSS_COMMAND_HASH_MASK (0x7UL<<14) | ||
| 4189 | |||
| 4190 | #define BNX2_RLUP_RSS_DATA 0x0000204c | ||
| 4191 | |||
| 4188 | 4192 | ||
| 4189 | /* | 4193 | /* |
| 4190 | * rbuf_reg definition | 4194 | * rbuf_reg definition |
| @@ -6077,6 +6081,7 @@ struct l2_fhdr { | |||
| 6077 | 6081 | ||
| 6078 | #define BNX2_COM_SCRATCH 0x00120000 | 6082 | #define BNX2_COM_SCRATCH 0x00120000 |
| 6079 | 6083 | ||
| 6084 | #define BNX2_FW_RX_LOW_LATENCY 0x00120058 | ||
| 6080 | #define BNX2_FW_RX_DROP_COUNT 0x00120084 | 6085 | #define BNX2_FW_RX_DROP_COUNT 0x00120084 |
| 6081 | 6086 | ||
| 6082 | 6087 | ||
diff --git a/firmware/Makefile b/firmware/Makefile index 494a167c6552..74d47cd0886c 100644 --- a/firmware/Makefile +++ b/firmware/Makefile | |||
| @@ -35,11 +35,11 @@ fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw | |||
| 35 | fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.0.34.0.fw \ | 35 | fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.0.34.0.fw \ |
| 36 | bnx2x/bnx2x-e1h-6.0.34.0.fw \ | 36 | bnx2x/bnx2x-e1h-6.0.34.0.fw \ |
| 37 | bnx2x/bnx2x-e2-6.0.34.0.fw | 37 | bnx2x/bnx2x-e2-6.0.34.0.fw |
| 38 | fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-5.0.0.j15.fw \ | 38 | fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.0.17.fw \ |
| 39 | bnx2/bnx2-rv2p-09-5.0.0.j10.fw \ | 39 | bnx2/bnx2-rv2p-09-6.0.17.fw \ |
| 40 | bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw \ | 40 | bnx2/bnx2-rv2p-09ax-6.0.17.fw \ |
| 41 | bnx2/bnx2-mips-06-5.0.0.j6.fw \ | 41 | bnx2/bnx2-mips-06-6.0.15.fw \ |
