mpi2_tool.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. /*
  2. * Copyright (c) 2000-2008 LSI Corporation.
  3. *
  4. *
  5. * Name: mpi2_tool.h
  6. * Title: MPI diagnostic tool structures and definitions
  7. * Creation Date: March 26, 2007
  8. *
  9. * mpi2_tool.h Version: 02.00.02
  10. *
  11. * Version History
  12. * ---------------
  13. *
  14. * Date Version Description
  15. * -------- -------- ------------------------------------------------------
  16. * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A.
  17. * 12-18-07 02.00.01 Added Diagnostic Buffer Post and Diagnostic Release
  18. * structures and defines.
  19. * 02-29-08 02.00.02 Modified various names to make them 32-character unique.
  20. * --------------------------------------------------------------------------
  21. */
  22. #ifndef MPI2_TOOL_H
  23. #define MPI2_TOOL_H
  24. /*****************************************************************************
  25. *
  26. * Toolbox Messages
  27. *
  28. *****************************************************************************/
  29. /* defines for the Tools */
  30. #define MPI2_TOOLBOX_CLEAN_TOOL (0x00)
  31. #define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
  32. #define MPI2_TOOLBOX_BEACON_TOOL (0x05)
  33. /****************************************************************************
  34. * Toolbox reply
  35. ****************************************************************************/
  36. typedef struct _MPI2_TOOLBOX_REPLY
  37. {
  38. U8 Tool; /* 0x00 */
  39. U8 Reserved1; /* 0x01 */
  40. U8 MsgLength; /* 0x02 */
  41. U8 Function; /* 0x03 */
  42. U16 Reserved2; /* 0x04 */
  43. U8 Reserved3; /* 0x06 */
  44. U8 MsgFlags; /* 0x07 */
  45. U8 VP_ID; /* 0x08 */
  46. U8 VF_ID; /* 0x09 */
  47. U16 Reserved4; /* 0x0A */
  48. U16 Reserved5; /* 0x0C */
  49. U16 IOCStatus; /* 0x0E */
  50. U32 IOCLogInfo; /* 0x10 */
  51. } MPI2_TOOLBOX_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_REPLY,
  52. Mpi2ToolboxReply_t, MPI2_POINTER pMpi2ToolboxReply_t;
  53. /****************************************************************************
  54. * Toolbox Clean Tool request
  55. ****************************************************************************/
  56. typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST
  57. {
  58. U8 Tool; /* 0x00 */
  59. U8 Reserved1; /* 0x01 */
  60. U8 ChainOffset; /* 0x02 */
  61. U8 Function; /* 0x03 */
  62. U16 Reserved2; /* 0x04 */
  63. U8 Reserved3; /* 0x06 */
  64. U8 MsgFlags; /* 0x07 */
  65. U8 VP_ID; /* 0x08 */
  66. U8 VF_ID; /* 0x09 */
  67. U16 Reserved4; /* 0x0A */
  68. U32 Flags; /* 0x0C */
  69. } MPI2_TOOLBOX_CLEAN_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_CLEAN_REQUEST,
  70. Mpi2ToolboxCleanRequest_t, MPI2_POINTER pMpi2ToolboxCleanRequest_t;
  71. /* values for the Flags field */
  72. #define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000)
  73. #define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000)
  74. #define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000)
  75. #define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000)
  76. #define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000)
  77. #define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000)
  78. #define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000)
  79. #define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004)
  80. #define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002)
  81. #define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001)
  82. /****************************************************************************
  83. * Toolbox Memory Move request
  84. ****************************************************************************/
  85. typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST
  86. {
  87. U8 Tool; /* 0x00 */
  88. U8 Reserved1; /* 0x01 */
  89. U8 ChainOffset; /* 0x02 */
  90. U8 Function; /* 0x03 */
  91. U16 Reserved2; /* 0x04 */
  92. U8 Reserved3; /* 0x06 */
  93. U8 MsgFlags; /* 0x07 */
  94. U8 VP_ID; /* 0x08 */
  95. U8 VF_ID; /* 0x09 */
  96. U16 Reserved4; /* 0x0A */
  97. MPI2_SGE_SIMPLE_UNION SGL; /* 0x0C */
  98. } MPI2_TOOLBOX_MEM_MOVE_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST,
  99. Mpi2ToolboxMemMoveRequest_t, MPI2_POINTER pMpi2ToolboxMemMoveRequest_t;
  100. /****************************************************************************
  101. * Toolbox Beacon Tool request
  102. ****************************************************************************/
  103. typedef struct _MPI2_TOOLBOX_BEACON_REQUEST
  104. {
  105. U8 Tool; /* 0x00 */
  106. U8 Reserved1; /* 0x01 */
  107. U8 ChainOffset; /* 0x02 */
  108. U8 Function; /* 0x03 */
  109. U16 Reserved2; /* 0x04 */
  110. U8 Reserved3; /* 0x06 */
  111. U8 MsgFlags; /* 0x07 */
  112. U8 VP_ID; /* 0x08 */
  113. U8 VF_ID; /* 0x09 */
  114. U16 Reserved4; /* 0x0A */
  115. U8 Reserved5; /* 0x0C */
  116. U8 PhysicalPort; /* 0x0D */
  117. U8 Reserved6; /* 0x0E */
  118. U8 Flags; /* 0x0F */
  119. } MPI2_TOOLBOX_BEACON_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_BEACON_REQUEST,
  120. Mpi2ToolboxBeaconRequest_t, MPI2_POINTER pMpi2ToolboxBeaconRequest_t;
  121. /* values for the Flags field */
  122. #define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00)
  123. #define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01)
  124. /*****************************************************************************
  125. *
  126. * Diagnostic Buffer Messages
  127. *
  128. *****************************************************************************/
  129. /****************************************************************************
  130. * Diagnostic Buffer Post request
  131. ****************************************************************************/
  132. typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST
  133. {
  134. U8 Reserved1; /* 0x00 */
  135. U8 BufferType; /* 0x01 */
  136. U8 ChainOffset; /* 0x02 */
  137. U8 Function; /* 0x03 */
  138. U16 Reserved2; /* 0x04 */
  139. U8 Reserved3; /* 0x06 */
  140. U8 MsgFlags; /* 0x07 */
  141. U8 VP_ID; /* 0x08 */
  142. U8 VF_ID; /* 0x09 */
  143. U16 Reserved4; /* 0x0A */
  144. U64 BufferAddress; /* 0x0C */
  145. U32 BufferLength; /* 0x14 */
  146. U32 Reserved5; /* 0x18 */
  147. U32 Reserved6; /* 0x1C */
  148. U32 Flags; /* 0x20 */
  149. U32 ProductSpecific[23]; /* 0x24 */
  150. } MPI2_DIAG_BUFFER_POST_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REQUEST,
  151. Mpi2DiagBufferPostRequest_t, MPI2_POINTER pMpi2DiagBufferPostRequest_t;
  152. /* values for the BufferType field */
  153. #define MPI2_DIAG_BUF_TYPE_TRACE (0x00)
  154. #define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01)
  155. /* count of the number of buffer types */
  156. #define MPI2_DIAG_BUF_TYPE_COUNT (0x02)
  157. /****************************************************************************
  158. * Diagnostic Buffer Post reply
  159. ****************************************************************************/
  160. typedef struct _MPI2_DIAG_BUFFER_POST_REPLY
  161. {
  162. U8 Reserved1; /* 0x00 */
  163. U8 BufferType; /* 0x01 */
  164. U8 MsgLength; /* 0x02 */
  165. U8 Function; /* 0x03 */
  166. U16 Reserved2; /* 0x04 */
  167. U8 Reserved3; /* 0x06 */
  168. U8 MsgFlags; /* 0x07 */
  169. U8 VP_ID; /* 0x08 */
  170. U8 VF_ID; /* 0x09 */
  171. U16 Reserved4; /* 0x0A */
  172. U16 Reserved5; /* 0x0C */
  173. U16 IOCStatus; /* 0x0E */
  174. U32 IOCLogInfo; /* 0x10 */
  175. U32 TransferLength; /* 0x14 */
  176. } MPI2_DIAG_BUFFER_POST_REPLY, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REPLY,
  177. Mpi2DiagBufferPostReply_t, MPI2_POINTER pMpi2DiagBufferPostReply_t;
  178. /****************************************************************************
  179. * Diagnostic Release request
  180. ****************************************************************************/
  181. typedef struct _MPI2_DIAG_RELEASE_REQUEST
  182. {
  183. U8 Reserved1; /* 0x00 */
  184. U8 BufferType; /* 0x01 */
  185. U8 ChainOffset; /* 0x02 */
  186. U8 Function; /* 0x03 */
  187. U16 Reserved2; /* 0x04 */
  188. U8 Reserved3; /* 0x06 */
  189. U8 MsgFlags; /* 0x07 */
  190. U8 VP_ID; /* 0x08 */
  191. U8 VF_ID; /* 0x09 */
  192. U16 Reserved4; /* 0x0A */
  193. } MPI2_DIAG_RELEASE_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REQUEST,
  194. Mpi2DiagReleaseRequest_t, MPI2_POINTER pMpi2DiagReleaseRequest_t;
  195. /****************************************************************************
  196. * Diagnostic Buffer Post reply
  197. ****************************************************************************/
  198. typedef struct _MPI2_DIAG_RELEASE_REPLY
  199. {
  200. U8 Reserved1; /* 0x00 */
  201. U8 BufferType; /* 0x01 */
  202. U8 MsgLength; /* 0x02 */
  203. U8 Function; /* 0x03 */
  204. U16 Reserved2; /* 0x04 */
  205. U8 Reserved3; /* 0x06 */
  206. U8 MsgFlags; /* 0x07 */
  207. U8 VP_ID; /* 0x08 */
  208. U8 VF_ID; /* 0x09 */
  209. U16 Reserved4; /* 0x0A */
  210. U16 Reserved5; /* 0x0C */
  211. U16 IOCStatus; /* 0x0E */
  212. U32 IOCLogInfo; /* 0x10 */
  213. } MPI2_DIAG_RELEASE_REPLY, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REPLY,
  214. Mpi2DiagReleaseReply_t, MPI2_POINTER pMpi2DiagReleaseReply_t;
  215. #endif