0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 #ifndef MPI2_PCI_H
0033 #define MPI2_PCI_H
0034
0035
0036
0037
0038
0039
0040 #define MPI26_PCIE_DEVINFO_DIRECT_ATTACH (0x00000010)
0041
0042 #define MPI26_PCIE_DEVINFO_MASK_DEVICE_TYPE (0x0000000F)
0043 #define MPI26_PCIE_DEVINFO_NO_DEVICE (0x00000000)
0044 #define MPI26_PCIE_DEVINFO_PCI_SWITCH (0x00000001)
0045 #define MPI26_PCIE_DEVINFO_NVME (0x00000003)
0046 #define MPI26_PCIE_DEVINFO_SCSI (0x00000004)
0047
0048
0049
0050
0051
0052
0053 typedef struct _MPI26_NVME_ENCAPSULATED_REQUEST {
0054 U16 DevHandle;
0055 U8 ChainOffset;
0056 U8 Function;
0057 U16 EncapsulatedCommandLength;
0058 U8 Reserved1;
0059 U8 MsgFlags;
0060 U8 VP_ID;
0061 U8 VF_ID;
0062 U16 Reserved2;
0063 U32 Reserved3;
0064 U64 ErrorResponseBaseAddress;
0065 U16 ErrorResponseAllocationLength;
0066 U16 Flags;
0067 U32 DataLength;
0068 U8 NVMe_Command[4];
0069
0070 } MPI26_NVME_ENCAPSULATED_REQUEST, *PTR_MPI26_NVME_ENCAPSULATED_REQUEST,
0071 Mpi26NVMeEncapsulatedRequest_t, *pMpi26NVMeEncapsulatedRequest_t;
0072
0073
0074 #define MPI26_NVME_FLAGS_FORCE_ADMIN_ERR_RESP (0x0020)
0075
0076 #define MPI26_NVME_FLAGS_SUBMISSIONQ_MASK (0x0010)
0077 #define MPI26_NVME_FLAGS_SUBMISSIONQ_IO (0x0000)
0078 #define MPI26_NVME_FLAGS_SUBMISSIONQ_ADMIN (0x0010)
0079
0080 #define MPI26_NVME_FLAGS_ERR_RSP_ADDR_MASK (0x000C)
0081 #define MPI26_NVME_FLAGS_ERR_RSP_ADDR_SYSTEM (0x0000)
0082 #define MPI26_NVME_FLAGS_ERR_RSP_ADDR_IOCTL (0x0008)
0083
0084 #define MPI26_NVME_FLAGS_DATADIRECTION_MASK (0x0003)
0085 #define MPI26_NVME_FLAGS_NODATATRANSFER (0x0000)
0086 #define MPI26_NVME_FLAGS_WRITE (0x0001)
0087 #define MPI26_NVME_FLAGS_READ (0x0002)
0088 #define MPI26_NVME_FLAGS_BIDIRECTIONAL (0x0003)
0089
0090
0091
0092 typedef struct _MPI26_NVME_ENCAPSULATED_ERROR_REPLY {
0093 U16 DevHandle;
0094 U8 MsgLength;
0095 U8 Function;
0096 U16 EncapsulatedCommandLength;
0097 U8 Reserved1;
0098 U8 MsgFlags;
0099 U8 VP_ID;
0100 U8 VF_ID;
0101 U16 Reserved2;
0102 U16 Reserved3;
0103 U16 IOCStatus;
0104 U32 IOCLogInfo;
0105 U16 ErrorResponseCount;
0106 U16 Reserved4;
0107 } MPI26_NVME_ENCAPSULATED_ERROR_REPLY,
0108 *PTR_MPI26_NVME_ENCAPSULATED_ERROR_REPLY,
0109 Mpi26NVMeEncapsulatedErrorReply_t,
0110 *pMpi26NVMeEncapsulatedErrorReply_t;
0111
0112
0113 #endif