11#ifndef __FUSION_MPT_SCSI_H__
12#define __FUSION_MPT_SCSI_H__
18#define LSI_LOGIC_PCI_VENDOR_ID 0x1000
19#define LSI_53C1030_PCI_DEVICE_ID 0x0030
20#define LSI_SAS1068_PCI_DEVICE_ID 0x0054
21#define LSI_SAS1068E_PCI_DEVICE_ID 0x0058
23#define MPT_REG_DOORBELL 0x00
24#define MPT_REG_WRITE_SEQ 0x04
25#define MPT_REG_HOST_DIAG 0x08
26#define MPT_REG_TEST 0x0c
27#define MPT_REG_DIAG_DATA 0x10
28#define MPT_REG_DIAG_ADDR 0x14
29#define MPT_REG_ISTATUS 0x30
30#define MPT_REG_IMASK 0x34
31#define MPT_REG_REQ_Q 0x40
32#define MPT_REG_REP_Q 0x44
34#define MPT_DOORBELL_RESET 0x40
35#define MPT_DOORBELL_HANDSHAKE 0x42
37#define MPT_IMASK_DOORBELL 0x01
38#define MPT_IMASK_REPLY 0x08
40#define MPT_MESSAGE_HDR_FUNCTION_SCSI_IO_REQUEST 0x00
41#define MPT_MESSAGE_HDR_FUNCTION_IOC_INIT 0x02
43#define MPT_SG_ENTRY_TYPE_SIMPLE 0x01
45#define MPT_IOC_WHOINIT_ROM_BIOS 0x02
47#define MPT_SCSIIO_REQUEST_CONTROL_TXDIR_NONE (0x00 << 24)
48#define MPT_SCSIIO_REQUEST_CONTROL_TXDIR_WRITE (0x01 << 24)
49#define MPT_SCSIIO_REQUEST_CONTROL_TXDIR_READ (0x02 << 24)
51#define MPT_SCSI_IOCSTATUS_SUCCESS 0x0000
52#define MPT_SCSI_IOCSTATUS_DEVICE_NOT_THERE 0x0043
53#define MPT_SCSI_IOCSTATUS_DATA_OVERRUN 0x0044
54#define MPT_SCSI_IOCSTATUS_DATA_UNDERRUN 0x0045
70 UINT32 MessageContext;
71 UINT16 ReplyFrameSize;
73 UINT32 HostMfaHighAddr;
74 UINT32 SenseBufferHighAddr;
86 UINT32 MessageContext;
98 UINT8 SenseBufferLength;
101 UINT32 MessageContext;
106 UINT32 SenseBufferLowAddress;
111 UINT32 EndOfList : 1;
112 UINT32 Is64BitAddress : 1;
117 UINT32 BufferContainsData : 1;
118 UINT32 LocalAddress : 1;
119 UINT32 ElementType : 2;
120 UINT32 EndOfBuffer : 1;
121 UINT32 LastElement : 1;
122 UINT64 DataBufferAddress;
131 UINT8 SenseBufferLength;
134 UINT32 MessageContext;
139 UINT32 TransferCount;