diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hw4.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hw4.h | 167 |
1 files changed, 70 insertions, 97 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index bbdcf96800f6..6e4bc34e1d0d 100644 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h | |||
@@ -424,79 +424,6 @@ struct lpfc_rcqe { | |||
424 | #define FCOE_SOFn3 0x36 | 424 | #define FCOE_SOFn3 0x36 |
425 | }; | 425 | }; |
426 | 426 | ||
427 | struct lpfc_wqe_generic{ | ||
428 | struct ulp_bde64 bde; | ||
429 | uint32_t word3; | ||
430 | uint32_t word4; | ||
431 | uint32_t word5; | ||
432 | uint32_t word6; | ||
433 | #define lpfc_wqe_gen_context_SHIFT 16 | ||
434 | #define lpfc_wqe_gen_context_MASK 0x0000FFFF | ||
435 | #define lpfc_wqe_gen_context_WORD word6 | ||
436 | #define lpfc_wqe_gen_xri_SHIFT 0 | ||
437 | #define lpfc_wqe_gen_xri_MASK 0x0000FFFF | ||
438 | #define lpfc_wqe_gen_xri_WORD word6 | ||
439 | uint32_t word7; | ||
440 | #define lpfc_wqe_gen_lnk_SHIFT 23 | ||
441 | #define lpfc_wqe_gen_lnk_MASK 0x00000001 | ||
442 | #define lpfc_wqe_gen_lnk_WORD word7 | ||
443 | #define lpfc_wqe_gen_erp_SHIFT 22 | ||
444 | #define lpfc_wqe_gen_erp_MASK 0x00000001 | ||
445 | #define lpfc_wqe_gen_erp_WORD word7 | ||
446 | #define lpfc_wqe_gen_pu_SHIFT 20 | ||
447 | #define lpfc_wqe_gen_pu_MASK 0x00000003 | ||
448 | #define lpfc_wqe_gen_pu_WORD word7 | ||
449 | #define lpfc_wqe_gen_class_SHIFT 16 | ||
450 | #define lpfc_wqe_gen_class_MASK 0x00000007 | ||
451 | #define lpfc_wqe_gen_class_WORD word7 | ||
452 | #define lpfc_wqe_gen_command_SHIFT 8 | ||
453 | #define lpfc_wqe_gen_command_MASK 0x000000FF | ||
454 | #define lpfc_wqe_gen_command_WORD word7 | ||
455 | #define lpfc_wqe_gen_status_SHIFT 4 | ||
456 | #define lpfc_wqe_gen_status_MASK 0x0000000F | ||
457 | #define lpfc_wqe_gen_status_WORD word7 | ||
458 | #define lpfc_wqe_gen_ct_SHIFT 2 | ||
459 | #define lpfc_wqe_gen_ct_MASK 0x00000003 | ||
460 | #define lpfc_wqe_gen_ct_WORD word7 | ||
461 | uint32_t abort_tag; | ||
462 | uint32_t word9; | ||
463 | #define lpfc_wqe_gen_request_tag_SHIFT 0 | ||
464 | #define lpfc_wqe_gen_request_tag_MASK 0x0000FFFF | ||
465 | #define lpfc_wqe_gen_request_tag_WORD word9 | ||
466 | uint32_t word10; | ||
467 | #define lpfc_wqe_gen_ccp_SHIFT 24 | ||
468 | #define lpfc_wqe_gen_ccp_MASK 0x000000FF | ||
469 | #define lpfc_wqe_gen_ccp_WORD word10 | ||
470 | #define lpfc_wqe_gen_ccpe_SHIFT 23 | ||
471 | #define lpfc_wqe_gen_ccpe_MASK 0x00000001 | ||
472 | #define lpfc_wqe_gen_ccpe_WORD word10 | ||
473 | #define lpfc_wqe_gen_pv_SHIFT 19 | ||
474 | #define lpfc_wqe_gen_pv_MASK 0x00000001 | ||
475 | #define lpfc_wqe_gen_pv_WORD word10 | ||
476 | #define lpfc_wqe_gen_pri_SHIFT 16 | ||
477 | #define lpfc_wqe_gen_pri_MASK 0x00000007 | ||
478 | #define lpfc_wqe_gen_pri_WORD word10 | ||
479 | uint32_t word11; | ||
480 | #define lpfc_wqe_gen_cq_id_SHIFT 16 | ||
481 | #define lpfc_wqe_gen_cq_id_MASK 0x0000FFFF | ||
482 | #define lpfc_wqe_gen_cq_id_WORD word11 | ||
483 | #define LPFC_WQE_CQ_ID_DEFAULT 0xffff | ||
484 | #define lpfc_wqe_gen_wqec_SHIFT 7 | ||
485 | #define lpfc_wqe_gen_wqec_MASK 0x00000001 | ||
486 | #define lpfc_wqe_gen_wqec_WORD word11 | ||
487 | #define ELS_ID_FLOGI 3 | ||
488 | #define ELS_ID_FDISC 2 | ||
489 | #define ELS_ID_LOGO 1 | ||
490 | #define ELS_ID_DEFAULT 0 | ||
491 | #define lpfc_wqe_gen_els_id_SHIFT 4 | ||
492 | #define lpfc_wqe_gen_els_id_MASK 0x00000003 | ||
493 | #define lpfc_wqe_gen_els_id_WORD word11 | ||
494 | #define lpfc_wqe_gen_cmd_type_SHIFT 0 | ||
495 | #define lpfc_wqe_gen_cmd_type_MASK 0x0000000F | ||
496 | #define lpfc_wqe_gen_cmd_type_WORD word11 | ||
497 | uint32_t payload[4]; | ||
498 | }; | ||
499 | |||
500 | struct lpfc_rqe { | 427 | struct lpfc_rqe { |
501 | uint32_t address_hi; | 428 | uint32_t address_hi; |
502 | uint32_t address_lo; | 429 | uint32_t address_lo; |
@@ -2279,9 +2206,36 @@ struct wqe_common { | |||
2279 | #define wqe_reqtag_MASK 0x0000FFFF | 2206 | #define wqe_reqtag_MASK 0x0000FFFF |
2280 | #define wqe_reqtag_WORD word9 | 2207 | #define wqe_reqtag_WORD word9 |
2281 | #define wqe_rcvoxid_SHIFT 16 | 2208 | #define wqe_rcvoxid_SHIFT 16 |
2282 | #define wqe_rcvoxid_MASK 0x0000FFFF | 2209 | #define wqe_rcvoxid_MASK 0x0000FFFF |
2283 | #define wqe_rcvoxid_WORD word9 | 2210 | #define wqe_rcvoxid_WORD word9 |
2284 | uint32_t word10; | 2211 | uint32_t word10; |
2212 | #define wqe_ebde_cnt_SHIFT 0 | ||
2213 | #define wqe_ebde_cnt_MASK 0x00000007 | ||
2214 | #define wqe_ebde_cnt_WORD word10 | ||
2215 | #define wqe_lenloc_SHIFT 7 | ||
2216 | #define wqe_lenloc_MASK 0x00000003 | ||
2217 | #define wqe_lenloc_WORD word10 | ||
2218 | #define LPFC_WQE_LENLOC_NONE 0 | ||
2219 | #define LPFC_WQE_LENLOC_WORD3 1 | ||
2220 | #define LPFC_WQE_LENLOC_WORD12 2 | ||
2221 | #define LPFC_WQE_LENLOC_WORD4 3 | ||
2222 | #define wqe_qosd_SHIFT 9 | ||
2223 | #define wqe_qosd_MASK 0x00000001 | ||
2224 | #define wqe_qosd_WORD word10 | ||
2225 | #define wqe_xbl_SHIFT 11 | ||
2226 | #define wqe_xbl_MASK 0x00000001 | ||
2227 | #define wqe_xbl_WORD word10 | ||
2228 | #define wqe_iod_SHIFT 13 | ||
2229 | #define wqe_iod_MASK 0x00000001 | ||
2230 | #define wqe_iod_WORD word10 | ||
2231 | #define LPFC_WQE_IOD_WRITE 0 | ||
2232 | #define LPFC_WQE_IOD_READ 1 | ||
2233 | #define wqe_dbde_SHIFT 14 | ||
2234 | #define wqe_dbde_MASK 0x00000001 | ||
2235 | #define wqe_dbde_WORD word10 | ||
2236 | #define wqe_wqes_SHIFT 15 | ||
2237 | #define wqe_wqes_MASK 0x00000001 | ||
2238 | #define wqe_wqes_WORD word10 | ||
2285 | #define wqe_pri_SHIFT 16 | 2239 | #define wqe_pri_SHIFT 16 |
2286 | #define wqe_pri_MASK 0x00000007 | 2240 | #define wqe_pri_MASK 0x00000007 |
2287 | #define wqe_pri_WORD word10 | 2241 | #define wqe_pri_WORD word10 |
@@ -2295,18 +2249,26 @@ struct wqe_common { | |||
2295 | #define wqe_ccpe_MASK 0x00000001 | 2249 | #define wqe_ccpe_MASK 0x00000001 |
2296 | #define wqe_ccpe_WORD word10 | 2250 | #define wqe_ccpe_WORD word10 |
2297 | #define wqe_ccp_SHIFT 24 | 2251 | #define wqe_ccp_SHIFT 24 |
2298 | #define wqe_ccp_MASK 0x000000ff | 2252 | #define wqe_ccp_MASK 0x000000ff |
2299 | #define wqe_ccp_WORD word10 | 2253 | #define wqe_ccp_WORD word10 |
2300 | uint32_t word11; | 2254 | uint32_t word11; |
2301 | #define wqe_cmd_type_SHIFT 0 | 2255 | #define wqe_cmd_type_SHIFT 0 |
2302 | #define wqe_cmd_type_MASK 0x0000000f | 2256 | #define wqe_cmd_type_MASK 0x0000000f |
2303 | #define wqe_cmd_type_WORD word11 | 2257 | #define wqe_cmd_type_WORD word11 |
2304 | #define wqe_wqec_SHIFT 7 | 2258 | #define wqe_els_id_SHIFT 4 |
2305 | #define wqe_wqec_MASK 0x00000001 | 2259 | #define wqe_els_id_MASK 0x00000003 |
2306 | #define wqe_wqec_WORD word11 | 2260 | #define wqe_els_id_WORD word11 |
2307 | #define wqe_cqid_SHIFT 16 | 2261 | #define LPFC_ELS_ID_FLOGI 3 |
2308 | #define wqe_cqid_MASK 0x0000ffff | 2262 | #define LPFC_ELS_ID_FDISC 2 |
2309 | #define wqe_cqid_WORD word11 | 2263 | #define LPFC_ELS_ID_LOGO 1 |
2264 | #define LPFC_ELS_ID_DEFAULT 0 | ||
2265 | #define wqe_wqec_SHIFT 7 | ||
2266 | #define wqe_wqec_MASK 0x00000001 | ||
2267 | #define wqe_wqec_WORD word11 | ||
2268 | #define wqe_cqid_SHIFT 16 | ||
2269 | #define wqe_cqid_MASK 0x0000ffff | ||
2270 | #define wqe_cqid_WORD word11 | ||
2271 | #define LPFC_WQE_CQ_ID_DEFAULT 0xffff | ||
2310 | }; | 2272 | }; |
2311 | 2273 | ||
2312 | struct wqe_did { | 2274 | struct wqe_did { |
@@ -2325,6 +2287,15 @@ struct wqe_did { | |||
2325 | #define wqe_xmit_bls_xo_WORD word5 | 2287 | #define wqe_xmit_bls_xo_WORD word5 |
2326 | }; | 2288 | }; |
2327 | 2289 | ||
2290 | struct lpfc_wqe_generic{ | ||
2291 | struct ulp_bde64 bde; | ||
2292 | uint32_t word3; | ||
2293 | uint32_t word4; | ||
2294 | uint32_t word5; | ||
2295 | struct wqe_common wqe_com; | ||
2296 | uint32_t payload[4]; | ||
2297 | }; | ||
2298 | |||
2328 | struct els_request64_wqe { | 2299 | struct els_request64_wqe { |
2329 | struct ulp_bde64 bde; | 2300 | struct ulp_bde64 bde; |
2330 | uint32_t payload_len; | 2301 | uint32_t payload_len; |
@@ -2356,9 +2327,9 @@ struct els_request64_wqe { | |||
2356 | 2327 | ||
2357 | struct xmit_els_rsp64_wqe { | 2328 | struct xmit_els_rsp64_wqe { |
2358 | struct ulp_bde64 bde; | 2329 | struct ulp_bde64 bde; |
2359 | uint32_t rsvd3; | 2330 | uint32_t response_payload_len; |
2360 | uint32_t rsvd4; | 2331 | uint32_t rsvd4; |
2361 | struct wqe_did wqe_dest; | 2332 | struct wqe_did wqe_dest; |
2362 | struct wqe_common wqe_com; /* words 6-11 */ | 2333 | struct wqe_common wqe_com; /* words 6-11 */ |
2363 | uint32_t rsvd_12_15[4]; | 2334 | uint32_t rsvd_12_15[4]; |
2364 | }; | 2335 | }; |
@@ -2427,7 +2398,7 @@ struct wqe_rctl_dfctl { | |||
2427 | 2398 | ||
2428 | struct xmit_seq64_wqe { | 2399 | struct xmit_seq64_wqe { |
2429 | struct ulp_bde64 bde; | 2400 | struct ulp_bde64 bde; |
2430 | uint32_t paylaod_offset; | 2401 | uint32_t rsvd3; |
2431 | uint32_t relative_offset; | 2402 | uint32_t relative_offset; |
2432 | struct wqe_rctl_dfctl wge_ctl; | 2403 | struct wqe_rctl_dfctl wge_ctl; |
2433 | struct wqe_common wqe_com; /* words 6-11 */ | 2404 | struct wqe_common wqe_com; /* words 6-11 */ |
@@ -2437,7 +2408,7 @@ struct xmit_seq64_wqe { | |||
2437 | }; | 2408 | }; |
2438 | struct xmit_bcast64_wqe { | 2409 | struct xmit_bcast64_wqe { |
2439 | struct ulp_bde64 bde; | 2410 | struct ulp_bde64 bde; |
2440 | uint32_t paylaod_len; | 2411 | uint32_t seq_payload_len; |
2441 | uint32_t rsvd4; | 2412 | uint32_t rsvd4; |
2442 | struct wqe_rctl_dfctl wge_ctl; /* word 5 */ | 2413 | struct wqe_rctl_dfctl wge_ctl; /* word 5 */ |
2443 | struct wqe_common wqe_com; /* words 6-11 */ | 2414 | struct wqe_common wqe_com; /* words 6-11 */ |
@@ -2446,8 +2417,8 @@ struct xmit_bcast64_wqe { | |||
2446 | 2417 | ||
2447 | struct gen_req64_wqe { | 2418 | struct gen_req64_wqe { |
2448 | struct ulp_bde64 bde; | 2419 | struct ulp_bde64 bde; |
2449 | uint32_t command_len; | 2420 | uint32_t request_payload_len; |
2450 | uint32_t payload_len; | 2421 | uint32_t relative_offset; |
2451 | struct wqe_rctl_dfctl wge_ctl; /* word 5 */ | 2422 | struct wqe_rctl_dfctl wge_ctl; /* word 5 */ |
2452 | struct wqe_common wqe_com; /* words 6-11 */ | 2423 | struct wqe_common wqe_com; /* words 6-11 */ |
2453 | uint32_t rsvd_12_15[4]; | 2424 | uint32_t rsvd_12_15[4]; |
@@ -2480,7 +2451,7 @@ struct abort_cmd_wqe { | |||
2480 | 2451 | ||
2481 | struct fcp_iwrite64_wqe { | 2452 | struct fcp_iwrite64_wqe { |
2482 | struct ulp_bde64 bde; | 2453 | struct ulp_bde64 bde; |
2483 | uint32_t payload_len; | 2454 | uint32_t payload_offset_len; |
2484 | uint32_t total_xfer_len; | 2455 | uint32_t total_xfer_len; |
2485 | uint32_t initial_xfer_len; | 2456 | uint32_t initial_xfer_len; |
2486 | struct wqe_common wqe_com; /* words 6-11 */ | 2457 | struct wqe_common wqe_com; /* words 6-11 */ |
@@ -2489,7 +2460,7 @@ struct fcp_iwrite64_wqe { | |||
2489 | 2460 | ||
2490 | struct fcp_iread64_wqe { | 2461 | struct fcp_iread64_wqe { |
2491 | struct ulp_bde64 bde; | 2462 | struct ulp_bde64 bde; |
2492 | uint32_t payload_len; /* word 3 */ | 2463 | uint32_t payload_offset_len; /* word 3 */ |
2493 | uint32_t total_xfer_len; /* word 4 */ | 2464 | uint32_t total_xfer_len; /* word 4 */ |
2494 | uint32_t rsrvd5; /* word 5 */ | 2465 | uint32_t rsrvd5; /* word 5 */ |
2495 | struct wqe_common wqe_com; /* words 6-11 */ | 2466 | struct wqe_common wqe_com; /* words 6-11 */ |
@@ -2497,10 +2468,12 @@ struct fcp_iread64_wqe { | |||
2497 | }; | 2468 | }; |
2498 | 2469 | ||
2499 | struct fcp_icmnd64_wqe { | 2470 | struct fcp_icmnd64_wqe { |
2500 | struct ulp_bde64 bde; /* words 0-2 */ | 2471 | struct ulp_bde64 bde; /* words 0-2 */ |
2501 | uint32_t rsrvd[3]; /* words 3-5 */ | 2472 | uint32_t rsrvd3; /* word 3 */ |
2473 | uint32_t rsrvd4; /* word 4 */ | ||
2474 | uint32_t rsrvd5; /* word 5 */ | ||
2502 | struct wqe_common wqe_com; /* words 6-11 */ | 2475 | struct wqe_common wqe_com; /* words 6-11 */ |
2503 | uint32_t rsvd_12_15[4]; /* word 12-15 */ | 2476 | uint32_t rsvd_12_15[4]; /* word 12-15 */ |
2504 | }; | 2477 | }; |
2505 | 2478 | ||
2506 | 2479 | ||