1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #ifndef MPI2_PCI_H
33 #define MPI2_PCI_H
34
35
36
37
38
39
40 #define MPI26_PCIE_DEVINFO_DIRECT_ATTACH (0x00000010)
41
42 #define MPI26_PCIE_DEVINFO_MASK_DEVICE_TYPE (0x0000000F)
43 #define MPI26_PCIE_DEVINFO_NO_DEVICE (0x00000000)
44 #define MPI26_PCIE_DEVINFO_PCI_SWITCH (0x00000001)
45 #define MPI26_PCIE_DEVINFO_NVME (0x00000003)
46 #define MPI26_PCIE_DEVINFO_SCSI (0x00000004)
47
48
49
50
51
52
53 typedef struct _MPI26_NVME_ENCAPSULATED_REQUEST {
54 U16 DevHandle;
55 U8 ChainOffset;
56 U8 Function;
57 U16 EncapsulatedCommandLength;
58 U8 Reserved1;
59 U8 MsgFlags;
60 U8 VP_ID;
61 U8 VF_ID;
62 U16 Reserved2;
63 U32 Reserved3;
64 U64 ErrorResponseBaseAddress;
65 U16 ErrorResponseAllocationLength;
66 U16 Flags;
67 U32 DataLength;
68 U8 NVMe_Command[4];
69
70 } MPI26_NVME_ENCAPSULATED_REQUEST, *PTR_MPI26_NVME_ENCAPSULATED_REQUEST,
71 Mpi26NVMeEncapsulatedRequest_t, *pMpi26NVMeEncapsulatedRequest_t;
72
73
74 #define MPI26_NVME_FLAGS_FORCE_ADMIN_ERR_RESP (0x0020)
75
76 #define MPI26_NVME_FLAGS_SUBMISSIONQ_MASK (0x0010)
77 #define MPI26_NVME_FLAGS_SUBMISSIONQ_IO (0x0000)
78 #define MPI26_NVME_FLAGS_SUBMISSIONQ_ADMIN (0x0010)
79
80 #define MPI26_NVME_FLAGS_ERR_RSP_ADDR_MASK (0x000C)
81 #define MPI26_NVME_FLAGS_ERR_RSP_ADDR_SYSTEM (0x0000)
82 #define MPI26_NVME_FLAGS_ERR_RSP_ADDR_IOCTL (0x0008)
83
84 #define MPI26_NVME_FLAGS_DATADIRECTION_MASK (0x0003)
85 #define MPI26_NVME_FLAGS_NODATATRANSFER (0x0000)
86 #define MPI26_NVME_FLAGS_WRITE (0x0001)
87 #define MPI26_NVME_FLAGS_READ (0x0002)
88 #define MPI26_NVME_FLAGS_BIDIRECTIONAL (0x0003)
89
90
91
92 typedef struct _MPI26_NVME_ENCAPSULATED_ERROR_REPLY {
93 U16 DevHandle;
94 U8 MsgLength;
95 U8 Function;
96 U16 EncapsulatedCommandLength;
97 U8 Reserved1;
98 U8 MsgFlags;
99 U8 VP_ID;
100 U8 VF_ID;
101 U16 Reserved2;
102 U16 Reserved3;
103 U16 IOCStatus;
104 U32 IOCLogInfo;
105 U16 ErrorResponseCount;
106 U16 Reserved4;
107 } MPI26_NVME_ENCAPSULATED_ERROR_REPLY,
108 *PTR_MPI26_NVME_ENCAPSULATED_ERROR_REPLY,
109 Mpi26NVMeEncapsulatedErrorReply_t,
110 *pMpi26NVMeEncapsulatedErrorReply_t;
111
112
113 #endif