19de3c85cSMatt Jacob /*- 2*7282444bSPedro F. Giffuni * SPDX-License-Identifier: BSD-3-Clause 3*7282444bSPedro F. Giffuni * 412af29abSMarius Strobl * Copyright (c) 2000-2010, LSI Logic Corporation and its contributors. 59de3c85cSMatt Jacob * All rights reserved. 69de3c85cSMatt Jacob * 79de3c85cSMatt Jacob * Redistribution and use in source and binary forms, with or without 89de3c85cSMatt Jacob * modification, are permitted provided that the following conditions are 99de3c85cSMatt Jacob * met: 109de3c85cSMatt Jacob * 1. Redistributions of source code must retain the above copyright 119de3c85cSMatt Jacob * notice, this list of conditions and the following disclaimer. 129de3c85cSMatt Jacob * 2. Redistributions in binary form must reproduce at minimum a disclaimer 139de3c85cSMatt Jacob * substantially similar to the "NO WARRANTY" disclaimer below 149de3c85cSMatt Jacob * ("Disclaimer") and any redistribution must be conditioned upon including 159de3c85cSMatt Jacob * a substantially similar Disclaimer requirement for further binary 169de3c85cSMatt Jacob * redistribution. 179de3c85cSMatt Jacob * 3. Neither the name of the LSI Logic Corporation nor the names of its 189de3c85cSMatt Jacob * contributors may be used to endorse or promote products derived from 199de3c85cSMatt Jacob * this software without specific prior written permission. 209de3c85cSMatt Jacob * 219de3c85cSMatt Jacob * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 229de3c85cSMatt Jacob * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 239de3c85cSMatt Jacob * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 249de3c85cSMatt Jacob * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 259de3c85cSMatt Jacob * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 269de3c85cSMatt Jacob * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 279de3c85cSMatt Jacob * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 289de3c85cSMatt Jacob * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 299de3c85cSMatt Jacob * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 309de3c85cSMatt Jacob * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE COPYRIGHT 319de3c85cSMatt Jacob * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 329de3c85cSMatt Jacob * 339de3c85cSMatt Jacob * 349de3c85cSMatt Jacob * Name: mpi_tool.h 359de3c85cSMatt Jacob * Title: MPI Toolbox structures and definitions 369de3c85cSMatt Jacob * Creation Date: July 30, 2001 379de3c85cSMatt Jacob * 389de3c85cSMatt Jacob * mpi_tool.h Version: 01.05.03 399de3c85cSMatt Jacob * 409de3c85cSMatt Jacob * Version History 419de3c85cSMatt Jacob * --------------- 429de3c85cSMatt Jacob * 439de3c85cSMatt Jacob * Date Version Description 449de3c85cSMatt Jacob * -------- -------- ------------------------------------------------------ 459de3c85cSMatt Jacob * 08-08-01 01.02.01 Original release. 469de3c85cSMatt Jacob * 08-29-01 01.02.02 Added DIAG_DATA_UPLOAD_HEADER and related defines. 479de3c85cSMatt Jacob * 01-16-04 01.02.03 Added defines and structures for new tools 489de3c85cSMatt Jacob *. MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL and 499de3c85cSMatt Jacob * MPI_TOOLBOX_FC_MANAGEMENT_TOOL. 509de3c85cSMatt Jacob * 04-29-04 01.02.04 Added message structures for Diagnostic Buffer Post and 519de3c85cSMatt Jacob * Diagnostic Release requests and replies. 529de3c85cSMatt Jacob * 05-11-04 01.03.01 Original release for MPI v1.3. 539de3c85cSMatt Jacob * 08-19-04 01.05.01 Original release for MPI v1.5. 549de3c85cSMatt Jacob * 10-06-04 01.05.02 Added define for MPI_DIAG_BUF_TYPE_COUNT. 559de3c85cSMatt Jacob * 02-09-05 01.05.03 Added frame size option to FC management tool. 569de3c85cSMatt Jacob * Added Beacon tool to the Toolbox. 579de3c85cSMatt Jacob * -------------------------------------------------------------------------- 589de3c85cSMatt Jacob */ 599de3c85cSMatt Jacob 609de3c85cSMatt Jacob #ifndef MPI_TOOL_H 619de3c85cSMatt Jacob #define MPI_TOOL_H 629de3c85cSMatt Jacob 639de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_TOOL (0x00) 649de3c85cSMatt Jacob #define MPI_TOOLBOX_MEMORY_MOVE_TOOL (0x01) 659de3c85cSMatt Jacob #define MPI_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02) 669de3c85cSMatt Jacob #define MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03) 679de3c85cSMatt Jacob #define MPI_TOOLBOX_FC_MANAGEMENT_TOOL (0x04) 689de3c85cSMatt Jacob #define MPI_TOOLBOX_BEACON_TOOL (0x05) 699de3c85cSMatt Jacob 709de3c85cSMatt Jacob /****************************************************************************/ 719de3c85cSMatt Jacob /* Toolbox reply */ 729de3c85cSMatt Jacob /****************************************************************************/ 739de3c85cSMatt Jacob 749de3c85cSMatt Jacob typedef struct _MSG_TOOLBOX_REPLY 759de3c85cSMatt Jacob { 769de3c85cSMatt Jacob U8 Tool; /* 00h */ 779de3c85cSMatt Jacob U8 Reserved; /* 01h */ 789de3c85cSMatt Jacob U8 MsgLength; /* 02h */ 799de3c85cSMatt Jacob U8 Function; /* 03h */ 809de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 819de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 829de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 839de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 849de3c85cSMatt Jacob U16 Reserved3; /* 0Ch */ 859de3c85cSMatt Jacob U16 IOCStatus; /* 0Eh */ 869de3c85cSMatt Jacob U32 IOCLogInfo; /* 10h */ 879de3c85cSMatt Jacob } MSG_TOOLBOX_REPLY, MPI_POINTER PTR_MSG_TOOLBOX_REPLY, 889de3c85cSMatt Jacob ToolboxReply_t, MPI_POINTER pToolboxReply_t; 899de3c85cSMatt Jacob 909de3c85cSMatt Jacob /****************************************************************************/ 919de3c85cSMatt Jacob /* Toolbox Clean Tool request */ 929de3c85cSMatt Jacob /****************************************************************************/ 939de3c85cSMatt Jacob 949de3c85cSMatt Jacob typedef struct _MSG_TOOLBOX_CLEAN_REQUEST 959de3c85cSMatt Jacob { 969de3c85cSMatt Jacob U8 Tool; /* 00h */ 979de3c85cSMatt Jacob U8 Reserved; /* 01h */ 989de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 999de3c85cSMatt Jacob U8 Function; /* 03h */ 1009de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 1019de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 1029de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 1039de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 1049de3c85cSMatt Jacob U32 Flags; /* 0Ch */ 1059de3c85cSMatt Jacob } MSG_TOOLBOX_CLEAN_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_CLEAN_REQUEST, 1069de3c85cSMatt Jacob ToolboxCleanRequest_t, MPI_POINTER pToolboxCleanRequest_t; 1079de3c85cSMatt Jacob 1089de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_NVSRAM (0x00000001) 1099de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_SEEPROM (0x00000002) 1109de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_FLASH (0x00000004) 1119de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_BOOTLOADER (0x04000000) 1129de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_FW_BACKUP (0x08000000) 1139de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_FW_CURRENT (0x10000000) 1149de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000) 1159de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000) 1169de3c85cSMatt Jacob #define MPI_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000) 1179de3c85cSMatt Jacob 1189de3c85cSMatt Jacob /****************************************************************************/ 1199de3c85cSMatt Jacob /* Toolbox Memory Move request */ 1209de3c85cSMatt Jacob /****************************************************************************/ 1219de3c85cSMatt Jacob 1229de3c85cSMatt Jacob typedef struct _MSG_TOOLBOX_MEM_MOVE_REQUEST 1239de3c85cSMatt Jacob { 1249de3c85cSMatt Jacob U8 Tool; /* 00h */ 1259de3c85cSMatt Jacob U8 Reserved; /* 01h */ 1269de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 1279de3c85cSMatt Jacob U8 Function; /* 03h */ 1289de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 1299de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 1309de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 1319de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 1329de3c85cSMatt Jacob SGE_SIMPLE_UNION SGL; /* 0Ch */ 1339de3c85cSMatt Jacob } MSG_TOOLBOX_MEM_MOVE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_MEM_MOVE_REQUEST, 1349de3c85cSMatt Jacob ToolboxMemMoveRequest_t, MPI_POINTER pToolboxMemMoveRequest_t; 1359de3c85cSMatt Jacob 1369de3c85cSMatt Jacob /****************************************************************************/ 1379de3c85cSMatt Jacob /* Toolbox Diagnostic Data Upload request */ 1389de3c85cSMatt Jacob /****************************************************************************/ 1399de3c85cSMatt Jacob 1409de3c85cSMatt Jacob typedef struct _MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST 1419de3c85cSMatt Jacob { 1429de3c85cSMatt Jacob U8 Tool; /* 00h */ 1439de3c85cSMatt Jacob U8 Reserved; /* 01h */ 1449de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 1459de3c85cSMatt Jacob U8 Function; /* 03h */ 1469de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 1479de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 1489de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 1499de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 1509de3c85cSMatt Jacob U32 Flags; /* 0Ch */ 1519de3c85cSMatt Jacob U32 Reserved3; /* 10h */ 1529de3c85cSMatt Jacob SGE_SIMPLE_UNION SGL; /* 14h */ 1539de3c85cSMatt Jacob } MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, 1549de3c85cSMatt Jacob ToolboxDiagDataUploadRequest_t, MPI_POINTER pToolboxDiagDataUploadRequest_t; 1559de3c85cSMatt Jacob 1569de3c85cSMatt Jacob typedef struct _DIAG_DATA_UPLOAD_HEADER 1579de3c85cSMatt Jacob { 1589de3c85cSMatt Jacob U32 DiagDataLength; /* 00h */ 1599de3c85cSMatt Jacob U8 FormatCode; /* 04h */ 1609de3c85cSMatt Jacob U8 Reserved; /* 05h */ 1619de3c85cSMatt Jacob U16 Reserved1; /* 06h */ 1629de3c85cSMatt Jacob } DIAG_DATA_UPLOAD_HEADER, MPI_POINTER PTR_DIAG_DATA_UPLOAD_HEADER, 1639de3c85cSMatt Jacob DiagDataUploadHeader_t, MPI_POINTER pDiagDataUploadHeader_t; 1649de3c85cSMatt Jacob 1659de3c85cSMatt Jacob #define MPI_TB_DIAG_FORMAT_SCSI_PRINTF_1 (0x01) 1669de3c85cSMatt Jacob #define MPI_TB_DIAG_FORMAT_SCSI_2 (0x02) 1679de3c85cSMatt Jacob #define MPI_TB_DIAG_FORMAT_SCSI_3 (0x03) 1689de3c85cSMatt Jacob #define MPI_TB_DIAG_FORMAT_FC_TRACE_1 (0x04) 1699de3c85cSMatt Jacob 1709de3c85cSMatt Jacob /****************************************************************************/ 1719de3c85cSMatt Jacob /* Toolbox ISTWI Read Write request */ 1729de3c85cSMatt Jacob /****************************************************************************/ 1739de3c85cSMatt Jacob 1749de3c85cSMatt Jacob typedef struct _MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST 1759de3c85cSMatt Jacob { 1769de3c85cSMatt Jacob U8 Tool; /* 00h */ 1779de3c85cSMatt Jacob U8 Reserved; /* 01h */ 1789de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 1799de3c85cSMatt Jacob U8 Function; /* 03h */ 1809de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 1819de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 1829de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 1839de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 1849de3c85cSMatt Jacob U8 Flags; /* 0Ch */ 1859de3c85cSMatt Jacob U8 BusNum; /* 0Dh */ 1869de3c85cSMatt Jacob U16 Reserved3; /* 0Eh */ 1879de3c85cSMatt Jacob U8 NumAddressBytes; /* 10h */ 1889de3c85cSMatt Jacob U8 Reserved4; /* 11h */ 1899de3c85cSMatt Jacob U16 DataLength; /* 12h */ 1909de3c85cSMatt Jacob U8 DeviceAddr; /* 14h */ 1919de3c85cSMatt Jacob U8 Addr1; /* 15h */ 1929de3c85cSMatt Jacob U8 Addr2; /* 16h */ 1939de3c85cSMatt Jacob U8 Addr3; /* 17h */ 1949de3c85cSMatt Jacob U32 Reserved5; /* 18h */ 1959de3c85cSMatt Jacob SGE_SIMPLE_UNION SGL; /* 1Ch */ 1969de3c85cSMatt Jacob } MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST, 1979de3c85cSMatt Jacob ToolboxIstwiReadWriteRequest_t, MPI_POINTER pToolboxIstwiReadWriteRequest_t; 1989de3c85cSMatt Jacob 1999de3c85cSMatt Jacob #define MPI_TB_ISTWI_FLAGS_WRITE (0x00) 2009de3c85cSMatt Jacob #define MPI_TB_ISTWI_FLAGS_READ (0x01) 2019de3c85cSMatt Jacob 2029de3c85cSMatt Jacob /****************************************************************************/ 2039de3c85cSMatt Jacob /* Toolbox FC Management request */ 2049de3c85cSMatt Jacob /****************************************************************************/ 2059de3c85cSMatt Jacob 2069de3c85cSMatt Jacob /* ActionInfo for Bus and TargetId */ 2079de3c85cSMatt Jacob typedef struct _MPI_TB_FC_MANAGE_BUS_TID_AI 2089de3c85cSMatt Jacob { 2099de3c85cSMatt Jacob U16 Reserved; /* 00h */ 2109de3c85cSMatt Jacob U8 Bus; /* 02h */ 2119de3c85cSMatt Jacob U8 TargetId; /* 03h */ 2129de3c85cSMatt Jacob } MPI_TB_FC_MANAGE_BUS_TID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_BUS_TID_AI, 2139de3c85cSMatt Jacob MpiTbFcManageBusTidAi_t, MPI_POINTER pMpiTbFcManageBusTidAi_t; 2149de3c85cSMatt Jacob 2159de3c85cSMatt Jacob /* ActionInfo for port identifier */ 2169de3c85cSMatt Jacob typedef struct _MPI_TB_FC_MANAGE_PID_AI 2179de3c85cSMatt Jacob { 2189de3c85cSMatt Jacob U32 PortIdentifier; /* 00h */ 2199de3c85cSMatt Jacob } MPI_TB_FC_MANAGE_PID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_PID_AI, 2209de3c85cSMatt Jacob MpiTbFcManagePidAi_t, MPI_POINTER pMpiTbFcManagePidAi_t; 2219de3c85cSMatt Jacob 2229de3c85cSMatt Jacob /* ActionInfo for set max frame size */ 2239de3c85cSMatt Jacob typedef struct _MPI_TB_FC_MANAGE_FRAME_SIZE_AI 2249de3c85cSMatt Jacob { 2259de3c85cSMatt Jacob U16 FrameSize; /* 00h */ 2269de3c85cSMatt Jacob U8 PortNum; /* 02h */ 2279de3c85cSMatt Jacob U8 Reserved1; /* 03h */ 2289de3c85cSMatt Jacob } MPI_TB_FC_MANAGE_FRAME_SIZE_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_FRAME_SIZE_AI, 2299de3c85cSMatt Jacob MpiTbFcManageFrameSizeAi_t, MPI_POINTER pMpiTbFcManageFrameSizeAi_t; 2309de3c85cSMatt Jacob 2319de3c85cSMatt Jacob /* union of ActionInfo */ 2329de3c85cSMatt Jacob typedef union _MPI_TB_FC_MANAGE_AI_UNION 2339de3c85cSMatt Jacob { 2349de3c85cSMatt Jacob MPI_TB_FC_MANAGE_BUS_TID_AI BusTid; 2359de3c85cSMatt Jacob MPI_TB_FC_MANAGE_PID_AI Port; 2369de3c85cSMatt Jacob MPI_TB_FC_MANAGE_FRAME_SIZE_AI FrameSize; 2379de3c85cSMatt Jacob } MPI_TB_FC_MANAGE_AI_UNION, MPI_POINTER PTR_MPI_TB_FC_MANAGE_AI_UNION, 2389de3c85cSMatt Jacob MpiTbFcManageAiUnion_t, MPI_POINTER pMpiTbFcManageAiUnion_t; 2399de3c85cSMatt Jacob 2409de3c85cSMatt Jacob typedef struct _MSG_TOOLBOX_FC_MANAGE_REQUEST 2419de3c85cSMatt Jacob { 2429de3c85cSMatt Jacob U8 Tool; /* 00h */ 2439de3c85cSMatt Jacob U8 Reserved; /* 01h */ 2449de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 2459de3c85cSMatt Jacob U8 Function; /* 03h */ 2469de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 2479de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 2489de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 2499de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 2509de3c85cSMatt Jacob U8 Action; /* 0Ch */ 2519de3c85cSMatt Jacob U8 Reserved3; /* 0Dh */ 2529de3c85cSMatt Jacob U16 Reserved4; /* 0Eh */ 2539de3c85cSMatt Jacob MPI_TB_FC_MANAGE_AI_UNION ActionInfo; /* 10h */ 2549de3c85cSMatt Jacob } MSG_TOOLBOX_FC_MANAGE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_FC_MANAGE_REQUEST, 2559de3c85cSMatt Jacob ToolboxFcManageRequest_t, MPI_POINTER pToolboxFcManageRequest_t; 2569de3c85cSMatt Jacob 2579de3c85cSMatt Jacob /* defines for the Action field */ 2589de3c85cSMatt Jacob #define MPI_TB_FC_MANAGE_ACTION_DISC_ALL (0x00) 2599de3c85cSMatt Jacob #define MPI_TB_FC_MANAGE_ACTION_DISC_PID (0x01) 2609de3c85cSMatt Jacob #define MPI_TB_FC_MANAGE_ACTION_DISC_BUS_TID (0x02) 2619de3c85cSMatt Jacob #define MPI_TB_FC_MANAGE_ACTION_SET_MAX_FRAME_SIZE (0x03) 2629de3c85cSMatt Jacob 2639de3c85cSMatt Jacob /****************************************************************************/ 2649de3c85cSMatt Jacob /* Toolbox Beacon Tool request */ 2659de3c85cSMatt Jacob /****************************************************************************/ 2669de3c85cSMatt Jacob 2679de3c85cSMatt Jacob typedef struct _MSG_TOOLBOX_BEACON_REQUEST 2689de3c85cSMatt Jacob { 2699de3c85cSMatt Jacob U8 Tool; /* 00h */ 2709de3c85cSMatt Jacob U8 Reserved; /* 01h */ 2719de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 2729de3c85cSMatt Jacob U8 Function; /* 03h */ 2739de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 2749de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 2759de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 2769de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 2779de3c85cSMatt Jacob U8 ConnectNum; /* 0Ch */ 2789de3c85cSMatt Jacob U8 PortNum; /* 0Dh */ 2799de3c85cSMatt Jacob U8 Reserved3; /* 0Eh */ 2809de3c85cSMatt Jacob U8 Flags; /* 0Fh */ 2819de3c85cSMatt Jacob } MSG_TOOLBOX_BEACON_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_BEACON_REQUEST, 2829de3c85cSMatt Jacob ToolboxBeaconRequest_t, MPI_POINTER pToolboxBeaconRequest_t; 2839de3c85cSMatt Jacob 2849de3c85cSMatt Jacob #define MPI_TOOLBOX_FLAGS_BEACON_MODE_OFF (0x00) 2859de3c85cSMatt Jacob #define MPI_TOOLBOX_FLAGS_BEACON_MODE_ON (0x01) 2869de3c85cSMatt Jacob 2879de3c85cSMatt Jacob /****************************************************************************/ 2889de3c85cSMatt Jacob /* Diagnostic Buffer Post request */ 2899de3c85cSMatt Jacob /****************************************************************************/ 2909de3c85cSMatt Jacob 2919de3c85cSMatt Jacob typedef struct _MSG_DIAG_BUFFER_POST_REQUEST 2929de3c85cSMatt Jacob { 2939de3c85cSMatt Jacob U8 TraceLevel; /* 00h */ 2949de3c85cSMatt Jacob U8 BufferType; /* 01h */ 2959de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 2969de3c85cSMatt Jacob U8 Function; /* 03h */ 2979de3c85cSMatt Jacob U16 Reserved1; /* 04h */ 2989de3c85cSMatt Jacob U8 Reserved2; /* 06h */ 2999de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 3009de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 3019de3c85cSMatt Jacob U32 ExtendedType; /* 0Ch */ 3029de3c85cSMatt Jacob U32 BufferLength; /* 10h */ 3039de3c85cSMatt Jacob U32 ProductSpecific[4]; /* 14h */ 3049de3c85cSMatt Jacob U32 Reserved3; /* 24h */ 3059de3c85cSMatt Jacob U64 BufferAddress; /* 28h */ 3069de3c85cSMatt Jacob } MSG_DIAG_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REQUEST, 3079de3c85cSMatt Jacob DiagBufferPostRequest_t, MPI_POINTER pDiagBufferPostRequest_t; 3089de3c85cSMatt Jacob 3099de3c85cSMatt Jacob #define MPI_DIAG_BUF_TYPE_TRACE (0x00) 3109de3c85cSMatt Jacob #define MPI_DIAG_BUF_TYPE_SNAPSHOT (0x01) 3119de3c85cSMatt Jacob #define MPI_DIAG_BUF_TYPE_EXTENDED (0x02) 3129de3c85cSMatt Jacob /* count of the number of buffer types */ 3139de3c85cSMatt Jacob #define MPI_DIAG_BUF_TYPE_COUNT (0x03) 3149de3c85cSMatt Jacob 3159de3c85cSMatt Jacob #define MPI_DIAG_EXTENDED_QTAG (0x00000001) 3169de3c85cSMatt Jacob 3179de3c85cSMatt Jacob /* Diagnostic Buffer Post reply */ 3189de3c85cSMatt Jacob typedef struct _MSG_DIAG_BUFFER_POST_REPLY 3199de3c85cSMatt Jacob { 3209de3c85cSMatt Jacob U8 Reserved1; /* 00h */ 3219de3c85cSMatt Jacob U8 BufferType; /* 01h */ 3229de3c85cSMatt Jacob U8 MsgLength; /* 02h */ 3239de3c85cSMatt Jacob U8 Function; /* 03h */ 3249de3c85cSMatt Jacob U16 Reserved2; /* 04h */ 3259de3c85cSMatt Jacob U8 Reserved3; /* 06h */ 3269de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 3279de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 3289de3c85cSMatt Jacob U16 Reserved4; /* 0Ch */ 3299de3c85cSMatt Jacob U16 IOCStatus; /* 0Eh */ 3309de3c85cSMatt Jacob U32 IOCLogInfo; /* 10h */ 3319de3c85cSMatt Jacob U32 TransferLength; /* 14h */ 3329de3c85cSMatt Jacob } MSG_DIAG_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REPLY, 3339de3c85cSMatt Jacob DiagBufferPostReply_t, MPI_POINTER pDiagBufferPostReply_t; 3349de3c85cSMatt Jacob 3359de3c85cSMatt Jacob /****************************************************************************/ 3369de3c85cSMatt Jacob /* Diagnostic Release request */ 3379de3c85cSMatt Jacob /****************************************************************************/ 3389de3c85cSMatt Jacob 3399de3c85cSMatt Jacob typedef struct _MSG_DIAG_RELEASE_REQUEST 3409de3c85cSMatt Jacob { 3419de3c85cSMatt Jacob U8 Reserved1; /* 00h */ 3429de3c85cSMatt Jacob U8 BufferType; /* 01h */ 3439de3c85cSMatt Jacob U8 ChainOffset; /* 02h */ 3449de3c85cSMatt Jacob U8 Function; /* 03h */ 3459de3c85cSMatt Jacob U16 Reserved2; /* 04h */ 3469de3c85cSMatt Jacob U8 Reserved3; /* 06h */ 3479de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 3489de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 3499de3c85cSMatt Jacob } MSG_DIAG_RELEASE_REQUEST, MPI_POINTER PTR_MSG_DIAG_RELEASE_REQUEST, 3509de3c85cSMatt Jacob DiagReleaseRequest_t, MPI_POINTER pDiagReleaseRequest_t; 3519de3c85cSMatt Jacob 3529de3c85cSMatt Jacob /* Diagnostic Release reply */ 3539de3c85cSMatt Jacob typedef struct _MSG_DIAG_RELEASE_REPLY 3549de3c85cSMatt Jacob { 3559de3c85cSMatt Jacob U8 Reserved1; /* 00h */ 3569de3c85cSMatt Jacob U8 BufferType; /* 01h */ 3579de3c85cSMatt Jacob U8 MsgLength; /* 02h */ 3589de3c85cSMatt Jacob U8 Function; /* 03h */ 3599de3c85cSMatt Jacob U16 Reserved2; /* 04h */ 3609de3c85cSMatt Jacob U8 Reserved3; /* 06h */ 3619de3c85cSMatt Jacob U8 MsgFlags; /* 07h */ 3629de3c85cSMatt Jacob U32 MsgContext; /* 08h */ 3639de3c85cSMatt Jacob U16 Reserved4; /* 0Ch */ 3649de3c85cSMatt Jacob U16 IOCStatus; /* 0Eh */ 3659de3c85cSMatt Jacob U32 IOCLogInfo; /* 10h */ 3669de3c85cSMatt Jacob } MSG_DIAG_RELEASE_REPLY, MPI_POINTER PTR_MSG_DIAG_RELEASE_REPLY, 3679de3c85cSMatt Jacob DiagReleaseReply_t, MPI_POINTER pDiagReleaseReply_t; 3689de3c85cSMatt Jacob 3699de3c85cSMatt Jacob #endif 370