1 /* 57xx_iscsi_hsi.h: Broadcom NetXtreme II iSCSI HSI.
3 * Copyright (c) 2006 - 2011 Broadcom Corporation
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
7 * the Free Software Foundation.
9 * Written by: Anil Veerabhadrappa (anilgv@broadcom.com)
10 * Maintained by: Eddie Wai (eddie.wai@broadcom.com)
12 #ifndef __57XX_ISCSI_HSI_LINUX_LE__
13 #define __57XX_ISCSI_HSI_LINUX_LE__
18 struct bnx2i_async_msg
{
19 #if defined(__BIG_ENDIAN)
23 #elif defined(__LITTLE_ENDIAN)
32 #if defined(__BIG_ENDIAN)
36 #elif defined(__LITTLE_ENDIAN)
43 #if defined(__BIG_ENDIAN)
47 #elif defined(__LITTLE_ENDIAN)
52 #if defined(__BIG_ENDIAN)
55 #elif defined(__LITTLE_ENDIAN)
65 * iSCSI Buffer Descriptor (BD)
70 #if defined(__BIG_ENDIAN)
73 #elif defined(__LITTLE_ENDIAN)
77 #if defined(__BIG_ENDIAN)
80 #define ISCSI_BD_RESERVED1 (0x3F<<0)
81 #define ISCSI_BD_RESERVED1_SHIFT 0
82 #define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6)
83 #define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6
84 #define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7)
85 #define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7
86 #define ISCSI_BD_RESERVED2 (0xFF<<8)
87 #define ISCSI_BD_RESERVED2_SHIFT 8
88 #elif defined(__LITTLE_ENDIAN)
90 #define ISCSI_BD_RESERVED1 (0x3F<<0)
91 #define ISCSI_BD_RESERVED1_SHIFT 0
92 #define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6)
93 #define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6
94 #define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7)
95 #define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7
96 #define ISCSI_BD_RESERVED2 (0xFF<<8)
97 #define ISCSI_BD_RESERVED2_SHIFT 8
104 * iSCSI Cleanup SQ WQE
106 struct bnx2i_cleanup_request
{
107 #if defined(__BIG_ENDIAN)
111 #elif defined(__LITTLE_ENDIAN)
117 #if defined(__BIG_ENDIAN)
120 #define ISCSI_CLEANUP_REQUEST_INDEX (0x3FFF<<0)
121 #define ISCSI_CLEANUP_REQUEST_INDEX_SHIFT 0
122 #define ISCSI_CLEANUP_REQUEST_TYPE (0x3<<14)
123 #define ISCSI_CLEANUP_REQUEST_TYPE_SHIFT 14
124 #elif defined(__LITTLE_ENDIAN)
126 #define ISCSI_CLEANUP_REQUEST_INDEX (0x3FFF<<0)
127 #define ISCSI_CLEANUP_REQUEST_INDEX_SHIFT 0
128 #define ISCSI_CLEANUP_REQUEST_TYPE (0x3<<14)
129 #define ISCSI_CLEANUP_REQUEST_TYPE_SHIFT 14
133 #if defined(__BIG_ENDIAN)
137 #elif defined(__LITTLE_ENDIAN)
148 struct bnx2i_cleanup_response
{
149 #if defined(__BIG_ENDIAN)
153 #elif defined(__LITTLE_ENDIAN)
160 #if defined(__BIG_ENDIAN)
164 #elif defined(__LITTLE_ENDIAN)
170 #if defined(__BIG_ENDIAN)
173 #define ISCSI_CLEANUP_RESPONSE_INDEX (0x3FFF<<0)
174 #define ISCSI_CLEANUP_RESPONSE_INDEX_SHIFT 0
175 #define ISCSI_CLEANUP_RESPONSE_TYPE (0x3<<14)
176 #define ISCSI_CLEANUP_RESPONSE_TYPE_SHIFT 14
177 #elif defined(__LITTLE_ENDIAN)
179 #define ISCSI_CLEANUP_RESPONSE_INDEX (0x3FFF<<0)
180 #define ISCSI_CLEANUP_RESPONSE_INDEX_SHIFT 0
181 #define ISCSI_CLEANUP_RESPONSE_TYPE (0x3<<14)
182 #define ISCSI_CLEANUP_RESPONSE_TYPE_SHIFT 14
190 * SCSI read/write SQ WQE
192 struct bnx2i_cmd_request
{
193 #if defined(__BIG_ENDIAN)
196 #define ISCSI_CMD_REQUEST_TASK_ATTR (0x7<<0)
197 #define ISCSI_CMD_REQUEST_TASK_ATTR_SHIFT 0
198 #define ISCSI_CMD_REQUEST_RESERVED1 (0x3<<3)
199 #define ISCSI_CMD_REQUEST_RESERVED1_SHIFT 3
200 #define ISCSI_CMD_REQUEST_WRITE (0x1<<5)
201 #define ISCSI_CMD_REQUEST_WRITE_SHIFT 5
202 #define ISCSI_CMD_REQUEST_READ (0x1<<6)
203 #define ISCSI_CMD_REQUEST_READ_SHIFT 6
204 #define ISCSI_CMD_REQUEST_FINAL (0x1<<7)
205 #define ISCSI_CMD_REQUEST_FINAL_SHIFT 7
207 #elif defined(__LITTLE_ENDIAN)
210 #define ISCSI_CMD_REQUEST_TASK_ATTR (0x7<<0)
211 #define ISCSI_CMD_REQUEST_TASK_ATTR_SHIFT 0
212 #define ISCSI_CMD_REQUEST_RESERVED1 (0x3<<3)
213 #define ISCSI_CMD_REQUEST_RESERVED1_SHIFT 3
214 #define ISCSI_CMD_REQUEST_WRITE (0x1<<5)
215 #define ISCSI_CMD_REQUEST_WRITE_SHIFT 5
216 #define ISCSI_CMD_REQUEST_READ (0x1<<6)
217 #define ISCSI_CMD_REQUEST_READ_SHIFT 6
218 #define ISCSI_CMD_REQUEST_FINAL (0x1<<7)
219 #define ISCSI_CMD_REQUEST_FINAL_SHIFT 7
222 #if defined(__BIG_ENDIAN)
223 u16 ud_buffer_offset
;
224 u16 sd_buffer_offset
;
225 #elif defined(__LITTLE_ENDIAN)
226 u16 sd_buffer_offset
;
227 u16 ud_buffer_offset
;
230 #if defined(__BIG_ENDIAN)
233 #define ISCSI_CMD_REQUEST_INDEX (0x3FFF<<0)
234 #define ISCSI_CMD_REQUEST_INDEX_SHIFT 0
235 #define ISCSI_CMD_REQUEST_TYPE (0x3<<14)
236 #define ISCSI_CMD_REQUEST_TYPE_SHIFT 14
237 #elif defined(__LITTLE_ENDIAN)
239 #define ISCSI_CMD_REQUEST_INDEX (0x3FFF<<0)
240 #define ISCSI_CMD_REQUEST_INDEX_SHIFT 0
241 #define ISCSI_CMD_REQUEST_TYPE (0x3<<14)
242 #define ISCSI_CMD_REQUEST_TYPE_SHIFT 14
245 u32 total_data_transfer_length
;
252 #if defined(__BIG_ENDIAN)
254 u8 sd_start_bd_index
;
255 u8 ud_start_bd_index
;
257 #elif defined(__LITTLE_ENDIAN)
259 u8 ud_start_bd_index
;
260 u8 sd_start_bd_index
;
267 * task statistics for write response
269 struct bnx2i_write_resp_task_stat
{
274 * task statistics for read response
276 struct bnx2i_read_resp_task_stat
{
277 #if defined(__BIG_ENDIAN)
280 #elif defined(__LITTLE_ENDIAN)
287 * task statistics for iSCSI cmd response
289 union bnx2i_cmd_resp_task_stat
{
290 struct bnx2i_write_resp_task_stat write_stat
;
291 struct bnx2i_read_resp_task_stat read_stat
;
297 struct bnx2i_cmd_response
{
298 #if defined(__BIG_ENDIAN)
301 #define ISCSI_CMD_RESPONSE_RESERVED0 (0x1<<0)
302 #define ISCSI_CMD_RESPONSE_RESERVED0_SHIFT 0
303 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW (0x1<<1)
304 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW_SHIFT 1
305 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW (0x1<<2)
306 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW_SHIFT 2
307 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW (0x1<<3)
308 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW_SHIFT 3
309 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW (0x1<<4)
310 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW_SHIFT 4
311 #define ISCSI_CMD_RESPONSE_RESERVED1 (0x7<<5)
312 #define ISCSI_CMD_RESPONSE_RESERVED1_SHIFT 5
315 #elif defined(__LITTLE_ENDIAN)
319 #define ISCSI_CMD_RESPONSE_RESERVED0 (0x1<<0)
320 #define ISCSI_CMD_RESPONSE_RESERVED0_SHIFT 0
321 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW (0x1<<1)
322 #define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW_SHIFT 1
323 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW (0x1<<2)
324 #define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW_SHIFT 2
325 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW (0x1<<3)
326 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW_SHIFT 3
327 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW (0x1<<4)
328 #define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW_SHIFT 4
329 #define ISCSI_CMD_RESPONSE_RESERVED1 (0x7<<5)
330 #define ISCSI_CMD_RESPONSE_RESERVED1_SHIFT 5
338 #if defined(__BIG_ENDIAN)
342 #elif defined(__LITTLE_ENDIAN)
348 union bnx2i_cmd_resp_task_stat task_stat
;
350 #if defined(__BIG_ENDIAN)
353 #define ISCSI_CMD_RESPONSE_INDEX (0x3FFF<<0)
354 #define ISCSI_CMD_RESPONSE_INDEX_SHIFT 0
355 #define ISCSI_CMD_RESPONSE_TYPE (0x3<<14)
356 #define ISCSI_CMD_RESPONSE_TYPE_SHIFT 14
357 #elif defined(__LITTLE_ENDIAN)
359 #define ISCSI_CMD_RESPONSE_INDEX (0x3FFF<<0)
360 #define ISCSI_CMD_RESPONSE_INDEX_SHIFT 0
361 #define ISCSI_CMD_RESPONSE_TYPE (0x3<<14)
362 #define ISCSI_CMD_RESPONSE_TYPE_SHIFT 14
371 * firmware middle-path request SQ WQE
373 struct bnx2i_fw_mp_request
{
374 #if defined(__BIG_ENDIAN)
378 #elif defined(__LITTLE_ENDIAN)
385 #if defined(__BIG_ENDIAN)
388 #define ISCSI_FW_MP_REQUEST_INDEX (0x3FFF<<0)
389 #define ISCSI_FW_MP_REQUEST_INDEX_SHIFT 0
390 #define ISCSI_FW_MP_REQUEST_TYPE (0x3<<14)
391 #define ISCSI_FW_MP_REQUEST_TYPE_SHIFT 14
392 #elif defined(__LITTLE_ENDIAN)
394 #define ISCSI_FW_MP_REQUEST_INDEX (0x3FFF<<0)
395 #define ISCSI_FW_MP_REQUEST_INDEX_SHIFT 0
396 #define ISCSI_FW_MP_REQUEST_TYPE (0x3<<14)
397 #define ISCSI_FW_MP_REQUEST_TYPE_SHIFT 14
401 u32 resp_bd_list_addr_lo
;
402 u32 resp_bd_list_addr_hi
;
404 #define ISCSI_FW_MP_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
405 #define ISCSI_FW_MP_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
406 #define ISCSI_FW_MP_REQUEST_NUM_RESP_BDS (0xFF<<24)
407 #define ISCSI_FW_MP_REQUEST_NUM_RESP_BDS_SHIFT 24
408 #if defined(__BIG_ENDIAN)
412 #define ISCSI_FW_MP_REQUEST_RESERVED1 (0x1<<0)
413 #define ISCSI_FW_MP_REQUEST_RESERVED1_SHIFT 0
414 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION (0x1<<1)
415 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION_SHIFT 1
416 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
417 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
418 #define ISCSI_FW_MP_REQUEST_RESERVED2 (0x1F<<3)
419 #define ISCSI_FW_MP_REQUEST_RESERVED2_SHIFT 3
420 #elif defined(__LITTLE_ENDIAN)
422 #define ISCSI_FW_MP_REQUEST_RESERVED1 (0x1<<0)
423 #define ISCSI_FW_MP_REQUEST_RESERVED1_SHIFT 0
424 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION (0x1<<1)
425 #define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION_SHIFT 1
426 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
427 #define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
428 #define ISCSI_FW_MP_REQUEST_RESERVED2 (0x1F<<3)
429 #define ISCSI_FW_MP_REQUEST_RESERVED2_SHIFT 3
435 #if defined(__BIG_ENDIAN)
440 #elif defined(__LITTLE_ENDIAN)
450 * firmware response - CQE: used only by firmware
452 struct bnx2i_fw_response
{
459 #define ISCSI_FW_RESPONSE_RESERVED2 (0xFF<<0)
460 #define ISCSI_FW_RESPONSE_RESERVED2_SHIFT 0
461 #define ISCSI_FW_RESPONSE_ERR_CODE (0xFF<<8)
462 #define ISCSI_FW_RESPONSE_ERR_CODE_SHIFT 8
463 #define ISCSI_FW_RESPONSE_RESERVED3 (0xFFFF<<16)
464 #define ISCSI_FW_RESPONSE_RESERVED3_SHIFT 16
476 * iSCSI KCQ CQE parameters
478 union iscsi_kcqe_params
{
487 u32 completion_status
;
488 u32 iscsi_conn_context_id
;
489 union iscsi_kcqe_params params
;
490 #if defined(__BIG_ENDIAN)
492 #define ISCSI_KCQE_RESERVED0 (0xF<<0)
493 #define ISCSI_KCQE_RESERVED0_SHIFT 0
494 #define ISCSI_KCQE_LAYER_CODE (0x7<<4)
495 #define ISCSI_KCQE_LAYER_CODE_SHIFT 4
496 #define ISCSI_KCQE_RESERVED1 (0x1<<7)
497 #define ISCSI_KCQE_RESERVED1_SHIFT 7
500 #elif defined(__LITTLE_ENDIAN)
504 #define ISCSI_KCQE_RESERVED0 (0xF<<0)
505 #define ISCSI_KCQE_RESERVED0_SHIFT 0
506 #define ISCSI_KCQE_LAYER_CODE (0x7<<4)
507 #define ISCSI_KCQE_LAYER_CODE_SHIFT 4
508 #define ISCSI_KCQE_RESERVED1 (0x1<<7)
509 #define ISCSI_KCQE_RESERVED1_SHIFT 7
518 struct iscsi_kwqe_header
{
519 #if defined(__BIG_ENDIAN)
521 #define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0)
522 #define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0
523 #define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4)
524 #define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4
525 #define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7)
526 #define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7
528 #elif defined(__LITTLE_ENDIAN)
531 #define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0)
532 #define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0
533 #define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4)
534 #define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4
535 #define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7)
536 #define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7
541 * iSCSI firmware init request 1
543 struct iscsi_kwqe_init1
{
544 #if defined(__BIG_ENDIAN)
545 struct iscsi_kwqe_header hdr
;
548 #elif defined(__LITTLE_ENDIAN)
551 struct iscsi_kwqe_header hdr
;
553 u32 dummy_buffer_addr_lo
;
554 u32 dummy_buffer_addr_hi
;
555 #if defined(__BIG_ENDIAN)
556 u16 num_ccells_per_conn
;
557 u16 num_tasks_per_conn
;
558 #elif defined(__LITTLE_ENDIAN)
559 u16 num_tasks_per_conn
;
560 u16 num_ccells_per_conn
;
562 #if defined(__BIG_ENDIAN)
563 u16 sq_wqes_per_page
;
565 #elif defined(__LITTLE_ENDIAN)
567 u16 sq_wqes_per_page
;
569 #if defined(__BIG_ENDIAN)
570 u8 cq_log_wqes_per_page
;
572 #define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0)
573 #define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0
574 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4)
575 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4
576 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5)
577 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5
578 #define ISCSI_KWQE_INIT1_RESERVED1 (0x3<<6)
579 #define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 6
581 #elif defined(__LITTLE_ENDIAN)
584 #define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0)
585 #define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0
586 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4)
587 #define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4
588 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5)
589 #define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5
590 #define ISCSI_KWQE_INIT1_RESERVED1 (0x3<<6)
591 #define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 6
592 u8 cq_log_wqes_per_page
;
594 #if defined(__BIG_ENDIAN)
597 #elif defined(__LITTLE_ENDIAN)
601 #if defined(__BIG_ENDIAN)
604 #elif defined(__LITTLE_ENDIAN)
611 * iSCSI firmware init request 2
613 struct iscsi_kwqe_init2
{
614 #if defined(__BIG_ENDIAN)
615 struct iscsi_kwqe_header hdr
;
617 #elif defined(__LITTLE_ENDIAN)
619 struct iscsi_kwqe_header hdr
;
621 u32 error_bit_map
[2];
626 * Initial iSCSI connection offload request 1
628 struct iscsi_kwqe_conn_offload1
{
629 #if defined(__BIG_ENDIAN)
630 struct iscsi_kwqe_header hdr
;
632 #elif defined(__LITTLE_ENDIAN)
634 struct iscsi_kwqe_header hdr
;
636 u32 sq_page_table_addr_lo
;
637 u32 sq_page_table_addr_hi
;
638 u32 cq_page_table_addr_lo
;
639 u32 cq_page_table_addr_hi
;
644 * iSCSI Page Table Entry (PTE)
652 * Initial iSCSI connection offload request 2
654 struct iscsi_kwqe_conn_offload2
{
655 #if defined(__BIG_ENDIAN)
656 struct iscsi_kwqe_header hdr
;
658 #elif defined(__LITTLE_ENDIAN)
660 struct iscsi_kwqe_header hdr
;
662 u32 rq_page_table_addr_lo
;
663 u32 rq_page_table_addr_hi
;
664 struct iscsi_pte sq_first_pte
;
665 struct iscsi_pte cq_first_pte
;
666 u32 num_additional_wqes
;
671 * Initial iSCSI connection offload request 3
673 struct iscsi_kwqe_conn_offload3
{
674 #if defined(__BIG_ENDIAN)
675 struct iscsi_kwqe_header hdr
;
677 #elif defined(__LITTLE_ENDIAN)
679 struct iscsi_kwqe_header hdr
;
682 struct iscsi_pte qp_first_pte
[3];
687 * iSCSI connection update request
689 struct iscsi_kwqe_conn_update
{
690 #if defined(__BIG_ENDIAN)
691 struct iscsi_kwqe_header hdr
;
693 #elif defined(__LITTLE_ENDIAN)
695 struct iscsi_kwqe_header hdr
;
697 #if defined(__BIG_ENDIAN)
698 u8 session_error_recovery_level
;
699 u8 max_outstanding_r2ts
;
702 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0)
703 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0
704 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1)
705 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1
706 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2)
707 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2
708 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3)
709 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3
710 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4)
711 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4
712 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6)
713 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6
714 #elif defined(__LITTLE_ENDIAN)
716 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0)
717 #define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0
718 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1)
719 #define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1
720 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2)
721 #define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2
722 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3)
723 #define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3
724 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4)
725 #define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4
726 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6)
727 #define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6
729 u8 max_outstanding_r2ts
;
730 u8 session_error_recovery_level
;
733 u32 max_send_pdu_length
;
734 u32 max_recv_pdu_length
;
735 u32 first_burst_length
;
736 u32 max_burst_length
;
741 * iSCSI destroy connection request
743 struct iscsi_kwqe_conn_destroy
{
744 #if defined(__BIG_ENDIAN)
745 struct iscsi_kwqe_header hdr
;
747 #elif defined(__LITTLE_ENDIAN)
749 struct iscsi_kwqe_header hdr
;
759 struct iscsi_kwqe_init1 init1
;
760 struct iscsi_kwqe_init2 init2
;
761 struct iscsi_kwqe_conn_offload1 conn_offload1
;
762 struct iscsi_kwqe_conn_offload2 conn_offload2
;
763 struct iscsi_kwqe_conn_update conn_update
;
764 struct iscsi_kwqe_conn_destroy conn_destroy
;
770 struct bnx2i_login_request
{
771 #if defined(__BIG_ENDIAN)
774 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE (0x3<<0)
775 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE_SHIFT 0
776 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE (0x3<<2)
777 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE_SHIFT 2
778 #define ISCSI_LOGIN_REQUEST_RESERVED0 (0x3<<4)
779 #define ISCSI_LOGIN_REQUEST_RESERVED0_SHIFT 4
780 #define ISCSI_LOGIN_REQUEST_CONT (0x1<<6)
781 #define ISCSI_LOGIN_REQUEST_CONT_SHIFT 6
782 #define ISCSI_LOGIN_REQUEST_TRANSIT (0x1<<7)
783 #define ISCSI_LOGIN_REQUEST_TRANSIT_SHIFT 7
786 #elif defined(__LITTLE_ENDIAN)
790 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE (0x3<<0)
791 #define ISCSI_LOGIN_REQUEST_NEXT_STAGE_SHIFT 0
792 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE (0x3<<2)
793 #define ISCSI_LOGIN_REQUEST_CURRENT_STAGE_SHIFT 2
794 #define ISCSI_LOGIN_REQUEST_RESERVED0 (0x3<<4)
795 #define ISCSI_LOGIN_REQUEST_RESERVED0_SHIFT 4
796 #define ISCSI_LOGIN_REQUEST_CONT (0x1<<6)
797 #define ISCSI_LOGIN_REQUEST_CONT_SHIFT 6
798 #define ISCSI_LOGIN_REQUEST_TRANSIT (0x1<<7)
799 #define ISCSI_LOGIN_REQUEST_TRANSIT_SHIFT 7
804 #if defined(__BIG_ENDIAN)
807 #elif defined(__LITTLE_ENDIAN)
811 #if defined(__BIG_ENDIAN)
814 #define ISCSI_LOGIN_REQUEST_INDEX (0x3FFF<<0)
815 #define ISCSI_LOGIN_REQUEST_INDEX_SHIFT 0
816 #define ISCSI_LOGIN_REQUEST_TYPE (0x3<<14)
817 #define ISCSI_LOGIN_REQUEST_TYPE_SHIFT 14
818 #elif defined(__LITTLE_ENDIAN)
820 #define ISCSI_LOGIN_REQUEST_INDEX (0x3FFF<<0)
821 #define ISCSI_LOGIN_REQUEST_INDEX_SHIFT 0
822 #define ISCSI_LOGIN_REQUEST_TYPE (0x3<<14)
823 #define ISCSI_LOGIN_REQUEST_TYPE_SHIFT 14
826 #if defined(__BIG_ENDIAN)
829 #elif defined(__LITTLE_ENDIAN)
836 u32 resp_bd_list_addr_lo
;
837 u32 resp_bd_list_addr_hi
;
839 #define ISCSI_LOGIN_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
840 #define ISCSI_LOGIN_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
841 #define ISCSI_LOGIN_REQUEST_NUM_RESP_BDS (0xFF<<24)
842 #define ISCSI_LOGIN_REQUEST_NUM_RESP_BDS_SHIFT 24
843 #if defined(__BIG_ENDIAN)
847 #define ISCSI_LOGIN_REQUEST_RESERVED5 (0x3<<0)
848 #define ISCSI_LOGIN_REQUEST_RESERVED5_SHIFT 0
849 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
850 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
851 #define ISCSI_LOGIN_REQUEST_RESERVED6 (0x1F<<3)
852 #define ISCSI_LOGIN_REQUEST_RESERVED6_SHIFT 3
853 #elif defined(__LITTLE_ENDIAN)
855 #define ISCSI_LOGIN_REQUEST_RESERVED5 (0x3<<0)
856 #define ISCSI_LOGIN_REQUEST_RESERVED5_SHIFT 0
857 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2)
858 #define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2
859 #define ISCSI_LOGIN_REQUEST_RESERVED6 (0x1F<<3)
860 #define ISCSI_LOGIN_REQUEST_RESERVED6_SHIFT 3
866 #if defined(__BIG_ENDIAN)
871 #elif defined(__LITTLE_ENDIAN)
883 struct bnx2i_login_response
{
884 #if defined(__BIG_ENDIAN)
887 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE (0x3<<0)
888 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE_SHIFT 0
889 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE (0x3<<2)
890 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE_SHIFT 2
891 #define ISCSI_LOGIN_RESPONSE_RESERVED0 (0x3<<4)
892 #define ISCSI_LOGIN_RESPONSE_RESERVED0_SHIFT 4
893 #define ISCSI_LOGIN_RESPONSE_CONT (0x1<<6)
894 #define ISCSI_LOGIN_RESPONSE_CONT_SHIFT 6
895 #define ISCSI_LOGIN_RESPONSE_TRANSIT (0x1<<7)
896 #define ISCSI_LOGIN_RESPONSE_TRANSIT_SHIFT 7
899 #elif defined(__LITTLE_ENDIAN)
903 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE (0x3<<0)
904 #define ISCSI_LOGIN_RESPONSE_NEXT_STAGE_SHIFT 0
905 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE (0x3<<2)
906 #define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE_SHIFT 2
907 #define ISCSI_LOGIN_RESPONSE_RESERVED0 (0x3<<4)
908 #define ISCSI_LOGIN_RESPONSE_RESERVED0_SHIFT 4
909 #define ISCSI_LOGIN_RESPONSE_CONT (0x1<<6)
910 #define ISCSI_LOGIN_RESPONSE_CONT_SHIFT 6
911 #define ISCSI_LOGIN_RESPONSE_TRANSIT (0x1<<7)
912 #define ISCSI_LOGIN_RESPONSE_TRANSIT_SHIFT 7
919 #if defined(__BIG_ENDIAN)
923 #elif defined(__LITTLE_ENDIAN)
930 #if defined(__BIG_ENDIAN)
933 #elif defined(__LITTLE_ENDIAN)
937 #if defined(__BIG_ENDIAN)
941 #elif defined(__LITTLE_ENDIAN)
947 #if defined(__BIG_ENDIAN)
950 #define ISCSI_LOGIN_RESPONSE_INDEX (0x3FFF<<0)
951 #define ISCSI_LOGIN_RESPONSE_INDEX_SHIFT 0
952 #define ISCSI_LOGIN_RESPONSE_TYPE (0x3<<14)
953 #define ISCSI_LOGIN_RESPONSE_TYPE_SHIFT 14
954 #elif defined(__LITTLE_ENDIAN)
956 #define ISCSI_LOGIN_RESPONSE_INDEX (0x3FFF<<0)
957 #define ISCSI_LOGIN_RESPONSE_INDEX_SHIFT 0
958 #define ISCSI_LOGIN_RESPONSE_TYPE (0x3<<14)
959 #define ISCSI_LOGIN_RESPONSE_TYPE_SHIFT 14
967 * iSCSI Logout SQ WQE
969 struct bnx2i_logout_request
{
970 #if defined(__BIG_ENDIAN)
973 #define ISCSI_LOGOUT_REQUEST_REASON (0x7F<<0)
974 #define ISCSI_LOGOUT_REQUEST_REASON_SHIFT 0
975 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE (0x1<<7)
976 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE_SHIFT 7
978 #elif defined(__LITTLE_ENDIAN)
981 #define ISCSI_LOGOUT_REQUEST_REASON (0x7F<<0)
982 #define ISCSI_LOGOUT_REQUEST_REASON_SHIFT 0
983 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE (0x1<<7)
984 #define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE_SHIFT 7
989 #if defined(__BIG_ENDIAN)
992 #define ISCSI_LOGOUT_REQUEST_INDEX (0x3FFF<<0)
993 #define ISCSI_LOGOUT_REQUEST_INDEX_SHIFT 0
994 #define ISCSI_LOGOUT_REQUEST_TYPE (0x3<<14)
995 #define ISCSI_LOGOUT_REQUEST_TYPE_SHIFT 14
996 #elif defined(__LITTLE_ENDIAN)
998 #define ISCSI_LOGOUT_REQUEST_INDEX (0x3FFF<<0)
999 #define ISCSI_LOGOUT_REQUEST_INDEX_SHIFT 0
1000 #define ISCSI_LOGOUT_REQUEST_TYPE (0x3<<14)
1001 #define ISCSI_LOGOUT_REQUEST_TYPE_SHIFT 14
1004 #if defined(__BIG_ENDIAN)
1007 #elif defined(__LITTLE_ENDIAN)
1014 u32 bd_list_addr_lo
;
1015 u32 bd_list_addr_hi
;
1016 #if defined(__BIG_ENDIAN)
1021 #elif defined(__LITTLE_ENDIAN)
1033 struct bnx2i_logout_response
{
1034 #if defined(__BIG_ENDIAN)
1039 #elif defined(__LITTLE_ENDIAN)
1049 #if defined(__BIG_ENDIAN)
1053 #elif defined(__LITTLE_ENDIAN)
1059 #if defined(__BIG_ENDIAN)
1062 #elif defined(__LITTLE_ENDIAN)
1067 #if defined(__BIG_ENDIAN)
1070 #define ISCSI_LOGOUT_RESPONSE_INDEX (0x3FFF<<0)
1071 #define ISCSI_LOGOUT_RESPONSE_INDEX_SHIFT 0
1072 #define ISCSI_LOGOUT_RESPONSE_TYPE (0x3<<14)
1073 #define ISCSI_LOGOUT_RESPONSE_TYPE_SHIFT 14
1074 #elif defined(__LITTLE_ENDIAN)
1076 #define ISCSI_LOGOUT_RESPONSE_INDEX (0x3FFF<<0)
1077 #define ISCSI_LOGOUT_RESPONSE_INDEX_SHIFT 0
1078 #define ISCSI_LOGOUT_RESPONSE_TYPE (0x3<<14)
1079 #define ISCSI_LOGOUT_RESPONSE_TYPE_SHIFT 14
1089 struct bnx2i_nop_in_msg
{
1090 #if defined(__BIG_ENDIAN)
1094 #elif defined(__LITTLE_ENDIAN)
1104 #if defined(__BIG_ENDIAN)
1108 #elif defined(__LITTLE_ENDIAN)
1116 #if defined(__BIG_ENDIAN)
1119 #define ISCSI_NOP_IN_MSG_INDEX (0x3FFF<<0)
1120 #define ISCSI_NOP_IN_MSG_INDEX_SHIFT 0
1121 #define ISCSI_NOP_IN_MSG_TYPE (0x3<<14)
1122 #define ISCSI_NOP_IN_MSG_TYPE_SHIFT 14
1123 #elif defined(__LITTLE_ENDIAN)
1125 #define ISCSI_NOP_IN_MSG_INDEX (0x3FFF<<0)
1126 #define ISCSI_NOP_IN_MSG_INDEX_SHIFT 0
1127 #define ISCSI_NOP_IN_MSG_TYPE (0x3<<14)
1128 #define ISCSI_NOP_IN_MSG_TYPE_SHIFT 14
1136 * iSCSI NOP-OUT SQ WQE
1138 struct bnx2i_nop_out_request
{
1139 #if defined(__BIG_ENDIAN)
1142 #define ISCSI_NOP_OUT_REQUEST_RESERVED1 (0x7F<<0)
1143 #define ISCSI_NOP_OUT_REQUEST_RESERVED1_SHIFT 0
1144 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE (0x1<<7)
1145 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE_SHIFT 7
1147 #elif defined(__LITTLE_ENDIAN)
1150 #define ISCSI_NOP_OUT_REQUEST_RESERVED1 (0x7F<<0)
1151 #define ISCSI_NOP_OUT_REQUEST_RESERVED1_SHIFT 0
1152 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE (0x1<<7)
1153 #define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE_SHIFT 7
1158 #if defined(__BIG_ENDIAN)
1161 #define ISCSI_NOP_OUT_REQUEST_INDEX (0x3FFF<<0)
1162 #define ISCSI_NOP_OUT_REQUEST_INDEX_SHIFT 0
1163 #define ISCSI_NOP_OUT_REQUEST_TYPE (0x3<<14)
1164 #define ISCSI_NOP_OUT_REQUEST_TYPE_SHIFT 14
1165 #elif defined(__LITTLE_ENDIAN)
1167 #define ISCSI_NOP_OUT_REQUEST_INDEX (0x3FFF<<0)
1168 #define ISCSI_NOP_OUT_REQUEST_INDEX_SHIFT 0
1169 #define ISCSI_NOP_OUT_REQUEST_TYPE (0x3<<14)
1170 #define ISCSI_NOP_OUT_REQUEST_TYPE_SHIFT 14
1176 u32 resp_bd_list_addr_lo
;
1177 u32 resp_bd_list_addr_hi
;
1179 #define ISCSI_NOP_OUT_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
1180 #define ISCSI_NOP_OUT_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
1181 #define ISCSI_NOP_OUT_REQUEST_NUM_RESP_BDS (0xFF<<24)
1182 #define ISCSI_NOP_OUT_REQUEST_NUM_RESP_BDS_SHIFT 24
1183 #if defined(__BIG_ENDIAN)
1187 #define ISCSI_NOP_OUT_REQUEST_RESERVED4 (0x1<<0)
1188 #define ISCSI_NOP_OUT_REQUEST_RESERVED4_SHIFT 0
1189 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION (0x1<<1)
1190 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION_SHIFT 1
1191 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL (0x3F<<2)
1192 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL_SHIFT 2
1193 #elif defined(__LITTLE_ENDIAN)
1195 #define ISCSI_NOP_OUT_REQUEST_RESERVED4 (0x1<<0)
1196 #define ISCSI_NOP_OUT_REQUEST_RESERVED4_SHIFT 0
1197 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION (0x1<<1)
1198 #define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION_SHIFT 1
1199 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL (0x3F<<2)
1200 #define ISCSI_NOP_OUT_REQUEST_ZERO_FILL_SHIFT 2
1204 u32 bd_list_addr_lo
;
1205 u32 bd_list_addr_hi
;
1206 #if defined(__BIG_ENDIAN)
1211 #elif defined(__LITTLE_ENDIAN)
1222 struct bnx2i_reject_msg
{
1223 #if defined(__BIG_ENDIAN)
1228 #elif defined(__LITTLE_ENDIAN)
1238 #if defined(__BIG_ENDIAN)
1242 #elif defined(__LITTLE_ENDIAN)
1252 * bnx2i iSCSI TMF SQ WQE
1254 struct bnx2i_tmf_request
{
1255 #if defined(__BIG_ENDIAN)
1258 #define ISCSI_TMF_REQUEST_FUNCTION (0x7F<<0)
1259 #define ISCSI_TMF_REQUEST_FUNCTION_SHIFT 0
1260 #define ISCSI_TMF_REQUEST_ALWAYS_ONE (0x1<<7)
1261 #define ISCSI_TMF_REQUEST_ALWAYS_ONE_SHIFT 7
1263 #elif defined(__LITTLE_ENDIAN)
1266 #define ISCSI_TMF_REQUEST_FUNCTION (0x7F<<0)
1267 #define ISCSI_TMF_REQUEST_FUNCTION_SHIFT 0
1268 #define ISCSI_TMF_REQUEST_ALWAYS_ONE (0x1<<7)
1269 #define ISCSI_TMF_REQUEST_ALWAYS_ONE_SHIFT 7
1274 #if defined(__BIG_ENDIAN)
1277 #define ISCSI_TMF_REQUEST_INDEX (0x3FFF<<0)
1278 #define ISCSI_TMF_REQUEST_INDEX_SHIFT 0
1279 #define ISCSI_TMF_REQUEST_TYPE (0x3<<14)
1280 #define ISCSI_TMF_REQUEST_TYPE_SHIFT 14
1281 #elif defined(__LITTLE_ENDIAN)
1283 #define ISCSI_TMF_REQUEST_INDEX (0x3FFF<<0)
1284 #define ISCSI_TMF_REQUEST_INDEX_SHIFT 0
1285 #define ISCSI_TMF_REQUEST_TYPE (0x3<<14)
1286 #define ISCSI_TMF_REQUEST_TYPE_SHIFT 14
1295 u32 bd_list_addr_lo
;
1296 u32 bd_list_addr_hi
;
1297 #if defined(__BIG_ENDIAN)
1302 #elif defined(__LITTLE_ENDIAN)
1313 struct bnx2i_text_request
{
1314 #if defined(__BIG_ENDIAN)
1317 #define ISCSI_TEXT_REQUEST_RESERVED1 (0x3F<<0)
1318 #define ISCSI_TEXT_REQUEST_RESERVED1_SHIFT 0
1319 #define ISCSI_TEXT_REQUEST_CONT (0x1<<6)
1320 #define ISCSI_TEXT_REQUEST_CONT_SHIFT 6
1321 #define ISCSI_TEXT_REQUEST_FINAL (0x1<<7)
1322 #define ISCSI_TEXT_REQUEST_FINAL_SHIFT 7
1324 #elif defined(__LITTLE_ENDIAN)
1327 #define ISCSI_TEXT_REQUEST_RESERVED1 (0x3F<<0)
1328 #define ISCSI_TEXT_REQUEST_RESERVED1_SHIFT 0
1329 #define ISCSI_TEXT_REQUEST_CONT (0x1<<6)
1330 #define ISCSI_TEXT_REQUEST_CONT_SHIFT 6
1331 #define ISCSI_TEXT_REQUEST_FINAL (0x1<<7)
1332 #define ISCSI_TEXT_REQUEST_FINAL_SHIFT 7
1337 #if defined(__BIG_ENDIAN)
1340 #define ISCSI_TEXT_REQUEST_INDEX (0x3FFF<<0)
1341 #define ISCSI_TEXT_REQUEST_INDEX_SHIFT 0
1342 #define ISCSI_TEXT_REQUEST_TYPE (0x3<<14)
1343 #define ISCSI_TEXT_REQUEST_TYPE_SHIFT 14
1344 #elif defined(__LITTLE_ENDIAN)
1346 #define ISCSI_TEXT_REQUEST_INDEX (0x3FFF<<0)
1347 #define ISCSI_TEXT_REQUEST_INDEX_SHIFT 0
1348 #define ISCSI_TEXT_REQUEST_TYPE (0x3<<14)
1349 #define ISCSI_TEXT_REQUEST_TYPE_SHIFT 14
1355 u32 resp_bd_list_addr_lo
;
1356 u32 resp_bd_list_addr_hi
;
1358 #define ISCSI_TEXT_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0)
1359 #define ISCSI_TEXT_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0
1360 #define ISCSI_TEXT_REQUEST_NUM_RESP_BDS (0xFF<<24)
1361 #define ISCSI_TEXT_REQUEST_NUM_RESP_BDS_SHIFT 24
1363 u32 bd_list_addr_lo
;
1364 u32 bd_list_addr_hi
;
1365 #if defined(__BIG_ENDIAN)
1370 #elif defined(__LITTLE_ENDIAN)
1381 union iscsi_request
{
1382 struct bnx2i_cmd_request cmd
;
1383 struct bnx2i_tmf_request tmf
;
1384 struct bnx2i_nop_out_request nop_out
;
1385 struct bnx2i_login_request login_req
;
1386 struct bnx2i_text_request text
;
1387 struct bnx2i_logout_request logout_req
;
1388 struct bnx2i_cleanup_request cleanup
;
1395 struct bnx2i_tmf_response
{
1396 #if defined(__BIG_ENDIAN)
1401 #elif defined(__LITTLE_ENDIAN)
1411 #if defined(__BIG_ENDIAN)
1415 #elif defined(__LITTLE_ENDIAN)
1421 #if defined(__BIG_ENDIAN)
1424 #define ISCSI_TMF_RESPONSE_INDEX (0x3FFF<<0)
1425 #define ISCSI_TMF_RESPONSE_INDEX_SHIFT 0
1426 #define ISCSI_TMF_RESPONSE_TYPE (0x3<<14)
1427 #define ISCSI_TMF_RESPONSE_TYPE_SHIFT 14
1428 #elif defined(__LITTLE_ENDIAN)
1430 #define ISCSI_TMF_RESPONSE_INDEX (0x3FFF<<0)
1431 #define ISCSI_TMF_RESPONSE_INDEX_SHIFT 0
1432 #define ISCSI_TMF_RESPONSE_TYPE (0x3<<14)
1433 #define ISCSI_TMF_RESPONSE_TYPE_SHIFT 14
1442 struct bnx2i_text_response
{
1443 #if defined(__BIG_ENDIAN)
1446 #define ISCSI_TEXT_RESPONSE_RESERVED1 (0x3F<<0)
1447 #define ISCSI_TEXT_RESPONSE_RESERVED1_SHIFT 0
1448 #define ISCSI_TEXT_RESPONSE_CONT (0x1<<6)
1449 #define ISCSI_TEXT_RESPONSE_CONT_SHIFT 6
1450 #define ISCSI_TEXT_RESPONSE_FINAL (0x1<<7)
1451 #define ISCSI_TEXT_RESPONSE_FINAL_SHIFT 7
1453 #elif defined(__LITTLE_ENDIAN)
1456 #define ISCSI_TEXT_RESPONSE_RESERVED1 (0x3F<<0)
1457 #define ISCSI_TEXT_RESPONSE_RESERVED1_SHIFT 0
1458 #define ISCSI_TEXT_RESPONSE_CONT (0x1<<6)
1459 #define ISCSI_TEXT_RESPONSE_CONT_SHIFT 6
1460 #define ISCSI_TEXT_RESPONSE_FINAL (0x1<<7)
1461 #define ISCSI_TEXT_RESPONSE_FINAL_SHIFT 7
1469 #if defined(__BIG_ENDIAN)
1473 #elif defined(__LITTLE_ENDIAN)
1481 #if defined(__BIG_ENDIAN)
1484 #define ISCSI_TEXT_RESPONSE_INDEX (0x3FFF<<0)
1485 #define ISCSI_TEXT_RESPONSE_INDEX_SHIFT 0
1486 #define ISCSI_TEXT_RESPONSE_TYPE (0x3<<14)
1487 #define ISCSI_TEXT_RESPONSE_TYPE_SHIFT 14
1488 #elif defined(__LITTLE_ENDIAN)
1490 #define ISCSI_TEXT_RESPONSE_INDEX (0x3FFF<<0)
1491 #define ISCSI_TEXT_RESPONSE_INDEX_SHIFT 0
1492 #define ISCSI_TEXT_RESPONSE_TYPE (0x3<<14)
1493 #define ISCSI_TEXT_RESPONSE_TYPE_SHIFT 14
1502 union iscsi_response
{
1503 struct bnx2i_cmd_response cmd
;
1504 struct bnx2i_tmf_response tmf
;
1505 struct bnx2i_login_response login_resp
;
1506 struct bnx2i_text_response text
;
1507 struct bnx2i_logout_response logout_resp
;
1508 struct bnx2i_cleanup_response cleanup
;
1509 struct bnx2i_reject_msg reject
;
1510 struct bnx2i_async_msg async
;
1511 struct bnx2i_nop_in_msg nop_in
;
1514 #endif /* __57XX_ISCSI_HSI_LINUX_LE__ */