1635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 2f9d979ce10c98dfd6d8d2a26217c3c4885ef97f6nagalakshmi.nandigama@lsi.com * Copyright (c) 2000-2011 LSI Corporation. 3635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 4635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 5635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Name: mpi2.h 6635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Title: MPI Message independent structures and definitions 7635374e7eb110e80d9918b8611198edd56a32975Eric Moore * including System Interface Register Set and 8635374e7eb110e80d9918b8611198edd56a32975Eric Moore * scatter/gather formats. 9635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Creation Date: June 21, 2006 10635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 11a6affbd5ccbb45e03168996bae4a4d0abb780874nagalakshmi.nandigama@lsi.com * mpi2.h Version: 02.00.22 12635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 13635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Version History 14635374e7eb110e80d9918b8611198edd56a32975Eric Moore * --------------- 15635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 16635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Date Version Description 17635374e7eb110e80d9918b8611198edd56a32975Eric Moore * -------- -------- ------------------------------------------------------ 18635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A. 19635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 06-04-07 02.00.01 Bumped MPI2_HEADER_VERSION_UNIT. 20635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 06-26-07 02.00.02 Bumped MPI2_HEADER_VERSION_UNIT. 21635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 08-31-07 02.00.03 Bumped MPI2_HEADER_VERSION_UNIT. 22635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Moved ReplyPostHostIndex register to offset 0x6C of the 23635374e7eb110e80d9918b8611198edd56a32975Eric Moore * MPI2_SYSTEM_INTERFACE_REGS and modified the define for 24635374e7eb110e80d9918b8611198edd56a32975Eric Moore * MPI2_REPLY_POST_HOST_INDEX_OFFSET. 25635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Added union of request descriptors. 26635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Added union of reply descriptors. 27635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 10-31-07 02.00.04 Bumped MPI2_HEADER_VERSION_UNIT. 28635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Added define for MPI2_VERSION_02_00. 29635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Fixed the size of the FunctionDependent5 field in the 30635374e7eb110e80d9918b8611198edd56a32975Eric Moore * MPI2_DEFAULT_REPLY structure. 31635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 12-18-07 02.00.05 Bumped MPI2_HEADER_VERSION_UNIT. 32635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Removed the MPI-defined Fault Codes and extended the 33635374e7eb110e80d9918b8611198edd56a32975Eric Moore * product specific codes up to 0xEFFF. 34635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Added a sixth key value for the WriteSequence register 35635374e7eb110e80d9918b8611198edd56a32975Eric Moore * and changed the flush value to 0x0. 36635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Added message function codes for Diagnostic Buffer Post 37635374e7eb110e80d9918b8611198edd56a32975Eric Moore * and Diagnsotic Release. 38635374e7eb110e80d9918b8611198edd56a32975Eric Moore * New IOCStatus define: MPI2_IOCSTATUS_DIAGNOSTIC_RELEASED 39635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Moved MPI2_VERSION_UNION from mpi2_ioc.h. 40635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 02-29-08 02.00.06 Bumped MPI2_HEADER_VERSION_UNIT. 41635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 03-03-08 02.00.07 Bumped MPI2_HEADER_VERSION_UNIT. 42635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 05-21-08 02.00.08 Bumped MPI2_HEADER_VERSION_UNIT. 43635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Added #defines for marking a reply descriptor as unused. 44635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 06-27-08 02.00.09 Bumped MPI2_HEADER_VERSION_UNIT. 45635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 10-02-08 02.00.10 Bumped MPI2_HEADER_VERSION_UNIT. 46635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Moved LUN field defines from mpi2_init.h. 47635374e7eb110e80d9918b8611198edd56a32975Eric Moore * 01-19-09 02.00.11 Bumped MPI2_HEADER_VERSION_UNIT. 487b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai * 05-06-09 02.00.12 Bumped MPI2_HEADER_VERSION_UNIT. 497b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai * In all request and reply descriptors, replaced VF_ID 507b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai * field with MSIxIndex field. 517b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai * Removed DevHandle field from 527b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai * MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR and made those 537b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai * bytes reserved. 547b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai * Added RAID Accelerator functionality. 559fec5f9fc2fbe7c6e39db01ae296528d9a20a5b1Kashyap, Desai * 07-30-09 02.00.13 Bumped MPI2_HEADER_VERSION_UNIT. 56f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai * 10-28-09 02.00.14 Bumped MPI2_HEADER_VERSION_UNIT. 57f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai * Added MSI-x index mask and shift for Reply Post Host 58f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai * Index register. 59f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai * Added function code for Host Based Discovery Action. 60203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai * 02-10-10 02.00.15 Bumped MPI2_HEADER_VERSION_UNIT. 61203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai * Added define for MPI2_FUNCTION_PWR_MGMT_CONTROL. 62203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai * Added defines for product-specific range of message 63203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai * function codes, 0xF0 to 0xFF. 647d061402590efc37d553a9155dbf41277675c179Kashyap, Desai * 05-12-10 02.00.16 Bumped MPI2_HEADER_VERSION_UNIT. 657d061402590efc37d553a9155dbf41277675c179Kashyap, Desai * Added alternative defines for the SGE Direction bit. 669af05d90e91026838330a2bf86a6692c86f3c4e7Kashyap, Desai * 08-11-10 02.00.17 Bumped MPI2_HEADER_VERSION_UNIT. 67ce7b1810def1e2f0101931f8f339f9d8a694cd19Kashyap, Desai * 11-10-10 02.00.18 Bumped MPI2_HEADER_VERSION_UNIT. 68ce7b1810def1e2f0101931f8f339f9d8a694cd19Kashyap, Desai * Added MPI2_IEEE_SGE_FLAGS_SYSTEMPLBCPI_ADDR define. 69f9d979ce10c98dfd6d8d2a26217c3c4885ef97f6nagalakshmi.nandigama@lsi.com * 02-23-11 02.00.19 Bumped MPI2_HEADER_VERSION_UNIT. 70f9d979ce10c98dfd6d8d2a26217c3c4885ef97f6nagalakshmi.nandigama@lsi.com * Added MPI2_FUNCTION_SEND_HOST_MESSAGE. 71f9d979ce10c98dfd6d8d2a26217c3c4885ef97f6nagalakshmi.nandigama@lsi.com * 03-09-11 02.00.20 Bumped MPI2_HEADER_VERSION_UNIT. 72c1bc0704e52f200bc747c6bddb970a3686e230abnagalakshmi.nandigama@lsi.com * 05-25-11 02.00.21 Bumped MPI2_HEADER_VERSION_UNIT. 73a6affbd5ccbb45e03168996bae4a4d0abb780874nagalakshmi.nandigama@lsi.com * 08-24-11 02.00.22 Bumped MPI2_HEADER_VERSION_UNIT. 74635374e7eb110e80d9918b8611198edd56a32975Eric Moore * -------------------------------------------------------------------------- 75635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 76635374e7eb110e80d9918b8611198edd56a32975Eric Moore 77635374e7eb110e80d9918b8611198edd56a32975Eric Moore#ifndef MPI2_H 78635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_H 79635374e7eb110e80d9918b8611198edd56a32975Eric Moore 80635374e7eb110e80d9918b8611198edd56a32975Eric Moore 81635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 82635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 83635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI Version Definitions 84635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 85635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 86635374e7eb110e80d9918b8611198edd56a32975Eric Moore 87635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION_MAJOR (0x02) 88635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION_MINOR (0x00) 89635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION_MAJOR_MASK (0xFF00) 90635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION_MAJOR_SHIFT (8) 91635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION_MINOR_MASK (0x00FF) 92635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION_MINOR_SHIFT (0) 93635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION ((MPI2_VERSION_MAJOR << MPI2_VERSION_MAJOR_SHIFT) | \ 94635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_VERSION_MINOR) 95635374e7eb110e80d9918b8611198edd56a32975Eric Moore 96635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_VERSION_02_00 (0x0200) 97635374e7eb110e80d9918b8611198edd56a32975Eric Moore 98635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* versioning for this MPI header set */ 99a6affbd5ccbb45e03168996bae4a4d0abb780874nagalakshmi.nandigama@lsi.com#define MPI2_HEADER_VERSION_UNIT (0x16) 100635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HEADER_VERSION_DEV (0x00) 101635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) 102635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HEADER_VERSION_UNIT_SHIFT (8) 103635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HEADER_VERSION_DEV_MASK (0x00FF) 104635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HEADER_VERSION_DEV_SHIFT (0) 105635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HEADER_VERSION ((MPI2_HEADER_VERSION_UNIT << 8) | MPI2_HEADER_VERSION_DEV) 106635374e7eb110e80d9918b8611198edd56a32975Eric Moore 107635374e7eb110e80d9918b8611198edd56a32975Eric Moore 108635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 109635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 110635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IOC State Definitions 111635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 112635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 113635374e7eb110e80d9918b8611198edd56a32975Eric Moore 114635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOC_STATE_RESET (0x00000000) 115635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOC_STATE_READY (0x10000000) 116635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOC_STATE_OPERATIONAL (0x20000000) 117635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOC_STATE_FAULT (0x40000000) 118635374e7eb110e80d9918b8611198edd56a32975Eric Moore 119635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOC_STATE_MASK (0xF0000000) 120635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOC_STATE_SHIFT (28) 121635374e7eb110e80d9918b8611198edd56a32975Eric Moore 122635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Fault state range for prodcut specific codes */ 123635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FAULT_PRODUCT_SPECIFIC_MIN (0x0000) 124635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FAULT_PRODUCT_SPECIFIC_MAX (0xEFFF) 125635374e7eb110e80d9918b8611198edd56a32975Eric Moore 126635374e7eb110e80d9918b8611198edd56a32975Eric Moore 127635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 128635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 129635374e7eb110e80d9918b8611198edd56a32975Eric Moore* System Interface Register Definitions 130635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 131635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 132635374e7eb110e80d9918b8611198edd56a32975Eric Moore 133635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef volatile struct _MPI2_SYSTEM_INTERFACE_REGS 134635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 135635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Doorbell; /* 0x00 */ 136635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 WriteSequence; /* 0x04 */ 137635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 HostDiagnostic; /* 0x08 */ 138635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Reserved1; /* 0x0C */ 139635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 DiagRWData; /* 0x10 */ 140635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 DiagRWAddressLow; /* 0x14 */ 141635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 DiagRWAddressHigh; /* 0x18 */ 142635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Reserved2[5]; /* 0x1C */ 143635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 HostInterruptStatus; /* 0x30 */ 144635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 HostInterruptMask; /* 0x34 */ 145635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 DCRData; /* 0x38 */ 146635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 DCRAddress; /* 0x3C */ 147635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Reserved3[2]; /* 0x40 */ 148635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 ReplyFreeHostIndex; /* 0x48 */ 149635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Reserved4[8]; /* 0x4C */ 150635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 ReplyPostHostIndex; /* 0x6C */ 151635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Reserved5; /* 0x70 */ 152635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 HCBSize; /* 0x74 */ 153635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 HCBAddressLow; /* 0x78 */ 154635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 HCBAddressHigh; /* 0x7C */ 155635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Reserved6[16]; /* 0x80 */ 156635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 RequestDescriptorPostLow; /* 0xC0 */ 157635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 RequestDescriptorPostHigh; /* 0xC4 */ 158635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Reserved7[14]; /* 0xC8 */ 159635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SYSTEM_INTERFACE_REGS, MPI2_POINTER PTR_MPI2_SYSTEM_INTERFACE_REGS, 160635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SystemInterfaceRegs_t, MPI2_POINTER pMpi2SystemInterfaceRegs_t; 161635374e7eb110e80d9918b8611198edd56a32975Eric Moore 162635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 163635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Defines for working with the Doorbell register. 164635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 165635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_OFFSET (0x00000000) 166635374e7eb110e80d9918b8611198edd56a32975Eric Moore 167635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* IOC --> System values */ 168635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_USED (0x08000000) 169635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_WHO_INIT_MASK (0x07000000) 170635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_WHO_INIT_SHIFT (24) 171635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_FAULT_CODE_MASK (0x0000FFFF) 172635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_DATA_MASK (0x0000FFFF) 173635374e7eb110e80d9918b8611198edd56a32975Eric Moore 174635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* System --> IOC values */ 175635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_FUNCTION_MASK (0xFF000000) 176635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_FUNCTION_SHIFT (24) 177635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_ADD_DWORDS_MASK (0x00FF0000) 178635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DOORBELL_ADD_DWORDS_SHIFT (16) 179635374e7eb110e80d9918b8611198edd56a32975Eric Moore 180635374e7eb110e80d9918b8611198edd56a32975Eric Moore 181635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 182635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Defines for the WriteSequence register 183635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 184635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRITE_SEQUENCE_OFFSET (0x00000004) 185635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_KEY_VALUE_MASK (0x0000000F) 186635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_FLUSH_KEY_VALUE (0x0) 187635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_1ST_KEY_VALUE (0xF) 188635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_2ND_KEY_VALUE (0x4) 189635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_3RD_KEY_VALUE (0xB) 190635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_4TH_KEY_VALUE (0x2) 191635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_5TH_KEY_VALUE (0x7) 192635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_WRSEQ_6TH_KEY_VALUE (0xD) 193635374e7eb110e80d9918b8611198edd56a32975Eric Moore 194635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 195635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Defines for the HostDiagnostic register 196635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 197635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HOST_DIAGNOSTIC_OFFSET (0x00000008) 198635374e7eb110e80d9918b8611198edd56a32975Eric Moore 199635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_BOOT_DEVICE_SELECT_MASK (0x00001800) 200635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_BOOT_DEVICE_SELECT_DEFAULT (0x00000000) 201635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_BOOT_DEVICE_SELECT_HCDW (0x00000800) 202635374e7eb110e80d9918b8611198edd56a32975Eric Moore 203635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_CLEAR_FLASH_BAD_SIG (0x00000400) 204635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_FORCE_HCB_ON_RESET (0x00000200) 205635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_HCB_MODE (0x00000100) 206635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_DIAG_WRITE_ENABLE (0x00000080) 207635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_FLASH_BAD_SIG (0x00000040) 208635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_RESET_HISTORY (0x00000020) 209635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_DIAG_RW_ENABLE (0x00000010) 210635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_RESET_ADAPTER (0x00000004) 211635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_HOLD_IOC_RESET (0x00000002) 212635374e7eb110e80d9918b8611198edd56a32975Eric Moore 213635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 214635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Offsets for DiagRWData and address 215635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 216635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_RW_DATA_OFFSET (0x00000010) 217635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_RW_ADDRESS_LOW_OFFSET (0x00000014) 218635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DIAG_RW_ADDRESS_HIGH_OFFSET (0x00000018) 219635374e7eb110e80d9918b8611198edd56a32975Eric Moore 220635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 221635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Defines for the HostInterruptStatus register 222635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 223635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HOST_INTERRUPT_STATUS_OFFSET (0x00000030) 224635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIS_SYS2IOC_DB_STATUS (0x80000000) 225635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIS_IOP_DOORBELL_STATUS MPI2_HIS_SYS2IOC_DB_STATUS 226635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIS_RESET_IRQ_STATUS (0x40000000) 227635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIS_REPLY_DESCRIPTOR_INTERRUPT (0x00000008) 228635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIS_IOC2SYS_DB_STATUS (0x00000001) 229635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIS_DOORBELL_INTERRUPT MPI2_HIS_IOC2SYS_DB_STATUS 230635374e7eb110e80d9918b8611198edd56a32975Eric Moore 231635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 232635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Defines for the HostInterruptMask register 233635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 234635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HOST_INTERRUPT_MASK_OFFSET (0x00000034) 235635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIM_RESET_IRQ_MASK (0x40000000) 236635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIM_REPLY_INT_MASK (0x00000008) 237635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIM_RIM MPI2_HIM_REPLY_INT_MASK 238635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIM_IOC2SYS_DB_MASK (0x00000001) 239635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HIM_DIM MPI2_HIM_IOC2SYS_DB_MASK 240635374e7eb110e80d9918b8611198edd56a32975Eric Moore 241635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 242635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Offsets for DCRData and address 243635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 244635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DCR_DATA_OFFSET (0x00000038) 245635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_DCR_ADDRESS_OFFSET (0x0000003C) 246635374e7eb110e80d9918b8611198edd56a32975Eric Moore 247635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 248635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Offset for the Reply Free Queue 249635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 250635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REPLY_FREE_HOST_INDEX_OFFSET (0x00000048) 251635374e7eb110e80d9918b8611198edd56a32975Eric Moore 252635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 253f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai * Defines for the Reply Descriptor Post Queue 254635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 255635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REPLY_POST_HOST_INDEX_OFFSET (0x0000006C) 256f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai#define MPI2_REPLY_POST_HOST_INDEX_MASK (0x00FFFFFF) 257f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai#define MPI2_RPHI_MSIX_INDEX_MASK (0xFF000000) 258f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai#define MPI2_RPHI_MSIX_INDEX_SHIFT (24) 259635374e7eb110e80d9918b8611198edd56a32975Eric Moore 260635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 261635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Defines for the HCBSize and address 262635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 263635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HCB_SIZE_OFFSET (0x00000074) 264635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HCB_SIZE_SIZE_MASK (0xFFFFF000) 265635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HCB_SIZE_HCB_ENABLE (0x00000001) 266635374e7eb110e80d9918b8611198edd56a32975Eric Moore 267635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HCB_ADDRESS_LOW_OFFSET (0x00000078) 268635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_HCB_ADDRESS_HIGH_OFFSET (0x0000007C) 269635374e7eb110e80d9918b8611198edd56a32975Eric Moore 270635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* 271635374e7eb110e80d9918b8611198edd56a32975Eric Moore * Offsets for the Request Queue 272635374e7eb110e80d9918b8611198edd56a32975Eric Moore */ 273635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQUEST_DESCRIPTOR_POST_LOW_OFFSET (0x000000C0) 274635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQUEST_DESCRIPTOR_POST_HIGH_OFFSET (0x000000C4) 275635374e7eb110e80d9918b8611198edd56a32975Eric Moore 276635374e7eb110e80d9918b8611198edd56a32975Eric Moore 277635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 278635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 279635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Message Descriptors 280635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 281635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 282635374e7eb110e80d9918b8611198edd56a32975Eric Moore 283635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Request Descriptors */ 284635374e7eb110e80d9918b8611198edd56a32975Eric Moore 285635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Default Request Descriptor */ 286635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_DEFAULT_REQUEST_DESCRIPTOR 287635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 288635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 RequestFlags; /* 0x00 */ 2897b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 290635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 SMID; /* 0x02 */ 291635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 LMID; /* 0x04 */ 292635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 DescriptorTypeDependent; /* 0x06 */ 293635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_DEFAULT_REQUEST_DESCRIPTOR, 294635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER PTR_MPI2_DEFAULT_REQUEST_DESCRIPTOR, 295635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2DefaultRequestDescriptor_t, MPI2_POINTER pMpi2DefaultRequestDescriptor_t; 296635374e7eb110e80d9918b8611198edd56a32975Eric Moore 297635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* defines for the RequestFlags field */ 298635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQ_DESCRIPT_FLAGS_TYPE_MASK (0x0E) 299635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQ_DESCRIPT_FLAGS_SCSI_IO (0x00) 300635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQ_DESCRIPT_FLAGS_SCSI_TARGET (0x02) 301635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQ_DESCRIPT_FLAGS_HIGH_PRIORITY (0x06) 302635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE (0x08) 3037b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_REQ_DESCRIPT_FLAGS_RAID_ACCELERATOR (0x0A) 304635374e7eb110e80d9918b8611198edd56a32975Eric Moore 305635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_REQ_DESCRIPT_FLAGS_IOC_FIFO_MARKER (0x01) 306635374e7eb110e80d9918b8611198edd56a32975Eric Moore 307635374e7eb110e80d9918b8611198edd56a32975Eric Moore 308635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* High Priority Request Descriptor */ 309635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR 310635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 311635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 RequestFlags; /* 0x00 */ 3127b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 313635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 SMID; /* 0x02 */ 314635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 LMID; /* 0x04 */ 315635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 Reserved1; /* 0x06 */ 316635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR, 317635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER PTR_MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR, 318635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2HighPriorityRequestDescriptor_t, 319635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER pMpi2HighPriorityRequestDescriptor_t; 320635374e7eb110e80d9918b8611198edd56a32975Eric Moore 321635374e7eb110e80d9918b8611198edd56a32975Eric Moore 322635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* SCSI IO Request Descriptor */ 323635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SCSI_IO_REQUEST_DESCRIPTOR 324635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 325635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 RequestFlags; /* 0x00 */ 3267b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 327635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 SMID; /* 0x02 */ 328635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 LMID; /* 0x04 */ 329635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 DevHandle; /* 0x06 */ 330635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SCSI_IO_REQUEST_DESCRIPTOR, 331635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER PTR_MPI2_SCSI_IO_REQUEST_DESCRIPTOR, 332635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SCSIIORequestDescriptor_t, MPI2_POINTER pMpi2SCSIIORequestDescriptor_t; 333635374e7eb110e80d9918b8611198edd56a32975Eric Moore 334635374e7eb110e80d9918b8611198edd56a32975Eric Moore 335635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* SCSI Target Request Descriptor */ 336635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR 337635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 338635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 RequestFlags; /* 0x00 */ 3397b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 340635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 SMID; /* 0x02 */ 341635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 LMID; /* 0x04 */ 342635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 IoIndex; /* 0x06 */ 343635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR, 344635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER PTR_MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR, 345635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SCSITargetRequestDescriptor_t, 346635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER pMpi2SCSITargetRequestDescriptor_t; 347635374e7eb110e80d9918b8611198edd56a32975Eric Moore 3487b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai 3497b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai/* RAID Accelerator Request Descriptor */ 3507b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desaitypedef struct _MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR { 3517b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 RequestFlags; /* 0x00 */ 3527b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 3537b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U16 SMID; /* 0x02 */ 3547b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U16 LMID; /* 0x04 */ 3557b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U16 Reserved; /* 0x06 */ 3567b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai} MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR, 3577b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_POINTER PTR_MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR, 3587b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai Mpi2RAIDAcceleratorRequestDescriptor_t, 3597b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_POINTER pMpi2RAIDAcceleratorRequestDescriptor_t; 3607b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai 3617b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai 362635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* union of Request Descriptors */ 363635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef union _MPI2_REQUEST_DESCRIPTOR_UNION 364635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 3657b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_DEFAULT_REQUEST_DESCRIPTOR Default; 3667b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR HighPriority; 3677b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_SCSI_IO_REQUEST_DESCRIPTOR SCSIIO; 3687b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR SCSITarget; 3697b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR RAIDAccelerator; 3707b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U64 Words; 371635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_REQUEST_DESCRIPTOR_UNION, MPI2_POINTER PTR_MPI2_REQUEST_DESCRIPTOR_UNION, 372635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2RequestDescriptorUnion_t, MPI2_POINTER pMpi2RequestDescriptorUnion_t; 373635374e7eb110e80d9918b8611198edd56a32975Eric Moore 374635374e7eb110e80d9918b8611198edd56a32975Eric Moore 375635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Reply Descriptors */ 376635374e7eb110e80d9918b8611198edd56a32975Eric Moore 377635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Default Reply Descriptor */ 378635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_DEFAULT_REPLY_DESCRIPTOR 379635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 380635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ReplyFlags; /* 0x00 */ 3817b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 382635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 DescriptorTypeDependent1; /* 0x02 */ 383635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 DescriptorTypeDependent2; /* 0x04 */ 384635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_DEFAULT_REPLY_DESCRIPTOR, MPI2_POINTER PTR_MPI2_DEFAULT_REPLY_DESCRIPTOR, 385635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2DefaultReplyDescriptor_t, MPI2_POINTER pMpi2DefaultReplyDescriptor_t; 386635374e7eb110e80d9918b8611198edd56a32975Eric Moore 387635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* defines for the ReplyFlags field */ 3887b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_RPY_DESCRIPT_FLAGS_TYPE_MASK (0x0F) 3897b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_RPY_DESCRIPT_FLAGS_SCSI_IO_SUCCESS (0x00) 3907b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_RPY_DESCRIPT_FLAGS_ADDRESS_REPLY (0x01) 3917b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_RPY_DESCRIPT_FLAGS_TARGETASSIST_SUCCESS (0x02) 3927b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_RPY_DESCRIPT_FLAGS_TARGET_COMMAND_BUFFER (0x03) 3937b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_RPY_DESCRIPT_FLAGS_RAID_ACCELERATOR_SUCCESS (0x05) 3947b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_RPY_DESCRIPT_FLAGS_UNUSED (0x0F) 395635374e7eb110e80d9918b8611198edd56a32975Eric Moore 396635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* values for marking a reply descriptor as unused */ 397635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_RPY_DESCRIPT_UNUSED_WORD0_MARK (0xFFFFFFFF) 398635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_RPY_DESCRIPT_UNUSED_WORD1_MARK (0xFFFFFFFF) 399635374e7eb110e80d9918b8611198edd56a32975Eric Moore 400635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Address Reply Descriptor */ 401635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_ADDRESS_REPLY_DESCRIPTOR 402635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 403635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ReplyFlags; /* 0x00 */ 4047b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 405635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 SMID; /* 0x02 */ 406635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 ReplyFrameAddress; /* 0x04 */ 407635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_ADDRESS_REPLY_DESCRIPTOR, MPI2_POINTER PTR_MPI2_ADDRESS_REPLY_DESCRIPTOR, 408635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2AddressReplyDescriptor_t, MPI2_POINTER pMpi2AddressReplyDescriptor_t; 409635374e7eb110e80d9918b8611198edd56a32975Eric Moore 410635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_ADDRESS_REPLY_SMID_INVALID (0x00) 411635374e7eb110e80d9918b8611198edd56a32975Eric Moore 412635374e7eb110e80d9918b8611198edd56a32975Eric Moore 413635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* SCSI IO Success Reply Descriptor */ 414635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR 415635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 416635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ReplyFlags; /* 0x00 */ 4177b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 418635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 SMID; /* 0x02 */ 419635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 TaskTag; /* 0x04 */ 4207b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U16 Reserved1; /* 0x06 */ 421635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR, 422635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER PTR_MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR, 423635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SCSIIOSuccessReplyDescriptor_t, 424635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER pMpi2SCSIIOSuccessReplyDescriptor_t; 425635374e7eb110e80d9918b8611198edd56a32975Eric Moore 426635374e7eb110e80d9918b8611198edd56a32975Eric Moore 427635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* TargetAssist Success Reply Descriptor */ 428635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR 429635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 430635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ReplyFlags; /* 0x00 */ 4317b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 432635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 SMID; /* 0x02 */ 433635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 SequenceNumber; /* 0x04 */ 434635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Reserved1; /* 0x05 */ 435635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 IoIndex; /* 0x06 */ 436635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR, 437635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER PTR_MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR, 438635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2TargetAssistSuccessReplyDescriptor_t, 439635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER pMpi2TargetAssistSuccessReplyDescriptor_t; 440635374e7eb110e80d9918b8611198edd56a32975Eric Moore 441635374e7eb110e80d9918b8611198edd56a32975Eric Moore 442635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Target Command Buffer Reply Descriptor */ 443635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR 444635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 445635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ReplyFlags; /* 0x00 */ 4467b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 447635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 VP_ID; /* 0x02 */ 448635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; /* 0x03 */ 449635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 InitiatorDevHandle; /* 0x04 */ 450635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 IoIndex; /* 0x06 */ 451635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR, 452635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER PTR_MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR, 453635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2TargetCommandBufferReplyDescriptor_t, 454635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_POINTER pMpi2TargetCommandBufferReplyDescriptor_t; 455635374e7eb110e80d9918b8611198edd56a32975Eric Moore 456635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* defines for Flags field */ 457635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_RPY_DESCRIPT_TCB_FLAGS_PHYNUM_MASK (0x3F) 458635374e7eb110e80d9918b8611198edd56a32975Eric Moore 459635374e7eb110e80d9918b8611198edd56a32975Eric Moore 4607b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai/* RAID Accelerator Success Reply Descriptor */ 4617b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desaitypedef struct _MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR { 4627b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 ReplyFlags; /* 0x00 */ 4637b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U8 MSIxIndex; /* 0x01 */ 4647b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U16 SMID; /* 0x02 */ 4657b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U32 Reserved; /* 0x04 */ 4667b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai} MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR, 4677b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_POINTER PTR_MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR, 4687b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai Mpi2RAIDAcceleratorSuccessReplyDescriptor_t, 4697b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_POINTER pMpi2RAIDAcceleratorSuccessReplyDescriptor_t; 4707b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai 4717b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai 472635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* union of Reply Descriptors */ 473635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef union _MPI2_REPLY_DESCRIPTORS_UNION 474635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 4757b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_DEFAULT_REPLY_DESCRIPTOR Default; 4767b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_ADDRESS_REPLY_DESCRIPTOR AddressReply; 4777b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR SCSIIOSuccess; 4787b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR TargetAssistSuccess; 4797b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR TargetCommandBuffer; 4807b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR RAIDAcceleratorSuccess; 4817b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai U64 Words; 482635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_REPLY_DESCRIPTORS_UNION, MPI2_POINTER PTR_MPI2_REPLY_DESCRIPTORS_UNION, 483635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2ReplyDescriptorsUnion_t, MPI2_POINTER pMpi2ReplyDescriptorsUnion_t; 484635374e7eb110e80d9918b8611198edd56a32975Eric Moore 485635374e7eb110e80d9918b8611198edd56a32975Eric Moore 486635374e7eb110e80d9918b8611198edd56a32975Eric Moore 487635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 488635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 489635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Message Functions 490635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 491635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 492635374e7eb110e80d9918b8611198edd56a32975Eric Moore 493635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_SCSI_IO_REQUEST (0x00) /* SCSI IO */ 494635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_SCSI_TASK_MGMT (0x01) /* SCSI Task Management */ 495635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_IOC_INIT (0x02) /* IOC Init */ 496635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_IOC_FACTS (0x03) /* IOC Facts */ 497635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_CONFIG (0x04) /* Configuration */ 498635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_PORT_FACTS (0x05) /* Port Facts */ 499635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_PORT_ENABLE (0x06) /* Port Enable */ 500635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_EVENT_NOTIFICATION (0x07) /* Event Notification */ 501635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_EVENT_ACK (0x08) /* Event Acknowledge */ 502635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_FW_DOWNLOAD (0x09) /* FW Download */ 503635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_TARGET_ASSIST (0x0B) /* Target Assist */ 504635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_TARGET_STATUS_SEND (0x0C) /* Target Status Send */ 505635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_TARGET_MODE_ABORT (0x0D) /* Target Mode Abort */ 506635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_FW_UPLOAD (0x12) /* FW Upload */ 507635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_RAID_ACTION (0x15) /* RAID Action */ 508635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_RAID_SCSI_IO_PASSTHROUGH (0x16) /* SCSI IO RAID Passthrough */ 509635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_TOOLBOX (0x17) /* Toolbox */ 510635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_SCSI_ENCLOSURE_PROCESSOR (0x18) /* SCSI Enclosure Processor */ 511635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_SMP_PASSTHROUGH (0x1A) /* SMP Passthrough */ 512635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_SAS_IO_UNIT_CONTROL (0x1B) /* SAS IO Unit Control */ 513635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_SATA_PASSTHROUGH (0x1C) /* SATA Passthrough */ 514635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_DIAG_BUFFER_POST (0x1D) /* Diagnostic Buffer Post */ 515635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_DIAG_RELEASE (0x1E) /* Diagnostic Release */ 516635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24) /* Target Command Buffer Post Base */ 517635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25) /* Target Command Buffer Post List */ 5187b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_FUNCTION_RAID_ACCELERATOR (0x2C) /* RAID Accelerator*/ 519f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai/* Host Based Discovery Action */ 520f4af3c14113d1b0d98d5a5e717b8aa1f484065b6Kashyap, Desai#define MPI2_FUNCTION_HOST_BASED_DISCOVERY_ACTION (0x2F) 521203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai/* Power Management Control */ 522203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai#define MPI2_FUNCTION_PWR_MGMT_CONTROL (0x30) 523f9d979ce10c98dfd6d8d2a26217c3c4885ef97f6nagalakshmi.nandigama@lsi.com/* Send Host Message */ 524f9d979ce10c98dfd6d8d2a26217c3c4885ef97f6nagalakshmi.nandigama@lsi.com#define MPI2_FUNCTION_SEND_HOST_MESSAGE (0x31) 525203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai/* beginning of product-specific range */ 526203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai#define MPI2_FUNCTION_MIN_PRODUCT_SPECIFIC (0xF0) 527203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai/* end of product-specific range */ 528203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai#define MPI2_FUNCTION_MAX_PRODUCT_SPECIFIC (0xFF) 529203d65b16cfef448dbfb79f66b672be4511fc6a9Kashyap, Desai 530635374e7eb110e80d9918b8611198edd56a32975Eric Moore 531635374e7eb110e80d9918b8611198edd56a32975Eric Moore 532635374e7eb110e80d9918b8611198edd56a32975Eric Moore 533635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Doorbell functions */ 534635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40) 535635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_FUNCTION_HANDSHAKE (0x42) 536635374e7eb110e80d9918b8611198edd56a32975Eric Moore 537635374e7eb110e80d9918b8611198edd56a32975Eric Moore 538635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 539635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 540635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IOC Status Values 541635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 542635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 543635374e7eb110e80d9918b8611198edd56a32975Eric Moore 544635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* mask for IOCStatus status value */ 545635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_MASK (0x7FFF) 546635374e7eb110e80d9918b8611198edd56a32975Eric Moore 547635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 548635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Common IOCStatus values for all replies 549635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 550635374e7eb110e80d9918b8611198edd56a32975Eric Moore 551635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SUCCESS (0x0000) 552635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_INVALID_FUNCTION (0x0001) 553635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_BUSY (0x0002) 554635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_INVALID_SGL (0x0003) 555635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_INTERNAL_ERROR (0x0004) 556635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_INVALID_VPID (0x0005) 557635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_INSUFFICIENT_RESOURCES (0x0006) 558635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_INVALID_FIELD (0x0007) 559635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_INVALID_STATE (0x0008) 560635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_OP_STATE_NOT_SUPPORTED (0x0009) 561635374e7eb110e80d9918b8611198edd56a32975Eric Moore 562635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 563635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Config IOCStatus values 564635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 565635374e7eb110e80d9918b8611198edd56a32975Eric Moore 566635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_CONFIG_INVALID_ACTION (0x0020) 567635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_CONFIG_INVALID_TYPE (0x0021) 568635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_CONFIG_INVALID_PAGE (0x0022) 569635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_CONFIG_INVALID_DATA (0x0023) 570635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_CONFIG_NO_DEFAULTS (0x0024) 571635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_CONFIG_CANT_COMMIT (0x0025) 572635374e7eb110e80d9918b8611198edd56a32975Eric Moore 573635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 574635374e7eb110e80d9918b8611198edd56a32975Eric Moore* SCSI IO Reply 575635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 576635374e7eb110e80d9918b8611198edd56a32975Eric Moore 577635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_RECOVERED_ERROR (0x0040) 578635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_INVALID_DEVHANDLE (0x0042) 579635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_DEVICE_NOT_THERE (0x0043) 580635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_DATA_OVERRUN (0x0044) 581635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_DATA_UNDERRUN (0x0045) 582635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_IO_DATA_ERROR (0x0046) 583635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_PROTOCOL_ERROR (0x0047) 584635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_TASK_TERMINATED (0x0048) 585635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_RESIDUAL_MISMATCH (0x0049) 586635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_TASK_MGMT_FAILED (0x004A) 587635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_IOC_TERMINATED (0x004B) 588635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SCSI_EXT_TERMINATED (0x004C) 589635374e7eb110e80d9918b8611198edd56a32975Eric Moore 590635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 591635374e7eb110e80d9918b8611198edd56a32975Eric Moore* For use by SCSI Initiator and SCSI Target end-to-end data protection 592635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 593635374e7eb110e80d9918b8611198edd56a32975Eric Moore 594635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_EEDP_GUARD_ERROR (0x004D) 595635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_EEDP_REF_TAG_ERROR (0x004E) 596635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_EEDP_APP_TAG_ERROR (0x004F) 597635374e7eb110e80d9918b8611198edd56a32975Eric Moore 598635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 599635374e7eb110e80d9918b8611198edd56a32975Eric Moore* SCSI Target values 600635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 601635374e7eb110e80d9918b8611198edd56a32975Eric Moore 602635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_INVALID_IO_INDEX (0x0062) 603635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_ABORTED (0x0063) 604635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_NO_CONN_RETRYABLE (0x0064) 605635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_NO_CONNECTION (0x0065) 606635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH (0x006A) 607635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_DATA_OFFSET_ERROR (0x006D) 608635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_TOO_MUCH_WRITE_DATA (0x006E) 609635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_IU_TOO_SHORT (0x006F) 610635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_ACK_NAK_TIMEOUT (0x0070) 611635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_TARGET_NAK_RECEIVED (0x0071) 612635374e7eb110e80d9918b8611198edd56a32975Eric Moore 613635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 614635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Serial Attached SCSI values 615635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 616635374e7eb110e80d9918b8611198edd56a32975Eric Moore 617635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SAS_SMP_REQUEST_FAILED (0x0090) 618635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_SAS_SMP_DATA_OVERRUN (0x0091) 619635374e7eb110e80d9918b8611198edd56a32975Eric Moore 620635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 621635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Diagnostic Buffer Post / Diagnostic Release values 622635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 623635374e7eb110e80d9918b8611198edd56a32975Eric Moore 624635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCSTATUS_DIAGNOSTIC_RELEASED (0x00A0) 625635374e7eb110e80d9918b8611198edd56a32975Eric Moore 6267b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai/**************************************************************************** 6277b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai* RAID Accelerator values 6287b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai****************************************************************************/ 6297b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai 6307b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_IOCSTATUS_RAID_ACCEL_ERROR (0x00B0) 631635374e7eb110e80d9918b8611198edd56a32975Eric Moore 632635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 633635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IOCStatus flag to indicate that log info is available 634635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 635635374e7eb110e80d9918b8611198edd56a32975Eric Moore 6367b936b02293b2891d899233d3f4bb45295e8c1f9Kashyap, Desai#define MPI2_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE (0x8000) 637635374e7eb110e80d9918b8611198edd56a32975Eric Moore 638635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 639635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IOCLogInfo Types 640635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 641635374e7eb110e80d9918b8611198edd56a32975Eric Moore 642635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_TYPE_MASK (0xF0000000) 643635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_TYPE_SHIFT (28) 644635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_TYPE_NONE (0x0) 645635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_TYPE_SCSI (0x1) 646635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_TYPE_FC (0x2) 647635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_TYPE_SAS (0x3) 648635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_TYPE_ISCSI (0x4) 649635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IOCLOGINFO_LOG_DATA_MASK (0x0FFFFFFF) 650635374e7eb110e80d9918b8611198edd56a32975Eric Moore 651635374e7eb110e80d9918b8611198edd56a32975Eric Moore 652635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 653635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 654635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Standard Message Structures 655635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 656635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 657635374e7eb110e80d9918b8611198edd56a32975Eric Moore 658635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 659635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Request Message Header for all request messages 660635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 661635374e7eb110e80d9918b8611198edd56a32975Eric Moore 662635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_REQUEST_HEADER 663635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 664635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 FunctionDependent1; /* 0x00 */ 665635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ChainOffset; /* 0x02 */ 666635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Function; /* 0x03 */ 667635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 FunctionDependent2; /* 0x04 */ 668635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 FunctionDependent3; /* 0x06 */ 669635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 MsgFlags; /* 0x07 */ 670635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 VP_ID; /* 0x08 */ 671635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 VF_ID; /* 0x09 */ 672635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 Reserved1; /* 0x0A */ 673635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_REQUEST_HEADER, MPI2_POINTER PTR_MPI2_REQUEST_HEADER, 674635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2RequestHeader_t, MPI2_POINTER pMPI2RequestHeader_t; 675635374e7eb110e80d9918b8611198edd56a32975Eric Moore 676635374e7eb110e80d9918b8611198edd56a32975Eric Moore 677635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 678635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Default Reply 679635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 680635374e7eb110e80d9918b8611198edd56a32975Eric Moore 681635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_DEFAULT_REPLY 682635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 683635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 FunctionDependent1; /* 0x00 */ 684635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 MsgLength; /* 0x02 */ 685635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Function; /* 0x03 */ 686635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 FunctionDependent2; /* 0x04 */ 687635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 FunctionDependent3; /* 0x06 */ 688635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 MsgFlags; /* 0x07 */ 689635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 VP_ID; /* 0x08 */ 690635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 VF_ID; /* 0x09 */ 691635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 Reserved1; /* 0x0A */ 692635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 FunctionDependent5; /* 0x0C */ 693635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 IOCStatus; /* 0x0E */ 694635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 IOCLogInfo; /* 0x10 */ 695635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_DEFAULT_REPLY, MPI2_POINTER PTR_MPI2_DEFAULT_REPLY, 696635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2DefaultReply_t, MPI2_POINTER pMPI2DefaultReply_t; 697635374e7eb110e80d9918b8611198edd56a32975Eric Moore 698635374e7eb110e80d9918b8611198edd56a32975Eric Moore 699635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* common version structure/union used in messages and configuration pages */ 700635374e7eb110e80d9918b8611198edd56a32975Eric Moore 701635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_VERSION_STRUCT 702635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 703635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Dev; /* 0x00 */ 704635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Unit; /* 0x01 */ 705635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Minor; /* 0x02 */ 706635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Major; /* 0x03 */ 707635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_VERSION_STRUCT; 708635374e7eb110e80d9918b8611198edd56a32975Eric Moore 709635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef union _MPI2_VERSION_UNION 710635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 711635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_VERSION_STRUCT Struct; 712635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Word; 713635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_VERSION_UNION; 714635374e7eb110e80d9918b8611198edd56a32975Eric Moore 715635374e7eb110e80d9918b8611198edd56a32975Eric Moore 716635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* LUN field defines, common to many structures */ 717635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_LUN_FIRST_LEVEL_ADDRESSING (0x0000FFFF) 718635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_LUN_SECOND_LEVEL_ADDRESSING (0xFFFF0000) 719635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_LUN_THIRD_LEVEL_ADDRESSING (0x0000FFFF) 720635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_LUN_FOURTH_LEVEL_ADDRESSING (0xFFFF0000) 721635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_LUN_LEVEL_1_WORD (0xFF00) 722635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_LUN_LEVEL_1_DWORD (0x0000FF00) 723635374e7eb110e80d9918b8611198edd56a32975Eric Moore 724635374e7eb110e80d9918b8611198edd56a32975Eric Moore 725635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 726635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 727635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Fusion-MPT MPI Scatter Gather Elements 728635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 729635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 730635374e7eb110e80d9918b8611198edd56a32975Eric Moore 731635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 732635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI Simple Element structures 733635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 734635374e7eb110e80d9918b8611198edd56a32975Eric Moore 735635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_SIMPLE32 736635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 737635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 FlagsLength; 738635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Address; 739635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_SIMPLE32, MPI2_POINTER PTR_MPI2_SGE_SIMPLE32, 740635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGESimple32_t, MPI2_POINTER pMpi2SGESimple32_t; 741635374e7eb110e80d9918b8611198edd56a32975Eric Moore 742635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_SIMPLE64 743635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 744635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 FlagsLength; 745635374e7eb110e80d9918b8611198edd56a32975Eric Moore U64 Address; 746635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_SIMPLE64, MPI2_POINTER PTR_MPI2_SGE_SIMPLE64, 747635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGESimple64_t, MPI2_POINTER pMpi2SGESimple64_t; 748635374e7eb110e80d9918b8611198edd56a32975Eric Moore 749635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_SIMPLE_UNION 750635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 751635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 FlagsLength; 752635374e7eb110e80d9918b8611198edd56a32975Eric Moore union 753635374e7eb110e80d9918b8611198edd56a32975Eric Moore { 754635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Address32; 755635374e7eb110e80d9918b8611198edd56a32975Eric Moore U64 Address64; 756635374e7eb110e80d9918b8611198edd56a32975Eric Moore } u; 757635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_SIMPLE_UNION, MPI2_POINTER PTR_MPI2_SGE_SIMPLE_UNION, 758635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGESimpleUnion_t, MPI2_POINTER pMpi2SGESimpleUnion_t; 759635374e7eb110e80d9918b8611198edd56a32975Eric Moore 760635374e7eb110e80d9918b8611198edd56a32975Eric Moore 761635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 762635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI Chain Element structures 763635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 764635374e7eb110e80d9918b8611198edd56a32975Eric Moore 765635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_CHAIN32 766635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 767635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 Length; 768635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 NextChainOffset; 769635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 770635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Address; 771635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_CHAIN32, MPI2_POINTER PTR_MPI2_SGE_CHAIN32, 772635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGEChain32_t, MPI2_POINTER pMpi2SGEChain32_t; 773635374e7eb110e80d9918b8611198edd56a32975Eric Moore 774635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_CHAIN64 775635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 776635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 Length; 777635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 NextChainOffset; 778635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 779635374e7eb110e80d9918b8611198edd56a32975Eric Moore U64 Address; 780635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_CHAIN64, MPI2_POINTER PTR_MPI2_SGE_CHAIN64, 781635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGEChain64_t, MPI2_POINTER pMpi2SGEChain64_t; 782635374e7eb110e80d9918b8611198edd56a32975Eric Moore 783635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_CHAIN_UNION 784635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 785635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 Length; 786635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 NextChainOffset; 787635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 788635374e7eb110e80d9918b8611198edd56a32975Eric Moore union 789635374e7eb110e80d9918b8611198edd56a32975Eric Moore { 790635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Address32; 791635374e7eb110e80d9918b8611198edd56a32975Eric Moore U64 Address64; 792635374e7eb110e80d9918b8611198edd56a32975Eric Moore } u; 793635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_CHAIN_UNION, MPI2_POINTER PTR_MPI2_SGE_CHAIN_UNION, 794635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGEChainUnion_t, MPI2_POINTER pMpi2SGEChainUnion_t; 795635374e7eb110e80d9918b8611198edd56a32975Eric Moore 796635374e7eb110e80d9918b8611198edd56a32975Eric Moore 797635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 798635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI Transaction Context Element structures 799635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 800635374e7eb110e80d9918b8611198edd56a32975Eric Moore 801635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_TRANSACTION32 802635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 803635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Reserved; 804635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ContextSize; 805635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 DetailsLength; 806635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 807635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext[1]; 808635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionDetails[1]; 809635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_TRANSACTION32, MPI2_POINTER PTR_MPI2_SGE_TRANSACTION32, 810635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGETransaction32_t, MPI2_POINTER pMpi2SGETransaction32_t; 811635374e7eb110e80d9918b8611198edd56a32975Eric Moore 812635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_TRANSACTION64 813635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 814635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Reserved; 815635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ContextSize; 816635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 DetailsLength; 817635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 818635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext[2]; 819635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionDetails[1]; 820635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_TRANSACTION64, MPI2_POINTER PTR_MPI2_SGE_TRANSACTION64, 821635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGETransaction64_t, MPI2_POINTER pMpi2SGETransaction64_t; 822635374e7eb110e80d9918b8611198edd56a32975Eric Moore 823635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_TRANSACTION96 824635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 825635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Reserved; 826635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ContextSize; 827635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 DetailsLength; 828635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 829635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext[3]; 830635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionDetails[1]; 831635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_TRANSACTION96, MPI2_POINTER PTR_MPI2_SGE_TRANSACTION96, 832635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGETransaction96_t, MPI2_POINTER pMpi2SGETransaction96_t; 833635374e7eb110e80d9918b8611198edd56a32975Eric Moore 834635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_TRANSACTION128 835635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 836635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Reserved; 837635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ContextSize; 838635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 DetailsLength; 839635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 840635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext[4]; 841635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionDetails[1]; 842635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_TRANSACTION128, MPI2_POINTER PTR_MPI2_SGE_TRANSACTION128, 843635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGETransaction_t128, MPI2_POINTER pMpi2SGETransaction_t128; 844635374e7eb110e80d9918b8611198edd56a32975Eric Moore 845635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_TRANSACTION_UNION 846635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 847635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Reserved; 848635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 ContextSize; 849635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 DetailsLength; 850635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 851635374e7eb110e80d9918b8611198edd56a32975Eric Moore union 852635374e7eb110e80d9918b8611198edd56a32975Eric Moore { 853635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext32[1]; 854635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext64[2]; 855635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext96[3]; 856635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionContext128[4]; 857635374e7eb110e80d9918b8611198edd56a32975Eric Moore } u; 858635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 TransactionDetails[1]; 859635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_TRANSACTION_UNION, MPI2_POINTER PTR_MPI2_SGE_TRANSACTION_UNION, 860635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGETransactionUnion_t, MPI2_POINTER pMpi2SGETransactionUnion_t; 861635374e7eb110e80d9918b8611198edd56a32975Eric Moore 862635374e7eb110e80d9918b8611198edd56a32975Eric Moore 863635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 864635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI SGE union for IO SGL's 865635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 866635374e7eb110e80d9918b8611198edd56a32975Eric Moore 867635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_MPI_SGE_IO_UNION 868635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 869635374e7eb110e80d9918b8611198edd56a32975Eric Moore union 870635374e7eb110e80d9918b8611198edd56a32975Eric Moore { 871635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_SIMPLE_UNION Simple; 872635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_CHAIN_UNION Chain; 873635374e7eb110e80d9918b8611198edd56a32975Eric Moore } u; 874635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_MPI_SGE_IO_UNION, MPI2_POINTER PTR_MPI2_MPI_SGE_IO_UNION, 875635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2MpiSGEIOUnion_t, MPI2_POINTER pMpi2MpiSGEIOUnion_t; 876635374e7eb110e80d9918b8611198edd56a32975Eric Moore 877635374e7eb110e80d9918b8611198edd56a32975Eric Moore 878635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 879635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI SGE union for SGL's with Simple and Transaction elements 880635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 881635374e7eb110e80d9918b8611198edd56a32975Eric Moore 882635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_SGE_TRANS_SIMPLE_UNION 883635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 884635374e7eb110e80d9918b8611198edd56a32975Eric Moore union 885635374e7eb110e80d9918b8611198edd56a32975Eric Moore { 886635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_SIMPLE_UNION Simple; 887635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_TRANSACTION_UNION Transaction; 888635374e7eb110e80d9918b8611198edd56a32975Eric Moore } u; 889635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_TRANS_SIMPLE_UNION, MPI2_POINTER PTR_MPI2_SGE_TRANS_SIMPLE_UNION, 890635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGETransSimpleUnion_t, MPI2_POINTER pMpi2SGETransSimpleUnion_t; 891635374e7eb110e80d9918b8611198edd56a32975Eric Moore 892635374e7eb110e80d9918b8611198edd56a32975Eric Moore 893635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 894635374e7eb110e80d9918b8611198edd56a32975Eric Moore* All MPI SGE types union 895635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 896635374e7eb110e80d9918b8611198edd56a32975Eric Moore 897635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_MPI_SGE_UNION 898635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 899635374e7eb110e80d9918b8611198edd56a32975Eric Moore union 900635374e7eb110e80d9918b8611198edd56a32975Eric Moore { 901635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_SIMPLE_UNION Simple; 902635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_CHAIN_UNION Chain; 903635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_TRANSACTION_UNION Transaction; 904635374e7eb110e80d9918b8611198edd56a32975Eric Moore } u; 905635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_MPI_SGE_UNION, MPI2_POINTER PTR_MPI2_MPI_SGE_UNION, 906635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2MpiSgeUnion_t, MPI2_POINTER pMpi2MpiSgeUnion_t; 907635374e7eb110e80d9918b8611198edd56a32975Eric Moore 908635374e7eb110e80d9918b8611198edd56a32975Eric Moore 909635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 910635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI SGE field definition and masks 911635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 912635374e7eb110e80d9918b8611198edd56a32975Eric Moore 913635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Flags field bit definitions */ 914635374e7eb110e80d9918b8611198edd56a32975Eric Moore 915635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_LAST_ELEMENT (0x80) 916635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_END_OF_BUFFER (0x40) 917635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_ELEMENT_TYPE_MASK (0x30) 918635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_LOCAL_ADDRESS (0x08) 919635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_DIRECTION (0x04) 920635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_ADDRESS_SIZE (0x02) 921635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_END_OF_LIST (0x01) 922635374e7eb110e80d9918b8611198edd56a32975Eric Moore 923635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_SHIFT (24) 924635374e7eb110e80d9918b8611198edd56a32975Eric Moore 925635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_LENGTH_MASK (0x00FFFFFF) 926635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_CHAIN_LENGTH_MASK (0x0000FFFF) 927635374e7eb110e80d9918b8611198edd56a32975Eric Moore 928635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Element Type */ 929635374e7eb110e80d9918b8611198edd56a32975Eric Moore 930635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_TRANSACTION_ELEMENT (0x00) 931635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_SIMPLE_ELEMENT (0x10) 932635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_CHAIN_ELEMENT (0x30) 933635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_ELEMENT_MASK (0x30) 934635374e7eb110e80d9918b8611198edd56a32975Eric Moore 935635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Address location */ 936635374e7eb110e80d9918b8611198edd56a32975Eric Moore 937635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_SYSTEM_ADDRESS (0x00) 938635374e7eb110e80d9918b8611198edd56a32975Eric Moore 939635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Direction */ 940635374e7eb110e80d9918b8611198edd56a32975Eric Moore 941635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_IOC_TO_HOST (0x00) 942635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_HOST_TO_IOC (0x04) 943635374e7eb110e80d9918b8611198edd56a32975Eric Moore 9447d061402590efc37d553a9155dbf41277675c179Kashyap, Desai#define MPI2_SGE_FLAGS_DEST (MPI2_SGE_FLAGS_IOC_TO_HOST) 9457d061402590efc37d553a9155dbf41277675c179Kashyap, Desai#define MPI2_SGE_FLAGS_SOURCE (MPI2_SGE_FLAGS_HOST_TO_IOC) 9467d061402590efc37d553a9155dbf41277675c179Kashyap, Desai 947635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Address Size */ 948635374e7eb110e80d9918b8611198edd56a32975Eric Moore 949635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_32_BIT_ADDRESSING (0x00) 950635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_64_BIT_ADDRESSING (0x02) 951635374e7eb110e80d9918b8611198edd56a32975Eric Moore 952635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Context Size */ 953635374e7eb110e80d9918b8611198edd56a32975Eric Moore 954635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_32_BIT_CONTEXT (0x00) 955635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_64_BIT_CONTEXT (0x02) 956635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_96_BIT_CONTEXT (0x04) 957635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_FLAGS_128_BIT_CONTEXT (0x06) 958635374e7eb110e80d9918b8611198edd56a32975Eric Moore 959635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_CHAIN_OFFSET_MASK (0x00FF0000) 960635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_CHAIN_OFFSET_SHIFT (16) 961635374e7eb110e80d9918b8611198edd56a32975Eric Moore 962635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 963635374e7eb110e80d9918b8611198edd56a32975Eric Moore* MPI SGE operation Macros 964635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 965635374e7eb110e80d9918b8611198edd56a32975Eric Moore 966635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* SIMPLE FlagsLength manipulations... */ 967635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_SET_FLAGS(f) ((U32)(f) << MPI2_SGE_FLAGS_SHIFT) 968635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_GET_FLAGS(f) (((f) & ~MPI2_SGE_LENGTH_MASK) >> MPI2_SGE_FLAGS_SHIFT) 969635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_LENGTH(f) ((f) & MPI2_SGE_LENGTH_MASK) 970635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_CHAIN_LENGTH(f) ((f) & MPI2_SGE_CHAIN_LENGTH_MASK) 971635374e7eb110e80d9918b8611198edd56a32975Eric Moore 972635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGE_SET_FLAGS_LENGTH(f,l) (MPI2_SGE_SET_FLAGS(f) | MPI2_SGE_LENGTH(l)) 973635374e7eb110e80d9918b8611198edd56a32975Eric Moore 974635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_pSGE_GET_FLAGS(psg) MPI2_SGE_GET_FLAGS((psg)->FlagsLength) 975635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_pSGE_GET_LENGTH(psg) MPI2_SGE_LENGTH((psg)->FlagsLength) 976635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_pSGE_SET_FLAGS_LENGTH(psg,f,l) (psg)->FlagsLength = MPI2_SGE_SET_FLAGS_LENGTH(f,l) 977635374e7eb110e80d9918b8611198edd56a32975Eric Moore 978635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* CAUTION - The following are READ-MODIFY-WRITE! */ 979635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_pSGE_SET_FLAGS(psg,f) (psg)->FlagsLength |= MPI2_SGE_SET_FLAGS(f) 980635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_pSGE_SET_LENGTH(psg,l) (psg)->FlagsLength |= MPI2_SGE_LENGTH(l) 981635374e7eb110e80d9918b8611198edd56a32975Eric Moore 982635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_GET_CHAIN_OFFSET(x) ((x & MPI2_SGE_CHAIN_OFFSET_MASK) >> MPI2_SGE_CHAIN_OFFSET_SHIFT) 983635374e7eb110e80d9918b8611198edd56a32975Eric Moore 984635374e7eb110e80d9918b8611198edd56a32975Eric Moore 985635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 986635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 987635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Fusion-MPT IEEE Scatter Gather Elements 988635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 989635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 990635374e7eb110e80d9918b8611198edd56a32975Eric Moore 991635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 992635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IEEE Simple Element structures 993635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 994635374e7eb110e80d9918b8611198edd56a32975Eric Moore 995635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_IEEE_SGE_SIMPLE32 996635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 997635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Address; 998635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 FlagsLength; 999635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_IEEE_SGE_SIMPLE32, MPI2_POINTER PTR_MPI2_IEEE_SGE_SIMPLE32, 1000635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2IeeeSgeSimple32_t, MPI2_POINTER pMpi2IeeeSgeSimple32_t; 1001635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1002635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_IEEE_SGE_SIMPLE64 1003635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 1004635374e7eb110e80d9918b8611198edd56a32975Eric Moore U64 Address; 1005635374e7eb110e80d9918b8611198edd56a32975Eric Moore U32 Length; 1006635374e7eb110e80d9918b8611198edd56a32975Eric Moore U16 Reserved1; 1007635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Reserved2; 1008635374e7eb110e80d9918b8611198edd56a32975Eric Moore U8 Flags; 1009635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_IEEE_SGE_SIMPLE64, MPI2_POINTER PTR_MPI2_IEEE_SGE_SIMPLE64, 1010635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2IeeeSgeSimple64_t, MPI2_POINTER pMpi2IeeeSgeSimple64_t; 1011635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1012635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef union _MPI2_IEEE_SGE_SIMPLE_UNION 1013635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 1014635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_SIMPLE32 Simple32; 1015635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_SIMPLE64 Simple64; 1016635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_IEEE_SGE_SIMPLE_UNION, MPI2_POINTER PTR_MPI2_IEEE_SGE_SIMPLE_UNION, 1017635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2IeeeSgeSimpleUnion_t, MPI2_POINTER pMpi2IeeeSgeSimpleUnion_t; 1018635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1019635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1020635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 1021635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IEEE Chain Element structures 1022635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 1023635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1024635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef MPI2_IEEE_SGE_SIMPLE32 MPI2_IEEE_SGE_CHAIN32; 1025635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1026635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef MPI2_IEEE_SGE_SIMPLE64 MPI2_IEEE_SGE_CHAIN64; 1027635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1028635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef union _MPI2_IEEE_SGE_CHAIN_UNION 1029635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 1030635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_CHAIN32 Chain32; 1031635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_CHAIN64 Chain64; 1032635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_IEEE_SGE_CHAIN_UNION, MPI2_POINTER PTR_MPI2_IEEE_SGE_CHAIN_UNION, 1033635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2IeeeSgeChainUnion_t, MPI2_POINTER pMpi2IeeeSgeChainUnion_t; 1034635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1035635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1036635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 1037635374e7eb110e80d9918b8611198edd56a32975Eric Moore* All IEEE SGE types union 1038635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 1039635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1040635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef struct _MPI2_IEEE_SGE_UNION 1041635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 1042635374e7eb110e80d9918b8611198edd56a32975Eric Moore union 1043635374e7eb110e80d9918b8611198edd56a32975Eric Moore { 1044635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_SIMPLE_UNION Simple; 1045635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_CHAIN_UNION Chain; 1046635374e7eb110e80d9918b8611198edd56a32975Eric Moore } u; 1047635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_IEEE_SGE_UNION, MPI2_POINTER PTR_MPI2_IEEE_SGE_UNION, 1048635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2IeeeSgeUnion_t, MPI2_POINTER pMpi2IeeeSgeUnion_t; 1049635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1050635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1051635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 1052635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IEEE SGE field definitions and masks 1053635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 1054635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1055635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Flags field bit definitions */ 1056635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1057635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_ELEMENT_TYPE_MASK (0x80) 1058635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1059635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_SGE_FLAGS_SHIFT (24) 1060635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1061635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_SGE_LENGTH_MASK (0x00FFFFFF) 1062635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1063635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Element Type */ 1064635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1065635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_SIMPLE_ELEMENT (0x00) 1066635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_CHAIN_ELEMENT (0x80) 1067635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1068635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* Data Location Address Space */ 1069635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1070635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_ADDR_MASK (0x03) 1071635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_SYSTEM_ADDR (0x00) 1072ce7b1810def1e2f0101931f8f339f9d8a694cd19Kashyap, Desai /* IEEE Simple Element only */ 1073635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_IOCDDR_ADDR (0x01) 1074ce7b1810def1e2f0101931f8f339f9d8a694cd19Kashyap, Desai /* IEEE Simple Element only */ 1075635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_IOCPLB_ADDR (0x02) 1076635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE_SGE_FLAGS_IOCPLBNTA_ADDR (0x03) 1077ce7b1810def1e2f0101931f8f339f9d8a694cd19Kashyap, Desai /* IEEE Simple Element only */ 1078c1bc0704e52f200bc747c6bddb970a3686e230abnagalakshmi.nandigama@lsi.com#define MPI2_IEEE_SGE_FLAGS_SYSTEMPLBPCI_ADDR (0x03) 1079ce7b1810def1e2f0101931f8f339f9d8a694cd19Kashyap, Desai /* IEEE Chain Element only */ 1080c1bc0704e52f200bc747c6bddb970a3686e230abnagalakshmi.nandigama@lsi.com#define MPI2_IEEE_SGE_FLAGS_SYSTEMPLBCPI_ADDR \ 1081c1bc0704e52f200bc747c6bddb970a3686e230abnagalakshmi.nandigama@lsi.com (MPI2_IEEE_SGE_FLAGS_SYSTEMPLBPCI_ADDR) /* typo in name */ 1082635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1083635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 1084635374e7eb110e80d9918b8611198edd56a32975Eric Moore* IEEE SGE operation Macros 1085635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 1086635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1087635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* SIMPLE FlagsLength manipulations... */ 1088635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_SGE_SET_FLAGS(f) ((U32)(f) << MPI2_IEEE32_SGE_FLAGS_SHIFT) 1089635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_SGE_GET_FLAGS(f) (((f) & ~MPI2_IEEE32_SGE_LENGTH_MASK) >> MPI2_IEEE32_SGE_FLAGS_SHIFT) 1090635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_SGE_LENGTH(f) ((f) & MPI2_IEEE32_SGE_LENGTH_MASK) 1091635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1092635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_SGE_SET_FLAGS_LENGTH(f, l) (MPI2_IEEE32_SGE_SET_FLAGS(f) | MPI2_IEEE32_SGE_LENGTH(l)) 1093635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1094635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_pSGE_GET_FLAGS(psg) MPI2_IEEE32_SGE_GET_FLAGS((psg)->FlagsLength) 1095635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_pSGE_GET_LENGTH(psg) MPI2_IEEE32_SGE_LENGTH((psg)->FlagsLength) 1096635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_pSGE_SET_FLAGS_LENGTH(psg,f,l) (psg)->FlagsLength = MPI2_IEEE32_SGE_SET_FLAGS_LENGTH(f,l) 1097635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1098635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* CAUTION - The following are READ-MODIFY-WRITE! */ 1099635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_pSGE_SET_FLAGS(psg,f) (psg)->FlagsLength |= MPI2_IEEE32_SGE_SET_FLAGS(f) 1100635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_IEEE32_pSGE_SET_LENGTH(psg,l) (psg)->FlagsLength |= MPI2_IEEE32_SGE_LENGTH(l) 1101635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1102635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1103635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1104635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1105635374e7eb110e80d9918b8611198edd56a32975Eric Moore/***************************************************************************** 1106635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 1107635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Fusion-MPT MPI/IEEE Scatter Gather Unions 1108635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 1109635374e7eb110e80d9918b8611198edd56a32975Eric Moore*****************************************************************************/ 1110635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1111635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef union _MPI2_SIMPLE_SGE_UNION 1112635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 1113635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_SIMPLE_UNION MpiSimple; 1114635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_SIMPLE_UNION IeeeSimple; 1115635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SIMPLE_SGE_UNION, MPI2_POINTER PTR_MPI2_SIMPLE_SGE_UNION, 1116635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SimpleSgeUntion_t, MPI2_POINTER pMpi2SimpleSgeUntion_t; 1117635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1118635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1119635374e7eb110e80d9918b8611198edd56a32975Eric Mooretypedef union _MPI2_SGE_IO_UNION 1120635374e7eb110e80d9918b8611198edd56a32975Eric Moore{ 1121635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_SIMPLE_UNION MpiSimple; 1122635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_SGE_CHAIN_UNION MpiChain; 1123635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_SIMPLE_UNION IeeeSimple; 1124635374e7eb110e80d9918b8611198edd56a32975Eric Moore MPI2_IEEE_SGE_CHAIN_UNION IeeeChain; 1125635374e7eb110e80d9918b8611198edd56a32975Eric Moore} MPI2_SGE_IO_UNION, MPI2_POINTER PTR_MPI2_SGE_IO_UNION, 1126635374e7eb110e80d9918b8611198edd56a32975Eric Moore Mpi2SGEIOUnion_t, MPI2_POINTER pMpi2SGEIOUnion_t; 1127635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1128635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1129635374e7eb110e80d9918b8611198edd56a32975Eric Moore/**************************************************************************** 1130635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 1131635374e7eb110e80d9918b8611198edd56a32975Eric Moore* Values for SGLFlags field, used in many request messages with an SGL 1132635374e7eb110e80d9918b8611198edd56a32975Eric Moore* 1133635374e7eb110e80d9918b8611198edd56a32975Eric Moore****************************************************************************/ 1134635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1135635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* values for MPI SGL Data Location Address Space subfield */ 1136635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_ADDRESS_SPACE_MASK (0x0C) 1137635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_SYSTEM_ADDRESS_SPACE (0x00) 1138635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_IOCDDR_ADDRESS_SPACE (0x04) 1139635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_IOCPLB_ADDRESS_SPACE (0x08) 1140635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_IOCPLBNTA_ADDRESS_SPACE (0x0C) 1141635374e7eb110e80d9918b8611198edd56a32975Eric Moore/* values for SGL Type subfield */ 1142635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_SGL_TYPE_MASK (0x03) 1143635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_SGL_TYPE_MPI (0x00) 1144635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_SGL_TYPE_IEEE32 (0x01) 1145635374e7eb110e80d9918b8611198edd56a32975Eric Moore#define MPI2_SGLFLAGS_SGL_TYPE_IEEE64 (0x02) 1146635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1147635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1148635374e7eb110e80d9918b8611198edd56a32975Eric Moore#endif 1149635374e7eb110e80d9918b8611198edd56a32975Eric Moore 1150