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