11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 2fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai * Copyright (c) 2004-2008 LSI Corporation. 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Name: mpi_sas.h 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Title: MPI Serial Attached SCSI structures and definitions 7c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * Creation Date: August 19, 2004 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 9fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai * mpi_sas.h Version: 01.05.05 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Version History 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * --------------- 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Date Version Description 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * -------- -------- ------------------------------------------------------ 16c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * 08-19-04 01.05.01 Original release. 174b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric * 08-30-05 01.05.02 Added DeviceInfo bit for SEP. 184b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric * Added PrimFlags and Primitive field to SAS IO Unit 194b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric * Control request, and added a new operation code. 202076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore * 03-27-06 01.05.03 Added Force Full Discovery, Transmit Port Select Signal, 212076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore * and Remove Device operations to SAS IO Unit Control. 222076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore * Added DevHandle field to SAS IO Unit Control request and 232076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore * reply. 24eae225eb5947825bc4e845c33ded9aedd74407cfEric Moore * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO 25eae225eb5947825bc4e845c33ded9aedd74407cfEric Moore * Unit Control request. 26fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai * 01-15-08 01.05.05 Added support for MPI_SAS_OP_SET_IOC_PARAMETER, 27fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai * including adding IOCParameter and IOCParameter value 28fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai * fields to SAS IO Unit Control Request. 29fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai * Added MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC define. 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * -------------------------------------------------------------------------- 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_SAS_H 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_H 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 36c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 37c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* 38c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * Values for SASStatus. 39c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean */ 40c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SUCCESS (0x00) 41c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UNKNOWN_ERROR (0x01) 42c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_INVALID_FRAME (0x02) 43c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_BAD_DEST (0x03) 44c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_BREAK_RECEIVED (0x04) 45c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_CONNECT_RATE_NOT_SUPPORTED (0x05) 46c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_PORT_LAYER_REQUEST (0x06) 47c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_PROTOCOL_NOT_SUPPORTED (0x07) 48c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_STP_RESOURCES_BUSY (0x08) 49c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_WRONG_DESTINATION (0x09) 50c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SHORT_INFORMATION_UNIT (0x0A) 51c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_LONG_INFORMATION_UNIT (0x0B) 52c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_XFER_RDY_INCORRECT_WRITE_DATA (0x0C) 53c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_XFER_RDY_REQUEST_OFFSET_ERROR (0x0D) 54c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_XFER_RDY_NOT_EXPECTED (0x0E) 55c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_DATA_INCORRECT_DATA_LENGTH (0x0F) 56c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_DATA_TOO_MUCH_READ_DATA (0x10) 57c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_DATA_OFFSET_ERROR (0x11) 58c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SDSF_NAK_RECEIVED (0x12) 59c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SDSF_CONNECTION_FAILED (0x13) 60c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_INITIATOR_RESPONSE_TIMEOUT (0x14) 61c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 62c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 63c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* 64c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * Values for the SAS DeviceInfo field used in SAS Device Status Change Event 65c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * data and SAS IO Unit Configuration pages. 66c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean */ 67fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai#define MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC (0xF0000000) 68fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai 694b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_DEVICE_INFO_SEP (0x00004000) 70c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000) 71c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000) 72c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_DIRECT_ATTACH (0x00000800) 73c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SSP_TARGET (0x00000400) 74c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_STP_TARGET (0x00000200) 75c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SMP_TARGET (0x00000100) 76c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SATA_DEVICE (0x00000080) 77c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SSP_INITIATOR (0x00000040) 78c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_STP_INITIATOR (0x00000020) 79c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SMP_INITIATOR (0x00000010) 80c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SATA_HOST (0x00000008) 81c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 82c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_MASK_DEVICE_TYPE (0x00000007) 83c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_NO_DEVICE (0x00000000) 84c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_END_DEVICE (0x00000001) 85c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_EDGE_EXPANDER (0x00000002) 86c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_FANOUT_EXPANDER (0x00000003) 87c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 88c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 89c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/***************************************************************************** 911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* S e r i a l A t t a c h e d S C S I M e s s a g e s 931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*****************************************************************************/ 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Serial Management Protocol Passthrough Request */ 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SMP_PASSTHROUGH_REQUEST 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PassthroughFlags; /* 00h */ 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysicalPort; /* 01h */ 1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChainOffset; /* 02h */ 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 RequestDataLength; /* 04h */ 1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ConnectionRate; /* 06h */ 1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 0Ch */ 1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 10h */ 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 18h */ 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved3; /* 1Ch */ 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SGE_SIMPLE_UNION SGL; /* 20h */ 1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SMP_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REQUEST, 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SmpPassthroughRequest_t, MPI_POINTER pSmpPassthroughRequest_t; 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 118c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for PassthroughFlags field */ 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_PT_FLAGS_IMMEDIATE (0x80) 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 121c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for ConnectionRate field */ 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_CONNECT_RATE_1_5 (0x08) 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_CONNECT_RATE_3_0 (0x09) 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Serial Management Protocol Passthrough Reply */ 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SMP_PASSTHROUGH_REPLY 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PassthroughFlags; /* 00h */ 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysicalPort; /* 01h */ 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgLength; /* 02h */ 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ResponseDataLength; /* 04h */ 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 06h */ 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2; /* 0Ch */ 1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SASStatus; /* 0Dh */ 1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOCStatus; /* 0Eh */ 1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IOCLogInfo; /* 10h */ 1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved3; /* 14h */ 1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ResponseData[4]; /* 18h */ 1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SMP_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REPLY, 1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SmpPassthroughReply_t, MPI_POINTER pSmpPassthroughReply_t; 1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REPLY_PT_FLAGS_IMMEDIATE (0x80) 1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 150c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/****************************************************************************/ 151c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* SATA Passthrough Request */ 152c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/****************************************************************************/ 153c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 154c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Deantypedef struct _MSG_SATA_PASSTHROUGH_REQUEST 155c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean{ 156c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 TargetID; /* 00h */ 157c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Bus; /* 01h */ 158c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 ChainOffset; /* 02h */ 159c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Function; /* 03h */ 160c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U16 PassthroughFlags; /* 04h */ 161c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 ConnectionRate; /* 06h */ 162c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 MsgFlags; /* 07h */ 163c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 MsgContext; /* 08h */ 164c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 Reserved1; /* 0Ch */ 165c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 Reserved2; /* 10h */ 166c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 Reserved3; /* 14h */ 167c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 DataLength; /* 18h */ 168c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 CommandFIS[20]; /* 1Ch */ 169c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean SGE_SIMPLE_UNION SGL; /* 30h */ 170c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean} MSG_SATA_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REQUEST, 171c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean SataPassthroughRequest_t, MPI_POINTER pSataPassthroughRequest_t; 172c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 173c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for PassthroughFlags field */ 174c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_RESET_DEVICE (0x0200) 175c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_EXECUTE_DIAG (0x0100) 176c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_DMA_QUEUED (0x0080) 177c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_PACKET_COMMAND (0x0040) 178c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_DMA (0x0020) 179c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_PIO (0x0010) 180c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_UNSPECIFIED_VU (0x0004) 181c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_WRITE (0x0002) 182c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_READ (0x0001) 183c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 184c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for ConnectionRate field */ 185c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) 186c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_CONNECT_RATE_1_5 (0x08) 187c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_CONNECT_RATE_3_0 (0x09) 188c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 189c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 190c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* SATA Passthrough Reply */ 191c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Deantypedef struct _MSG_SATA_PASSTHROUGH_REPLY 192c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean{ 193c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 TargetID; /* 00h */ 194c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Bus; /* 01h */ 195c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 MsgLength; /* 02h */ 196c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Function; /* 03h */ 197c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U16 PassthroughFlags; /* 04h */ 198c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Reserved1; /* 06h */ 199c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 MsgFlags; /* 07h */ 200c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 MsgContext; /* 08h */ 201c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Reserved2; /* 0Ch */ 202c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 SASStatus; /* 0Dh */ 203c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U16 IOCStatus; /* 0Eh */ 204c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 IOCLogInfo; /* 10h */ 205c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 StatusFIS[20]; /* 14h */ 206c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 StatusControlRegisters; /* 28h */ 207c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 TransferCount; /* 2Ch */ 208c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean} MSG_SATA_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REPLY, 209c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean SataPassthroughReply_t, MPI_POINTER pSataPassthroughReply_t; 2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* SAS IO Unit Control Request */ 2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST 2191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Operation; /* 00h */ 2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 01h */ 2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChainOffset; /* 02h */ 2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 2242076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore U16 DevHandle; /* 04h */ 225fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai U8 IOCParameter; /* 06h */ 2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 2271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 TargetID; /* 0Ch */ 2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Bus; /* 0Dh */ 2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhyNum; /* 0Eh */ 2314b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric U8 PrimFlags; /* 0Fh */ 2324b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric U32 Primitive; /* 10h */ 2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 14h */ 234fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai U32 IOCParameterValue; /* 1Ch */ 2351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST, 2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t; 2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 238c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for the Operation field */ 2394b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_CLEAR_NOT_PRESENT (0x01) 2404b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_CLEAR_ALL_PERSISTENT (0x02) 2414b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_PHY_LINK_RESET (0x06) 2424b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_PHY_HARD_RESET (0x07) 2434b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_PHY_CLEAR_ERROR_LOG (0x08) 2444b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_MAP_CURRENT (0x09) 2454b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_SEND_PRIMITIVE (0x0A) 2462076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore#define MPI_SAS_OP_FORCE_FULL_DISCOVERY (0x0B) 2472076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore#define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C) 248eae225eb5947825bc4e845c33ded9aedd74407cfEric Moore#define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */ 249eae225eb5947825bc4e845c33ded9aedd74407cfEric Moore#define MPI_SAS_OP_REMOVE_DEVICE (0x0D) 250fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai#define MPI_SAS_OP_SET_IOC_PARAMETER (0x0E) 251fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai#define MPI_SAS_OP_PRODUCT_SPECIFIC_MIN (0x80) 2524b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric 2534b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric/* values for the PrimFlags field */ 2544b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_PRIMFLAGS_SINGLE (0x08) 2554b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_PRIMFLAGS_TRIPLE (0x02) 2564b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_PRIMFLAGS_REDUNDANT (0x01) 2571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* SAS IO Unit Control Reply */ 2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SAS_IOUNIT_CONTROL_REPLY 2611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 2621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Operation; /* 00h */ 2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 01h */ 2641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgLength; /* 02h */ 2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 2662076eb6ab8339bf09620a0160be3607bbbb61a50Eric Moore U16 DevHandle; /* 04h */ 267fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai U8 IOCParameter; /* 06h */ 2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved4; /* 0Ch */ 2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOCStatus; /* 0Eh */ 2721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IOCLogInfo; /* 10h */ 2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SAS_IOUNIT_CONTROL_REPLY, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REPLY, 2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIoUnitControlReply_t, MPI_POINTER pSasIoUnitControlReply_t; 2751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 279