diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hw.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hw.h | 183 |
1 files changed, 160 insertions, 23 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h index 7773b949aa7c..5de5dabbbee6 100644 --- a/drivers/scsi/lpfc/lpfc_hw.h +++ b/drivers/scsi/lpfc/lpfc_hw.h | |||
@@ -1107,6 +1107,8 @@ typedef struct { | |||
1107 | /* Start FireFly Register definitions */ | 1107 | /* Start FireFly Register definitions */ |
1108 | #define PCI_VENDOR_ID_EMULEX 0x10df | 1108 | #define PCI_VENDOR_ID_EMULEX 0x10df |
1109 | #define PCI_DEVICE_ID_FIREFLY 0x1ae5 | 1109 | #define PCI_DEVICE_ID_FIREFLY 0x1ae5 |
1110 | #define PCI_DEVICE_ID_PROTEUS_VF 0xe100 | ||
1111 | #define PCI_DEVICE_ID_PROTEUS_PF 0xe180 | ||
1110 | #define PCI_DEVICE_ID_SAT_SMB 0xf011 | 1112 | #define PCI_DEVICE_ID_SAT_SMB 0xf011 |
1111 | #define PCI_DEVICE_ID_SAT_MID 0xf015 | 1113 | #define PCI_DEVICE_ID_SAT_MID 0xf015 |
1112 | #define PCI_DEVICE_ID_RFLY 0xf095 | 1114 | #define PCI_DEVICE_ID_RFLY 0xf095 |
@@ -1133,10 +1135,12 @@ typedef struct { | |||
1133 | #define PCI_DEVICE_ID_LP11000S 0xfc10 | 1135 | #define PCI_DEVICE_ID_LP11000S 0xfc10 |
1134 | #define PCI_DEVICE_ID_LPE11000S 0xfc20 | 1136 | #define PCI_DEVICE_ID_LPE11000S 0xfc20 |
1135 | #define PCI_DEVICE_ID_SAT_S 0xfc40 | 1137 | #define PCI_DEVICE_ID_SAT_S 0xfc40 |
1138 | #define PCI_DEVICE_ID_PROTEUS_S 0xfc50 | ||
1136 | #define PCI_DEVICE_ID_HELIOS 0xfd00 | 1139 | #define PCI_DEVICE_ID_HELIOS 0xfd00 |
1137 | #define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11 | 1140 | #define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11 |
1138 | #define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12 | 1141 | #define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12 |
1139 | #define PCI_DEVICE_ID_ZEPHYR 0xfe00 | 1142 | #define PCI_DEVICE_ID_ZEPHYR 0xfe00 |
1143 | #define PCI_DEVICE_ID_HORNET 0xfe05 | ||
1140 | #define PCI_DEVICE_ID_ZEPHYR_SCSP 0xfe11 | 1144 | #define PCI_DEVICE_ID_ZEPHYR_SCSP 0xfe11 |
1141 | #define PCI_DEVICE_ID_ZEPHYR_DCSP 0xfe12 | 1145 | #define PCI_DEVICE_ID_ZEPHYR_DCSP 0xfe12 |
1142 | 1146 | ||
@@ -1154,6 +1158,7 @@ typedef struct { | |||
1154 | #define ZEPHYR_JEDEC_ID 0x0577 | 1158 | #define ZEPHYR_JEDEC_ID 0x0577 |
1155 | #define VIPER_JEDEC_ID 0x4838 | 1159 | #define VIPER_JEDEC_ID 0x4838 |
1156 | #define SATURN_JEDEC_ID 0x1004 | 1160 | #define SATURN_JEDEC_ID 0x1004 |
1161 | #define HORNET_JDEC_ID 0x2057706D | ||
1157 | 1162 | ||
1158 | #define JEDEC_ID_MASK 0x0FFFF000 | 1163 | #define JEDEC_ID_MASK 0x0FFFF000 |
1159 | #define JEDEC_ID_SHIFT 12 | 1164 | #define JEDEC_ID_SHIFT 12 |
@@ -1198,6 +1203,18 @@ typedef struct { /* FireFly BIU registers */ | |||
1198 | #define HA_RXATT 0x00000008 /* Bit 3 */ | 1203 | #define HA_RXATT 0x00000008 /* Bit 3 */ |
1199 | #define HA_RXMASK 0x0000000f | 1204 | #define HA_RXMASK 0x0000000f |
1200 | 1205 | ||
1206 | #define HA_R0_CLR_MSK (HA_R0RE_REQ | HA_R0CE_RSP | HA_R0ATT) | ||
1207 | #define HA_R1_CLR_MSK (HA_R1RE_REQ | HA_R1CE_RSP | HA_R1ATT) | ||
1208 | #define HA_R2_CLR_MSK (HA_R2RE_REQ | HA_R2CE_RSP | HA_R2ATT) | ||
1209 | #define HA_R3_CLR_MSK (HA_R3RE_REQ | HA_R3CE_RSP | HA_R3ATT) | ||
1210 | |||
1211 | #define HA_R0_POS 3 | ||
1212 | #define HA_R1_POS 7 | ||
1213 | #define HA_R2_POS 11 | ||
1214 | #define HA_R3_POS 15 | ||
1215 | #define HA_LE_POS 29 | ||
1216 | #define HA_MB_POS 30 | ||
1217 | #define HA_ER_POS 31 | ||
1201 | /* Chip Attention Register */ | 1218 | /* Chip Attention Register */ |
1202 | 1219 | ||
1203 | #define CA_REG_OFFSET 4 /* Byte offset from register base address */ | 1220 | #define CA_REG_OFFSET 4 /* Byte offset from register base address */ |
@@ -1235,7 +1252,7 @@ typedef struct { /* FireFly BIU registers */ | |||
1235 | 1252 | ||
1236 | /* Host Control Register */ | 1253 | /* Host Control Register */ |
1237 | 1254 | ||
1238 | #define HC_REG_OFFSET 12 /* Word offset from register base address */ | 1255 | #define HC_REG_OFFSET 12 /* Byte offset from register base address */ |
1239 | 1256 | ||
1240 | #define HC_MBINT_ENA 0x00000001 /* Bit 0 */ | 1257 | #define HC_MBINT_ENA 0x00000001 /* Bit 0 */ |
1241 | #define HC_R0INT_ENA 0x00000002 /* Bit 1 */ | 1258 | #define HC_R0INT_ENA 0x00000002 /* Bit 1 */ |
@@ -1248,6 +1265,19 @@ typedef struct { /* FireFly BIU registers */ | |||
1248 | #define HC_LAINT_ENA 0x20000000 /* Bit 29 */ | 1265 | #define HC_LAINT_ENA 0x20000000 /* Bit 29 */ |
1249 | #define HC_ERINT_ENA 0x80000000 /* Bit 31 */ | 1266 | #define HC_ERINT_ENA 0x80000000 /* Bit 31 */ |
1250 | 1267 | ||
1268 | /* Message Signaled Interrupt eXtension (MSI-X) message identifiers */ | ||
1269 | #define MSIX_DFLT_ID 0 | ||
1270 | #define MSIX_RNG0_ID 0 | ||
1271 | #define MSIX_RNG1_ID 1 | ||
1272 | #define MSIX_RNG2_ID 2 | ||
1273 | #define MSIX_RNG3_ID 3 | ||
1274 | |||
1275 | #define MSIX_LINK_ID 4 | ||
1276 | #define MSIX_MBOX_ID 5 | ||
1277 | |||
1278 | #define MSIX_SPARE0_ID 6 | ||
1279 | #define MSIX_SPARE1_ID 7 | ||
1280 | |||
1251 | /* Mailbox Commands */ | 1281 | /* Mailbox Commands */ |
1252 | #define MBX_SHUTDOWN 0x00 /* terminate testing */ | 1282 | #define MBX_SHUTDOWN 0x00 /* terminate testing */ |
1253 | #define MBX_LOAD_SM 0x01 | 1283 | #define MBX_LOAD_SM 0x01 |
@@ -1285,10 +1315,14 @@ typedef struct { /* FireFly BIU registers */ | |||
1285 | #define MBX_KILL_BOARD 0x24 | 1315 | #define MBX_KILL_BOARD 0x24 |
1286 | #define MBX_CONFIG_FARP 0x25 | 1316 | #define MBX_CONFIG_FARP 0x25 |
1287 | #define MBX_BEACON 0x2A | 1317 | #define MBX_BEACON 0x2A |
1318 | #define MBX_CONFIG_MSI 0x30 | ||
1288 | #define MBX_HEARTBEAT 0x31 | 1319 | #define MBX_HEARTBEAT 0x31 |
1289 | #define MBX_WRITE_VPARMS 0x32 | 1320 | #define MBX_WRITE_VPARMS 0x32 |
1290 | #define MBX_ASYNCEVT_ENABLE 0x33 | 1321 | #define MBX_ASYNCEVT_ENABLE 0x33 |
1291 | 1322 | ||
1323 | #define MBX_PORT_CAPABILITIES 0x3B | ||
1324 | #define MBX_PORT_IOV_CONTROL 0x3C | ||
1325 | |||
1292 | #define MBX_CONFIG_HBQ 0x7C | 1326 | #define MBX_CONFIG_HBQ 0x7C |
1293 | #define MBX_LOAD_AREA 0x81 | 1327 | #define MBX_LOAD_AREA 0x81 |
1294 | #define MBX_RUN_BIU_DIAG64 0x84 | 1328 | #define MBX_RUN_BIU_DIAG64 0x84 |
@@ -1474,24 +1508,18 @@ struct ulp_bde64 { /* SLI-2 */ | |||
1474 | uint32_t bdeFlags:8; /* BDE Flags 0 IS A SUPPORTED | 1508 | uint32_t bdeFlags:8; /* BDE Flags 0 IS A SUPPORTED |
1475 | VALUE !! */ | 1509 | VALUE !! */ |
1476 | #endif | 1510 | #endif |
1477 | 1511 | #define BUFF_TYPE_BDE_64 0x00 /* BDE (Host_resident) */ | |
1478 | #define BUFF_USE_RSVD 0x01 /* bdeFlags */ | 1512 | #define BUFF_TYPE_BDE_IMMED 0x01 /* Immediate Data BDE */ |
1479 | #define BUFF_USE_INTRPT 0x02 /* Not Implemented with LP6000 */ | 1513 | #define BUFF_TYPE_BDE_64P 0x02 /* BDE (Port-resident) */ |
1480 | #define BUFF_USE_CMND 0x04 /* Optional, 1=cmd/rsp 0=data buffer */ | 1514 | #define BUFF_TYPE_BDE_64I 0x08 /* Input BDE (Host-resident) */ |
1481 | #define BUFF_USE_RCV 0x08 /* "" "", 1=rcv buffer, 0=xmit | 1515 | #define BUFF_TYPE_BDE_64IP 0x0A /* Input BDE (Port-resident) */ |
1482 | buffer */ | 1516 | #define BUFF_TYPE_BLP_64 0x40 /* BLP (Host-resident) */ |
1483 | #define BUFF_TYPE_32BIT 0x10 /* "" "", 1=32 bit addr 0=64 bit | 1517 | #define BUFF_TYPE_BLP_64P 0x42 /* BLP (Port-resident) */ |
1484 | addr */ | ||
1485 | #define BUFF_TYPE_SPECIAL 0x20 /* Not Implemented with LP6000 */ | ||
1486 | #define BUFF_TYPE_BDL 0x40 /* Optional, may be set in BDL */ | ||
1487 | #define BUFF_TYPE_INVALID 0x80 /* "" "" */ | ||
1488 | } f; | 1518 | } f; |
1489 | } tus; | 1519 | } tus; |
1490 | uint32_t addrLow; | 1520 | uint32_t addrLow; |
1491 | uint32_t addrHigh; | 1521 | uint32_t addrHigh; |
1492 | }; | 1522 | }; |
1493 | #define BDE64_SIZE_WORD 0 | ||
1494 | #define BPL64_SIZE_WORD 0x40 | ||
1495 | 1523 | ||
1496 | typedef struct ULP_BDL { /* SLI-2 */ | 1524 | typedef struct ULP_BDL { /* SLI-2 */ |
1497 | #ifdef __BIG_ENDIAN_BITFIELD | 1525 | #ifdef __BIG_ENDIAN_BITFIELD |
@@ -2201,7 +2229,10 @@ typedef struct { | |||
2201 | typedef struct { | 2229 | typedef struct { |
2202 | uint32_t eventTag; /* Event tag */ | 2230 | uint32_t eventTag; /* Event tag */ |
2203 | #ifdef __BIG_ENDIAN_BITFIELD | 2231 | #ifdef __BIG_ENDIAN_BITFIELD |
2204 | uint32_t rsvd1:22; | 2232 | uint32_t rsvd1:19; |
2233 | uint32_t fa:1; | ||
2234 | uint32_t mm:1; /* Menlo Maintenance mode enabled */ | ||
2235 | uint32_t rx:1; | ||
2205 | uint32_t pb:1; | 2236 | uint32_t pb:1; |
2206 | uint32_t il:1; | 2237 | uint32_t il:1; |
2207 | uint32_t attType:8; | 2238 | uint32_t attType:8; |
@@ -2209,7 +2240,10 @@ typedef struct { | |||
2209 | uint32_t attType:8; | 2240 | uint32_t attType:8; |
2210 | uint32_t il:1; | 2241 | uint32_t il:1; |
2211 | uint32_t pb:1; | 2242 | uint32_t pb:1; |
2212 | uint32_t rsvd1:22; | 2243 | uint32_t rx:1; |
2244 | uint32_t mm:1; | ||
2245 | uint32_t fa:1; | ||
2246 | uint32_t rsvd1:19; | ||
2213 | #endif | 2247 | #endif |
2214 | 2248 | ||
2215 | #define AT_RESERVED 0x00 /* Reserved - attType */ | 2249 | #define AT_RESERVED 0x00 /* Reserved - attType */ |
@@ -2230,6 +2264,7 @@ typedef struct { | |||
2230 | 2264 | ||
2231 | #define TOPOLOGY_PT_PT 0x01 /* Topology is pt-pt / pt-fabric */ | 2265 | #define TOPOLOGY_PT_PT 0x01 /* Topology is pt-pt / pt-fabric */ |
2232 | #define TOPOLOGY_LOOP 0x02 /* Topology is FC-AL */ | 2266 | #define TOPOLOGY_LOOP 0x02 /* Topology is FC-AL */ |
2267 | #define TOPOLOGY_LNK_MENLO_MAINTENANCE 0x05 /* maint mode zephtr to menlo */ | ||
2233 | 2268 | ||
2234 | union { | 2269 | union { |
2235 | struct ulp_bde lilpBde; /* This BDE points to a 128 byte buffer | 2270 | struct ulp_bde lilpBde; /* This BDE points to a 128 byte buffer |
@@ -2324,6 +2359,36 @@ typedef struct { | |||
2324 | #define DMP_RSP_OFFSET 0x14 /* word 5 contains first word of rsp */ | 2359 | #define DMP_RSP_OFFSET 0x14 /* word 5 contains first word of rsp */ |
2325 | #define DMP_RSP_SIZE 0x6C /* maximum of 27 words of rsp data */ | 2360 | #define DMP_RSP_SIZE 0x6C /* maximum of 27 words of rsp data */ |
2326 | 2361 | ||
2362 | /* Structure for MB Command UPDATE_CFG (0x1B) */ | ||
2363 | |||
2364 | struct update_cfg_var { | ||
2365 | #ifdef __BIG_ENDIAN_BITFIELD | ||
2366 | uint32_t rsvd2:16; | ||
2367 | uint32_t type:8; | ||
2368 | uint32_t rsvd:1; | ||
2369 | uint32_t ra:1; | ||
2370 | uint32_t co:1; | ||
2371 | uint32_t cv:1; | ||
2372 | uint32_t req:4; | ||
2373 | uint32_t entry_length:16; | ||
2374 | uint32_t region_id:16; | ||
2375 | #else /* __LITTLE_ENDIAN_BITFIELD */ | ||
2376 | uint32_t req:4; | ||
2377 | uint32_t cv:1; | ||
2378 | uint32_t co:1; | ||
2379 | uint32_t ra:1; | ||
2380 | uint32_t rsvd:1; | ||
2381 | uint32_t type:8; | ||
2382 | uint32_t rsvd2:16; | ||
2383 | uint32_t region_id:16; | ||
2384 | uint32_t entry_length:16; | ||
2385 | #endif | ||
2386 | |||
2387 | uint32_t resp_info; | ||
2388 | uint32_t byte_cnt; | ||
2389 | uint32_t data_offset; | ||
2390 | }; | ||
2391 | |||
2327 | struct hbq_mask { | 2392 | struct hbq_mask { |
2328 | #ifdef __BIG_ENDIAN_BITFIELD | 2393 | #ifdef __BIG_ENDIAN_BITFIELD |
2329 | uint8_t tmatch; | 2394 | uint8_t tmatch; |
@@ -2560,6 +2625,40 @@ typedef struct { | |||
2560 | 2625 | ||
2561 | } CONFIG_PORT_VAR; | 2626 | } CONFIG_PORT_VAR; |
2562 | 2627 | ||
2628 | /* Structure for MB Command CONFIG_MSI (0x30) */ | ||
2629 | struct config_msi_var { | ||
2630 | #ifdef __BIG_ENDIAN_BITFIELD | ||
2631 | uint32_t dfltMsgNum:8; /* Default message number */ | ||
2632 | uint32_t rsvd1:11; /* Reserved */ | ||
2633 | uint32_t NID:5; /* Number of secondary attention IDs */ | ||
2634 | uint32_t rsvd2:5; /* Reserved */ | ||
2635 | uint32_t dfltPresent:1; /* Default message number present */ | ||
2636 | uint32_t addFlag:1; /* Add association flag */ | ||
2637 | uint32_t reportFlag:1; /* Report association flag */ | ||
2638 | #else /* __LITTLE_ENDIAN_BITFIELD */ | ||
2639 | uint32_t reportFlag:1; /* Report association flag */ | ||
2640 | uint32_t addFlag:1; /* Add association flag */ | ||
2641 | uint32_t dfltPresent:1; /* Default message number present */ | ||
2642 | uint32_t rsvd2:5; /* Reserved */ | ||
2643 | uint32_t NID:5; /* Number of secondary attention IDs */ | ||
2644 | uint32_t rsvd1:11; /* Reserved */ | ||
2645 | uint32_t dfltMsgNum:8; /* Default message number */ | ||
2646 | #endif | ||
2647 | uint32_t attentionConditions[2]; | ||
2648 | uint8_t attentionId[16]; | ||
2649 | uint8_t messageNumberByHA[64]; | ||
2650 | uint8_t messageNumberByID[16]; | ||
2651 | uint32_t autoClearHA[2]; | ||
2652 | #ifdef __BIG_ENDIAN_BITFIELD | ||
2653 | uint32_t rsvd3:16; | ||
2654 | uint32_t autoClearID:16; | ||
2655 | #else /* __LITTLE_ENDIAN_BITFIELD */ | ||
2656 | uint32_t autoClearID:16; | ||
2657 | uint32_t rsvd3:16; | ||
2658 | #endif | ||
2659 | uint32_t rsvd4; | ||
2660 | }; | ||
2661 | |||
2563 | /* SLI-2 Port Control Block */ | 2662 | /* SLI-2 Port Control Block */ |
2564 | 2663 | ||
2565 | /* SLIM POINTER */ | 2664 | /* SLIM POINTER */ |
@@ -2678,10 +2777,12 @@ typedef union { | |||
2678 | * NEW_FEATURE | 2777 | * NEW_FEATURE |
2679 | */ | 2778 | */ |
2680 | struct config_hbq_var varCfgHbq;/* cmd = 0x7c (CONFIG_HBQ) */ | 2779 | struct config_hbq_var varCfgHbq;/* cmd = 0x7c (CONFIG_HBQ) */ |
2780 | struct update_cfg_var varUpdateCfg; /* cmd = 0x1B (UPDATE_CFG)*/ | ||
2681 | CONFIG_PORT_VAR varCfgPort; /* cmd = 0x88 (CONFIG_PORT) */ | 2781 | CONFIG_PORT_VAR varCfgPort; /* cmd = 0x88 (CONFIG_PORT) */ |
2682 | REG_VPI_VAR varRegVpi; /* cmd = 0x96 (REG_VPI) */ | 2782 | REG_VPI_VAR varRegVpi; /* cmd = 0x96 (REG_VPI) */ |
2683 | UNREG_VPI_VAR varUnregVpi; /* cmd = 0x97 (UNREG_VPI) */ | 2783 | UNREG_VPI_VAR varUnregVpi; /* cmd = 0x97 (UNREG_VPI) */ |
2684 | ASYNCEVT_ENABLE_VAR varCfgAsyncEvent; /*cmd = x33 (CONFIG_ASYNC) */ | 2784 | ASYNCEVT_ENABLE_VAR varCfgAsyncEvent; /*cmd = x33 (CONFIG_ASYNC) */ |
2785 | struct config_msi_var varCfgMSI;/* cmd = x30 (CONFIG_MSI) */ | ||
2685 | } MAILVARIANTS; | 2786 | } MAILVARIANTS; |
2686 | 2787 | ||
2687 | /* | 2788 | /* |
@@ -2715,11 +2816,19 @@ struct sli3_pgp { | |||
2715 | uint32_t hbq_get[16]; | 2816 | uint32_t hbq_get[16]; |
2716 | }; | 2817 | }; |
2717 | 2818 | ||
2718 | typedef union { | 2819 | struct sli3_inb_pgp { |
2719 | struct sli2_desc s2; | 2820 | uint32_t ha_copy; |
2720 | struct sli3_desc s3; | 2821 | uint32_t counter; |
2721 | struct sli3_pgp s3_pgp; | 2822 | struct lpfc_pgp port[MAX_RINGS]; |
2722 | } SLI_VAR; | 2823 | uint32_t hbq_get[16]; |
2824 | }; | ||
2825 | |||
2826 | union sli_var { | ||
2827 | struct sli2_desc s2; | ||
2828 | struct sli3_desc s3; | ||
2829 | struct sli3_pgp s3_pgp; | ||
2830 | struct sli3_inb_pgp s3_inb_pgp; | ||
2831 | }; | ||
2723 | 2832 | ||
2724 | typedef struct { | 2833 | typedef struct { |
2725 | #ifdef __BIG_ENDIAN_BITFIELD | 2834 | #ifdef __BIG_ENDIAN_BITFIELD |
@@ -2737,7 +2846,7 @@ typedef struct { | |||
2737 | #endif | 2846 | #endif |
2738 | 2847 | ||
2739 | MAILVARIANTS un; | 2848 | MAILVARIANTS un; |
2740 | SLI_VAR us; | 2849 | union sli_var us; |
2741 | } MAILBOX_t; | 2850 | } MAILBOX_t; |
2742 | 2851 | ||
2743 | /* | 2852 | /* |
@@ -3105,6 +3214,27 @@ struct que_xri64cx_ext_fields { | |||
3105 | struct lpfc_hbq_entry buff[5]; | 3214 | struct lpfc_hbq_entry buff[5]; |
3106 | }; | 3215 | }; |
3107 | 3216 | ||
3217 | #define LPFC_EXT_DATA_BDE_COUNT 3 | ||
3218 | struct fcp_irw_ext { | ||
3219 | uint32_t io_tag64_low; | ||
3220 | uint32_t io_tag64_high; | ||
3221 | #ifdef __BIG_ENDIAN_BITFIELD | ||
3222 | uint8_t reserved1; | ||
3223 | uint8_t reserved2; | ||
3224 | uint8_t reserved3; | ||
3225 | uint8_t ebde_count; | ||
3226 | #else /* __LITTLE_ENDIAN */ | ||
3227 | uint8_t ebde_count; | ||
3228 | uint8_t reserved3; | ||
3229 | uint8_t reserved2; | ||
3230 | uint8_t reserved1; | ||
3231 | #endif | ||
3232 | uint32_t reserved4; | ||
3233 | struct ulp_bde64 rbde; /* response bde */ | ||
3234 | struct ulp_bde64 dbde[LPFC_EXT_DATA_BDE_COUNT]; /* data BDE or BPL */ | ||
3235 | uint8_t icd[32]; /* immediate command data (32 bytes) */ | ||
3236 | }; | ||
3237 | |||
3108 | typedef struct _IOCB { /* IOCB structure */ | 3238 | typedef struct _IOCB { /* IOCB structure */ |
3109 | union { | 3239 | union { |
3110 | GENERIC_RSP grsp; /* Generic response */ | 3240 | GENERIC_RSP grsp; /* Generic response */ |
@@ -3190,7 +3320,7 @@ typedef struct _IOCB { /* IOCB structure */ | |||
3190 | 3320 | ||
3191 | /* words 8-31 used for que_xri_cx iocb */ | 3321 | /* words 8-31 used for que_xri_cx iocb */ |
3192 | struct que_xri64cx_ext_fields que_xri64cx_ext_words; | 3322 | struct que_xri64cx_ext_fields que_xri64cx_ext_words; |
3193 | 3323 | struct fcp_irw_ext fcp_ext; | |
3194 | uint32_t sli3Words[24]; /* 96 extra bytes for SLI-3 */ | 3324 | uint32_t sli3Words[24]; /* 96 extra bytes for SLI-3 */ |
3195 | } unsli3; | 3325 | } unsli3; |
3196 | 3326 | ||
@@ -3292,3 +3422,10 @@ lpfc_error_lost_link(IOCB_t *iocbp) | |||
3292 | iocbp->un.ulpWord[4] == IOERR_LINK_DOWN || | 3422 | iocbp->un.ulpWord[4] == IOERR_LINK_DOWN || |
3293 | iocbp->un.ulpWord[4] == IOERR_SLI_DOWN)); | 3423 | iocbp->un.ulpWord[4] == IOERR_SLI_DOWN)); |
3294 | } | 3424 | } |
3425 | |||
3426 | #define MENLO_TRANSPORT_TYPE 0xfe | ||
3427 | #define MENLO_CONTEXT 0 | ||
3428 | #define MENLO_PU 3 | ||
3429 | #define MENLO_TIMEOUT 30 | ||
3430 | #define SETVAR_MLOMNT 0x103107 | ||
3431 | #define SETVAR_MLORST 0x103007 | ||