mirror of
https://github.com/opnsense/src.git
synced 2026-02-24 02:10:45 -05:00
This is Broadcom's mpi3mr driver for FreeBSD version 8.6.0.2.0. The mpi3mr driver supports Broadcom SAS4116-based cards in the 9600 series: 9670W-16i, 9670-24i, 9660-16i, 9620-16i, 9600-24i, 9600-16i, 9600W-16e, 9600-16e, 9600-8i8e. Initially only available as a module and on amd64/arm64, since that's how it has been tested to date. Future commits will add it to the kernel build and may expand the architectures it is supported on. Co-authored-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com> Feedback-by: ken (prior versions) Reviewed-by: imp RelNotes: yes Differential-Revision: https://reviews.freebsd.org/D36771 Differential-Revision: https://reviews.freebsd.org/D36772
476 lines
28 KiB
C
476 lines
28 KiB
C
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
|
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation and/or other
|
|
* materials provided with the distribution.
|
|
* 3. Neither the name of the Broadcom Inc. nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software without
|
|
* specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* The views and conclusions contained in the software and documentation are
|
|
* those of the authors and should not be interpreted as representing
|
|
* official policies,either expressed or implied, of the FreeBSD Project.
|
|
*
|
|
* Mail to: Broadcom Inc 1320 Ridder Park Dr, San Jose, CA 95131
|
|
*
|
|
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
|
*
|
|
*/
|
|
|
|
#ifndef MPI30_TOOL_H
|
|
#define MPI30_TOOL_H 1
|
|
|
|
/*****************************************************************************
|
|
* Toolbox Messages *
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* Clean Tool Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_CLEAN_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U8 Tool; /* 0x0A */
|
|
U8 Reserved0B; /* 0x0B */
|
|
U32 Area; /* 0x0C */
|
|
} MPI3_TOOL_CLEAN_REQUEST, MPI3_POINTER PTR_MPI3_TOOL_CLEAN_REQUEST,
|
|
Mpi3ToolCleanRequest_t, MPI3_POINTER pMpi3ToolCleanRequest_t;
|
|
|
|
/**** Defines for the Tool field ****/
|
|
#define MPI3_TOOLBOX_TOOL_CLEAN (0x01)
|
|
#define MPI3_TOOLBOX_TOOL_ISTWI_READ_WRITE (0x02)
|
|
#define MPI3_TOOLBOX_TOOL_DIAGNOSTIC_CLI (0x03)
|
|
#define MPI3_TOOLBOX_TOOL_LANE_MARGINING (0x04)
|
|
#define MPI3_TOOLBOX_TOOL_RECOVER_DEVICE (0x05)
|
|
#define MPI3_TOOLBOX_TOOL_LOOPBACK (0x06)
|
|
|
|
/**** Bitfield definitions for Area field ****/
|
|
#define MPI3_TOOLBOX_CLEAN_AREA_BIOS_BOOT_SERVICES (0x00000008)
|
|
#define MPI3_TOOLBOX_CLEAN_AREA_ALL_BUT_MFG (0x00000002)
|
|
#define MPI3_TOOLBOX_CLEAN_AREA_NVSTORE (0x00000001)
|
|
|
|
|
|
/*****************************************************************************
|
|
* ISTWI Read Write Tool Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_ISTWI_READ_WRITE_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U8 Tool; /* 0x0A */
|
|
U8 Flags; /* 0x0B */
|
|
U8 DevIndex; /* 0x0C */
|
|
U8 Action; /* 0x0D */
|
|
U16 Reserved0E; /* 0x0E */
|
|
U16 TxDataLength; /* 0x10 */
|
|
U16 RxDataLength; /* 0x12 */
|
|
U32 Reserved14[3]; /* 0x14 */
|
|
MPI3_MAN11_ISTWI_DEVICE_FORMAT IstwiDevice; /* 0x20 */
|
|
MPI3_SGE_UNION SGL; /* 0x30 */
|
|
} MPI3_TOOL_ISTWI_READ_WRITE_REQUEST, MPI3_POINTER PTR_MPI3_TOOL_ISTWI_READ_WRITE_REQUEST,
|
|
Mpi3ToolIstwiReadWriteRequest_t, MPI3_POINTER pMpi3ToolIstwiReadWRiteRequest_t;
|
|
|
|
/**** Bitfield definitions for Flags field ****/
|
|
#define MPI3_TOOLBOX_ISTWI_FLAGS_AUTO_RESERVE_RELEASE (0x80)
|
|
#define MPI3_TOOLBOX_ISTWI_FLAGS_ADDRESS_MODE_MASK (0x04)
|
|
#define MPI3_TOOLBOX_ISTWI_FLAGS_ADDRESS_MODE_DEVINDEX (0x00)
|
|
#define MPI3_TOOLBOX_ISTWI_FLAGS_ADDRESS_MODE_DEVICE_FIELD (0x04)
|
|
#define MPI3_TOOLBOX_ISTWI_FLAGS_PAGE_ADDRESS_MASK (0x03)
|
|
|
|
/**** Definitions for the Action field ****/
|
|
#define MPI3_TOOLBOX_ISTWI_ACTION_RESERVE_BUS (0x00)
|
|
#define MPI3_TOOLBOX_ISTWI_ACTION_RELEASE_BUS (0x01)
|
|
#define MPI3_TOOLBOX_ISTWI_ACTION_RESET (0x02)
|
|
#define MPI3_TOOLBOX_ISTWI_ACTION_READ_DATA (0x03)
|
|
#define MPI3_TOOLBOX_ISTWI_ACTION_WRITE_DATA (0x04)
|
|
#define MPI3_TOOLBOX_ISTWI_ACTION_SEQUENCE (0x05)
|
|
|
|
|
|
/**** Defines for the IstwiDevice field - refer to struct definition in mpi30_cnfg.h ****/
|
|
|
|
|
|
/*****************************************************************************
|
|
* ISTWI Read Write Tool Reply Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_ISTWI_READ_WRITE_REPLY
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 IOCUseOnly08; /* 0x08 */
|
|
U16 IOCStatus; /* 0x0A */
|
|
U32 IOCLogInfo; /* 0x0C */
|
|
U16 IstwiStatus; /* 0x10 */
|
|
U16 Reserved12; /* 0x12 */
|
|
U16 TxDataCount; /* 0x14 */
|
|
U16 RxDataCount; /* 0x16 */
|
|
} MPI3_TOOL_ISTWI_READ_WRITE_REPLY, MPI3_POINTER PTR_MPI3_TOOL_ISTWI_READ_WRITE_REPLY,
|
|
Mpi3ToolIstwiReadWriteReply_t, MPI3_POINTER pMpi3ToolIstwiReadWRiteReply_t;
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
* Diagnostic CLI Tool Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_DIAGNOSTIC_CLI_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U8 Tool; /* 0x0A */
|
|
U8 Reserved0B; /* 0x0B */
|
|
U32 CommandDataLength; /* 0x0C */
|
|
U32 ResponseDataLength; /* 0x10 */
|
|
U32 Reserved14[3]; /* 0x14 */
|
|
MPI3_SGE_UNION SGL; /* 0x20 */
|
|
} MPI3_TOOL_DIAGNOSTIC_CLI_REQUEST, MPI3_POINTER PTR_MPI3_TOOL_DIAGNOSTIC_CLI_REQUEST,
|
|
Mpi3ToolDiagnosticCliRequest_t, MPI3_POINTER pMpi3ToolDiagnosticCliRequest_t;
|
|
|
|
|
|
/*****************************************************************************
|
|
* Diagnostic CLI Tool Reply Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_DIAGNOSTIC_CLI_REPLY
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 IOCUseOnly08; /* 0x08 */
|
|
U16 IOCStatus; /* 0x0A */
|
|
U32 IOCLogInfo; /* 0x0C */
|
|
U32 ReturnedDataLength; /* 0x10 */
|
|
} MPI3_TOOL_DIAGNOSTIC_CLI_REPLY, MPI3_POINTER PTR_MPI3_TOOL_DIAGNOSTIC_CLI_REPLY,
|
|
Mpi3ToolDiagnosticCliReply_t, MPI3_POINTER pMpi3ToolDiagnosticCliReply_t;
|
|
|
|
|
|
/*****************************************************************************
|
|
* Lane Margining Tool Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_LANE_MARGIN_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U8 Tool; /* 0x0A */
|
|
U8 Reserved0B; /* 0x0B */
|
|
U8 Action; /* 0x0C */
|
|
U8 SwitchPort; /* 0x0D */
|
|
U16 DevHandle; /* 0x0E */
|
|
U8 StartLane; /* 0x10 */
|
|
U8 NumLanes; /* 0x11 */
|
|
U16 Reserved12; /* 0x12 */
|
|
U32 Reserved14[3]; /* 0x14 */
|
|
MPI3_SGE_UNION SGL; /* 0x20 */
|
|
} MPI3_TOOL_LANE_MARGIN_REQUEST, MPI3_POINTER PTR_MPI3_TOOL_LANE_MARGIN_REQUEST,
|
|
Mpi3ToolIstwiLaneMarginRequest_t, MPI3_POINTER pMpi3ToolLaneMarginRequest_t;
|
|
|
|
/**** Definitions for the Action field ****/
|
|
#define MPI3_TOOLBOX_LM_ACTION_ENTER (0x00)
|
|
#define MPI3_TOOLBOX_LM_ACTION_EXIT (0x01)
|
|
#define MPI3_TOOLBOX_LM_ACTION_READ (0x02)
|
|
#define MPI3_TOOLBOX_LM_ACTION_WRITE (0x03)
|
|
|
|
typedef struct _MPI3_LANE_MARGIN_ELEMENT
|
|
{
|
|
U16 Control; /* 0x00 */
|
|
U16 Status; /* 0x02 */
|
|
} MPI3_LANE_MARGIN_ELEMENT, MPI3_POINTER PTR_MPI3_LANE_MARGIN_ELEMENT,
|
|
Mpi3LaneMarginElement_t, MPI3_POINTER pMpi3LaneMarginElement_t;
|
|
|
|
/*****************************************************************************
|
|
* Lane Margining Tool Reply Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_LANE_MARGIN_REPLY
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 IOCUseOnly08; /* 0x08 */
|
|
U16 IOCStatus; /* 0x0A */
|
|
U32 IOCLogInfo; /* 0x0C */
|
|
U32 ReturnedDataLength; /* 0x10 */
|
|
} MPI3_TOOL_LANE_MARGIN_REPLY, MPI3_POINTER PTR_MPI3_TOOL_LANE_MARGIN_REPLY,
|
|
Mpi3ToolLaneMarginReply_t, MPI3_POINTER pMpi3ToolLaneMarginReply_t;
|
|
|
|
/*****************************************************************************
|
|
* Recover Device Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_RECOVER_DEVICE_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U8 Tool; /* 0x0A */
|
|
U8 Reserved0B; /* 0x0B */
|
|
U8 Action; /* 0x0C */
|
|
U8 Reserved0D; /* 0x0D */
|
|
U16 DevHandle; /* 0x0E */
|
|
} MPI3_TOOL_RECOVER_DEVICE_REQUEST, MPI3_POINTER PTR_MPI3_TOOL_RECOVER_DEVICE_REQUEST,
|
|
Mpi3ToolRecoverDeviceRequest_t, MPI3_POINTER pMpi3ToolRecoverDeviceRequest_t;
|
|
|
|
/**** Bitfield definitions for the Action field ****/
|
|
#define MPI3_TOOLBOX_RD_ACTION_START (0x01)
|
|
#define MPI3_TOOLBOX_RD_ACTION_GET_STATUS (0x02)
|
|
#define MPI3_TOOLBOX_RD_ACTION_ABORT (0x03)
|
|
|
|
/*****************************************************************************
|
|
* Recover Device Reply Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_RECOVER_DEVICE_REPLY
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 IOCUseOnly08; /* 0x08 */
|
|
U16 IOCStatus; /* 0x0A */
|
|
U32 IOCLogInfo; /* 0x0C */
|
|
U8 Status; /* 0x10 */
|
|
U8 Reserved11; /* 0x11 */
|
|
U16 Reserved1C; /* 0x12 */
|
|
} MPI3_TOOL_RECOVER_DEVICE_REPLY, MPI3_POINTER PTR_MPI3_TOOL_RECOVER_DEVICE_REPLY,
|
|
Mpi3ToolRecoverDeviceReply_t, MPI3_POINTER pMpi3ToolRecoverDeviceReply_t;
|
|
|
|
/**** Bitfield definitions for the Status field ****/
|
|
#define MPI3_TOOLBOX_RD_STATUS_NOT_NEEDED (0x01)
|
|
#define MPI3_TOOLBOX_RD_STATUS_NEEDED (0x02)
|
|
#define MPI3_TOOLBOX_RD_STATUS_IN_PROGRESS (0x03)
|
|
#define MPI3_TOOLBOX_RD_STATUS_ABORTING (0x04)
|
|
|
|
/*****************************************************************************
|
|
* Loopback Tool Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_LOOPBACK_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U8 Tool; /* 0x0A */
|
|
U8 Reserved0B; /* 0x0B */
|
|
U32 Reserved0C; /* 0x0C */
|
|
U64 Phys; /* 0x10 */
|
|
} MPI3_TOOL_LOOPBACK_REQUEST, MPI3_POINTER PTR_MPI3_TOOL_LOOPBACK_REQUEST,
|
|
Mpi3ToolLoopbackRequest_t, MPI3_POINTER pMpi3ToolLoopbackRequest_t;
|
|
|
|
/*****************************************************************************
|
|
* Loopback Tool Reply Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_TOOL_LOOPBACK_REPLY
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 IOCUseOnly08; /* 0x08 */
|
|
U16 IOCStatus; /* 0x0A */
|
|
U32 IOCLogInfo; /* 0x0C */
|
|
U64 TestedPhys; /* 0x10 */
|
|
U64 FailedPhys; /* 0x18 */
|
|
} MPI3_TOOL_LOOPBACK_REPLY, MPI3_POINTER PTR_MPI3_TOOL_LOOPBACK_REPLY,
|
|
Mpi3ToolLoopbackReply_t, MPI3_POINTER pMpi3ToolLoopbackReply_t;
|
|
|
|
|
|
/*****************************************************************************
|
|
* Diagnostic Buffer Messages *
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* Diagnostic Buffer Post Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_DIAG_BUFFER_POST_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U16 Reserved0A; /* 0x0A */
|
|
U8 Type; /* 0x0C */
|
|
U8 Reserved0D; /* 0x0D */
|
|
U16 Reserved0E; /* 0x0E */
|
|
U64 Address; /* 0x10 */
|
|
U32 Length; /* 0x18 */
|
|
U32 Reserved1C; /* 0x1C */
|
|
} MPI3_DIAG_BUFFER_POST_REQUEST, MPI3_POINTER PTR_MPI3_DIAG_BUFFER_POST_REQUEST,
|
|
Mpi3DiagBufferPostRequest_t, MPI3_POINTER pMpi3DiagBufferPostRequest_t;
|
|
|
|
/**** Defines for the MsgFlags field ****/
|
|
#define MPI3_DIAG_BUFFER_POST_MSGFLAGS_SEGMENTED (0x01)
|
|
|
|
/**** Defines for the Type field ****/
|
|
#define MPI3_DIAG_BUFFER_TYPE_TRACE (0x01)
|
|
#define MPI3_DIAG_BUFFER_TYPE_FW (0x02)
|
|
#define MPI3_DIAG_BUFFER_TYPE_DRIVER (0x10)
|
|
#define MPI3_DIAG_BUFFER_TYPE_FDL (0x20)
|
|
#define MPI3_DIAG_BUFFER_MIN_PRODUCT_SPECIFIC (0xF0)
|
|
#define MPI3_DIAG_BUFFER_MAX_PRODUCT_SPECIFIC (0xFF)
|
|
|
|
|
|
/*****************************************************************************
|
|
* DRIVER DIAGNOSTIC Buffer *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_DRIVER_BUFFER_HEADER
|
|
{
|
|
U32 Signature; /* 0x00 */
|
|
U16 HeaderSize; /* 0x04 */
|
|
U16 RTTFileHeaderOffset; /* 0x06 */
|
|
U32 Flags; /* 0x08 */
|
|
U32 CircularBufferSize; /* 0x0C */
|
|
U32 LogicalBufferEnd; /* 0x10 */
|
|
U32 LogicalBufferStart; /* 0x14 */
|
|
U32 IOCUseOnly18[2]; /* 0x18 */
|
|
U32 Reserved20[760]; /* 0x20 - 0xBFC */
|
|
U32 ReservedRTTRACE[256]; /* 0xC00 - 0xFFC */
|
|
} MPI3_DRIVER_BUFFER_HEADER, MPI3_POINTER PTR_MPI3_DRIVER_BUFFER_HEADER,
|
|
Mpi3DriverBufferHeader_t, MPI3_POINTER pMpi3DriverBufferHeader_t;
|
|
|
|
/**** Defines for the Type field ****/
|
|
#define MPI3_DRIVER_DIAG_BUFFER_HEADER_SIGNATURE_CIRCULAR (0x43495243)
|
|
|
|
/**** Defines for the Flags field ****/
|
|
#define MPI3_DRIVER_DIAG_BUFFER_HEADER_FLAGS_CIRCULAR_BUF_FORMAT_MASK (0x00000003)
|
|
#define MPI3_DRIVER_DIAG_BUFFER_HEADER_FLAGS_CIRCULAR_BUF_FORMAT_ASCII (0x00000000)
|
|
#define MPI3_DRIVER_DIAG_BUFFER_HEADER_FLAGS_CIRCULAR_BUF_FORMAT_RTTRACE (0x00000001)
|
|
|
|
/*****************************************************************************
|
|
* Diagnostic Buffer Manage Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_DIAG_BUFFER_MANAGE_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U16 Reserved0A; /* 0x0A */
|
|
U8 Type; /* 0x0C */
|
|
U8 Action; /* 0x0D */
|
|
U16 Reserved0E; /* 0x0E */
|
|
} MPI3_DIAG_BUFFER_MANAGE_REQUEST, MPI3_POINTER PTR_MPI3_DIAG_BUFFER_MANAGE_REQUEST,
|
|
Mpi3DiagBufferManageRequest_t, MPI3_POINTER pMpi3DiagBufferManageRequest_t;
|
|
|
|
/**** Defines for the Type field - use MPI3_DIAG_BUFFER_TYPE_ values ****/
|
|
|
|
/**** Defined for the Action field ****/
|
|
#define MPI3_DIAG_BUFFER_ACTION_RELEASE (0x01)
|
|
#define MPI3_DIAG_BUFFER_ACTION_PAUSE (0x02)
|
|
#define MPI3_DIAG_BUFFER_ACTION_RESUME (0x03)
|
|
|
|
/*****************************************************************************
|
|
* Diagnostic Buffer Upload Request Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_DIAG_BUFFER_UPLOAD_REQUEST
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 ChangeCount; /* 0x08 */
|
|
U16 Reserved0A; /* 0x0A */
|
|
U8 Type; /* 0x0C */
|
|
U8 Flags; /* 0x0D */
|
|
U16 Reserved0E; /* 0x0E */
|
|
U64 Context; /* 0x10 */
|
|
U32 Reserved18; /* 0x18 */
|
|
U32 Reserved1C; /* 0x1C */
|
|
MPI3_SGE_UNION SGL; /* 0x20 */
|
|
} MPI3_DIAG_BUFFER_UPLOAD_REQUEST, MPI3_POINTER PTR_MPI3_DIAG_BUFFER_UPLOAD_REQUEST,
|
|
Mpi3DiagBufferUploadRequest_t, MPI3_POINTER pMpi3DiagBufferUploadRequest_t;
|
|
|
|
/**** Defines for the Type field - use MPI3_DIAG_BUFFER_TYPE_ values ****/
|
|
|
|
/**** Defined for the Flags field ****/
|
|
#define MPI3_DIAG_BUFFER_UPLOAD_FLAGS_FORMAT_MASK (0x01)
|
|
#define MPI3_DIAG_BUFFER_UPLOAD_FLAGS_FORMAT_DECODED (0x00)
|
|
#define MPI3_DIAG_BUFFER_UPLOAD_FLAGS_FORMAT_ENCODED (0x01)
|
|
|
|
/*****************************************************************************
|
|
* Diagnostic Buffer Upload Reply Message *
|
|
*****************************************************************************/
|
|
typedef struct _MPI3_DIAG_BUFFER_UPLOAD_REPLY
|
|
{
|
|
U16 HostTag; /* 0x00 */
|
|
U8 IOCUseOnly02; /* 0x02 */
|
|
U8 Function; /* 0x03 */
|
|
U16 IOCUseOnly04; /* 0x04 */
|
|
U8 IOCUseOnly06; /* 0x06 */
|
|
U8 MsgFlags; /* 0x07 */
|
|
U16 IOCUseOnly08; /* 0x08 */
|
|
U16 IOCStatus; /* 0x0A */
|
|
U32 IOCLogInfo; /* 0x0C */
|
|
U64 Context; /* 0x10 */
|
|
U32 ReturnedDataLength; /* 0x18 */
|
|
U32 Reserved1C; /* 0x1C */
|
|
} MPI3_DIAG_BUFFER_UPLOAD_REPLY, MPI3_POINTER PTR_MPI3_DIAG_BUFFER_UPLOAD_REPLY,
|
|
Mpi3DiagBufferUploadReply_t, MPI3_POINTER pMpi3DiagBufferUploadReply_t;
|
|
|
|
#endif /* MPI30_TOOL_H */
|
|
|