diff options
Diffstat (limited to 'drivers/net/cnic.h')
-rw-r--r-- | drivers/net/cnic.h | 77 |
1 files changed, 72 insertions, 5 deletions
diff --git a/drivers/net/cnic.h b/drivers/net/cnic.h index a94b302bb464..a0d853dff983 100644 --- a/drivers/net/cnic.h +++ b/drivers/net/cnic.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* cnic.h: Broadcom CNIC core network driver. | 1 | /* cnic.h: Broadcom CNIC core network driver. |
2 | * | 2 | * |
3 | * Copyright (c) 2006-2009 Broadcom Corporation | 3 | * Copyright (c) 2006-2010 Broadcom Corporation |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or modify | 5 | * This program is free software; you can redistribute it and/or modify |
6 | * it under the terms of the GNU General Public License as published by | 6 | * it under the terms of the GNU General Public License as published by |
@@ -101,7 +101,7 @@ struct cnic_redirect_entry { | |||
101 | #define BNX2X_KWQ_DATA(cp, x) \ | 101 | #define BNX2X_KWQ_DATA(cp, x) \ |
102 | &(cp)->kwq_16_data[BNX2X_KWQ_DATA_PG(cp, x)][BNX2X_KWQ_DATA_IDX(cp, x)] | 102 | &(cp)->kwq_16_data[BNX2X_KWQ_DATA_PG(cp, x)][BNX2X_KWQ_DATA_IDX(cp, x)] |
103 | 103 | ||
104 | #define DEF_IPID_COUNT 0xc001 | 104 | #define DEF_IPID_START 0x8000 |
105 | 105 | ||
106 | #define DEF_KA_TIMEOUT 10000 | 106 | #define DEF_KA_TIMEOUT 10000 |
107 | #define DEF_KA_INTERVAL 300000 | 107 | #define DEF_KA_INTERVAL 300000 |
@@ -224,9 +224,13 @@ struct cnic_local { | |||
224 | u16 kcq_prod_idx; | 224 | u16 kcq_prod_idx; |
225 | u32 kcq_io_addr; | 225 | u32 kcq_io_addr; |
226 | 226 | ||
227 | void *status_blk; | 227 | union { |
228 | struct status_block_msix *bnx2_status_blk; | 228 | void *gen; |
229 | struct host_status_block *bnx2x_status_blk; | 229 | struct status_block_msix *bnx2; |
230 | struct host_status_block *bnx2x; | ||
231 | } status_blk; | ||
232 | |||
233 | struct host_def_status_block *bnx2x_def_status_blk; | ||
230 | 234 | ||
231 | u32 status_blk_num; | 235 | u32 status_blk_num; |
232 | u32 int_num; | 236 | u32 int_num; |
@@ -258,6 +262,7 @@ struct cnic_local { | |||
258 | struct cnic_ctx *ctx_arr; | 262 | struct cnic_ctx *ctx_arr; |
259 | int ctx_blks; | 263 | int ctx_blks; |
260 | int ctx_blk_size; | 264 | int ctx_blk_size; |
265 | unsigned long ctx_align; | ||
261 | int cids_per_blk; | 266 | int cids_per_blk; |
262 | 267 | ||
263 | u32 chip_id; | 268 | u32 chip_id; |
@@ -290,11 +295,73 @@ struct bnx2x_bd_chain_next { | |||
290 | u8 reserved[8]; | 295 | u8 reserved[8]; |
291 | }; | 296 | }; |
292 | 297 | ||
298 | #define ISCSI_DEFAULT_MAX_OUTSTANDING_R2T (1) | ||
299 | |||
293 | #define ISCSI_RAMROD_CMD_ID_UPDATE_CONN (ISCSI_KCQE_OPCODE_UPDATE_CONN) | 300 | #define ISCSI_RAMROD_CMD_ID_UPDATE_CONN (ISCSI_KCQE_OPCODE_UPDATE_CONN) |
294 | #define ISCSI_RAMROD_CMD_ID_INIT (ISCSI_KCQE_OPCODE_INIT) | 301 | #define ISCSI_RAMROD_CMD_ID_INIT (ISCSI_KCQE_OPCODE_INIT) |
295 | 302 | ||
296 | #define CDU_REGION_NUMBER_XCM_AG 2 | 303 | #define CDU_REGION_NUMBER_XCM_AG 2 |
297 | #define CDU_REGION_NUMBER_UCM_AG 4 | 304 | #define CDU_REGION_NUMBER_UCM_AG 4 |
298 | 305 | ||
306 | #define CDU_VALID_DATA(_cid, _region, _type) \ | ||
307 | (((_cid) << 8) | (((_region)&0xf)<<4) | (((_type)&0xf))) | ||
308 | |||
309 | #define CDU_CRC8(_cid, _region, _type) \ | ||
310 | (calc_crc8(CDU_VALID_DATA(_cid, _region, _type), 0xff)) | ||
311 | |||
312 | #define CDU_RSRVD_VALUE_TYPE_A(_cid, _region, _type) \ | ||
313 | (0x80 | ((CDU_CRC8(_cid, _region, _type)) & 0x7f)) | ||
314 | |||
315 | #define BNX2X_CONTEXT_MEM_SIZE 1024 | ||
316 | #define BNX2X_FCOE_CID 16 | ||
317 | |||
318 | /* iSCSI client IDs are 17, 19, 21, 23 */ | ||
319 | #define BNX2X_ISCSI_BASE_CL_ID 17 | ||
320 | #define BNX2X_ISCSI_CL_ID(vn) (BNX2X_ISCSI_BASE_CL_ID + ((vn) << 1)) | ||
321 | |||
322 | #define BNX2X_ISCSI_L2_CID 17 | ||
323 | #define BNX2X_ISCSI_START_CID 18 | ||
324 | #define BNX2X_ISCSI_NUM_CONNECTIONS 128 | ||
325 | #define BNX2X_ISCSI_TASK_CONTEXT_SIZE 128 | ||
326 | #define BNX2X_ISCSI_MAX_PENDING_R2TS 4 | ||
327 | #define BNX2X_ISCSI_R2TQE_SIZE 8 | ||
328 | #define BNX2X_ISCSI_HQ_BD_SIZE 64 | ||
329 | #define BNX2X_ISCSI_CONN_BUF_SIZE 64 | ||
330 | #define BNX2X_ISCSI_GLB_BUF_SIZE 64 | ||
331 | #define BNX2X_ISCSI_PBL_NOT_CACHED 0xff | ||
332 | #define BNX2X_ISCSI_PDU_HEADER_NOT_CACHED 0xff | ||
333 | #define BNX2X_HW_CID(x, func) ((x) | (((func) % PORT_MAX) << 23) | \ | ||
334 | (((func) >> 1) << 17)) | ||
335 | #define BNX2X_SW_CID(x) (x & 0x1ffff) | ||
336 | #define BNX2X_CHIP_NUM_57711 0x164f | ||
337 | #define BNX2X_CHIP_NUM_57711E 0x1650 | ||
338 | #define BNX2X_CHIP_NUM(x) (x >> 16) | ||
339 | #define BNX2X_CHIP_IS_57711(x) \ | ||
340 | (BNX2X_CHIP_NUM(x) == BNX2X_CHIP_NUM_57711) | ||
341 | #define BNX2X_CHIP_IS_57711E(x) \ | ||
342 | (BNX2X_CHIP_NUM(x) == BNX2X_CHIP_NUM_57711E) | ||
343 | #define BNX2X_CHIP_IS_E1H(x) \ | ||
344 | (BNX2X_CHIP_IS_57711(x) || BNX2X_CHIP_IS_57711E(x)) | ||
345 | #define IS_E1H_OFFSET BNX2X_CHIP_IS_E1H(cp->chip_id) | ||
346 | |||
347 | #define BNX2X_RX_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct eth_rx_bd)) | ||
348 | #define BNX2X_MAX_RX_DESC_CNT (BNX2X_RX_DESC_CNT - 2) | ||
349 | #define BNX2X_RCQ_DESC_CNT (BCM_PAGE_SIZE / sizeof(union eth_rx_cqe)) | ||
350 | #define BNX2X_MAX_RCQ_DESC_CNT (BNX2X_RCQ_DESC_CNT - 1) | ||
351 | |||
352 | #define BNX2X_DEF_SB_ID 16 | ||
353 | |||
354 | #define BNX2X_ISCSI_RX_SB_INDEX_NUM \ | ||
355 | ((HC_INDEX_DEF_U_ETH_ISCSI_RX_CQ_CONS << \ | ||
356 | USTORM_ETH_ST_CONTEXT_CONFIG_CQE_SB_INDEX_NUMBER_SHIFT) & \ | ||
357 | USTORM_ETH_ST_CONTEXT_CONFIG_CQE_SB_INDEX_NUMBER) | ||
358 | |||
359 | #define BNX2X_SHMEM_ADDR(base, field) (base + \ | ||
360 | offsetof(struct shmem_region, field)) | ||
361 | |||
362 | #define CNIC_PORT(cp) ((cp)->func % PORT_MAX) | ||
363 | #define CNIC_FUNC(cp) ((cp)->func) | ||
364 | #define CNIC_E1HVN(cp) ((cp)->func >> 1) | ||
365 | |||
299 | #endif | 366 | #endif |
300 | 367 | ||