Deleted Added
full compact
mpi2_ioc.h (283661) mpi2_ioc.h (299263)
1/*-
2 * Copyright (c) 2012-2015 LSI Corp.
1/*-
2 * Copyright (c) 2012-2015 LSI Corp.
3 * Copyright (c) 2013-2015 Avago Technologies
3 * Copyright (c) 2013-2016 Avago Technologies
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright

--- 12 unchanged lines hidden (view full) ---

24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD
31 *
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright

--- 12 unchanged lines hidden (view full) ---

24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD
31 *
32 * $FreeBSD: head/sys/dev/mpr/mpi/mpi2_ioc.h 283661 2015-05-28 18:24:22Z slm $
32 * $FreeBSD: head/sys/dev/mpr/mpi/mpi2_ioc.h 299263 2016-05-09 16:12:32Z slm $
33 */
34
35/*
36 * Copyright (c) 2000-2015 LSI Corporation.
33 */
34
35/*
36 * Copyright (c) 2000-2015 LSI Corporation.
37 * Copyright (c) 2013-2015 Avago Technologies
37 * Copyright (c) 2013-2016 Avago Technologies
38 * All rights reserved.
38 *
39 *
40 * Name: mpi2_ioc.h
41 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
42 * Creation Date: October 11, 2006
43 *
39 *
40 *
41 * Name: mpi2_ioc.h
42 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
43 * Creation Date: October 11, 2006
44 *
44 * mpi2_ioc.h Version: 02.00.24
45 * mpi2_ioc.h Version: 02.00.27
45 *
46 * NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25
47 * prefix are for use only on MPI v2.5 products, and must not be used
48 * with MPI v2.0 products. Unless otherwise noted, names beginning with
49 * MPI2 or Mpi2 are for use with both MPI v2.0 and MPI v2.5 products.
50 *
51 * Version History
52 * ---------------

--- 110 unchanged lines hidden (view full) ---

163 * Added ElapsedSeconds field to
164 * MPI2_EVENT_DATA_IR_OPERATION_STATUS.
165 * 08-19-13 02.00.23 For IOCInit, added MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE
166 * and MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY.
167 * Added MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE.
168 * Added MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY.
169 * Added Encrypted Hash Extended Image.
170 * 12-05-13 02.00.24 Added MPI25_HASH_IMAGE_TYPE_BIOS.
46 *
47 * NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25
48 * prefix are for use only on MPI v2.5 products, and must not be used
49 * with MPI v2.0 products. Unless otherwise noted, names beginning with
50 * MPI2 or Mpi2 are for use with both MPI v2.0 and MPI v2.5 products.
51 *
52 * Version History
53 * ---------------

--- 110 unchanged lines hidden (view full) ---

164 * Added ElapsedSeconds field to
165 * MPI2_EVENT_DATA_IR_OPERATION_STATUS.
166 * 08-19-13 02.00.23 For IOCInit, added MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE
167 * and MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY.
168 * Added MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE.
169 * Added MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY.
170 * Added Encrypted Hash Extended Image.
171 * 12-05-13 02.00.24 Added MPI25_HASH_IMAGE_TYPE_BIOS.
172 * 11-18-14 02.00.25 Updated copyright information.
173 * 03-16-15 02.00.26 Updated for MPI v2.6.
174 * Added MPI2_EVENT_ACTIVE_CABLE_EXCEPTION and
175 * MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT.
176 * Added MPI2_EVENT_PCIE_LINK_COUNTER and
177 * MPI26_EVENT_DATA_PCIE_LINK_COUNTER.
178 * Added MPI26_CTRL_OP_SHUTDOWN.
179 * Added MPI26_CTRL_OP_LINK_CLEAR_ERROR_LOG
180 * Added MPI26_FW_HEADER_PID_FAMILY_3324_SAS
181 * 08-25-15 02.00.27 Added IC ARCH Class based signature defines
182 *
171 * --------------------------------------------------------------------------
172 */
173
174#ifndef MPI2_IOC_H
175#define MPI2_IOC_H
176
177/*****************************************************************************
178*

--- 16 unchanged lines hidden (view full) ---

195 U8 Reserved3; /* 0x06 */
196 U8 MsgFlags; /* 0x07 */
197 U8 VP_ID; /* 0x08 */
198 U8 VF_ID; /* 0x09 */
199 U16 Reserved4; /* 0x0A */
200 U16 MsgVersion; /* 0x0C */
201 U16 HeaderVersion; /* 0x0E */
202 U32 Reserved5; /* 0x10 */
183 * --------------------------------------------------------------------------
184 */
185
186#ifndef MPI2_IOC_H
187#define MPI2_IOC_H
188
189/*****************************************************************************
190*

--- 16 unchanged lines hidden (view full) ---

207 U8 Reserved3; /* 0x06 */
208 U8 MsgFlags; /* 0x07 */
209 U8 VP_ID; /* 0x08 */
210 U8 VF_ID; /* 0x09 */
211 U16 Reserved4; /* 0x0A */
212 U16 MsgVersion; /* 0x0C */
213 U16 HeaderVersion; /* 0x0E */
214 U32 Reserved5; /* 0x10 */
203 U16 Reserved6; /* 0x14 */
204 U8 Reserved7; /* 0x16 */
215 U16 ConfigurationFlags; /* 0x14 */
216 U8 HostPageSize; /* 0x16 */
205 U8 HostMSIxVectors; /* 0x17 */
206 U16 Reserved8; /* 0x18 */
207 U16 SystemRequestFrameSize; /* 0x1A */
208 U16 ReplyDescriptorPostQueueDepth; /* 0x1C */
209 U16 ReplyFreeQueueDepth; /* 0x1E */
210 U32 SenseBufferAddressHigh; /* 0x20 */
211 U32 SystemReplyAddressHigh; /* 0x24 */
212 U64 SystemRequestFrameBaseAddress; /* 0x28 */

--- 111 unchanged lines hidden (view full) ---

324 U16 ProtocolFlags; /* 0x30 */
325 U16 HighPriorityCredit; /* 0x32 */
326 U16 MaxReplyDescriptorPostQueueDepth; /* 0x34 */
327 U8 ReplyFrameSize; /* 0x36 */
328 U8 MaxVolumes; /* 0x37 */
329 U16 MaxDevHandle; /* 0x38 */
330 U16 MaxPersistentEntries; /* 0x3A */
331 U16 MinDevHandle; /* 0x3C */
217 U8 HostMSIxVectors; /* 0x17 */
218 U16 Reserved8; /* 0x18 */
219 U16 SystemRequestFrameSize; /* 0x1A */
220 U16 ReplyDescriptorPostQueueDepth; /* 0x1C */
221 U16 ReplyFreeQueueDepth; /* 0x1E */
222 U32 SenseBufferAddressHigh; /* 0x20 */
223 U32 SystemReplyAddressHigh; /* 0x24 */
224 U64 SystemRequestFrameBaseAddress; /* 0x28 */

--- 111 unchanged lines hidden (view full) ---

336 U16 ProtocolFlags; /* 0x30 */
337 U16 HighPriorityCredit; /* 0x32 */
338 U16 MaxReplyDescriptorPostQueueDepth; /* 0x34 */
339 U8 ReplyFrameSize; /* 0x36 */
340 U8 MaxVolumes; /* 0x37 */
341 U16 MaxDevHandle; /* 0x38 */
342 U16 MaxPersistentEntries; /* 0x3A */
343 U16 MinDevHandle; /* 0x3C */
332 U16 Reserved4; /* 0x3E */
344 U8 CurrentHostPageSize; /* 0x3E */
345 U8 Reserved4; /* 0x3F */
346 U8 SGEModifierMask; /* 0x40 */
347 U8 SGEModifierValue; /* 0x41 */
348 U8 SGEModifierShift; /* 0x42 */
349 U8 Reserved5; /* 0x43 */
333} MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY,
334 Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t;
335
336/* MsgVersion */
337#define MPI2_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00)
338#define MPI2_IOCFACTS_MSGVERSION_MAJOR_SHIFT (8)
339#define MPI2_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF)
340#define MPI2_IOCFACTS_MSGVERSION_MINOR_SHIFT (0)

--- 37 unchanged lines hidden (view full) ---

378#define MPI2_IOCFACTS_CAPABILITY_BIDIRECTIONAL_TARGET (0x00000080)
379#define MPI2_IOCFACTS_CAPABILITY_EEDP (0x00000040)
380#define MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020)
381#define MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010)
382#define MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008)
383#define MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING (0x00000004)
384
385/* ProtocolFlags */
350} MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY,
351 Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t;
352
353/* MsgVersion */
354#define MPI2_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00)
355#define MPI2_IOCFACTS_MSGVERSION_MAJOR_SHIFT (8)
356#define MPI2_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF)
357#define MPI2_IOCFACTS_MSGVERSION_MINOR_SHIFT (0)

--- 37 unchanged lines hidden (view full) ---

395#define MPI2_IOCFACTS_CAPABILITY_BIDIRECTIONAL_TARGET (0x00000080)
396#define MPI2_IOCFACTS_CAPABILITY_EEDP (0x00000040)
397#define MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020)
398#define MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010)
399#define MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008)
400#define MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING (0x00000004)
401
402/* ProtocolFlags */
386#define MPI2_IOCFACTS_PROTOCOL_SCSI_TARGET (0x0001)
387#define MPI2_IOCFACTS_PROTOCOL_SCSI_INITIATOR (0x0002)
403#define MPI2_IOCFACTS_PROTOCOL_SCSI_INITIATOR (0x0002)
404#define MPI2_IOCFACTS_PROTOCOL_SCSI_TARGET (0x0001)
388
389
390/****************************************************************************
391* PortFacts message
392****************************************************************************/
393
394/* PortFacts Request message */
395typedef struct _MPI2_PORT_FACTS_REQUEST

--- 158 unchanged lines hidden (view full) ---

554#define MPI2_EVENT_SAS_PHY_COUNTER (0x0022)
555#define MPI2_EVENT_GPIO_INTERRUPT (0x0023)
556#define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024)
557#define MPI2_EVENT_SAS_QUIESCE (0x0025)
558#define MPI2_EVENT_SAS_NOTIFY_PRIMITIVE (0x0026)
559#define MPI2_EVENT_TEMP_THRESHOLD (0x0027)
560#define MPI2_EVENT_HOST_MESSAGE (0x0028)
561#define MPI2_EVENT_POWER_PERFORMANCE_CHANGE (0x0029)
405
406
407/****************************************************************************
408* PortFacts message
409****************************************************************************/
410
411/* PortFacts Request message */
412typedef struct _MPI2_PORT_FACTS_REQUEST

--- 158 unchanged lines hidden (view full) ---

571#define MPI2_EVENT_SAS_PHY_COUNTER (0x0022)
572#define MPI2_EVENT_GPIO_INTERRUPT (0x0023)
573#define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024)
574#define MPI2_EVENT_SAS_QUIESCE (0x0025)
575#define MPI2_EVENT_SAS_NOTIFY_PRIMITIVE (0x0026)
576#define MPI2_EVENT_TEMP_THRESHOLD (0x0027)
577#define MPI2_EVENT_HOST_MESSAGE (0x0028)
578#define MPI2_EVENT_POWER_PERFORMANCE_CHANGE (0x0029)
579#define MPI2_EVENT_ACTIVE_CABLE_EXCEPTION (0x0034) /* MPI v2.6 and later */
562#define MPI2_EVENT_MIN_PRODUCT_SPECIFIC (0x006E)
563#define MPI2_EVENT_MAX_PRODUCT_SPECIFIC (0x007F)
564
565
566/* Log Entry Added Event data */
567
568/* the following structure matches MPI2_LOG_0_ENTRY in mpi2_cnfg.h */
569#define MPI2_EVENT_DATA_LOG_DATA_LENGTH (0x1C)

--- 55 unchanged lines hidden (view full) ---

625 U8 Reserved1; /* 0x01 */
626 U16 Reserved2; /* 0x02 */
627 U32 Reserved3; /* 0x04 */
628 U32 HostData[1]; /* 0x08 */
629} MPI2_EVENT_DATA_HOST_MESSAGE, MPI2_POINTER PTR_MPI2_EVENT_DATA_HOST_MESSAGE,
630 Mpi2EventDataHostMessage_t, MPI2_POINTER pMpi2EventDataHostMessage_t;
631
632
580#define MPI2_EVENT_MIN_PRODUCT_SPECIFIC (0x006E)
581#define MPI2_EVENT_MAX_PRODUCT_SPECIFIC (0x007F)
582
583
584/* Log Entry Added Event data */
585
586/* the following structure matches MPI2_LOG_0_ENTRY in mpi2_cnfg.h */
587#define MPI2_EVENT_DATA_LOG_DATA_LENGTH (0x1C)

--- 55 unchanged lines hidden (view full) ---

643 U8 Reserved1; /* 0x01 */
644 U16 Reserved2; /* 0x02 */
645 U32 Reserved3; /* 0x04 */
646 U32 HostData[1]; /* 0x08 */
647} MPI2_EVENT_DATA_HOST_MESSAGE, MPI2_POINTER PTR_MPI2_EVENT_DATA_HOST_MESSAGE,
648 Mpi2EventDataHostMessage_t, MPI2_POINTER pMpi2EventDataHostMessage_t;
649
650
633/* Power Performance Change Event */
651/* Power Performance Change Event data */
634
635typedef struct _MPI2_EVENT_DATA_POWER_PERF_CHANGE
636{
637 U8 CurrentPowerMode; /* 0x00 */
638 U8 PreviousPowerMode; /* 0x01 */
639 U16 Reserved1; /* 0x02 */
640} MPI2_EVENT_DATA_POWER_PERF_CHANGE,
641 MPI2_POINTER PTR_MPI2_EVENT_DATA_POWER_PERF_CHANGE,

--- 9 unchanged lines hidden (view full) ---

651#define MPI2_EVENT_PM_MODE_MASK (0x07)
652#define MPI2_EVENT_PM_MODE_UNAVAILABLE (0x00)
653#define MPI2_EVENT_PM_MODE_UNKNOWN (0x01)
654#define MPI2_EVENT_PM_MODE_FULL_POWER (0x04)
655#define MPI2_EVENT_PM_MODE_REDUCED_POWER (0x05)
656#define MPI2_EVENT_PM_MODE_STANDBY (0x06)
657
658
652
653typedef struct _MPI2_EVENT_DATA_POWER_PERF_CHANGE
654{
655 U8 CurrentPowerMode; /* 0x00 */
656 U8 PreviousPowerMode; /* 0x01 */
657 U16 Reserved1; /* 0x02 */
658} MPI2_EVENT_DATA_POWER_PERF_CHANGE,
659 MPI2_POINTER PTR_MPI2_EVENT_DATA_POWER_PERF_CHANGE,

--- 9 unchanged lines hidden (view full) ---

669#define MPI2_EVENT_PM_MODE_MASK (0x07)
670#define MPI2_EVENT_PM_MODE_UNAVAILABLE (0x00)
671#define MPI2_EVENT_PM_MODE_UNKNOWN (0x01)
672#define MPI2_EVENT_PM_MODE_FULL_POWER (0x04)
673#define MPI2_EVENT_PM_MODE_REDUCED_POWER (0x05)
674#define MPI2_EVENT_PM_MODE_STANDBY (0x06)
675
676
677/* Active Cable Exception Event data */
678
679typedef struct _MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT
680{
681 U32 ActiveCablePowerRequirement; /* 0x00 */
682 U8 ReasonCode; /* 0x04 */
683 U8 ReceptacleID; /* 0x05 */
684 U16 Reserved1; /* 0x06 */
685} MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT,
686 MPI2_POINTER PTR_MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT,
687 Mpi26EventDataActiveCableExcept_t,
688 MPI2_POINTER pMpi26EventDataActiveCableExcept_t;
689
690/* defines for ReasonCode field */
691#define MPI26_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER (0x00)
692
693
659/* Hard Reset Received Event data */
660
661typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED
662{
663 U8 Reserved1; /* 0x00 */
664 U8 Port; /* 0x01 */
665 U16 Reserved2; /* 0x02 */
666} MPI2_EVENT_DATA_HARD_RESET_RECEIVED,

--- 458 unchanged lines hidden (view full) ---

1125 MPI2_EVENT_HBD_DESCRIPTOR Descriptor; /* 0x08 */
1126} MPI2_EVENT_DATA_HBD_PHY, MPI2_POINTER PTR_MPI2_EVENT_DATA_HBD_PHY,
1127 Mpi2EventDataHbdPhy_t, MPI2_POINTER pMpi2EventDataMpi2EventDataHbdPhy_t;
1128
1129/* values for the DescriptorType field */
1130#define MPI2_EVENT_HBD_DT_SAS (0x01)
1131
1132
694/* Hard Reset Received Event data */
695
696typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED
697{
698 U8 Reserved1; /* 0x00 */
699 U8 Port; /* 0x01 */
700 U16 Reserved2; /* 0x02 */
701} MPI2_EVENT_DATA_HARD_RESET_RECEIVED,

--- 458 unchanged lines hidden (view full) ---

1160 MPI2_EVENT_HBD_DESCRIPTOR Descriptor; /* 0x08 */
1161} MPI2_EVENT_DATA_HBD_PHY, MPI2_POINTER PTR_MPI2_EVENT_DATA_HBD_PHY,
1162 Mpi2EventDataHbdPhy_t, MPI2_POINTER pMpi2EventDataMpi2EventDataHbdPhy_t;
1163
1164/* values for the DescriptorType field */
1165#define MPI2_EVENT_HBD_DT_SAS (0x01)
1166
1167
1133
1134/****************************************************************************
1135* EventAck message
1136****************************************************************************/
1137
1138/* EventAck Request message */
1139typedef struct _MPI2_EVENT_ACK_REQUEST
1140{
1141 U16 Reserved1; /* 0x00 */

--- 201 unchanged lines hidden (view full) ---

1343#define MPI2_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02)
1344#define MPI2_FW_UPLOAD_ITYPE_FW_BACKUP (0x05)
1345#define MPI2_FW_UPLOAD_ITYPE_MANUFACTURING (0x06)
1346#define MPI2_FW_UPLOAD_ITYPE_CONFIG_1 (0x07)
1347#define MPI2_FW_UPLOAD_ITYPE_CONFIG_2 (0x08)
1348#define MPI2_FW_UPLOAD_ITYPE_MEGARAID (0x09)
1349#define MPI2_FW_UPLOAD_ITYPE_COMPLETE (0x0A)
1350#define MPI2_FW_UPLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B)
1168/****************************************************************************
1169* EventAck message
1170****************************************************************************/
1171
1172/* EventAck Request message */
1173typedef struct _MPI2_EVENT_ACK_REQUEST
1174{
1175 U16 Reserved1; /* 0x00 */

--- 201 unchanged lines hidden (view full) ---

1377#define MPI2_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02)
1378#define MPI2_FW_UPLOAD_ITYPE_FW_BACKUP (0x05)
1379#define MPI2_FW_UPLOAD_ITYPE_MANUFACTURING (0x06)
1380#define MPI2_FW_UPLOAD_ITYPE_CONFIG_1 (0x07)
1381#define MPI2_FW_UPLOAD_ITYPE_CONFIG_2 (0x08)
1382#define MPI2_FW_UPLOAD_ITYPE_MEGARAID (0x09)
1383#define MPI2_FW_UPLOAD_ITYPE_COMPLETE (0x0A)
1384#define MPI2_FW_UPLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B)
1385#define MPI2_FW_UPLOAD_ITYPE_CBB_BACKUP (0x0D)
1351
1352/* MPI v2.0 FWUpload TransactionContext Element */
1353typedef struct _MPI2_FW_UPLOAD_TCSGE
1354{
1355 U8 Reserved1; /* 0x00 */
1356 U8 ContextSize; /* 0x01 */
1357 U8 DetailsLength; /* 0x02 */
1358 U8 Flags; /* 0x03 */

--- 72 unchanged lines hidden (view full) ---

1431 U32 Reserved40; /* 0x40 */
1432 U32 Reserved44; /* 0x44 */
1433 U32 Reserved48; /* 0x48 */
1434 U32 Reserved4C; /* 0x4C */
1435 U32 Reserved50; /* 0x50 */
1436 U32 Reserved54; /* 0x54 */
1437 U32 Reserved58; /* 0x58 */
1438 U32 Reserved5C; /* 0x5C */
1386
1387/* MPI v2.0 FWUpload TransactionContext Element */
1388typedef struct _MPI2_FW_UPLOAD_TCSGE
1389{
1390 U8 Reserved1; /* 0x00 */
1391 U8 ContextSize; /* 0x01 */
1392 U8 DetailsLength; /* 0x02 */
1393 U8 Flags; /* 0x03 */

--- 72 unchanged lines hidden (view full) ---

1466 U32 Reserved40; /* 0x40 */
1467 U32 Reserved44; /* 0x44 */
1468 U32 Reserved48; /* 0x48 */
1469 U32 Reserved4C; /* 0x4C */
1470 U32 Reserved50; /* 0x50 */
1471 U32 Reserved54; /* 0x54 */
1472 U32 Reserved58; /* 0x58 */
1473 U32 Reserved5C; /* 0x5C */
1439 U32 Reserved60; /* 0x60 */
1474 U32 BootFlags; /* 0x60 */ /* reserved in MPI v2.5 and earlier */
1440 U32 FirmwareVersionNameWhat; /* 0x64 */
1441 U8 FirmwareVersionName[32]; /* 0x68 */
1442 U32 VendorNameWhat; /* 0x88 */
1443 U8 VendorName[32]; /* 0x8C */
1444 U32 PackageNameWhat; /* 0x88 */
1445 U8 PackageName[32]; /* 0x8C */
1446 U32 ReservedD0; /* 0xD0 */
1447 U32 ReservedD4; /* 0xD4 */

--- 9 unchanged lines hidden (view full) ---

1457 U32 ReservedFC; /* 0xFC */
1458} MPI2_FW_IMAGE_HEADER, MPI2_POINTER PTR_MPI2_FW_IMAGE_HEADER,
1459 Mpi2FWImageHeader_t, MPI2_POINTER pMpi2FWImageHeader_t;
1460
1461/* Signature field */
1462#define MPI2_FW_HEADER_SIGNATURE_OFFSET (0x00)
1463#define MPI2_FW_HEADER_SIGNATURE_MASK (0xFF000000)
1464#define MPI2_FW_HEADER_SIGNATURE (0xEA000000)
1475 U32 FirmwareVersionNameWhat; /* 0x64 */
1476 U8 FirmwareVersionName[32]; /* 0x68 */
1477 U32 VendorNameWhat; /* 0x88 */
1478 U8 VendorName[32]; /* 0x8C */
1479 U32 PackageNameWhat; /* 0x88 */
1480 U8 PackageName[32]; /* 0x8C */
1481 U32 ReservedD0; /* 0xD0 */
1482 U32 ReservedD4; /* 0xD4 */

--- 9 unchanged lines hidden (view full) ---

1492 U32 ReservedFC; /* 0xFC */
1493} MPI2_FW_IMAGE_HEADER, MPI2_POINTER PTR_MPI2_FW_IMAGE_HEADER,
1494 Mpi2FWImageHeader_t, MPI2_POINTER pMpi2FWImageHeader_t;
1495
1496/* Signature field */
1497#define MPI2_FW_HEADER_SIGNATURE_OFFSET (0x00)
1498#define MPI2_FW_HEADER_SIGNATURE_MASK (0xFF000000)
1499#define MPI2_FW_HEADER_SIGNATURE (0xEA000000)
1500#define MPI26_FW_HEADER_SIGNATURE (0xEB000000)
1465
1466/* Signature0 field */
1467#define MPI2_FW_HEADER_SIGNATURE0_OFFSET (0x04)
1468#define MPI2_FW_HEADER_SIGNATURE0 (0x5AFAA55A)
1501
1502/* Signature0 field */
1503#define MPI2_FW_HEADER_SIGNATURE0_OFFSET (0x04)
1504#define MPI2_FW_HEADER_SIGNATURE0 (0x5AFAA55A)
1505#define MPI26_FW_HEADER_SIGNATURE0_BASE (0x5AEAA500) /* Last byte is defined by architecture */
1506#define MPI26_FW_HEADER_SIGNATURE0_ARC_0 (0x5A)
1507#define MPI26_FW_HEADER_SIGNATURE0_ARC_1 (0x00)
1508#define MPI26_FW_HEADER_SIGNATURE0_ARC_2 (0x01)
1509#define MPI26_FW_HEADER_SIGNATURE0 (MPI26_FW_HEADER_SIGNATURE0_BASE+MPI26_FW_HEADER_SIGNATURE0_ARC_0) // legacy (0x5AEAA55A)
1510#define MPI26_FW_HEADER_SIGNATURE0_3516 (MPI26_FW_HEADER_SIGNATURE0_BASE+MPI26_FW_HEADER_SIGNATURE0_ARC_1)
1469
1470/* Signature1 field */
1471#define MPI2_FW_HEADER_SIGNATURE1_OFFSET (0x08)
1472#define MPI2_FW_HEADER_SIGNATURE1 (0xA55AFAA5)
1511
1512/* Signature1 field */
1513#define MPI2_FW_HEADER_SIGNATURE1_OFFSET (0x08)
1514#define MPI2_FW_HEADER_SIGNATURE1 (0xA55AFAA5)
1515#define MPI26_FW_HEADER_SIGNATURE1 (0xA55AEAA5)
1473
1474/* Signature2 field */
1475#define MPI2_FW_HEADER_SIGNATURE2_OFFSET (0x0C)
1476#define MPI2_FW_HEADER_SIGNATURE2 (0x5AA55AFA)
1516
1517/* Signature2 field */
1518#define MPI2_FW_HEADER_SIGNATURE2_OFFSET (0x0C)
1519#define MPI2_FW_HEADER_SIGNATURE2 (0x5AA55AFA)
1520#define MPI26_FW_HEADER_SIGNATURE2 (0x5AA55AEA)
1477
1478
1479/* defines for using the ProductID field */
1480#define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000)
1481#define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000)
1482
1483#define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00)
1484#define MPI2_FW_HEADER_PID_PROD_A (0x0000)
1485#define MPI2_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200)
1486#define MPI2_FW_HEADER_PID_PROD_IR_SCSI (0x0700)
1487
1488
1489#define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF)
1490/* SAS ProductID Family bits */
1491#define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0013)
1492#define MPI2_FW_HEADER_PID_FAMILY_2208_SAS (0x0014)
1493#define MPI25_FW_HEADER_PID_FAMILY_3108_SAS (0x0021)
1521
1522
1523/* defines for using the ProductID field */
1524#define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000)
1525#define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000)
1526
1527#define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00)
1528#define MPI2_FW_HEADER_PID_PROD_A (0x0000)
1529#define MPI2_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200)
1530#define MPI2_FW_HEADER_PID_PROD_IR_SCSI (0x0700)
1531
1532
1533#define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF)
1534/* SAS ProductID Family bits */
1535#define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0013)
1536#define MPI2_FW_HEADER_PID_FAMILY_2208_SAS (0x0014)
1537#define MPI25_FW_HEADER_PID_FAMILY_3108_SAS (0x0021)
1538#define MPI26_FW_HEADER_PID_FAMILY_3324_SAS (0x0028)
1539#define MPI26_FW_HEADER_PID_FAMILY_3516_SAS (0x0031)
1494
1495/* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */
1496
1497/* use MPI2_IOCFACTS_CAPABILITY_ defines for IOCCapabilities field */
1498
1499
1500#define MPI2_FW_HEADER_IMAGESIZE_OFFSET (0x2C)
1501#define MPI2_FW_HEADER_NEXTIMAGE_OFFSET (0x30)
1540
1541/* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */
1542
1543/* use MPI2_IOCFACTS_CAPABILITY_ defines for IOCCapabilities field */
1544
1545
1546#define MPI2_FW_HEADER_IMAGESIZE_OFFSET (0x2C)
1547#define MPI2_FW_HEADER_NEXTIMAGE_OFFSET (0x30)
1548#define MPI26_FW_HEADER_BOOTFLAGS_OFFSET (0x60)
1502#define MPI2_FW_HEADER_VERNMHWAT_OFFSET (0x64)
1503
1504#define MPI2_FW_HEADER_WHAT_SIGNATURE (0x29232840)
1505
1506#define MPI2_FW_HEADER_SIZE (0x100)
1507
1508
1509/* Extended Image Header */

--- 97 unchanged lines hidden (view full) ---

1607#define MPI2_FLASH_REGION_FIRMWARE (0x01)
1608#define MPI2_FLASH_REGION_BIOS (0x02)
1609#define MPI2_FLASH_REGION_NVDATA (0x03)
1610#define MPI2_FLASH_REGION_FIRMWARE_BACKUP (0x05)
1611#define MPI2_FLASH_REGION_MFG_INFORMATION (0x06)
1612#define MPI2_FLASH_REGION_CONFIG_1 (0x07)
1613#define MPI2_FLASH_REGION_CONFIG_2 (0x08)
1614#define MPI2_FLASH_REGION_MEGARAID (0x09)
1549#define MPI2_FW_HEADER_VERNMHWAT_OFFSET (0x64)
1550
1551#define MPI2_FW_HEADER_WHAT_SIGNATURE (0x29232840)
1552
1553#define MPI2_FW_HEADER_SIZE (0x100)
1554
1555
1556/* Extended Image Header */

--- 97 unchanged lines hidden (view full) ---

1654#define MPI2_FLASH_REGION_FIRMWARE (0x01)
1655#define MPI2_FLASH_REGION_BIOS (0x02)
1656#define MPI2_FLASH_REGION_NVDATA (0x03)
1657#define MPI2_FLASH_REGION_FIRMWARE_BACKUP (0x05)
1658#define MPI2_FLASH_REGION_MFG_INFORMATION (0x06)
1659#define MPI2_FLASH_REGION_CONFIG_1 (0x07)
1660#define MPI2_FLASH_REGION_CONFIG_2 (0x08)
1661#define MPI2_FLASH_REGION_MEGARAID (0x09)
1615#define MPI2_FLASH_REGION_INIT (0x0A)
1662#define MPI2_FLASH_REGION_COMMON_BOOT_BLOCK (0x0A)
1663#define MPI2_FLASH_REGION_INIT (MPI2_FLASH_REGION_COMMON_BOOT_BLOCK) /* older name */
1664#define MPI2_FLASH_REGION_CBB_BACKUP (0x0D)
1616
1665
1666
1617/* ImageRevision */
1618#define MPI2_FLASH_LAYOUT_IMAGE_REVISION (0x00)
1619
1620
1621
1622/* Supported Devices Extended Image Data */
1623
1624/*

--- 224 unchanged lines hidden (view full) ---

1849 U16 Reserved4; /* 0x0A */
1850 U16 Reserved5; /* 0x0C */
1851 U16 IOCStatus; /* 0x0E */
1852 U32 IOCLogInfo; /* 0x10 */
1853} MPI2_PWR_MGMT_CONTROL_REPLY, MPI2_POINTER PTR_MPI2_PWR_MGMT_CONTROL_REPLY,
1854 Mpi2PwrMgmtControlReply_t, MPI2_POINTER pMpi2PwrMgmtControlReply_t;
1855
1856
1667/* ImageRevision */
1668#define MPI2_FLASH_LAYOUT_IMAGE_REVISION (0x00)
1669
1670
1671
1672/* Supported Devices Extended Image Data */
1673
1674/*

--- 224 unchanged lines hidden (view full) ---

1899 U16 Reserved4; /* 0x0A */
1900 U16 Reserved5; /* 0x0C */
1901 U16 IOCStatus; /* 0x0E */
1902 U32 IOCLogInfo; /* 0x10 */
1903} MPI2_PWR_MGMT_CONTROL_REPLY, MPI2_POINTER PTR_MPI2_PWR_MGMT_CONTROL_REPLY,
1904 Mpi2PwrMgmtControlReply_t, MPI2_POINTER pMpi2PwrMgmtControlReply_t;
1905
1906
1907/****************************************************************************
1908* IO Unit Control messages (MPI v2.6 and later only.)
1909****************************************************************************/
1910
1911/* IO Unit Control Request Message */
1912typedef struct _MPI26_IOUNIT_CONTROL_REQUEST
1913{
1914 U8 Operation; /* 0x00 */
1915 U8 Reserved1; /* 0x01 */
1916 U8 ChainOffset; /* 0x02 */
1917 U8 Function; /* 0x03 */
1918 U16 DevHandle; /* 0x04 */
1919 U8 IOCParameter; /* 0x06 */
1920 U8 MsgFlags; /* 0x07 */
1921 U8 VP_ID; /* 0x08 */
1922 U8 VF_ID; /* 0x09 */
1923 U16 Reserved3; /* 0x0A */
1924 U16 Reserved4; /* 0x0C */
1925 U8 PhyNum; /* 0x0E */
1926 U8 PrimFlags; /* 0x0F */
1927 U32 Primitive; /* 0x10 */
1928 U8 LookupMethod; /* 0x14 */
1929 U8 Reserved5; /* 0x15 */
1930 U16 SlotNumber; /* 0x16 */
1931 U64 LookupAddress; /* 0x18 */
1932 U32 IOCParameterValue; /* 0x20 */
1933 U32 Reserved7; /* 0x24 */
1934 U32 Reserved8; /* 0x28 */
1935} MPI26_IOUNIT_CONTROL_REQUEST,
1936 MPI2_POINTER PTR_MPI26_IOUNIT_CONTROL_REQUEST,
1937 Mpi26IoUnitControlRequest_t, MPI2_POINTER pMpi26IoUnitControlRequest_t;
1938
1939/* values for the Operation field */
1940#define MPI26_CTRL_OP_CLEAR_ALL_PERSISTENT (0x02)
1941#define MPI26_CTRL_OP_SAS_PHY_LINK_RESET (0x06)
1942#define MPI26_CTRL_OP_SAS_PHY_HARD_RESET (0x07)
1943#define MPI26_CTRL_OP_PHY_CLEAR_ERROR_LOG (0x08)
1944#define MPI26_CTRL_OP_LINK_CLEAR_ERROR_LOG (0x09)
1945#define MPI26_CTRL_OP_SAS_SEND_PRIMITIVE (0x0A)
1946#define MPI26_CTRL_OP_FORCE_FULL_DISCOVERY (0x0B)
1947#define MPI26_CTRL_OP_REMOVE_DEVICE (0x0D)
1948#define MPI26_CTRL_OP_LOOKUP_MAPPING (0x0E)
1949#define MPI26_CTRL_OP_SET_IOC_PARAMETER (0x0F)
1950#define MPI26_CTRL_OP_ENABLE_FP_DEVICE (0x10)
1951#define MPI26_CTRL_OP_DISABLE_FP_DEVICE (0x11)
1952#define MPI26_CTRL_OP_ENABLE_FP_ALL (0x12)
1953#define MPI26_CTRL_OP_DISABLE_FP_ALL (0x13)
1954#define MPI26_CTRL_OP_DEV_ENABLE_NCQ (0x14)
1955#define MPI26_CTRL_OP_DEV_DISABLE_NCQ (0x15)
1956#define MPI26_CTRL_OP_SHUTDOWN (0x16)
1957#define MPI26_CTRL_OP_DEV_ENABLE_PERSIST_CONNECTION (0x17)
1958#define MPI26_CTRL_OP_DEV_DISABLE_PERSIST_CONNECTION (0x18)
1959#define MPI26_CTRL_OP_DEV_CLOSE_PERSIST_CONNECTION (0x19)
1960#define MPI26_CTRL_OP_PRODUCT_SPECIFIC_MIN (0x80)
1961
1962/* values for the PrimFlags field */
1963#define MPI26_CTRL_PRIMFLAGS_SINGLE (0x08)
1964#define MPI26_CTRL_PRIMFLAGS_TRIPLE (0x02)
1965#define MPI26_CTRL_PRIMFLAGS_REDUNDANT (0x01)
1966
1967/* values for the LookupMethod field */
1968#define MPI26_CTRL_LOOKUP_METHOD_WWID_ADDRESS (0x01)
1969#define MPI26_CTRL_LOOKUP_METHOD_ENCLOSURE_SLOT (0x02)
1970#define MPI26_CTRL_LOOKUP_METHOD_SAS_DEVICE_NAME (0x03)
1971
1972
1973/* IO Unit Control Reply Message */
1974typedef struct _MPI26_IOUNIT_CONTROL_REPLY
1975{
1976 U8 Operation; /* 0x00 */
1977 U8 Reserved1; /* 0x01 */
1978 U8 MsgLength; /* 0x02 */
1979 U8 Function; /* 0x03 */
1980 U16 DevHandle; /* 0x04 */
1981 U8 IOCParameter; /* 0x06 */
1982 U8 MsgFlags; /* 0x07 */
1983 U8 VP_ID; /* 0x08 */
1984 U8 VF_ID; /* 0x09 */
1985 U16 Reserved3; /* 0x0A */
1986 U16 Reserved4; /* 0x0C */
1987 U16 IOCStatus; /* 0x0E */
1988 U32 IOCLogInfo; /* 0x10 */
1989} MPI26_IOUNIT_CONTROL_REPLY, MPI2_POINTER PTR_MPI26_IOUNIT_CONTROL_REPLY,
1990 Mpi26IoUnitControlReply_t, MPI2_POINTER pMpi26IoUnitControlReply_t;
1991
1992
1857#endif
1858
1993#endif
1994