1f39a775715c86bb9165a3fc79bfc652138e44ff4Vikas Chaudhary/* 57xx_iscsi_hsi.h: QLogic NetXtreme II iSCSI HSI. 2cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * 30b3bf38739185a6f18aad18863773acc24f6a2e4Eddie Wai * Copyright (c) 2006 - 2013 Broadcom Corporation 4f39a775715c86bb9165a3fc79bfc652138e44ff4Vikas Chaudhary * Copyright (c) 2014, QLogic Corporation 5cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * 6cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * This program is free software; you can redistribute it and/or modify 7cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * it under the terms of the GNU General Public License as published by 8cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * the Free Software Foundation. 9cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * 10cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * Written by: Anil Veerabhadrappa (anilgv@broadcom.com) 11f39a775715c86bb9165a3fc79bfc652138e44ff4Vikas Chaudhary * Previously Maintained by: Eddie Wai (eddie.wai@broadcom.com) 12f39a775715c86bb9165a3fc79bfc652138e44ff4Vikas Chaudhary * Maintained by: QLogic-Storage-Upstream@qlogic.com 13cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 14cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#ifndef __57XX_ISCSI_HSI_LINUX_LE__ 15cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define __57XX_ISCSI_HSI_LINUX_LE__ 16cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 17cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 18cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Async CQE 19cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 20cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_async_msg { 21cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 22cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 23cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 24cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 25cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 26cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 27cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 28cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 29cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 30cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2; 31cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 32cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 33cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved3[2]; 34cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 35cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 36cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 37cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 38cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 39cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 40cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 41cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 42cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 43cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved6; 44cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lun[2]; 45cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 46cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 async_event; 47cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 async_vcode; 48cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 param1; 49cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 50cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 param1; 51cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 async_vcode; 52cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 async_event; 53cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 54cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 55cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 param2; 56cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 param3; 57cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 58cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 param3; 59cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 param2; 60cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 61cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved7[3]; 62cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 63cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 64cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 65cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 66cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 67cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Buffer Descriptor (BD) 68cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 69cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_bd { 70cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 buffer_addr_hi; 71cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 buffer_addr_lo; 72cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 73cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 74cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 buffer_length; 75cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 76cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 buffer_length; 77cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 78cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 79cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 80cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 81cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 flags; 82cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED1 (0x3F<<0) 83cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED1_SHIFT 0 84cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6) 85cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6 86cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7) 87cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7 88cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED2 (0xFF<<8) 89cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED2_SHIFT 8 90cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 91cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 flags; 92cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED1 (0x3F<<0) 93cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED1_SHIFT 0 94cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_LAST_IN_BD_CHAIN (0x1<<6) 95cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_LAST_IN_BD_CHAIN_SHIFT 6 96cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_FIRST_IN_BD_CHAIN (0x1<<7) 97cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_FIRST_IN_BD_CHAIN_SHIFT 7 98cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED2 (0xFF<<8) 99cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_BD_RESERVED2_SHIFT 8 100cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 101cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 102cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 103cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 104cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 105cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 106cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Cleanup SQ WQE 107cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 108cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_cleanup_request { 109cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 110cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 111cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 112cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 113cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 114cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 115cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 116cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 117cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 118cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2[3]; 119cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 120cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 121cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 122cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_INDEX (0x3FFF<<0) 123cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_INDEX_SHIFT 0 124cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_TYPE (0x3<<14) 125cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_TYPE_SHIFT 14 126cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 127cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 128cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_INDEX (0x3FFF<<0) 129cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_INDEX_SHIFT 0 130cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_TYPE (0x3<<14) 131cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_REQUEST_TYPE_SHIFT 14 132cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 133cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 134cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved4[10]; 135cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 136cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 137cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 138cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 139cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 140cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 141cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 142cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 143cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 144cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 145cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 146cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 147cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 148cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Cleanup CQE 149cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 150cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_cleanup_response { 151cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 152cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 153cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status; 154cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 155cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 156cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 157cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status; 158cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 159cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 160cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved1[3]; 161cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2[2]; 162cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 163cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 164cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 165cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 166cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 167cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 168cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 169cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 170cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 171cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved5[7]; 172cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 173cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved6; 174cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 175cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_INDEX (0x3FFF<<0) 176cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_INDEX_SHIFT 0 177cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_TYPE (0x3<<14) 178cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_TYPE_SHIFT 14 179cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 180cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 181cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_INDEX (0x3FFF<<0) 182cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_INDEX_SHIFT 0 183cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_TYPE (0x3<<14) 184cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CLEANUP_RESPONSE_TYPE_SHIFT 14 185cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved6; 186cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 187cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 188cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 189cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 190cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 191cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 192cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * SCSI read/write SQ WQE 193cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 194cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_cmd_request { 195cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 196cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 197cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 198cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TASK_ATTR (0x7<<0) 199cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TASK_ATTR_SHIFT 0 200cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_RESERVED1 (0x3<<3) 201cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_RESERVED1_SHIFT 3 202cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_WRITE (0x1<<5) 203cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_WRITE_SHIFT 5 204cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_READ (0x1<<6) 205cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_READ_SHIFT 6 206cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_FINAL (0x1<<7) 207cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_FINAL_SHIFT 7 208cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 209cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 210cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 211cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 212cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TASK_ATTR (0x7<<0) 213cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TASK_ATTR_SHIFT 0 214cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_RESERVED1 (0x3<<3) 215cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_RESERVED1_SHIFT 3 216cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_WRITE (0x1<<5) 217cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_WRITE_SHIFT 5 218cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_READ (0x1<<6) 219cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_READ_SHIFT 6 220cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_FINAL (0x1<<7) 221cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_FINAL_SHIFT 7 222cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 223cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 224cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 225cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 ud_buffer_offset; 226cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sd_buffer_offset; 227cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 228cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sd_buffer_offset; 229cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 ud_buffer_offset; 230cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 231cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lun[2]; 232cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 233cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 234cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 235cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_INDEX (0x3FFF<<0) 236cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_INDEX_SHIFT 0 237cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TYPE (0x3<<14) 238cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TYPE_SHIFT 14 239cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 240cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 241cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_INDEX (0x3FFF<<0) 242cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_INDEX_SHIFT 0 243cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TYPE (0x3<<14) 244cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_REQUEST_TYPE_SHIFT 14 245cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 246cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 247cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 total_data_transfer_length; 248cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cmd_sn; 249cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved3; 250cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cdb[4]; 251cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 zero_fill; 252cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_lo; 253cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_hi; 254cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 255cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 256cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 sd_start_bd_index; 257cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 ud_start_bd_index; 258cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 259cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 260cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 261cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 ud_start_bd_index; 262cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 sd_start_bd_index; 263cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 264cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 265cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 266cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 267cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 268cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 269cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * task statistics for write response 270cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 271cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_write_resp_task_stat { 2722e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski#if defined(__BIG_ENDIAN) 2732e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 num_r2ts; 2742e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 num_data_outs; 2752e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski#elif defined(__LITTLE_ENDIAN) 2762e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 num_data_outs; 2772e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 num_r2ts; 2782e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski#endif 279cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 280cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 281cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 282cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * task statistics for read response 283cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 284cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_read_resp_task_stat { 285cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 2862e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 reserved; 2872e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 num_data_ins; 288cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 2892e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 num_data_ins; 2902e499d3cc13365a87815266dda59904dcb8c8d6cBarak Witkowski u16 reserved; 291cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 292cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 293cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 294cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 295cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * task statistics for iSCSI cmd response 296cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 297cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanunion bnx2i_cmd_resp_task_stat { 298cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_write_resp_task_stat write_stat; 299cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_read_resp_task_stat read_stat; 300cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 301cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 302cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 303cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * SCSI Command CQE 304cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 305cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_cmd_response { 306cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 307cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 308cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response_flags; 309cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED0 (0x1<<0) 310cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED0_SHIFT 0 311cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW (0x1<<1) 312cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW_SHIFT 1 313cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW (0x1<<2) 314cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW_SHIFT 2 315cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW (0x1<<3) 316cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW_SHIFT 3 317cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW (0x1<<4) 318cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW_SHIFT 4 319cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED1 (0x7<<5) 320cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED1_SHIFT 5 321cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response; 322cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status; 323cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 324cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status; 325cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response; 326cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response_flags; 327cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED0 (0x1<<0) 328cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED0_SHIFT 0 329cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW (0x1<<1) 330cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_UNDERFLOW_SHIFT 1 331cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW (0x1<<2) 332cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESIDUAL_OVERFLOW_SHIFT 2 333cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW (0x1<<3) 334cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_UNDERFLOW_SHIFT 3 335cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW (0x1<<4) 336cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_BR_RESIDUAL_OVERFLOW_SHIFT 4 337cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED1 (0x7<<5) 338cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_RESERVED1_SHIFT 5 339cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 340cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 341cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 342cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 343cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 344cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2; 345cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 residual_count; 346cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 347cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 348cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 349cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 350cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 351cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 352cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 353cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 354cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 355cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved5[5]; 356cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan union bnx2i_cmd_resp_task_stat task_stat; 357cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved6; 358cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 359cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 360cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 361cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_INDEX (0x3FFF<<0) 362cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_INDEX_SHIFT 0 363cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_TYPE (0x3<<14) 364cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_TYPE_SHIFT 14 365cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 366cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 367cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_INDEX (0x3FFF<<0) 368cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_INDEX_SHIFT 0 369cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_TYPE (0x3<<14) 370cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_CMD_RESPONSE_TYPE_SHIFT 14 371cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 372cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 373cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 374cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 375cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 376cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 377cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 378cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 379cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * firmware middle-path request SQ WQE 380cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 381cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_fw_mp_request { 382cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 383cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 384cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 385cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 hdr_opaque1; 386cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 387cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 hdr_opaque1; 388cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 389cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 390cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 391cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 392cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_opaque2[2]; 393cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 394cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 395cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 396cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_INDEX (0x3FFF<<0) 397cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_INDEX_SHIFT 0 398cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_TYPE (0x3<<14) 399cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_TYPE_SHIFT 14 400cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 401cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 402cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_INDEX (0x3FFF<<0) 403cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_INDEX_SHIFT 0 404cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_TYPE (0x3<<14) 405cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_TYPE_SHIFT 14 406cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 407cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 408cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_opaque3[4]; 409cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_lo; 410cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_hi; 411cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_buffer; 412cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0) 413cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0 414cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_NUM_RESP_BDS (0xFF<<24) 415cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_NUM_RESP_BDS_SHIFT 24 416cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 417cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 418cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 419cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 420cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED1 (0x1<<0) 421cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED1_SHIFT 0 422cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION (0x1<<1) 423cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION_SHIFT 1 424cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2) 425cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2 426cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED2 (0x1F<<3) 427cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED2_SHIFT 3 428cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 429cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 430cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED1 (0x1<<0) 431cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED1_SHIFT 0 432cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION (0x1<<1) 433cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_LOCAL_COMPLETION_SHIFT 1 434cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2) 435cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2 436cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED2 (0x1F<<3) 437cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_MP_REQUEST_RESERVED2_SHIFT 3 438cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 439cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 440cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 441cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_lo; 442cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_hi; 443cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 444cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 445cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 446cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved5; 447cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 448cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 449cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 450cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved5; 451cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 452cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 453cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 454cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 455cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 456cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 457cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 458cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * firmware response - CQE: used only by firmware 459cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 460cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_fw_response { 461cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_dword1[2]; 462cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_exp_cmd_sn; 463cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_max_cmd_sn; 464cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_ttt; 465cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_res_cnt; 466cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cqe_flags; 467cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_RESPONSE_RESERVED2 (0xFF<<0) 468cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_RESPONSE_RESERVED2_SHIFT 0 469cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_RESPONSE_ERR_CODE (0xFF<<8) 470cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_RESPONSE_ERR_CODE_SHIFT 8 471cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_RESPONSE_RESERVED3 (0xFFFF<<16) 472cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_FW_RESPONSE_RESERVED3_SHIFT 16 473cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 stat_sn; 474cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_dword2[2]; 475cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_dword3[2]; 476cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 task_stat; 477cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved0; 478cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hdr_itt; 479cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 480cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 481cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 482cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 483cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 484cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI KCQ CQE parameters 485cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 486cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanunion iscsi_kcqe_params { 487cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved0[4]; 488cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 489cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 490cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 491cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI KCQ CQE 492cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 493cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kcqe { 494cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 iscsi_conn_id; 495cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 completion_status; 496cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 iscsi_conn_context_id; 497cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan union iscsi_kcqe_params params; 498cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 499cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 500cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED0 (0xF<<0) 501cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED0_SHIFT 0 502cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_LAYER_CODE (0x7<<4) 503cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_LAYER_CODE_SHIFT 4 504cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED1 (0x1<<7) 505cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED1_SHIFT 7 506cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 507cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 qe_self_seq; 508cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 509cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 qe_self_seq; 510cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 511cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 512cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED0 (0xF<<0) 513cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED0_SHIFT 0 514cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_LAYER_CODE (0x7<<4) 515cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_LAYER_CODE_SHIFT 4 516cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED1 (0x1<<7) 517cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KCQE_RESERVED1_SHIFT 7 518cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 519cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 520cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 521cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 522cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 523cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 524cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI KWQE header 525cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 526cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_header { 527cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 528cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 529cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0) 530cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0 531cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4) 532cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4 533cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7) 534cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7 535cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 536cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 537cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 538cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 539cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED0 (0xF<<0) 540cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED0_SHIFT 0 541cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_LAYER_CODE (0x7<<4) 542cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_LAYER_CODE_SHIFT 4 543cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED1 (0x1<<7) 544cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_HEADER_RESERVED1_SHIFT 7 545cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 546cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 547cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 548cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 549cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI firmware init request 1 550cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 551cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_init1 { 552cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 553cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 554cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 555cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_cqs; 556cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 557cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_cqs; 558cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 559cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 560cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 561cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 dummy_buffer_addr_lo; 562cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 dummy_buffer_addr_hi; 563cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 564cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 num_ccells_per_conn; 565cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 num_tasks_per_conn; 566cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 567cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 num_tasks_per_conn; 568cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 num_ccells_per_conn; 569cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 570cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 571cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sq_wqes_per_page; 572cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sq_num_wqes; 573cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 574cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sq_num_wqes; 575cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sq_wqes_per_page; 576cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 577cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 578cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_log_wqes_per_page; 579cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 580cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0) 581cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0 582cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4) 583cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4 584cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5) 585cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5 586b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE (0x1<<6) 587b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE_SHIFT 6 588b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_RESERVED1 (0x1<<7) 589b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 7 590cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cq_num_wqes; 591cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 592cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cq_num_wqes; 593cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 594cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_PAGE_SIZE (0xF<<0) 595cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_PAGE_SIZE_SHIFT 0 596cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE (0x1<<4) 597cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_DELAYED_ACK_ENABLE_SHIFT 4 598cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE (0x1<<5) 599cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_INIT1_KEEP_ALIVE_ENABLE_SHIFT 5 600b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE (0x1<<6) 601b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_TIME_STAMPS_ENABLE_SHIFT 6 602b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_RESERVED1 (0x1<<7) 603b3bd2d65e6faf4f6fe6f87d6a5163859af391109Eddie Wai#define ISCSI_KWQE_INIT1_RESERVED1_SHIFT 7 604cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_log_wqes_per_page; 605cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 606cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 607cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cq_num_pages; 608cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sq_num_pages; 609cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 610cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 sq_num_pages; 611cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cq_num_pages; 612cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 613cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 614cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 rq_buffer_size; 615cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 rq_num_wqes; 616cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 617cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 rq_num_wqes; 618cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 rq_buffer_size; 619cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 620cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 621cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 622cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 623cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI firmware init request 2 624cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 625cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_init2 { 626cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 627cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 628cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 max_cq_sqn; 629cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 630cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 max_cq_sqn; 631cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 632cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 633cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 error_bit_map[2]; 634cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved1[5]; 635cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 636cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 637cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 638cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * Initial iSCSI connection offload request 1 639cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 640cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_conn_offload1 { 641cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 642cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 643cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 iscsi_conn_id; 644cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 645cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 iscsi_conn_id; 646cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 647cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 648cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 sq_page_table_addr_lo; 649cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 sq_page_table_addr_hi; 650cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_page_table_addr_lo; 651cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_page_table_addr_hi; 652cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved0[3]; 653cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 654cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 655cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 656cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Page Table Entry (PTE) 657cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 658cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_pte { 659cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 hi; 660cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lo; 661cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 662cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 663cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 664cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * Initial iSCSI connection offload request 2 665cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 666cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_conn_offload2 { 667cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 668cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 669cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 670cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 671cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 672cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 673cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 674cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 rq_page_table_addr_lo; 675cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 rq_page_table_addr_hi; 676cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_pte sq_first_pte; 677cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_pte cq_first_pte; 678cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 num_additional_wqes; 679cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 680cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 681cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 682cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 683cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * Initial iSCSI connection offload request 3 684cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 685cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_conn_offload3 { 686cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 687cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 688cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 689cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 690cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 691cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 692cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 693cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved1; 694cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_pte qp_first_pte[3]; 695cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 696cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 697cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 698cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 699cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI connection update request 700cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 701cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_conn_update { 702cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 703cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 704cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 705cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 706cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 707cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 708cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 709cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 710cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 session_error_recovery_level; 711cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 max_outstanding_r2ts; 712cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved2; 713cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 conn_flags; 714cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0) 715cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0 716cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1) 717cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1 718cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2) 719cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2 720cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3) 721cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3 722619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4) 723619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4 724619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6) 725619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6 726cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 727cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 conn_flags; 728cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST (0x1<<0) 729cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_HEADER_DIGEST_SHIFT 0 730cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST (0x1<<1) 731cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_DATA_DIGEST_SHIFT 1 732cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T (0x1<<2) 733cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_INITIAL_R2T_SHIFT 2 734cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA (0x1<<3) 735cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_KWQE_CONN_UPDATE_IMMEDIATE_DATA_SHIFT 3 736619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE (0x3<<4) 737619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_OOO_SUPPORT_MODE_SHIFT 4 738619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_RESERVED1 (0x3<<6) 739619c5cb6885b936c44ae1422ef805b69c6291485Vlad Zolotarov#define ISCSI_KWQE_CONN_UPDATE_RESERVED1_SHIFT 6 740cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved2; 741cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 max_outstanding_r2ts; 742cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 session_error_recovery_level; 743cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 744cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 context_id; 745cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_send_pdu_length; 746cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_recv_pdu_length; 747cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 first_burst_length; 748cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_burst_length; 749cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_stat_sn; 750cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 751cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 752cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 753cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI destroy connection request 754cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 755cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct iscsi_kwqe_conn_destroy { 756cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 757cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 758cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 759cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 760cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 761cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_header hdr; 762cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 763cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 context_id; 764cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved1[6]; 765cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 766cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 767cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 768cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI KWQ WQE 769cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 770cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanunion iscsi_kwqe { 771cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_init1 init1; 772cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_init2 init2; 773cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_conn_offload1 conn_offload1; 774cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_conn_offload2 conn_offload2; 775cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_conn_update conn_update; 776cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct iscsi_kwqe_conn_destroy conn_destroy; 777cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 778cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 779cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 780cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Login SQ WQE 781cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 782cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_login_request { 783cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 784cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 785cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 786cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_NEXT_STAGE (0x3<<0) 787cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_NEXT_STAGE_SHIFT 0 788cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CURRENT_STAGE (0x3<<2) 789cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CURRENT_STAGE_SHIFT 2 790cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED0 (0x3<<4) 791cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED0_SHIFT 4 792cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CONT (0x1<<6) 793cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CONT_SHIFT 6 794cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TRANSIT (0x1<<7) 795cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TRANSIT_SHIFT 7 796cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_max; 797cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_min; 798cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 799cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_min; 800cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_max; 801cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 802cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_NEXT_STAGE (0x3<<0) 803cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_NEXT_STAGE_SHIFT 0 804cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CURRENT_STAGE (0x3<<2) 805cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CURRENT_STAGE_SHIFT 2 806cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED0 (0x3<<4) 807cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED0_SHIFT 4 808cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CONT (0x1<<6) 809cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_CONT_SHIFT 6 810cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TRANSIT (0x1<<7) 811cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TRANSIT_SHIFT 7 812cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 813cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 814cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 815cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 isid_lo; 816cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 817cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 isid_hi; 818cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 tsih; 819cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 820cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 tsih; 821cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 isid_hi; 822cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 823cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 824cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 825cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 826cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_INDEX (0x3FFF<<0) 827cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_INDEX_SHIFT 0 828cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TYPE (0x3<<14) 829cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TYPE_SHIFT 14 830cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 831cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 832cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_INDEX (0x3FFF<<0) 833cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_INDEX_SHIFT 0 834cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TYPE (0x3<<14) 835cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_TYPE_SHIFT 14 836cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 837cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 838cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 839cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cid; 840cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 841cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 842cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 843cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cid; 844cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 845cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cmd_sn; 846cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_stat_sn; 847cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved4; 848cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_lo; 849cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_hi; 850cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_buffer; 851cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0) 852cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0 853cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_NUM_RESP_BDS (0xFF<<24) 854cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_NUM_RESP_BDS_SHIFT 24 855cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 856cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved8; 857cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved7; 858cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 859cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED5 (0x3<<0) 860cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED5_SHIFT 0 861cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2) 862cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2 863cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED6 (0x1F<<3) 864cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED6_SHIFT 3 865cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 866cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 867cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED5 (0x3<<0) 868cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED5_SHIFT 0 869cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN (0x1<<2) 870cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_UPDATE_EXP_STAT_SN_SHIFT 2 871cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED6 (0x1F<<3) 872cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_REQUEST_RESERVED6_SHIFT 3 873cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved7; 874cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved8; 875cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 876cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_lo; 877cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_hi; 878cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 879cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 880cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved10; 881cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved9; 882cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 883cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 884cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 885cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved9; 886cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved10; 887cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 888cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 889cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 890cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 891cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 892cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 893cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Login CQE 894cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 895cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_login_response { 896cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 897cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 898cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response_flags; 899cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_NEXT_STAGE (0x3<<0) 900cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_NEXT_STAGE_SHIFT 0 901cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE (0x3<<2) 902cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE_SHIFT 2 903cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_RESERVED0 (0x3<<4) 904cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_RESERVED0_SHIFT 4 905cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CONT (0x1<<6) 906cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CONT_SHIFT 6 907cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TRANSIT (0x1<<7) 908cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TRANSIT_SHIFT 7 909cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_max; 910cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_active; 911cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 912cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_active; 913cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 version_max; 914cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response_flags; 915cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_NEXT_STAGE (0x3<<0) 916cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_NEXT_STAGE_SHIFT 0 917cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE (0x3<<2) 918cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CURRENT_STAGE_SHIFT 2 919cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_RESERVED0 (0x3<<4) 920cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_RESERVED0_SHIFT 4 921cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CONT (0x1<<6) 922cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_CONT_SHIFT 6 923cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TRANSIT (0x1<<7) 924cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TRANSIT_SHIFT 7 925cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 926cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 927cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 928cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 929cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 930cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved1[2]; 931cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 932cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 933cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 934cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved2; 935cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 936cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved2; 937cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 938cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 939cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 940cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 stat_sn; 941cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 isid_lo; 942cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 943cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 isid_hi; 944cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 tsih; 945cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 946cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 tsih; 947cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 isid_hi; 948cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 949cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 950cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status_class; 951cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status_detail; 952cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 953cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 954cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 955cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status_detail; 956cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 status_class; 957cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 958cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved5[3]; 959cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 960cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved6; 961cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 962cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_INDEX (0x3FFF<<0) 963cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_INDEX_SHIFT 0 964cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TYPE (0x3<<14) 965cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TYPE_SHIFT 14 966cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 967cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 968cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_INDEX (0x3FFF<<0) 969cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_INDEX_SHIFT 0 970cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TYPE (0x3<<14) 971cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGIN_RESPONSE_TYPE_SHIFT 14 972cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved6; 973cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 974cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 975cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 976cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 977cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 978cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 979cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Logout SQ WQE 980cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 981cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_logout_request { 982cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 983cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 984cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 985cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_REASON (0x7F<<0) 986cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_REASON_SHIFT 0 987cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE (0x1<<7) 988cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE_SHIFT 7 989cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 990cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 991cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 992cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 993cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_REASON (0x7F<<0) 994cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_REASON_SHIFT 0 995cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE (0x1<<7) 996cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_ALWAYS_ONE_SHIFT 7 997cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 998cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 999cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 1000cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved1[2]; 1001cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1002cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 1003cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1004cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_INDEX (0x3FFF<<0) 1005cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_INDEX_SHIFT 0 1006cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_TYPE (0x3<<14) 1007cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_TYPE_SHIFT 14 1008cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1009cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1010cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_INDEX (0x3FFF<<0) 1011cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_INDEX_SHIFT 0 1012cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_TYPE (0x3<<14) 1013cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_REQUEST_TYPE_SHIFT 14 1014cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 1015cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1016cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1017cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cid; 1018cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 1019cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1020cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 1021cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 cid; 1022cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1023cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cmd_sn; 1024cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved4[5]; 1025cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 zero_fill; 1026cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_lo; 1027cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_hi; 1028cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1029cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1030cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 1031cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved5; 1032cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1033cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1034cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1035cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved5; 1036cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 1037cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1038cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1039cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1040cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1041cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1042cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1043cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Logout CQE 1044cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1045cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_logout_response { 1046cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1047cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1048cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1049cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response; 1050cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 1051cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1052cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 1053cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response; 1054cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1055cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1056cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1057cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2; 1058cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 1059cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 1060cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved3[2]; 1061cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1062cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 1063cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1064cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 1065cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1066cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 1067cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1068cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 1069cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1070cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved6[3]; 1071cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1072cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 time_to_wait; 1073cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 time_to_retain; 1074cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1075cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 time_to_retain; 1076cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 time_to_wait; 1077cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1078cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved7[3]; 1079cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1080cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved8; 1081cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1082cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_INDEX (0x3FFF<<0) 1083cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_INDEX_SHIFT 0 1084cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_TYPE (0x3<<14) 1085cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_TYPE_SHIFT 14 1086cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1087cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1088cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_INDEX (0x3FFF<<0) 1089cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_INDEX_SHIFT 0 1090cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_TYPE (0x3<<14) 1091cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_LOGOUT_RESPONSE_TYPE_SHIFT 14 1092cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved8; 1093cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1094cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 1095cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1096cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1097cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1098cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1099cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Nop-In CQE 1100cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1101cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_nop_in_msg { 1102cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1103cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1104cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1105cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1106cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1107cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1108cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1109cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1110cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1111cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 1112cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 1113cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 1114cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 ttt; 1115cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2; 1116cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1117cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 1118cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1119cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 1120cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1121cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 1122cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1123cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 1124cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1125cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved5; 1126cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lun[2]; 1127cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved6[4]; 1128cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1129cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1130cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1131cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_INDEX (0x3FFF<<0) 1132cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_INDEX_SHIFT 0 1133cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_TYPE (0x3<<14) 1134cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_TYPE_SHIFT 14 1135cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1136cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1137cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_INDEX (0x3FFF<<0) 1138cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_INDEX_SHIFT 0 1139cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_TYPE (0x3<<14) 1140cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_IN_MSG_TYPE_SHIFT 14 1141cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1142cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1143cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 1144cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1145cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1146cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1147cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1148cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI NOP-OUT SQ WQE 1149cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1150cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_nop_out_request { 1151cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1152cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1153cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 1154cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED1 (0x7F<<0) 1155cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED1_SHIFT 0 1156cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE (0x1<<7) 1157cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE_SHIFT 7 1158cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1159cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1160cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1161cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 1162cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED1 (0x7F<<0) 1163cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED1_SHIFT 0 1164cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE (0x1<<7) 1165cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ALWAYS_ONE_SHIFT 7 1166cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1167cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1168cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 1169cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lun[2]; 1170cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1171cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 1172cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1173cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_INDEX (0x3FFF<<0) 1174cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_INDEX_SHIFT 0 1175cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_TYPE (0x3<<14) 1176cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_TYPE_SHIFT 14 1177cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1178cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1179cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_INDEX (0x3FFF<<0) 1180cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_INDEX_SHIFT 0 1181cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_TYPE (0x3<<14) 1182cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_TYPE_SHIFT 14 1183cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved2; 1184cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1185cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 ttt; 1186cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cmd_sn; 1187cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved3[2]; 1188cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_lo; 1189cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_hi; 1190cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_buffer; 1191cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0) 1192cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0 1193cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_NUM_RESP_BDS (0xFF<<24) 1194cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_NUM_RESP_BDS_SHIFT 24 1195cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1196cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1197cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 1198cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 1199cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED4 (0x1<<0) 1200cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED4_SHIFT 0 1201cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION (0x1<<1) 1202cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION_SHIFT 1 1203cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ZERO_FILL (0x3F<<2) 1204cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ZERO_FILL_SHIFT 2 1205cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1206cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 flags; 1207cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED4 (0x1<<0) 1208cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_RESERVED4_SHIFT 0 1209cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION (0x1<<1) 1210cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_LOCAL_COMPLETION_SHIFT 1 1211cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ZERO_FILL (0x3F<<2) 1212cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_NOP_OUT_REQUEST_ZERO_FILL_SHIFT 2 1213cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 1214cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1215cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1216cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_lo; 1217cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_hi; 1218cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1219cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1220cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved9; 1221cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved8; 1222cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1223cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1224cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1225cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved8; 1226cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved9; 1227cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1228cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1229cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1230cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1231cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1232cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Reject CQE 1233cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1234cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_reject_msg { 1235cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1236cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1237cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1238cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reason; 1239cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 1240cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1241cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 1242cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reason; 1243cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1244cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1245cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1246cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 1247cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 1248cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 1249cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2[2]; 1250cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1251cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 1252cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1253cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 1254cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1255cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 1256cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1257cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 1258cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1259cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved5[8]; 1260cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 1261cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1262cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1263cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1264cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * bnx2i iSCSI TMF SQ WQE 1265cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1266cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_tmf_request { 1267cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1268cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1269cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 1270cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_FUNCTION (0x7F<<0) 1271cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_FUNCTION_SHIFT 0 1272cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_ALWAYS_ONE (0x1<<7) 1273cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_ALWAYS_ONE_SHIFT 7 1274cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1275cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1276cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1277cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 1278cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_FUNCTION (0x7F<<0) 1279cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_FUNCTION_SHIFT 0 1280cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_ALWAYS_ONE (0x1<<7) 1281cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_ALWAYS_ONE_SHIFT 7 1282cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1283cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1284cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 1285cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lun[2]; 1286cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1287cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved1; 1288cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1289cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_INDEX (0x3FFF<<0) 1290cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_INDEX_SHIFT 0 1291cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_TYPE (0x3<<14) 1292cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_TYPE_SHIFT 14 1293cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1294cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1295cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_INDEX (0x3FFF<<0) 1296cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_INDEX_SHIFT 0 1297cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_TYPE (0x3<<14) 1298cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_REQUEST_TYPE_SHIFT 14 1299cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved1; 1300cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1301cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 ref_itt; 1302cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cmd_sn; 1303cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2; 1304cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 ref_cmd_sn; 1305cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved3[3]; 1306cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 zero_fill; 1307cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_lo; 1308cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_hi; 1309cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1310cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1311cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved5; 1312cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 1313cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1314cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1315cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1316cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 1317cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved5; 1318cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1319cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1320cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1321cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1322cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1323cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Text SQ WQE 1324cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1325cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_text_request { 1326cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1327cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1328cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 1329cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_RESERVED1 (0x3F<<0) 1330cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_RESERVED1_SHIFT 0 1331cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_CONT (0x1<<6) 1332cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_CONT_SHIFT 6 1333cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_FINAL (0x1<<7) 1334cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_FINAL_SHIFT 7 1335cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1336cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1337cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1338cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_attr; 1339cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_RESERVED1 (0x3F<<0) 1340cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_RESERVED1_SHIFT 0 1341cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_CONT (0x1<<6) 1342cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_CONT_SHIFT 6 1343cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_FINAL (0x1<<7) 1344cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_FINAL_SHIFT 7 1345cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1346cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1347cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 1348cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lun[2]; 1349cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1350cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 1351cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1352cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_INDEX (0x3FFF<<0) 1353cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_INDEX_SHIFT 0 1354cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_TYPE (0x3<<14) 1355cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_TYPE_SHIFT 14 1356cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1357cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1358cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_INDEX (0x3FFF<<0) 1359cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_INDEX_SHIFT 0 1360cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_TYPE (0x3<<14) 1361cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_TYPE_SHIFT 14 1362cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved3; 1363cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1364cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 ttt; 1365cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cmd_sn; 1366cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved4[2]; 1367cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_lo; 1368cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_bd_list_addr_hi; 1369cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 resp_buffer; 1370cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_RESP_BUFFER_LENGTH (0xFFFFFF<<0) 1371cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_RESP_BUFFER_LENGTH_SHIFT 0 1372cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_NUM_RESP_BDS (0xFF<<24) 1373cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_REQUEST_NUM_RESP_BDS_SHIFT 24 1374cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 zero_fill; 1375cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_lo; 1376cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 bd_list_addr_hi; 1377cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1378cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1379cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved7; 1380cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 1381cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1382cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1383cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 num_bds; 1384cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved6; 1385cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved7; 1386cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 cq_index; 1387cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1388cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1389cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1390cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1391cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI SQ WQE 1392cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1393cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanunion iscsi_request { 1394cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_cmd_request cmd; 1395cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_tmf_request tmf; 1396cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_nop_out_request nop_out; 1397cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_login_request login_req; 1398cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_text_request text; 1399cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_logout_request logout_req; 1400cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_cleanup_request cleanup; 1401cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1402cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1403cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1404cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1405cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI TMF CQE 1406cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1407cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_tmf_response { 1408cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1409cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1410cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1411cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response; 1412cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 1413cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1414cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved0; 1415cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response; 1416cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved1; 1417cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1418cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1419cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2; 1420cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 1421cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 1422cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved3[2]; 1423cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1424cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 1425cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1426cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 1427cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1428cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved4; 1429cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1430cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved5; 1431cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1432cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved6[7]; 1433cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1434cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1435cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1436cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_INDEX (0x3FFF<<0) 1437cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_INDEX_SHIFT 0 1438cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_TYPE (0x3<<14) 1439cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_TYPE_SHIFT 14 1440cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1441cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1442cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_INDEX (0x3FFF<<0) 1443cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_INDEX_SHIFT 0 1444cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_TYPE (0x3<<14) 1445cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TMF_RESPONSE_TYPE_SHIFT 14 1446cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1447cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1448cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 1449cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1450cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1451cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1452cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI Text CQE 1453cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1454cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanstruct bnx2i_text_response { 1455cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1456cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1457cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response_flags; 1458cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_RESERVED1 (0x3F<<0) 1459cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_RESERVED1_SHIFT 0 1460cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_CONT (0x1<<6) 1461cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_CONT_SHIFT 6 1462cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_FINAL (0x1<<7) 1463cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_FINAL_SHIFT 7 1464cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1465cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1466cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved0; 1467cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 response_flags; 1468cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_RESERVED1 (0x3F<<0) 1469cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_RESERVED1_SHIFT 0 1470cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_CONT (0x1<<6) 1471cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_CONT_SHIFT 6 1472cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_FINAL (0x1<<7) 1473cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_FINAL_SHIFT 7 1474cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 op_code; 1475cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1476cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 data_length; 1477cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 exp_cmd_sn; 1478cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 max_cmd_sn; 1479cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 ttt; 1480cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved2; 1481cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1482cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 1483cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1484cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 1485cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1486cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 reserved3; 1487cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u8 err_code; 1488cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved4; 1489cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1490cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved5; 1491cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 lun[2]; 1492cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 reserved6[4]; 1493cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#if defined(__BIG_ENDIAN) 1494cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1495cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1496cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_INDEX (0x3FFF<<0) 1497cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_INDEX_SHIFT 0 1498cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_TYPE (0x3<<14) 1499cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_TYPE_SHIFT 14 1500cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#elif defined(__LITTLE_ENDIAN) 1501cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 itt; 1502cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_INDEX (0x3FFF<<0) 1503cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_INDEX_SHIFT 0 1504cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_TYPE (0x3<<14) 1505cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#define ISCSI_TEXT_RESPONSE_TYPE_SHIFT 14 1506cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u16 reserved7; 1507cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif 1508cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan u32 cq_req_sn; 1509cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1510cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1511cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan/* 1512cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan * iSCSI CQE 1513cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan */ 1514cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chanunion iscsi_response { 1515cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_cmd_response cmd; 1516cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_tmf_response tmf; 1517cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_login_response login_resp; 1518cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_text_response text; 1519cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_logout_response logout_resp; 1520cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_cleanup_response cleanup; 1521cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_reject_msg reject; 1522cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_async_msg async; 1523cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan struct bnx2i_nop_in_msg nop_in; 1524cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan}; 1525cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan 1526cf4e6363859d30f24f8cd3e8930dbff399cc3550Michael Chan#endif /* __57XX_ISCSI_HSI_LINUX_LE__ */ 1527