162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright 2000-2020 Broadcom Inc. All rights reserved. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Name: mpi2_tool.h 762306a36Sopenharmony_ci * Title: MPI diagnostic tool structures and definitions 862306a36Sopenharmony_ci * Creation Date: March 26, 2007 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * mpi2_tool.h Version: 02.00.16 1162306a36Sopenharmony_ci * 1262306a36Sopenharmony_ci * Version History 1362306a36Sopenharmony_ci * --------------- 1462306a36Sopenharmony_ci * 1562306a36Sopenharmony_ci * Date Version Description 1662306a36Sopenharmony_ci * -------- -------- ------------------------------------------------------ 1762306a36Sopenharmony_ci * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A. 1862306a36Sopenharmony_ci * 12-18-07 02.00.01 Added Diagnostic Buffer Post and Diagnostic Release 1962306a36Sopenharmony_ci * structures and defines. 2062306a36Sopenharmony_ci * 02-29-08 02.00.02 Modified various names to make them 32-character unique. 2162306a36Sopenharmony_ci * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. 2262306a36Sopenharmony_ci * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request 2362306a36Sopenharmony_ci * and reply messages. 2462306a36Sopenharmony_ci * Added MPI2_DIAG_BUF_TYPE_EXTENDED. 2562306a36Sopenharmony_ci * Incremented MPI2_DIAG_BUF_TYPE_COUNT. 2662306a36Sopenharmony_ci * 05-12-10 02.00.05 Added Diagnostic Data Upload tool. 2762306a36Sopenharmony_ci * 08-11-10 02.00.06 Added defines that were missing for Diagnostic Buffer 2862306a36Sopenharmony_ci * Post Request. 2962306a36Sopenharmony_ci * 05-25-11 02.00.07 Added Flags field and related defines to 3062306a36Sopenharmony_ci * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST. 3162306a36Sopenharmony_ci * 11-18-11 02.00.08 Incorporating additions for MPI v2.5. 3262306a36Sopenharmony_ci * 07-10-12 02.00.09 Add MPI v2.5 Toolbox Diagnostic CLI Tool Request 3362306a36Sopenharmony_ci * message. 3462306a36Sopenharmony_ci * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that 3562306a36Sopenharmony_ci * it uses MPI Chain SGE as well as MPI Simple SGE. 3662306a36Sopenharmony_ci * 08-19-13 02.00.11 Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info. 3762306a36Sopenharmony_ci * 01-08-14 02.00.12 Added MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC. 3862306a36Sopenharmony_ci * 11-18-14 02.00.13 Updated copyright information. 3962306a36Sopenharmony_ci * 08-25-16 02.00.14 Added new values for the Flags field of Toolbox Clean 4062306a36Sopenharmony_ci * Tool Request Message. 4162306a36Sopenharmony_ci * 07-22-18 02.00.15 Added defines for new TOOLBOX_PCIE_LANE_MARGINING tool. 4262306a36Sopenharmony_ci * Added option for DeviceInfo field in ISTWI tool. 4362306a36Sopenharmony_ci * 12-17-18 02.00.16 Shorten some defines to be compatible with DOS. 4462306a36Sopenharmony_ci * -------------------------------------------------------------------------- 4562306a36Sopenharmony_ci */ 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#ifndef MPI2_TOOL_H 4862306a36Sopenharmony_ci#define MPI2_TOOL_H 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci/***************************************************************************** 5162306a36Sopenharmony_ci* 5262306a36Sopenharmony_ci* Toolbox Messages 5362306a36Sopenharmony_ci* 5462306a36Sopenharmony_ci*****************************************************************************/ 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci/*defines for the Tools */ 5762306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_TOOL (0x00) 5862306a36Sopenharmony_ci#define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01) 5962306a36Sopenharmony_ci#define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02) 6062306a36Sopenharmony_ci#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03) 6162306a36Sopenharmony_ci#define MPI2_TOOLBOX_BEACON_TOOL (0x05) 6262306a36Sopenharmony_ci#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06) 6362306a36Sopenharmony_ci#define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07) 6462306a36Sopenharmony_ci#define MPI26_TOOLBOX_BACKEND_PCIE_LANE_MARGIN (0x08) 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci/**************************************************************************** 6762306a36Sopenharmony_ci* Toolbox reply 6862306a36Sopenharmony_ci****************************************************************************/ 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_REPLY { 7162306a36Sopenharmony_ci U8 Tool; /*0x00 */ 7262306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 7362306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 7462306a36Sopenharmony_ci U8 Function; /*0x03 */ 7562306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 7662306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 7762306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 7862306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 7962306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 8062306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 8162306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 8262306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 8362306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 8462306a36Sopenharmony_ci} MPI2_TOOLBOX_REPLY, *PTR_MPI2_TOOLBOX_REPLY, 8562306a36Sopenharmony_ci Mpi2ToolboxReply_t, *pMpi2ToolboxReply_t; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci/**************************************************************************** 8862306a36Sopenharmony_ci* Toolbox Clean Tool request 8962306a36Sopenharmony_ci****************************************************************************/ 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_CLEAN_REQUEST { 9262306a36Sopenharmony_ci U8 Tool; /*0x00 */ 9362306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 9462306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 9562306a36Sopenharmony_ci U8 Function; /*0x03 */ 9662306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 9762306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 9862306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 9962306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 10062306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 10162306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 10262306a36Sopenharmony_ci U32 Flags; /*0x0C */ 10362306a36Sopenharmony_ci} MPI2_TOOLBOX_CLEAN_REQUEST, *PTR_MPI2_TOOLBOX_CLEAN_REQUEST, 10462306a36Sopenharmony_ci Mpi2ToolboxCleanRequest_t, *pMpi2ToolboxCleanRequest_t; 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci/*values for the Flags field */ 10762306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000) 10862306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000) 10962306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000) 11062306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000) 11162306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000) 11262306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC (0x04000000) 11362306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000) 11462306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000) 11562306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_SBR (0x00800000) 11662306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_SBR_BACKUP (0x00400000) 11762306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_HIIM (0x00200000) 11862306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_HIIA (0x00100000) 11962306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_CTLR (0x00080000) 12062306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_IMR_FIRMWARE (0x00040000) 12162306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_MR_NVDATA (0x00020000) 12262306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_RESERVED_5_16 (0x0001FFE0) 12362306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_ALL_BUT_MPB (0x00000010) 12462306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_ENTIRE_FLASH (0x00000008) 12562306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004) 12662306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002) 12762306a36Sopenharmony_ci#define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001) 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci/**************************************************************************** 13062306a36Sopenharmony_ci* Toolbox Memory Move request 13162306a36Sopenharmony_ci****************************************************************************/ 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST { 13462306a36Sopenharmony_ci U8 Tool; /*0x00 */ 13562306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 13662306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 13762306a36Sopenharmony_ci U8 Function; /*0x03 */ 13862306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 13962306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 14062306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 14162306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 14262306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 14362306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 14462306a36Sopenharmony_ci MPI2_SGE_SIMPLE_UNION SGL; /*0x0C */ 14562306a36Sopenharmony_ci} MPI2_TOOLBOX_MEM_MOVE_REQUEST, *PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST, 14662306a36Sopenharmony_ci Mpi2ToolboxMemMoveRequest_t, *pMpi2ToolboxMemMoveRequest_t; 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci/**************************************************************************** 14962306a36Sopenharmony_ci* Toolbox Diagnostic Data Upload request 15062306a36Sopenharmony_ci****************************************************************************/ 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST { 15362306a36Sopenharmony_ci U8 Tool; /*0x00 */ 15462306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 15562306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 15662306a36Sopenharmony_ci U8 Function; /*0x03 */ 15762306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 15862306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 15962306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 16062306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 16162306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 16262306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 16362306a36Sopenharmony_ci U8 SGLFlags; /*0x0C */ 16462306a36Sopenharmony_ci U8 Reserved5; /*0x0D */ 16562306a36Sopenharmony_ci U16 Reserved6; /*0x0E */ 16662306a36Sopenharmony_ci U32 Flags; /*0x10 */ 16762306a36Sopenharmony_ci U32 DataLength; /*0x14 */ 16862306a36Sopenharmony_ci MPI2_SGE_SIMPLE_UNION SGL; /*0x18 */ 16962306a36Sopenharmony_ci} MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, 17062306a36Sopenharmony_ci *PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, 17162306a36Sopenharmony_ci Mpi2ToolboxDiagDataUploadRequest_t, 17262306a36Sopenharmony_ci *pMpi2ToolboxDiagDataUploadRequest_t; 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci/*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_citypedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER { 17762306a36Sopenharmony_ci U32 DiagDataLength; /*00h */ 17862306a36Sopenharmony_ci U8 FormatCode; /*04h */ 17962306a36Sopenharmony_ci U8 Reserved1; /*05h */ 18062306a36Sopenharmony_ci U16 Reserved2; /*06h */ 18162306a36Sopenharmony_ci} MPI2_DIAG_DATA_UPLOAD_HEADER, *PTR_MPI2_DIAG_DATA_UPLOAD_HEADER, 18262306a36Sopenharmony_ci Mpi2DiagDataUploadHeader_t, *pMpi2DiagDataUploadHeader_t; 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci/**************************************************************************** 18562306a36Sopenharmony_ci* Toolbox ISTWI Read Write Tool 18662306a36Sopenharmony_ci****************************************************************************/ 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci/*Toolbox ISTWI Read Write Tool request message */ 18962306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST { 19062306a36Sopenharmony_ci U8 Tool; /*0x00 */ 19162306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 19262306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 19362306a36Sopenharmony_ci U8 Function; /*0x03 */ 19462306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 19562306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 19662306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 19762306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 19862306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 19962306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 20062306a36Sopenharmony_ci U32 Reserved5; /*0x0C */ 20162306a36Sopenharmony_ci U32 Reserved6; /*0x10 */ 20262306a36Sopenharmony_ci U8 DevIndex; /*0x14 */ 20362306a36Sopenharmony_ci U8 Action; /*0x15 */ 20462306a36Sopenharmony_ci U8 SGLFlags; /*0x16 */ 20562306a36Sopenharmony_ci U8 Flags; /*0x17 */ 20662306a36Sopenharmony_ci U16 TxDataLength; /*0x18 */ 20762306a36Sopenharmony_ci U16 RxDataLength; /*0x1A */ 20862306a36Sopenharmony_ci U32 Reserved8; /*0x1C */ 20962306a36Sopenharmony_ci U32 Reserved9; /*0x20 */ 21062306a36Sopenharmony_ci U32 Reserved10; /*0x24 */ 21162306a36Sopenharmony_ci U32 Reserved11; /*0x28 */ 21262306a36Sopenharmony_ci U32 Reserved12; /*0x2C */ 21362306a36Sopenharmony_ci MPI2_SGE_SIMPLE_UNION SGL; /*0x30 */ 21462306a36Sopenharmony_ci} MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST, 21562306a36Sopenharmony_ci *PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST, 21662306a36Sopenharmony_ci Mpi2ToolboxIstwiReadWriteRequest_t, 21762306a36Sopenharmony_ci *pMpi2ToolboxIstwiReadWriteRequest_t; 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci/*values for the Action field */ 22062306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_ACTION_READ_DATA (0x01) 22162306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA (0x02) 22262306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_ACTION_SEQUENCE (0x03) 22362306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS (0x10) 22462306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11) 22562306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_ACTION_RESET (0x12) 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci/*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci/*values for the Flags field */ 23062306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE (0x80) 23162306a36Sopenharmony_ci#define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK (0x07) 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci/*MPI26 TOOLBOX Request MsgFlags defines */ 23462306a36Sopenharmony_ci#define MPI26_TOOL_ISTWI_MSGFLG_ADDR_MASK (0x01) 23562306a36Sopenharmony_ci/*Request uses Man Page 43 device index addressing */ 23662306a36Sopenharmony_ci#define MPI26_TOOL_ISTWI_MSGFLG_ADDR_INDEX (0x00) 23762306a36Sopenharmony_ci/*Request uses Man Page 43 device info struct addressing */ 23862306a36Sopenharmony_ci#define MPI26_TOOL_ISTWI_MSGFLG_ADDR_INFO (0x01) 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci/*Toolbox ISTWI Read Write Tool reply message */ 24162306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_ISTWI_REPLY { 24262306a36Sopenharmony_ci U8 Tool; /*0x00 */ 24362306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 24462306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 24562306a36Sopenharmony_ci U8 Function; /*0x03 */ 24662306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 24762306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 24862306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 24962306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 25062306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 25162306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 25262306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 25362306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 25462306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 25562306a36Sopenharmony_ci U8 DevIndex; /*0x14 */ 25662306a36Sopenharmony_ci U8 Action; /*0x15 */ 25762306a36Sopenharmony_ci U8 IstwiStatus; /*0x16 */ 25862306a36Sopenharmony_ci U8 Reserved6; /*0x17 */ 25962306a36Sopenharmony_ci U16 TxDataCount; /*0x18 */ 26062306a36Sopenharmony_ci U16 RxDataCount; /*0x1A */ 26162306a36Sopenharmony_ci} MPI2_TOOLBOX_ISTWI_REPLY, *PTR_MPI2_TOOLBOX_ISTWI_REPLY, 26262306a36Sopenharmony_ci Mpi2ToolboxIstwiReply_t, *pMpi2ToolboxIstwiReply_t; 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ci/**************************************************************************** 26562306a36Sopenharmony_ci* Toolbox Beacon Tool request 26662306a36Sopenharmony_ci****************************************************************************/ 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_BEACON_REQUEST { 26962306a36Sopenharmony_ci U8 Tool; /*0x00 */ 27062306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 27162306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 27262306a36Sopenharmony_ci U8 Function; /*0x03 */ 27362306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 27462306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 27562306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 27662306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 27762306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 27862306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 27962306a36Sopenharmony_ci U8 Reserved5; /*0x0C */ 28062306a36Sopenharmony_ci U8 PhysicalPort; /*0x0D */ 28162306a36Sopenharmony_ci U8 Reserved6; /*0x0E */ 28262306a36Sopenharmony_ci U8 Flags; /*0x0F */ 28362306a36Sopenharmony_ci} MPI2_TOOLBOX_BEACON_REQUEST, *PTR_MPI2_TOOLBOX_BEACON_REQUEST, 28462306a36Sopenharmony_ci Mpi2ToolboxBeaconRequest_t, *pMpi2ToolboxBeaconRequest_t; 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ci/*values for the Flags field */ 28762306a36Sopenharmony_ci#define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00) 28862306a36Sopenharmony_ci#define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01) 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci/**************************************************************************** 29162306a36Sopenharmony_ci* Toolbox Diagnostic CLI Tool 29262306a36Sopenharmony_ci****************************************************************************/ 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ci#define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH (0x5C) 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_ci/*MPI v2.0 Toolbox Diagnostic CLI Tool request message */ 29762306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST { 29862306a36Sopenharmony_ci U8 Tool; /*0x00 */ 29962306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 30062306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 30162306a36Sopenharmony_ci U8 Function; /*0x03 */ 30262306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 30362306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 30462306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 30562306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 30662306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 30762306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 30862306a36Sopenharmony_ci U8 SGLFlags; /*0x0C */ 30962306a36Sopenharmony_ci U8 Reserved5; /*0x0D */ 31062306a36Sopenharmony_ci U16 Reserved6; /*0x0E */ 31162306a36Sopenharmony_ci U32 DataLength; /*0x10 */ 31262306a36Sopenharmony_ci U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */ 31362306a36Sopenharmony_ci MPI2_MPI_SGE_IO_UNION SGL; /*0x70 */ 31462306a36Sopenharmony_ci} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 31562306a36Sopenharmony_ci *PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 31662306a36Sopenharmony_ci Mpi2ToolboxDiagnosticCliRequest_t, 31762306a36Sopenharmony_ci *pMpi2ToolboxDiagnosticCliRequest_t; 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci/*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci/*MPI v2.5 Toolbox Diagnostic CLI Tool request message */ 32262306a36Sopenharmony_citypedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST { 32362306a36Sopenharmony_ci U8 Tool; /*0x00 */ 32462306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 32562306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 32662306a36Sopenharmony_ci U8 Function; /*0x03 */ 32762306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 32862306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 32962306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 33062306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 33162306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 33262306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 33362306a36Sopenharmony_ci U32 Reserved5; /*0x0C */ 33462306a36Sopenharmony_ci U32 DataLength; /*0x10 */ 33562306a36Sopenharmony_ci U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */ 33662306a36Sopenharmony_ci MPI25_SGE_IO_UNION SGL; /* 0x70 */ 33762306a36Sopenharmony_ci} MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 33862306a36Sopenharmony_ci *PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 33962306a36Sopenharmony_ci Mpi25ToolboxDiagnosticCliRequest_t, 34062306a36Sopenharmony_ci *pMpi25ToolboxDiagnosticCliRequest_t; 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_ci/*Toolbox Diagnostic CLI Tool reply message */ 34362306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY { 34462306a36Sopenharmony_ci U8 Tool; /*0x00 */ 34562306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 34662306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 34762306a36Sopenharmony_ci U8 Function; /*0x03 */ 34862306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 34962306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 35062306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 35162306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 35262306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 35362306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 35462306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 35562306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 35662306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 35762306a36Sopenharmony_ci U32 ReturnedDataLength; /*0x14 */ 35862306a36Sopenharmony_ci} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY, 35962306a36Sopenharmony_ci *PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY, 36062306a36Sopenharmony_ci Mpi2ToolboxDiagnosticCliReply_t, 36162306a36Sopenharmony_ci *pMpi2ToolboxDiagnosticCliReply_t; 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci 36462306a36Sopenharmony_ci/**************************************************************************** 36562306a36Sopenharmony_ci* Toolbox Console Text Display Tool 36662306a36Sopenharmony_ci****************************************************************************/ 36762306a36Sopenharmony_ci 36862306a36Sopenharmony_ci/* Toolbox Console Text Display Tool request message */ 36962306a36Sopenharmony_citypedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST { 37062306a36Sopenharmony_ci U8 Tool; /* 0x00 */ 37162306a36Sopenharmony_ci U8 Reserved1; /* 0x01 */ 37262306a36Sopenharmony_ci U8 ChainOffset; /* 0x02 */ 37362306a36Sopenharmony_ci U8 Function; /* 0x03 */ 37462306a36Sopenharmony_ci U16 Reserved2; /* 0x04 */ 37562306a36Sopenharmony_ci U8 Reserved3; /* 0x06 */ 37662306a36Sopenharmony_ci U8 MsgFlags; /* 0x07 */ 37762306a36Sopenharmony_ci U8 VP_ID; /* 0x08 */ 37862306a36Sopenharmony_ci U8 VF_ID; /* 0x09 */ 37962306a36Sopenharmony_ci U16 Reserved4; /* 0x0A */ 38062306a36Sopenharmony_ci U8 Console; /* 0x0C */ 38162306a36Sopenharmony_ci U8 Flags; /* 0x0D */ 38262306a36Sopenharmony_ci U16 Reserved6; /* 0x0E */ 38362306a36Sopenharmony_ci U8 TextToDisplay[4]; /* 0x10 */ 38462306a36Sopenharmony_ci} MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST, 38562306a36Sopenharmony_ci*PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST, 38662306a36Sopenharmony_ciMpi2ToolboxTextDisplayRequest_t, 38762306a36Sopenharmony_ci*pMpi2ToolboxTextDisplayRequest_t; 38862306a36Sopenharmony_ci 38962306a36Sopenharmony_ci/* defines for the Console field */ 39062306a36Sopenharmony_ci#define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0) 39162306a36Sopenharmony_ci#define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00) 39262306a36Sopenharmony_ci#define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10) 39362306a36Sopenharmony_ci#define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20) 39462306a36Sopenharmony_ci 39562306a36Sopenharmony_ci#define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F) 39662306a36Sopenharmony_ci 39762306a36Sopenharmony_ci/* defines for the Flags field */ 39862306a36Sopenharmony_ci#define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01) 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ci 40162306a36Sopenharmony_ci/*************************************************************************** 40262306a36Sopenharmony_ci * Toolbox Backend Lane Margining Tool 40362306a36Sopenharmony_ci *************************************************************************** 40462306a36Sopenharmony_ci */ 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ci/*Toolbox Backend Lane Margining Tool request message */ 40762306a36Sopenharmony_citypedef struct _MPI26_TOOLBOX_LANE_MARGIN_REQUEST { 40862306a36Sopenharmony_ci U8 Tool; /*0x00 */ 40962306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 41062306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 41162306a36Sopenharmony_ci U8 Function; /*0x03 */ 41262306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 41362306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 41462306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 41562306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 41662306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 41762306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 41862306a36Sopenharmony_ci U8 Command; /*0x0C */ 41962306a36Sopenharmony_ci U8 SwitchPort; /*0x0D */ 42062306a36Sopenharmony_ci U16 DevHandle; /*0x0E */ 42162306a36Sopenharmony_ci U8 RegisterOffset; /*0x10 */ 42262306a36Sopenharmony_ci U8 Reserved5; /*0x11 */ 42362306a36Sopenharmony_ci U16 DataLength; /*0x12 */ 42462306a36Sopenharmony_ci MPI25_SGE_IO_UNION SGL; /*0x14 */ 42562306a36Sopenharmony_ci} MPI26_TOOLBOX_LANE_MARGINING_REQUEST, 42662306a36Sopenharmony_ci *PTR_MPI2_TOOLBOX_LANE_MARGINING_REQUEST, 42762306a36Sopenharmony_ci Mpi26ToolboxLaneMarginingRequest_t, 42862306a36Sopenharmony_ci *pMpi2ToolboxLaneMarginingRequest_t; 42962306a36Sopenharmony_ci 43062306a36Sopenharmony_ci/* defines for the Command field */ 43162306a36Sopenharmony_ci#define MPI26_TOOL_MARGIN_COMMAND_ENTER_MARGIN_MODE (0x01) 43262306a36Sopenharmony_ci#define MPI26_TOOL_MARGIN_COMMAND_READ_REGISTER_DATA (0x02) 43362306a36Sopenharmony_ci#define MPI26_TOOL_MARGIN_COMMAND_WRITE_REGISTER_DATA (0x03) 43462306a36Sopenharmony_ci#define MPI26_TOOL_MARGIN_COMMAND_EXIT_MARGIN_MODE (0x04) 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ci 43762306a36Sopenharmony_ci/*Toolbox Backend Lane Margining Tool reply message */ 43862306a36Sopenharmony_citypedef struct _MPI26_TOOLBOX_LANE_MARGIN_REPLY { 43962306a36Sopenharmony_ci U8 Tool; /*0x00 */ 44062306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 44162306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 44262306a36Sopenharmony_ci U8 Function; /*0x03 */ 44362306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 44462306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 44562306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 44662306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 44762306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 44862306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 44962306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 45062306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 45162306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 45262306a36Sopenharmony_ci U16 ReturnedDataLength; /*0x14 */ 45362306a36Sopenharmony_ci U16 Reserved6; /*0x16 */ 45462306a36Sopenharmony_ci} MPI26_TOOLBOX_LANE_MARGINING_REPLY, 45562306a36Sopenharmony_ci *PTR_MPI26_TOOLBOX_LANE_MARGINING_REPLY, 45662306a36Sopenharmony_ci Mpi26ToolboxLaneMarginingReply_t, 45762306a36Sopenharmony_ci *pMpi26ToolboxLaneMarginingReply_t; 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ci 46062306a36Sopenharmony_ci/***************************************************************************** 46162306a36Sopenharmony_ci* 46262306a36Sopenharmony_ci* Diagnostic Buffer Messages 46362306a36Sopenharmony_ci* 46462306a36Sopenharmony_ci*****************************************************************************/ 46562306a36Sopenharmony_ci 46662306a36Sopenharmony_ci/**************************************************************************** 46762306a36Sopenharmony_ci* Diagnostic Buffer Post request 46862306a36Sopenharmony_ci****************************************************************************/ 46962306a36Sopenharmony_ci 47062306a36Sopenharmony_citypedef struct _MPI2_DIAG_BUFFER_POST_REQUEST { 47162306a36Sopenharmony_ci U8 ExtendedType; /*0x00 */ 47262306a36Sopenharmony_ci U8 BufferType; /*0x01 */ 47362306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 47462306a36Sopenharmony_ci U8 Function; /*0x03 */ 47562306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 47662306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 47762306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 47862306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 47962306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 48062306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 48162306a36Sopenharmony_ci U64 BufferAddress; /*0x0C */ 48262306a36Sopenharmony_ci U32 BufferLength; /*0x14 */ 48362306a36Sopenharmony_ci U32 Reserved5; /*0x18 */ 48462306a36Sopenharmony_ci U32 Reserved6; /*0x1C */ 48562306a36Sopenharmony_ci U32 Flags; /*0x20 */ 48662306a36Sopenharmony_ci U32 ProductSpecific[23]; /*0x24 */ 48762306a36Sopenharmony_ci} MPI2_DIAG_BUFFER_POST_REQUEST, *PTR_MPI2_DIAG_BUFFER_POST_REQUEST, 48862306a36Sopenharmony_ci Mpi2DiagBufferPostRequest_t, *pMpi2DiagBufferPostRequest_t; 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_ci/*values for the ExtendedType field */ 49162306a36Sopenharmony_ci#define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02) 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_ci/*values for the BufferType field */ 49462306a36Sopenharmony_ci#define MPI2_DIAG_BUF_TYPE_TRACE (0x00) 49562306a36Sopenharmony_ci#define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01) 49662306a36Sopenharmony_ci#define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02) 49762306a36Sopenharmony_ci/*count of the number of buffer types */ 49862306a36Sopenharmony_ci#define MPI2_DIAG_BUF_TYPE_COUNT (0x03) 49962306a36Sopenharmony_ci 50062306a36Sopenharmony_ci/*values for the Flags field */ 50162306a36Sopenharmony_ci#define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL (0x00000002) 50262306a36Sopenharmony_ci#define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE (0x00000001) 50362306a36Sopenharmony_ci 50462306a36Sopenharmony_ci/**************************************************************************** 50562306a36Sopenharmony_ci* Diagnostic Buffer Post reply 50662306a36Sopenharmony_ci****************************************************************************/ 50762306a36Sopenharmony_ci 50862306a36Sopenharmony_citypedef struct _MPI2_DIAG_BUFFER_POST_REPLY { 50962306a36Sopenharmony_ci U8 ExtendedType; /*0x00 */ 51062306a36Sopenharmony_ci U8 BufferType; /*0x01 */ 51162306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 51262306a36Sopenharmony_ci U8 Function; /*0x03 */ 51362306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 51462306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 51562306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 51662306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 51762306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 51862306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 51962306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 52062306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 52162306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 52262306a36Sopenharmony_ci U32 TransferLength; /*0x14 */ 52362306a36Sopenharmony_ci} MPI2_DIAG_BUFFER_POST_REPLY, *PTR_MPI2_DIAG_BUFFER_POST_REPLY, 52462306a36Sopenharmony_ci Mpi2DiagBufferPostReply_t, *pMpi2DiagBufferPostReply_t; 52562306a36Sopenharmony_ci 52662306a36Sopenharmony_ci/**************************************************************************** 52762306a36Sopenharmony_ci* Diagnostic Release request 52862306a36Sopenharmony_ci****************************************************************************/ 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_citypedef struct _MPI2_DIAG_RELEASE_REQUEST { 53162306a36Sopenharmony_ci U8 Reserved1; /*0x00 */ 53262306a36Sopenharmony_ci U8 BufferType; /*0x01 */ 53362306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 53462306a36Sopenharmony_ci U8 Function; /*0x03 */ 53562306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 53662306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 53762306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 53862306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 53962306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 54062306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 54162306a36Sopenharmony_ci} MPI2_DIAG_RELEASE_REQUEST, *PTR_MPI2_DIAG_RELEASE_REQUEST, 54262306a36Sopenharmony_ci Mpi2DiagReleaseRequest_t, *pMpi2DiagReleaseRequest_t; 54362306a36Sopenharmony_ci 54462306a36Sopenharmony_ci/**************************************************************************** 54562306a36Sopenharmony_ci* Diagnostic Buffer Post reply 54662306a36Sopenharmony_ci****************************************************************************/ 54762306a36Sopenharmony_ci 54862306a36Sopenharmony_citypedef struct _MPI2_DIAG_RELEASE_REPLY { 54962306a36Sopenharmony_ci U8 Reserved1; /*0x00 */ 55062306a36Sopenharmony_ci U8 BufferType; /*0x01 */ 55162306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 55262306a36Sopenharmony_ci U8 Function; /*0x03 */ 55362306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 55462306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 55562306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 55662306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 55762306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 55862306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 55962306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 56062306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 56162306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 56262306a36Sopenharmony_ci} MPI2_DIAG_RELEASE_REPLY, *PTR_MPI2_DIAG_RELEASE_REPLY, 56362306a36Sopenharmony_ci Mpi2DiagReleaseReply_t, *pMpi2DiagReleaseReply_t; 56462306a36Sopenharmony_ci 56562306a36Sopenharmony_ci#endif 566