OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [message/] [fusion/] [lsi/] [mpi_raid.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *  Copyright (c) 2001-2003 LSI Logic Corporation.
3
 *
4
 *
5
 *           Name:  MPI_RAID.H
6
 *          Title:  MPI RAID message and structures
7
 *  Creation Date:  February 27, 2001
8
 *
9
 *    MPI_RAID.H Version:  01.02.09
10
 *
11
 *  Version History
12
 *  ---------------
13
 *
14
 *  Date      Version   Description
15
 *  --------  --------  ------------------------------------------------------
16
 *  02-27-01  01.01.01  Original release for this file.
17
 *  03-27-01  01.01.02  Added structure offset comments.
18
 *  08-08-01  01.02.01  Original release for v1.2 work.
19
 *  09-28-01  01.02.02  Major rework for MPI v1.2 Integrated RAID changes.
20
 *  10-04-01  01.02.03  Added ActionData defines for
21
 *                      MPI_RAID_ACTION_DELETE_VOLUME action.
22
 *  11-01-01  01.02.04  Added define for MPI_RAID_ACTION_ADATA_DO_NOT_SYNC.
23
 *  03-14-02  01.02.05  Added define for MPI_RAID_ACTION_ADATA_LOW_LEVEL_INIT.
24
 *  05-07-02  01.02.06  Added define for MPI_RAID_ACTION_ACTIVATE_VOLUME,
25
 *                      MPI_RAID_ACTION_INACTIVATE_VOLUME, and
26
 *                      MPI_RAID_ACTION_ADATA_INACTIVATE_ALL.
27
 *  07-12-02  01.02.07  Added structures for Mailbox request and reply.
28
 *  11-15-02  01.02.08  Added missing MsgContext field to MSG_MAILBOX_REQUEST.
29
 *  04-01-03  01.02.09  New action data option flag for
30
 *                      MPI_RAID_ACTION_DELETE_VOLUME.
31
 *  --------------------------------------------------------------------------
32
 */
33
 
34
#ifndef MPI_RAID_H
35
#define MPI_RAID_H
36
 
37
 
38
/******************************************************************************
39
*
40
*        R A I D    M e s s a g e s
41
*
42
*******************************************************************************/
43
 
44
 
45
/****************************************************************************/
46
/* RAID Volume Request                                                      */
47
/****************************************************************************/
48
 
49
typedef struct _MSG_RAID_ACTION
50
{
51
    U8                      Action;             /* 00h */
52
    U8                      Reserved1;          /* 01h */
53
    U8                      ChainOffset;        /* 02h */
54
    U8                      Function;           /* 03h */
55
    U8                      VolumeID;           /* 04h */
56
    U8                      VolumeBus;          /* 05h */
57
    U8                      PhysDiskNum;        /* 06h */
58
    U8                      MsgFlags;           /* 07h */
59
    U32                     MsgContext;         /* 08h */
60
    U32                     Reserved2;          /* 0Ch */
61
    U32                     ActionDataWord;     /* 10h */
62
    SGE_SIMPLE_UNION        ActionDataSGE;      /* 14h */
63
} MSG_RAID_ACTION_REQUEST, MPI_POINTER PTR_MSG_RAID_ACTION_REQUEST,
64
  MpiRaidActionRequest_t , MPI_POINTER pMpiRaidActionRequest_t;
65
 
66
 
67
/* RAID Action request Action values */
68
 
69
#define MPI_RAID_ACTION_STATUS                      (0x00)
70
#define MPI_RAID_ACTION_INDICATOR_STRUCT            (0x01)
71
#define MPI_RAID_ACTION_CREATE_VOLUME               (0x02)
72
#define MPI_RAID_ACTION_DELETE_VOLUME               (0x03)
73
#define MPI_RAID_ACTION_DISABLE_VOLUME              (0x04)
74
#define MPI_RAID_ACTION_ENABLE_VOLUME               (0x05)
75
#define MPI_RAID_ACTION_QUIESCE_PHYS_IO             (0x06)
76
#define MPI_RAID_ACTION_ENABLE_PHYS_IO              (0x07)
77
#define MPI_RAID_ACTION_CHANGE_VOLUME_SETTINGS      (0x08)
78
#define MPI_RAID_ACTION_PHYSDISK_OFFLINE            (0x0A)
79
#define MPI_RAID_ACTION_PHYSDISK_ONLINE             (0x0B)
80
#define MPI_RAID_ACTION_CHANGE_PHYSDISK_SETTINGS    (0x0C)
81
#define MPI_RAID_ACTION_CREATE_PHYSDISK             (0x0D)
82
#define MPI_RAID_ACTION_DELETE_PHYSDISK             (0x0E)
83
#define MPI_RAID_ACTION_FAIL_PHYSDISK               (0x0F)
84
#define MPI_RAID_ACTION_REPLACE_PHYSDISK            (0x10)
85
#define MPI_RAID_ACTION_ACTIVATE_VOLUME             (0x11)
86
#define MPI_RAID_ACTION_INACTIVATE_VOLUME           (0x12)
87
 
88
/* ActionDataWord defines for use with MPI_RAID_ACTION_CREATE_VOLUME action */
89
#define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC           (0x00000001)
90
#define MPI_RAID_ACTION_ADATA_LOW_LEVEL_INIT        (0x00000002)
91
 
92
/* ActionDataWord defines for use with MPI_RAID_ACTION_DELETE_VOLUME action */
93
#define MPI_RAID_ACTION_ADATA_KEEP_PHYS_DISKS       (0x00000000)
94
#define MPI_RAID_ACTION_ADATA_DEL_PHYS_DISKS        (0x00000001)
95
 
96
#define MPI_RAID_ACTION_ADATA_KEEP_LBA0             (0x00000000)
97
#define MPI_RAID_ACTION_ADATA_ZERO_LBA0             (0x00000002)
98
 
99
/* ActionDataWord defines for use with MPI_RAID_ACTION_ACTIVATE_VOLUME action */
100
#define MPI_RAID_ACTION_ADATA_INACTIVATE_ALL        (0x00000001)
101
 
102
 
103
/* RAID Action reply message */
104
 
105
typedef struct _MSG_RAID_ACTION_REPLY
106
{
107
    U8                      Action;             /* 00h */
108
    U8                      Reserved;           /* 01h */
109
    U8                      MsgLength;          /* 02h */
110
    U8                      Function;           /* 03h */
111
    U8                      VolumeID;           /* 04h */
112
    U8                      VolumeBus;          /* 05h */
113
    U8                      PhysDiskNum;        /* 06h */
114
    U8                      MsgFlags;           /* 07h */
115
    U32                     MsgContext;         /* 08h */
116
    U16                     ActionStatus;       /* 0Ch */
117
    U16                     IOCStatus;          /* 0Eh */
118
    U32                     IOCLogInfo;         /* 10h */
119
    U32                     VolumeStatus;       /* 14h */
120
    U32                     ActionData;         /* 18h */
121
} MSG_RAID_ACTION_REPLY, MPI_POINTER PTR_MSG_RAID_ACTION_REPLY,
122
  MpiRaidActionReply_t, MPI_POINTER pMpiRaidActionReply_t;
123
 
124
 
125
/* RAID Volume reply ActionStatus values */
126
 
127
#define MPI_RAID_ACTION_ASTATUS_SUCCESS             (0x0000)
128
#define MPI_RAID_ACTION_ASTATUS_INVALID_ACTION      (0x0001)
129
#define MPI_RAID_ACTION_ASTATUS_FAILURE             (0x0002)
130
#define MPI_RAID_ACTION_ASTATUS_IN_PROGRESS         (0x0003)
131
 
132
 
133
/* RAID Volume reply RAID Volume Indicator structure */
134
 
135
typedef struct _MPI_RAID_VOL_INDICATOR
136
{
137
    U64                     TotalBlocks;        /* 00h */
138
    U64                     BlocksRemaining;    /* 08h */
139
} MPI_RAID_VOL_INDICATOR, MPI_POINTER PTR_MPI_RAID_VOL_INDICATOR,
140
  MpiRaidVolIndicator_t, MPI_POINTER pMpiRaidVolIndicator_t;
141
 
142
 
143
/****************************************************************************/
144
/* SCSI IO RAID Passthrough Request                                         */
145
/****************************************************************************/
146
 
147
typedef struct _MSG_SCSI_IO_RAID_PT_REQUEST
148
{
149
    U8                      PhysDiskNum;        /* 00h */
150
    U8                      Reserved1;          /* 01h */
151
    U8                      ChainOffset;        /* 02h */
152
    U8                      Function;           /* 03h */
153
    U8                      CDBLength;          /* 04h */
154
    U8                      SenseBufferLength;  /* 05h */
155
    U8                      Reserved2;          /* 06h */
156
    U8                      MsgFlags;           /* 07h */
157
    U32                     MsgContext;         /* 08h */
158
    U8                      LUN[8];             /* 0Ch */
159
    U32                     Control;            /* 14h */
160
    U8                      CDB[16];            /* 18h */
161
    U32                     DataLength;         /* 28h */
162
    U32                     SenseBufferLowAddr; /* 2Ch */
163
    SGE_IO_UNION            SGL;                /* 30h */
164
} MSG_SCSI_IO_RAID_PT_REQUEST, MPI_POINTER PTR_MSG_SCSI_IO_RAID_PT_REQUEST,
165
  SCSIIORaidPassthroughRequest_t, MPI_POINTER pSCSIIORaidPassthroughRequest_t;
166
 
167
 
168
/* SCSI IO RAID Passthrough reply structure */
169
 
170
typedef struct _MSG_SCSI_IO_RAID_PT_REPLY
171
{
172
    U8                      PhysDiskNum;        /* 00h */
173
    U8                      Reserved1;          /* 01h */
174
    U8                      MsgLength;          /* 02h */
175
    U8                      Function;           /* 03h */
176
    U8                      CDBLength;          /* 04h */
177
    U8                      SenseBufferLength;  /* 05h */
178
    U8                      Reserved2;          /* 06h */
179
    U8                      MsgFlags;           /* 07h */
180
    U32                     MsgContext;         /* 08h */
181
    U8                      SCSIStatus;         /* 0Ch */
182
    U8                      SCSIState;          /* 0Dh */
183
    U16                     IOCStatus;          /* 0Eh */
184
    U32                     IOCLogInfo;         /* 10h */
185
    U32                     TransferCount;      /* 14h */
186
    U32                     SenseCount;         /* 18h */
187
    U32                     ResponseInfo;       /* 1Ch */
188
} MSG_SCSI_IO_RAID_PT_REPLY, MPI_POINTER PTR_MSG_SCSI_IO_RAID_PT_REPLY,
189
  SCSIIORaidPassthroughReply_t, MPI_POINTER pSCSIIORaidPassthroughReply_t;
190
 
191
 
192
/****************************************************************************/
193
/* Mailbox reqeust structure */
194
/****************************************************************************/
195
 
196
typedef struct _MSG_MAILBOX_REQUEST
197
{
198
    U16                     Reserved1;
199
    U8                      ChainOffset;
200
    U8                      Function;
201
    U16                     Reserved2;
202
    U8                      Reserved3;
203
    U8                      MsgFlags;
204
    U32                     MsgContext;
205
    U8                      Command[10];
206
    U16                     Reserved4;
207
    SGE_IO_UNION            SGL;
208
} MSG_MAILBOX_REQUEST, MPI_POINTER PTR_MSG_MAILBOX_REQUEST,
209
  MailboxRequest_t, MPI_POINTER pMailboxRequest_t;
210
 
211
 
212
/* Mailbox reply structure */
213
typedef struct _MSG_MAILBOX_REPLY
214
{
215
    U16                     Reserved1;          /* 00h */
216
    U8                      MsgLength;          /* 02h */
217
    U8                      Function;           /* 03h */
218
    U16                     Reserved2;          /* 04h */
219
    U8                      Reserved3;          /* 06h */
220
    U8                      MsgFlags;           /* 07h */
221
    U32                     MsgContext;         /* 08h */
222
    U16                     MailboxStatus;      /* 0Ch */
223
    U16                     IOCStatus;          /* 0Eh */
224
    U32                     IOCLogInfo;         /* 10h */
225
    U32                     Reserved4;          /* 14h */
226
} MSG_MAILBOX_REPLY, MPI_POINTER PTR_MSG_MAILBOX_REPLY,
227
  MailboxReply_t, MPI_POINTER pMailboxReply_t;
228
 
229
#endif
230
 
231
 
232
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.