xref: /dflybsd-src/sys/dev/raid/mps/mpi/mpi2_ra.h (revision eb403c9356ce5a2d494a31e006698fd95cf594b1)
1*c12c399aSSascha Wildner /*-
2*c12c399aSSascha Wildner  * Copyright (c) 2011 LSI Corp.
3*c12c399aSSascha Wildner  * All rights reserved.
4*c12c399aSSascha Wildner  *
5*c12c399aSSascha Wildner  * Redistribution and use in source and binary forms, with or without
6*c12c399aSSascha Wildner  * modification, are permitted provided that the following conditions
7*c12c399aSSascha Wildner  * are met:
8*c12c399aSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
9*c12c399aSSascha Wildner  *    notice, this list of conditions and the following disclaimer.
10*c12c399aSSascha Wildner  * 2. Redistributions in binary form must reproduce the above copyright
11*c12c399aSSascha Wildner  *    notice, this list of conditions and the following disclaimer in the
12*c12c399aSSascha Wildner  *    documentation and/or other materials provided with the distribution.
13*c12c399aSSascha Wildner  *
14*c12c399aSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*c12c399aSSascha Wildner  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*c12c399aSSascha Wildner  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*c12c399aSSascha Wildner  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*c12c399aSSascha Wildner  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*c12c399aSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*c12c399aSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*c12c399aSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*c12c399aSSascha Wildner  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*c12c399aSSascha Wildner  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*c12c399aSSascha Wildner  * SUCH DAMAGE.
25*c12c399aSSascha Wildner  *
26*c12c399aSSascha Wildner  * LSI MPT-Fusion Host Adapter FreeBSD
27*c12c399aSSascha Wildner  *
28*c12c399aSSascha Wildner  * $FreeBSD: src/sys/dev/mps/mpi/mpi2_ra.h,v 1.2 2012/01/26 18:17:21 ken Exp $
29*c12c399aSSascha Wildner  */
30*c12c399aSSascha Wildner 
31*c12c399aSSascha Wildner /*
32*c12c399aSSascha Wildner  *  Copyright (c) 2011 LSI Corporation.
33*c12c399aSSascha Wildner  *
34*c12c399aSSascha Wildner  *
35*c12c399aSSascha Wildner  *           Name:  mpi2_ra.h
36*c12c399aSSascha Wildner  *          Title:  MPI RAID Accelerator messages and structures
37*c12c399aSSascha Wildner  *  Creation Date:  April 13, 2009
38*c12c399aSSascha Wildner  *
39*c12c399aSSascha Wildner  *  mpi2_ra.h Version:  02.00.00
40*c12c399aSSascha Wildner  *
41*c12c399aSSascha Wildner  *  Version History
42*c12c399aSSascha Wildner  *  ---------------
43*c12c399aSSascha Wildner  *
44*c12c399aSSascha Wildner  *  Date      Version   Description
45*c12c399aSSascha Wildner  *  --------  --------  ------------------------------------------------------
46*c12c399aSSascha Wildner  *  05-06-09  02.00.00  Initial version.
47*c12c399aSSascha Wildner  *  --------------------------------------------------------------------------
48*c12c399aSSascha Wildner  */
49*c12c399aSSascha Wildner 
50*c12c399aSSascha Wildner #ifndef MPI2_RA_H
51*c12c399aSSascha Wildner #define MPI2_RA_H
52*c12c399aSSascha Wildner 
53*c12c399aSSascha Wildner /* generic structure for RAID Accelerator Control Block */
54*c12c399aSSascha Wildner typedef struct _MPI2_RAID_ACCELERATOR_CONTROL_BLOCK
55*c12c399aSSascha Wildner {
56*c12c399aSSascha Wildner     U32                 Reserved[8];                /* 0x00 */
57*c12c399aSSascha Wildner     U32                 RaidAcceleratorCDB[1];      /* 0x20 */
58*c12c399aSSascha Wildner } MPI2_RAID_ACCELERATOR_CONTROL_BLOCK,
59*c12c399aSSascha Wildner   MPI2_POINTER PTR_MPI2_RAID_ACCELERATOR_CONTROL_BLOCK,
60*c12c399aSSascha Wildner   Mpi2RAIDAcceleratorControlBlock_t,
61*c12c399aSSascha Wildner   MPI2_POINTER pMpi2RAIDAcceleratorControlBlock_t;
62*c12c399aSSascha Wildner 
63*c12c399aSSascha Wildner 
64*c12c399aSSascha Wildner /******************************************************************************
65*c12c399aSSascha Wildner *
66*c12c399aSSascha Wildner *        RAID Accelerator Messages
67*c12c399aSSascha Wildner *
68*c12c399aSSascha Wildner *******************************************************************************/
69*c12c399aSSascha Wildner 
70*c12c399aSSascha Wildner /* RAID Accelerator Request Message */
71*c12c399aSSascha Wildner typedef struct _MPI2_RAID_ACCELERATOR_REQUEST
72*c12c399aSSascha Wildner {
73*c12c399aSSascha Wildner     U16                     Reserved0;                          /* 0x00 */
74*c12c399aSSascha Wildner     U8                      ChainOffset;                        /* 0x02 */
75*c12c399aSSascha Wildner     U8                      Function;                           /* 0x03 */
76*c12c399aSSascha Wildner     U16                     Reserved1;                          /* 0x04 */
77*c12c399aSSascha Wildner     U8                      Reserved2;                          /* 0x06 */
78*c12c399aSSascha Wildner     U8                      MsgFlags;                           /* 0x07 */
79*c12c399aSSascha Wildner     U8                      VP_ID;                              /* 0x08 */
80*c12c399aSSascha Wildner     U8                      VF_ID;                              /* 0x09 */
81*c12c399aSSascha Wildner     U16                     Reserved3;                          /* 0x0A */
82*c12c399aSSascha Wildner     U64                     RaidAcceleratorControlBlockAddress; /* 0x0C */
83*c12c399aSSascha Wildner     U8                      DmaEngineNumber;                    /* 0x14 */
84*c12c399aSSascha Wildner     U8                      Reserved4;                          /* 0x15 */
85*c12c399aSSascha Wildner     U16                     Reserved5;                          /* 0x16 */
86*c12c399aSSascha Wildner     U32                     Reserved6;                          /* 0x18 */
87*c12c399aSSascha Wildner     U32                     Reserved7;                          /* 0x1C */
88*c12c399aSSascha Wildner     U32                     Reserved8;                          /* 0x20 */
89*c12c399aSSascha Wildner } MPI2_RAID_ACCELERATOR_REQUEST, MPI2_POINTER PTR_MPI2_RAID_ACCELERATOR_REQUEST,
90*c12c399aSSascha Wildner   Mpi2RAIDAcceleratorRequest_t, MPI2_POINTER pMpi2RAIDAcceleratorRequest_t;
91*c12c399aSSascha Wildner 
92*c12c399aSSascha Wildner 
93*c12c399aSSascha Wildner /* RAID Accelerator Error Reply Message */
94*c12c399aSSascha Wildner typedef struct _MPI2_RAID_ACCELERATOR_REPLY
95*c12c399aSSascha Wildner {
96*c12c399aSSascha Wildner     U16                     Reserved0;                      /* 0x00 */
97*c12c399aSSascha Wildner     U8                      MsgLength;                      /* 0x02 */
98*c12c399aSSascha Wildner     U8                      Function;                       /* 0x03 */
99*c12c399aSSascha Wildner     U16                     Reserved1;                      /* 0x04 */
100*c12c399aSSascha Wildner     U8                      Reserved2;                      /* 0x06 */
101*c12c399aSSascha Wildner     U8                      MsgFlags;                       /* 0x07 */
102*c12c399aSSascha Wildner     U8                      VP_ID;                          /* 0x08 */
103*c12c399aSSascha Wildner     U8                      VF_ID;                          /* 0x09 */
104*c12c399aSSascha Wildner     U16                     Reserved3;                      /* 0x0A */
105*c12c399aSSascha Wildner     U16                     Reserved4;                      /* 0x0C */
106*c12c399aSSascha Wildner     U16                     IOCStatus;                      /* 0x0E */
107*c12c399aSSascha Wildner     U32                     IOCLogInfo;                     /* 0x10 */
108*c12c399aSSascha Wildner     U32                     ProductSpecificData[3];         /* 0x14 */
109*c12c399aSSascha Wildner } MPI2_RAID_ACCELERATOR_REPLY, MPI2_POINTER PTR_MPI2_RAID_ACCELERATOR_REPLY,
110*c12c399aSSascha Wildner   Mpi2RAIDAcceleratorReply_t, MPI2_POINTER pMpi2RAIDAcceleratorReply_t;
111*c12c399aSSascha Wildner 
112*c12c399aSSascha Wildner 
113*c12c399aSSascha Wildner #endif
114