mpi_sas.h revision 4b915a73663fe0951077ebcdaf02337ff2bddcfc
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 2c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * Copyright (c) 2004 LSI Logic 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 * 94b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric * mpi_sas.h Version: 01.05.02 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. 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * -------------------------------------------------------------------------- 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_SAS_H 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_H 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 26c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 27c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* 28c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * Values for SASStatus. 29c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean */ 30c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SUCCESS (0x00) 31c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UNKNOWN_ERROR (0x01) 32c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_INVALID_FRAME (0x02) 33c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_BAD_DEST (0x03) 34c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_BREAK_RECEIVED (0x04) 35c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_CONNECT_RATE_NOT_SUPPORTED (0x05) 36c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_PORT_LAYER_REQUEST (0x06) 37c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_PROTOCOL_NOT_SUPPORTED (0x07) 38c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_STP_RESOURCES_BUSY (0x08) 39c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_UTC_WRONG_DESTINATION (0x09) 40c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SHORT_INFORMATION_UNIT (0x0A) 41c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_LONG_INFORMATION_UNIT (0x0B) 42c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_XFER_RDY_INCORRECT_WRITE_DATA (0x0C) 43c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_XFER_RDY_REQUEST_OFFSET_ERROR (0x0D) 44c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_XFER_RDY_NOT_EXPECTED (0x0E) 45c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_DATA_INCORRECT_DATA_LENGTH (0x0F) 46c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_DATA_TOO_MUCH_READ_DATA (0x10) 47c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_DATA_OFFSET_ERROR (0x11) 48c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SDSF_NAK_RECEIVED (0x12) 49c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_SDSF_CONNECTION_FAILED (0x13) 50c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SASSTATUS_INITIATOR_RESPONSE_TIMEOUT (0x14) 51c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 52c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 53c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* 54c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * Values for the SAS DeviceInfo field used in SAS Device Status Change Event 55c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean * data and SAS IO Unit Configuration pages. 56c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean */ 574b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_DEVICE_INFO_SEP (0x00004000) 58c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000) 59c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000) 60c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_DIRECT_ATTACH (0x00000800) 61c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SSP_TARGET (0x00000400) 62c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_STP_TARGET (0x00000200) 63c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SMP_TARGET (0x00000100) 64c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SATA_DEVICE (0x00000080) 65c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SSP_INITIATOR (0x00000040) 66c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_STP_INITIATOR (0x00000020) 67c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SMP_INITIATOR (0x00000010) 68c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_SATA_HOST (0x00000008) 69c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 70c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_MASK_DEVICE_TYPE (0x00000007) 71c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_NO_DEVICE (0x00000000) 72c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_END_DEVICE (0x00000001) 73c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_EDGE_EXPANDER (0x00000002) 74c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SAS_DEVICE_INFO_FANOUT_EXPANDER (0x00000003) 75c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 76c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 77c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/***************************************************************************** 791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus 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 811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*****************************************************************************/ 831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Serial Management Protocol Passthrough Request */ 861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SMP_PASSTHROUGH_REQUEST 891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PassthroughFlags; /* 00h */ 911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysicalPort; /* 01h */ 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChainOffset; /* 02h */ 931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 RequestDataLength; /* 04h */ 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ConnectionRate; /* 06h */ 961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 0Ch */ 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 10h */ 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 18h */ 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved3; /* 1Ch */ 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SGE_SIMPLE_UNION SGL; /* 20h */ 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SMP_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REQUEST, 1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SmpPassthroughRequest_t, MPI_POINTER pSmpPassthroughRequest_t; 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 106c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for PassthroughFlags field */ 1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_PT_FLAGS_IMMEDIATE (0x80) 1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 109c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for ConnectionRate field */ 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) 1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_CONNECT_RATE_1_5 (0x08) 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REQ_CONNECT_RATE_3_0 (0x09) 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Serial Management Protocol Passthrough Reply */ 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SMP_PASSTHROUGH_REPLY 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PassthroughFlags; /* 00h */ 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysicalPort; /* 01h */ 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgLength; /* 02h */ 1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ResponseDataLength; /* 04h */ 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 06h */ 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2; /* 0Ch */ 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SASStatus; /* 0Dh */ 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOCStatus; /* 0Eh */ 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IOCLogInfo; /* 10h */ 1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved3; /* 14h */ 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ResponseData[4]; /* 18h */ 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SMP_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SMP_PASSTHROUGH_REPLY, 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SmpPassthroughReply_t, MPI_POINTER pSmpPassthroughReply_t; 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SMP_PT_REPLY_PT_FLAGS_IMMEDIATE (0x80) 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 138c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/****************************************************************************/ 139c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* SATA Passthrough Request */ 140c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/****************************************************************************/ 141c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 142c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Deantypedef struct _MSG_SATA_PASSTHROUGH_REQUEST 143c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean{ 144c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 TargetID; /* 00h */ 145c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Bus; /* 01h */ 146c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 ChainOffset; /* 02h */ 147c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Function; /* 03h */ 148c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U16 PassthroughFlags; /* 04h */ 149c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 ConnectionRate; /* 06h */ 150c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 MsgFlags; /* 07h */ 151c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 MsgContext; /* 08h */ 152c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 Reserved1; /* 0Ch */ 153c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 Reserved2; /* 10h */ 154c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 Reserved3; /* 14h */ 155c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 DataLength; /* 18h */ 156c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 CommandFIS[20]; /* 1Ch */ 157c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean SGE_SIMPLE_UNION SGL; /* 30h */ 158c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean} MSG_SATA_PASSTHROUGH_REQUEST, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REQUEST, 159c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean SataPassthroughRequest_t, MPI_POINTER pSataPassthroughRequest_t; 160c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 161c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for PassthroughFlags field */ 162c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_RESET_DEVICE (0x0200) 163c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_EXECUTE_DIAG (0x0100) 164c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_DMA_QUEUED (0x0080) 165c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_PACKET_COMMAND (0x0040) 166c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_DMA (0x0020) 167c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_PIO (0x0010) 168c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_UNSPECIFIED_VU (0x0004) 169c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_WRITE (0x0002) 170c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_PT_FLAGS_READ (0x0001) 171c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 172c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for ConnectionRate field */ 173c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_CONNECT_RATE_NEGOTIATED (0x00) 174c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_CONNECT_RATE_1_5 (0x08) 175c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_SATA_PT_REQ_CONNECT_RATE_3_0 (0x09) 176c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 177c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean 178c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* SATA Passthrough Reply */ 179c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Deantypedef struct _MSG_SATA_PASSTHROUGH_REPLY 180c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean{ 181c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 TargetID; /* 00h */ 182c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Bus; /* 01h */ 183c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 MsgLength; /* 02h */ 184c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Function; /* 03h */ 185c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U16 PassthroughFlags; /* 04h */ 186c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Reserved1; /* 06h */ 187c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 MsgFlags; /* 07h */ 188c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 MsgContext; /* 08h */ 189c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 Reserved2; /* 0Ch */ 190c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 SASStatus; /* 0Dh */ 191c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U16 IOCStatus; /* 0Eh */ 192c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 IOCLogInfo; /* 10h */ 193c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U8 StatusFIS[20]; /* 14h */ 194c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 StatusControlRegisters; /* 28h */ 195c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean U32 TransferCount; /* 2Ch */ 196c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean} MSG_SATA_PASSTHROUGH_REPLY, MPI_POINTER PTR_MSG_SATA_PASSTHROUGH_REPLY, 197c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean SataPassthroughReply_t, MPI_POINTER pSataPassthroughReply_t; 1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* SAS IO Unit Control Request */ 2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/ 2051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST 2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Operation; /* 00h */ 2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 01h */ 2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChainOffset; /* 02h */ 2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 04h */ 2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved3; /* 06h */ 2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 TargetID; /* 0Ch */ 2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Bus; /* 0Dh */ 2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhyNum; /* 0Eh */ 2194b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric U8 PrimFlags; /* 0Fh */ 2204b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric U32 Primitive; /* 10h */ 2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 14h */ 2224b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric U32 Reserved4; /* 1Ch */ 2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST, 2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t; 2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 226c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* values for the Operation field */ 2274b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_CLEAR_NOT_PRESENT (0x01) 2284b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_CLEAR_ALL_PERSISTENT (0x02) 2294b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_PHY_LINK_RESET (0x06) 2304b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_PHY_HARD_RESET (0x07) 2314b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_PHY_CLEAR_ERROR_LOG (0x08) 2324b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_MAP_CURRENT (0x09) 2334b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_OP_SEND_PRIMITIVE (0x0A) 2344b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric 2354b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric/* values for the PrimFlags field */ 2364b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_PRIMFLAGS_SINGLE (0x08) 2374b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_PRIMFLAGS_TRIPLE (0x02) 2384b915a73663fe0951077ebcdaf02337ff2bddcfcMoore, Eric#define MPI_SAS_PRIMFLAGS_REDUNDANT (0x01) 2391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* SAS IO Unit Control Reply */ 2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_SAS_IOUNIT_CONTROL_REPLY 2431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 2441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Operation; /* 00h */ 2451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 01h */ 2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgLength; /* 02h */ 2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 2481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 04h */ 2491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved3; /* 06h */ 2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 2521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved4; /* 0Ch */ 2531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOCStatus; /* 0Eh */ 2541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IOCLogInfo; /* 10h */ 2551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_SAS_IOUNIT_CONTROL_REPLY, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REPLY, 2561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIoUnitControlReply_t, MPI_POINTER pSasIoUnitControlReply_t; 2571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 261