aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEric Moore <eric.moore@lsi.com>2007-01-19 20:46:17 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-01-27 10:25:29 -0500
commiteae225eb5947825bc4e845c33ded9aedd74407cf (patch)
treea5068ea6c626d3fa5124bf896c88cd69ab814541 /drivers
parent86b9c4c16a1589d05959af2d96d52a4352c6306e (diff)
[SCSI] fusion: mpi header update - version 1.05.14
Here are the lastest mpi headers for mpt fusion driver, which defines the firmware to driver interface. Signed-off-by: Eric Moore <Eric.Moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/message/fusion/lsi/mpi.h7
-rw-r--r--drivers/message/fusion/lsi/mpi_cnfg.h131
-rw-r--r--drivers/message/fusion/lsi/mpi_history.txt77
-rw-r--r--drivers/message/fusion/lsi/mpi_init.h7
-rw-r--r--drivers/message/fusion/lsi/mpi_ioc.h75
-rw-r--r--drivers/message/fusion/lsi/mpi_log_sas.h284
-rw-r--r--drivers/message/fusion/lsi/mpi_sas.h9
7 files changed, 410 insertions, 180 deletions
diff --git a/drivers/message/fusion/lsi/mpi.h b/drivers/message/fusion/lsi/mpi.h
index 81ad77622da..75223bf24ae 100644
--- a/drivers/message/fusion/lsi/mpi.h
+++ b/drivers/message/fusion/lsi/mpi.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2000-2005 LSI Logic Corporation. 2 * Copyright (c) 2000-2006 LSI Logic Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi.h 5 * Name: mpi.h
6 * Title: MPI Message independent structures and definitions 6 * Title: MPI Message independent structures and definitions
7 * Creation Date: July 27, 2000 7 * Creation Date: July 27, 2000
8 * 8 *
9 * mpi.h Version: 01.05.11 9 * mpi.h Version: 01.05.12
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -77,6 +77,7 @@
77 * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT. 77 * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT.
78 * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target. 78 * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target.
79 * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. 79 * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT.
80 * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT.
80 * -------------------------------------------------------------------------- 81 * --------------------------------------------------------------------------
81 */ 82 */
82 83
@@ -107,7 +108,7 @@
107/* Note: The major versions of 0xe0 through 0xff are reserved */ 108/* Note: The major versions of 0xe0 through 0xff are reserved */
108 109
109/* versioning for this MPI header set */ 110/* versioning for this MPI header set */
110#define MPI_HEADER_VERSION_UNIT (0x0D) 111#define MPI_HEADER_VERSION_UNIT (0x0E)
111#define MPI_HEADER_VERSION_DEV (0x00) 112#define MPI_HEADER_VERSION_DEV (0x00)
112#define MPI_HEADER_VERSION_UNIT_MASK (0xFF00) 113#define MPI_HEADER_VERSION_UNIT_MASK (0xFF00)
113#define MPI_HEADER_VERSION_UNIT_SHIFT (8) 114#define MPI_HEADER_VERSION_UNIT_SHIFT (8)
diff --git a/drivers/message/fusion/lsi/mpi_cnfg.h b/drivers/message/fusion/lsi/mpi_cnfg.h
index 47e13e360c1..0e4c8e77a81 100644
--- a/drivers/message/fusion/lsi/mpi_cnfg.h
+++ b/drivers/message/fusion/lsi/mpi_cnfg.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2000-2005 LSI Logic Corporation. 2 * Copyright (c) 2000-2006 LSI Logic Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi_cnfg.h 5 * Name: mpi_cnfg.h
6 * Title: MPI Config message, structures, and Pages 6 * Title: MPI Config message, structures, and Pages
7 * Creation Date: July 27, 2000 7 * Creation Date: July 27, 2000
8 * 8 *
9 * mpi_cnfg.h Version: 01.05.12 9 * mpi_cnfg.h Version: 01.05.13
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -276,6 +276,23 @@
276 * Added AdditionalControlFlags, MaxTargetPortConnectTime, 276 * Added AdditionalControlFlags, MaxTargetPortConnectTime,
277 * ReportDeviceMissingDelay, and IODeviceMissingDelay 277 * ReportDeviceMissingDelay, and IODeviceMissingDelay
278 * fields to SAS IO Unit Page 1. 278 * fields to SAS IO Unit Page 1.
279 * 10-11-06 01.05.13 Added NumForceWWID field and ForceWWID array to
280 * Manufacturing Page 5.
281 * Added Manufacturing pages 8 through 10.
282 * Added defines for supported metadata size bits in
283 * CapabilitiesFlags field of IOC Page 6.
284 * Added defines for metadata size bits in VolumeSettings
285 * field of RAID Volume Page 0.
286 * Added SATA Link Reset settings, Enable SATA Asynchronous
287 * Notification bit, and HideNonZeroAttachedPhyIdentifiers
288 * bit to AdditionalControlFlags field of SAS IO Unit
289 * Page 1.
290 * Added defines for Enclosure Devices Unmapped and
291 * Device Limit Exceeded bits in Status field of SAS IO
292 * Unit Page 2.
293 * Added more AccessStatus values for SAS Device Page 0.
294 * Added bit for SATA Asynchronous Notification Support in
295 * Flags field of SAS Device Page 0.
279 * -------------------------------------------------------------------------- 296 * --------------------------------------------------------------------------
280 */ 297 */
281 298
@@ -654,17 +671,24 @@ typedef struct _CONFIG_PAGE_MANUFACTURING_4
654#define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01) 671#define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01)
655 672
656 673
674#ifndef MPI_MANPAGE5_NUM_FORCEWWID
675#define MPI_MANPAGE5_NUM_FORCEWWID (1)
676#endif
677
657typedef struct _CONFIG_PAGE_MANUFACTURING_5 678typedef struct _CONFIG_PAGE_MANUFACTURING_5
658{ 679{
659 CONFIG_PAGE_HEADER Header; /* 00h */ 680 CONFIG_PAGE_HEADER Header; /* 00h */
660 U64 BaseWWID; /* 04h */ 681 U64 BaseWWID; /* 04h */
661 U8 Flags; /* 0Ch */ 682 U8 Flags; /* 0Ch */
662 U8 Reserved1; /* 0Dh */ 683 U8 NumForceWWID; /* 0Dh */
663 U16 Reserved2; /* 0Eh */ 684 U16 Reserved2; /* 0Eh */
685 U32 Reserved3; /* 10h */
686 U32 Reserved4; /* 14h */
687 U64 ForceWWID[MPI_MANPAGE5_NUM_FORCEWWID]; /* 18h */
664} CONFIG_PAGE_MANUFACTURING_5, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_5, 688} CONFIG_PAGE_MANUFACTURING_5, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_5,
665 ManufacturingPage5_t, MPI_POINTER pManufacturingPage5_t; 689 ManufacturingPage5_t, MPI_POINTER pManufacturingPage5_t;
666 690
667#define MPI_MANUFACTURING5_PAGEVERSION (0x01) 691#define MPI_MANUFACTURING5_PAGEVERSION (0x02)
668 692
669/* defines for the Flags field */ 693/* defines for the Flags field */
670#define MPI_MANPAGE5_TWO_WWID_PER_PHY (0x01) 694#define MPI_MANPAGE5_TWO_WWID_PER_PHY (0x01)
@@ -740,6 +764,36 @@ typedef struct _CONFIG_PAGE_MANUFACTURING_7
740#define MPI_MANPAGE7_FLAG_USE_SLOT_INFO (0x00000001) 764#define MPI_MANPAGE7_FLAG_USE_SLOT_INFO (0x00000001)
741 765
742 766
767typedef struct _CONFIG_PAGE_MANUFACTURING_8
768{
769 CONFIG_PAGE_HEADER Header; /* 00h */
770 U32 ProductSpecificInfo;/* 04h */
771} CONFIG_PAGE_MANUFACTURING_8, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_8,
772 ManufacturingPage8_t, MPI_POINTER pManufacturingPage8_t;
773
774#define MPI_MANUFACTURING8_PAGEVERSION (0x00)
775
776
777typedef struct _CONFIG_PAGE_MANUFACTURING_9
778{
779 CONFIG_PAGE_HEADER Header; /* 00h */
780 U32 ProductSpecificInfo;/* 04h */
781} CONFIG_PAGE_MANUFACTURING_9, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_9,
782 ManufacturingPage9_t, MPI_POINTER pManufacturingPage9_t;
783
784#define MPI_MANUFACTURING6_PAGEVERSION (0x00)
785
786
787typedef struct _CONFIG_PAGE_MANUFACTURING_10
788{
789 CONFIG_PAGE_HEADER Header; /* 00h */
790 U32 ProductSpecificInfo;/* 04h */
791} CONFIG_PAGE_MANUFACTURING_10, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_10,
792 ManufacturingPage10_t, MPI_POINTER pManufacturingPage10_t;
793
794#define MPI_MANUFACTURING10_PAGEVERSION (0x00)
795
796
743/**************************************************************************** 797/****************************************************************************
744* IO Unit Config Pages 798* IO Unit Config Pages
745****************************************************************************/ 799****************************************************************************/
@@ -1080,10 +1134,14 @@ typedef struct _CONFIG_PAGE_IOC_6
1080} CONFIG_PAGE_IOC_6, MPI_POINTER PTR_CONFIG_PAGE_IOC_6, 1134} CONFIG_PAGE_IOC_6, MPI_POINTER PTR_CONFIG_PAGE_IOC_6,
1081 IOCPage6_t, MPI_POINTER pIOCPage6_t; 1135 IOCPage6_t, MPI_POINTER pIOCPage6_t;
1082 1136
1083#define MPI_IOCPAGE6_PAGEVERSION (0x00) 1137#define MPI_IOCPAGE6_PAGEVERSION (0x01)
1084 1138
1085/* IOC Page 6 Capabilities Flags */ 1139/* IOC Page 6 Capabilities Flags */
1086 1140
1141#define MPI_IOCPAGE6_CAP_FLAGS_MASK_METADATA_SIZE (0x00000006)
1142#define MPI_IOCPAGE6_CAP_FLAGS_64MB_METADATA_SIZE (0x00000000)
1143#define MPI_IOCPAGE6_CAP_FLAGS_512MB_METADATA_SIZE (0x00000002)
1144
1087#define MPI_IOCPAGE6_CAP_FLAGS_GLOBAL_HOT_SPARE (0x00000001) 1145#define MPI_IOCPAGE6_CAP_FLAGS_GLOBAL_HOT_SPARE (0x00000001)
1088 1146
1089 1147
@@ -2160,6 +2218,11 @@ typedef struct _RAID_VOL0_SETTINGS
2160#define MPI_RAIDVOL0_SETTING_AUTO_CONFIGURE (0x0004) 2218#define MPI_RAIDVOL0_SETTING_AUTO_CONFIGURE (0x0004)
2161#define MPI_RAIDVOL0_SETTING_PRIORITY_RESYNC (0x0008) 2219#define MPI_RAIDVOL0_SETTING_PRIORITY_RESYNC (0x0008)
2162#define MPI_RAIDVOL0_SETTING_FAST_DATA_SCRUBBING_0102 (0x0020) /* obsolete */ 2220#define MPI_RAIDVOL0_SETTING_FAST_DATA_SCRUBBING_0102 (0x0020) /* obsolete */
2221
2222#define MPI_RAIDVOL0_SETTING_MASK_METADATA_SIZE (0x00C0)
2223#define MPI_RAIDVOL0_SETTING_64MB_METADATA_SIZE (0x0000)
2224#define MPI_RAIDVOL0_SETTING_512MB_METADATA_SIZE (0x0040)
2225
2163#define MPI_RAIDVOL0_SETTING_USE_PRODUCT_ID_SUFFIX (0x0010) 2226#define MPI_RAIDVOL0_SETTING_USE_PRODUCT_ID_SUFFIX (0x0010)
2164#define MPI_RAIDVOL0_SETTING_USE_DEFAULTS (0x8000) 2227#define MPI_RAIDVOL0_SETTING_USE_DEFAULTS (0x8000)
2165 2228
@@ -2203,7 +2266,7 @@ typedef struct _CONFIG_PAGE_RAID_VOL_0
2203} CONFIG_PAGE_RAID_VOL_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_0, 2266} CONFIG_PAGE_RAID_VOL_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_0,
2204 RaidVolumePage0_t, MPI_POINTER pRaidVolumePage0_t; 2267 RaidVolumePage0_t, MPI_POINTER pRaidVolumePage0_t;
2205 2268
2206#define MPI_RAIDVOLPAGE0_PAGEVERSION (0x06) 2269#define MPI_RAIDVOLPAGE0_PAGEVERSION (0x07)
2207 2270
2208/* values for RAID Volume Page 0 InactiveStatus field */ 2271/* values for RAID Volume Page 0 InactiveStatus field */
2209#define MPI_RAIDVOLPAGE0_UNKNOWN_INACTIVE (0x00) 2272#define MPI_RAIDVOLPAGE0_UNKNOWN_INACTIVE (0x00)
@@ -2518,7 +2581,7 @@ typedef struct _CONFIG_PAGE_SAS_IO_UNIT_1
2518} CONFIG_PAGE_SAS_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_1, 2581} CONFIG_PAGE_SAS_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_1,
2519 SasIOUnitPage1_t, MPI_POINTER pSasIOUnitPage1_t; 2582 SasIOUnitPage1_t, MPI_POINTER pSasIOUnitPage1_t;
2520 2583
2521#define MPI_SASIOUNITPAGE1_PAGEVERSION (0x06) 2584#define MPI_SASIOUNITPAGE1_PAGEVERSION (0x07)
2522 2585
2523/* values for SAS IO Unit Page 1 ControlFlags */ 2586/* values for SAS IO Unit Page 1 ControlFlags */
2524#define MPI_SAS_IOUNIT1_CONTROL_DEVICE_SELF_TEST (0x8000) 2587#define MPI_SAS_IOUNIT1_CONTROL_DEVICE_SELF_TEST (0x8000)
@@ -2544,7 +2607,13 @@ typedef struct _CONFIG_PAGE_SAS_IO_UNIT_1
2544#define MPI_SAS_IOUNIT1_CONTROL_CLEAR_AFFILIATION (0x0001) 2607#define MPI_SAS_IOUNIT1_CONTROL_CLEAR_AFFILIATION (0x0001)
2545 2608
2546/* values for SAS IO Unit Page 1 AdditionalControlFlags */ 2609/* values for SAS IO Unit Page 1 AdditionalControlFlags */
2547#define MPI_SAS_IOUNIT1_ACONTROL_ALLOW_TABLE_TO_TABLE (0x0001) 2610#define MPI_SAS_IOUNIT1_ACONTROL_SATA_ASYNCHROUNOUS_NOTIFICATION (0x0040)
2611#define MPI_SAS_IOUNIT1_ACONTROL_HIDE_NONZERO_ATTACHED_PHY_IDENT (0x0020)
2612#define MPI_SAS_IOUNIT1_ACONTROL_PORT_ENABLE_ONLY_SATA_LINK_RESET (0x0010)
2613#define MPI_SAS_IOUNIT1_ACONTROL_OTHER_AFFILIATION_SATA_LINK_RESET (0x0008)
2614#define MPI_SAS_IOUNIT1_ACONTROL_SELF_AFFILIATION_SATA_LINK_RESET (0x0004)
2615#define MPI_SAS_IOUNIT1_ACONTROL_NO_AFFILIATION_SATA_LINK_RESET (0x0002)
2616#define MPI_SAS_IOUNIT1_ACONTROL_ALLOW_TABLE_TO_TABLE (0x0001)
2548 2617
2549/* defines for SAS IO Unit Page 1 ReportDeviceMissingDelay */ 2618/* defines for SAS IO Unit Page 1 ReportDeviceMissingDelay */
2550#define MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK (0x7F) 2619#define MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK (0x7F)
@@ -2585,9 +2654,11 @@ typedef struct _CONFIG_PAGE_SAS_IO_UNIT_2
2585} CONFIG_PAGE_SAS_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_2, 2654} CONFIG_PAGE_SAS_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_2,
2586 SasIOUnitPage2_t, MPI_POINTER pSasIOUnitPage2_t; 2655 SasIOUnitPage2_t, MPI_POINTER pSasIOUnitPage2_t;
2587 2656
2588#define MPI_SASIOUNITPAGE2_PAGEVERSION (0x05) 2657#define MPI_SASIOUNITPAGE2_PAGEVERSION (0x06)
2589 2658
2590/* values for SAS IO Unit Page 2 Status field */ 2659/* values for SAS IO Unit Page 2 Status field */
2660#define MPI_SAS_IOUNIT2_STATUS_DEVICE_LIMIT_EXCEEDED (0x08)
2661#define MPI_SAS_IOUNIT2_STATUS_ENCLOSURE_DEVICES_UNMAPPED (0x04)
2591#define MPI_SAS_IOUNIT2_STATUS_DISABLED_PERSISTENT_MAPPINGS (0x02) 2662#define MPI_SAS_IOUNIT2_STATUS_DISABLED_PERSISTENT_MAPPINGS (0x02)
2592#define MPI_SAS_IOUNIT2_STATUS_FULL_PERSISTENT_MAPPINGS (0x01) 2663#define MPI_SAS_IOUNIT2_STATUS_FULL_PERSISTENT_MAPPINGS (0x01)
2593 2664
@@ -2739,24 +2810,38 @@ typedef struct _CONFIG_PAGE_SAS_DEVICE_0
2739} CONFIG_PAGE_SAS_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_0, 2810} CONFIG_PAGE_SAS_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_0,
2740 SasDevicePage0_t, MPI_POINTER pSasDevicePage0_t; 2811 SasDevicePage0_t, MPI_POINTER pSasDevicePage0_t;
2741 2812
2742#define MPI_SASDEVICE0_PAGEVERSION (0x04) 2813#define MPI_SASDEVICE0_PAGEVERSION (0x05)
2743 2814
2744/* values for SAS Device Page 0 AccessStatus field */ 2815/* values for SAS Device Page 0 AccessStatus field */
2745#define MPI_SAS_DEVICE0_ASTATUS_NO_ERRORS (0x00) 2816#define MPI_SAS_DEVICE0_ASTATUS_NO_ERRORS (0x00)
2746#define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01) 2817#define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01)
2747#define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02) 2818#define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02)
2819#define MPI_SAS_DEVICE0_ASTATUS_SATA_AFFILIATION_CONFLICT (0x03)
2820/* specific values for SATA Init failures */
2821#define MPI_SAS_DEVICE0_ASTATUS_SIF_UNKNOWN (0x10)
2822#define MPI_SAS_DEVICE0_ASTATUS_SIF_AFFILIATION_CONFLICT (0x11)
2823#define MPI_SAS_DEVICE0_ASTATUS_SIF_DIAG (0x12)
2824#define MPI_SAS_DEVICE0_ASTATUS_SIF_IDENTIFICATION (0x13)
2825#define MPI_SAS_DEVICE0_ASTATUS_SIF_CHECK_POWER (0x14)
2826#define MPI_SAS_DEVICE0_ASTATUS_SIF_PIO_SN (0x15)
2827#define MPI_SAS_DEVICE0_ASTATUS_SIF_MDMA_SN (0x16)
2828#define MPI_SAS_DEVICE0_ASTATUS_SIF_UDMA_SN (0x17)
2829#define MPI_SAS_DEVICE0_ASTATUS_SIF_ZONING_VIOLATION (0x18)
2830#define MPI_SAS_DEVICE0_ASTATUS_SIF_NOT_ADDRESSABLE (0x19)
2831#define MPI_SAS_DEVICE0_ASTATUS_SIF_MAX (0x1F)
2748 2832
2749/* values for SAS Device Page 0 Flags field */ 2833/* values for SAS Device Page 0 Flags field */
2750#define MPI_SAS_DEVICE0_FLAGS_SATA_SW_PRESERVE (0x0200) 2834#define MPI_SAS_DEVICE0_FLAGS_SATA_ASYNCHRONOUS_NOTIFY (0x0400)
2751#define MPI_SAS_DEVICE0_FLAGS_UNSUPPORTED_DEVICE (0x0100) 2835#define MPI_SAS_DEVICE0_FLAGS_SATA_SW_PRESERVE (0x0200)
2752#define MPI_SAS_DEVICE0_FLAGS_SATA_48BIT_LBA_SUPPORTED (0x0080) 2836#define MPI_SAS_DEVICE0_FLAGS_UNSUPPORTED_DEVICE (0x0100)
2753#define MPI_SAS_DEVICE0_FLAGS_SATA_SMART_SUPPORTED (0x0040) 2837#define MPI_SAS_DEVICE0_FLAGS_SATA_48BIT_LBA_SUPPORTED (0x0080)
2754#define MPI_SAS_DEVICE0_FLAGS_SATA_NCQ_SUPPORTED (0x0020) 2838#define MPI_SAS_DEVICE0_FLAGS_SATA_SMART_SUPPORTED (0x0040)
2755#define MPI_SAS_DEVICE0_FLAGS_SATA_FUA_SUPPORTED (0x0010) 2839#define MPI_SAS_DEVICE0_FLAGS_SATA_NCQ_SUPPORTED (0x0020)
2756#define MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH (0x0008) 2840#define MPI_SAS_DEVICE0_FLAGS_SATA_FUA_SUPPORTED (0x0010)
2757#define MPI_SAS_DEVICE0_FLAGS_MAPPING_PERSISTENT (0x0004) 2841#define MPI_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH (0x0008)
2758#define MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED (0x0002) 2842#define MPI_SAS_DEVICE0_FLAGS_MAPPING_PERSISTENT (0x0004)
2759#define MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT (0x0001) 2843#define MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED (0x0002)
2844#define MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT (0x0001)
2760 2845
2761/* see mpi_sas.h for values for SAS Device Page 0 DeviceInfo values */ 2846/* see mpi_sas.h for values for SAS Device Page 0 DeviceInfo values */
2762 2847
diff --git a/drivers/message/fusion/lsi/mpi_history.txt b/drivers/message/fusion/lsi/mpi_history.txt
index 582cfe7c2aa..d6b4c607453 100644
--- a/drivers/message/fusion/lsi/mpi_history.txt
+++ b/drivers/message/fusion/lsi/mpi_history.txt
@@ -3,28 +3,28 @@
3 MPI Header File Change History 3 MPI Header File Change History
4 ============================== 4 ==============================
5 5
6 Copyright (c) 2000-2005 LSI Logic Corporation. 6 Copyright (c) 2000-2006 LSI Logic Corporation.
7 7
8 --------------------------------------- 8 ---------------------------------------
9 Header Set Release Version: 01.05.13 9 Header Set Release Version: 01.05.14
10 Header Set Release Date: 03-27-06 10 Header Set Release Date: 10-11-06
11 --------------------------------------- 11 ---------------------------------------
12 12
13 Filename Current version Prior version 13 Filename Current version Prior version
14 ---------- --------------- ------------- 14 ---------- --------------- -------------
15 mpi.h 01.05.11 01.05.10 15 mpi.h 01.05.12 01.05.11
16 mpi_ioc.h 01.05.11 01.05.10 16 mpi_ioc.h 01.05.12 01.05.11
17 mpi_cnfg.h 01.05.12 01.05.11 17 mpi_cnfg.h 01.05.13 01.05.12
18 mpi_init.h 01.05.07 01.05.06 18 mpi_init.h 01.05.08 01.05.07
19 mpi_targ.h 01.05.06 01.05.05 19 mpi_targ.h 01.05.06 01.05.06
20 mpi_fc.h 01.05.01 01.05.01 20 mpi_fc.h 01.05.01 01.05.01
21 mpi_lan.h 01.05.01 01.05.01 21 mpi_lan.h 01.05.01 01.05.01
22 mpi_raid.h 01.05.02 01.05.02 22 mpi_raid.h 01.05.02 01.05.02
23 mpi_tool.h 01.05.03 01.05.03 23 mpi_tool.h 01.05.03 01.05.03
24 mpi_inb.h 01.05.01 01.05.01 24 mpi_inb.h 01.05.01 01.05.01
25 mpi_sas.h 01.05.03 01.05.02 25 mpi_sas.h 01.05.04 01.05.03
26 mpi_type.h 01.05.02 01.05.02 26 mpi_type.h 01.05.02 01.05.02
27 mpi_history.txt 01.05.13 01.05.12 27 mpi_history.txt 01.05.14 01.05.13
28 28
29 29
30 * Date Version Description 30 * Date Version Description
@@ -94,6 +94,7 @@ mpi.h
94 * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT. 94 * 08-03-05 01.05.09 Bumped MPI_HEADER_VERSION_UNIT.
95 * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target. 95 * 08-30-05 01.05.10 Added 2 new IOCStatus codes for Target.
96 * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. 96 * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT.
97 * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT.
97 * -------------------------------------------------------------------------- 98 * --------------------------------------------------------------------------
98 99
99mpi_ioc.h 100mpi_ioc.h
@@ -182,6 +183,14 @@ mpi_ioc.h
182 * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event 183 * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event
183 * data structure. 184 * data structure.
184 * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION. 185 * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION.
186 * 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED.
187 * Added MaxInitiators field to PortFacts reply.
188 * Added SAS Device Status Change ReasonCode for
189 * asynchronous notificaiton.
190 * Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event
191 * data structure.
192 * Added new ImageType values for FWDownload and FWUpload
193 * requests.
185 * -------------------------------------------------------------------------- 194 * --------------------------------------------------------------------------
186 195
187mpi_cnfg.h 196mpi_cnfg.h
@@ -447,6 +456,23 @@ mpi_cnfg.h
447 * Added AdditionalControlFlags, MaxTargetPortConnectTime, 456 * Added AdditionalControlFlags, MaxTargetPortConnectTime,
448 * ReportDeviceMissingDelay, and IODeviceMissingDelay 457 * ReportDeviceMissingDelay, and IODeviceMissingDelay
449 * fields to SAS IO Unit Page 1. 458 * fields to SAS IO Unit Page 1.
459 * 10-11-06 01.05.13 Added NumForceWWID field and ForceWWID array to
460 * Manufacturing Page 5.
461 * Added Manufacturing pages 8 through 10.
462 * Added defines for supported metadata size bits in
463 * CapabilitiesFlags field of IOC Page 6.
464 * Added defines for metadata size bits in VolumeSettings
465 * field of RAID Volume Page 0.
466 * Added SATA Link Reset settings, Enable SATA Asynchronous
467 * Notification bit, and HideNonZeroAttachedPhyIdentifiers
468 * bit to AdditionalControlFlags field of SAS IO Unit
469 * Page 1.
470 * Added defines for Enclosure Devices Unmapped and
471 * Device Limit Exceeded bits in Status field of SAS IO
472 * Unit Page 2.
473 * Added more AccessStatus values for SAS Device Page 0.
474 * Added bit for SATA Asynchronous Notification Support in
475 * Flags field of SAS Device Page 0.
450 * -------------------------------------------------------------------------- 476 * --------------------------------------------------------------------------
451 477
452mpi_init.h 478mpi_init.h
@@ -490,6 +516,7 @@ mpi_init.h
490 * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them 516 * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them
491 * unique in the first 32 characters. 517 * unique in the first 32 characters.
492 * 03-27-06 01.05.07 Added Task Management type of Clear ACA. 518 * 03-27-06 01.05.07 Added Task Management type of Clear ACA.
519 * 10-11-06 01.05.08 Shortened define for Task Management type of Clear ACA.
493 * -------------------------------------------------------------------------- 520 * --------------------------------------------------------------------------
494 521
495mpi_targ.h 522mpi_targ.h
@@ -638,6 +665,8 @@ mpi_sas.h
638 * and Remove Device operations to SAS IO Unit Control. 665 * and Remove Device operations to SAS IO Unit Control.
639 * Added DevHandle field to SAS IO Unit Control request and 666 * Added DevHandle field to SAS IO Unit Control request and
640 * reply. 667 * reply.
668 * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO
669 * Unit Control request.
641 * -------------------------------------------------------------------------- 670 * --------------------------------------------------------------------------
642 671
643mpi_type.h 672mpi_type.h
@@ -653,20 +682,20 @@ mpi_type.h
653 682
654mpi_history.txt Parts list history 683mpi_history.txt Parts list history
655 684
656Filename 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 685Filename 01.05.13 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09
657---------- -------- -------- -------- -------- -------- 686---------- -------- -------- -------- -------- -------- --------
658mpi.h 01.05.11 01.05.10 01.05.09 01.05.08 01.05.07 687mpi.h 01.05.12 01.05.11 01.05.10 01.05.09 01.05.08 01.05.07
659mpi_ioc.h 01.05.11 01.05.10 01.05.09 01.05.09 01.05.08 688mpi_ioc.h 01.05.12 01.05.11 01.05.10 01.05.09 01.05.09 01.05.08
660mpi_cnfg.h 01.05.12 01.05.11 01.05.10 01.05.09 01.05.08 689mpi_cnfg.h 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 01.05.08
661mpi_init.h 01.05.07 01.05.06 01.05.06 01.05.05 01.05.04 690mpi_init.h 01.05.08 01.05.07 01.05.06 01.05.06 01.05.05 01.05.04
662mpi_targ.h 01.05.06 01.05.05 01.05.05 01.05.05 01.05.04 691mpi_targ.h 01.05.06 01.05.06 01.05.05 01.05.05 01.05.05 01.05.04
663mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 692mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01
664mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 693mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01
665mpi_raid.h 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 694mpi_raid.h 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02
666mpi_tool.h 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03 695mpi_tool.h 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03
667mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 696mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01
668mpi_sas.h 01.05.03 01.05.02 01.05.01 01.05.01 01.05.01 697mpi_sas.h 01.05.04 01.05.03 01.05.02 01.05.01 01.05.01 01.05.01
669mpi_type.h 01.05.02 01.05.02 01.05.01 01.05.01 01.05.01 698mpi_type.h 01.05.02 01.05.02 01.05.02 01.05.01 01.05.01 01.05.01
670 699
671Filename 01.05.08 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03 700Filename 01.05.08 01.05.07 01.05.06 01.05.05 01.05.04 01.05.03
672---------- -------- -------- -------- -------- -------- -------- 701---------- -------- -------- -------- -------- -------- --------
diff --git a/drivers/message/fusion/lsi/mpi_init.h b/drivers/message/fusion/lsi/mpi_init.h
index c1c678989a2..ec9dff2249a 100644
--- a/drivers/message/fusion/lsi/mpi_init.h
+++ b/drivers/message/fusion/lsi/mpi_init.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2000-2005 LSI Logic Corporation. 2 * Copyright (c) 2000-2006 LSI Logic Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi_init.h 5 * Name: mpi_init.h
6 * Title: MPI initiator mode messages and structures 6 * Title: MPI initiator mode messages and structures
7 * Creation Date: June 8, 2000 7 * Creation Date: June 8, 2000
8 * 8 *
9 * mpi_init.h Version: 01.05.07 9 * mpi_init.h Version: 01.05.08
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -53,6 +53,7 @@
53 * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them 53 * 08-03-05 01.05.06 Fixed some MPI_SCSIIO32_MSGFLGS_ defines to make them
54 * unique in the first 32 characters. 54 * unique in the first 32 characters.
55 * 03-27-06 01.05.07 Added Task Management type of Clear ACA. 55 * 03-27-06 01.05.07 Added Task Management type of Clear ACA.
56 * 10-11-06 01.05.08 Shortened define for Task Management type of Clear ACA.
56 * -------------------------------------------------------------------------- 57 * --------------------------------------------------------------------------
57 */ 58 */
58 59
@@ -428,7 +429,7 @@ typedef struct _MSG_SCSI_TASK_MGMT
428#define MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET (0x05) 429#define MPI_SCSITASKMGMT_TASKTYPE_LOGICAL_UNIT_RESET (0x05)
429#define MPI_SCSITASKMGMT_TASKTYPE_CLEAR_TASK_SET (0x06) 430#define MPI_SCSITASKMGMT_TASKTYPE_CLEAR_TASK_SET (0x06)
430#define MPI_SCSITASKMGMT_TASKTYPE_QUERY_TASK (0x07) 431#define MPI_SCSITASKMGMT_TASKTYPE_QUERY_TASK (0x07)
431#define MPI_SCSITASKMGMT_TASKTYPE_CLEAR_ACA (0x08) 432#define MPI_SCSITASKMGMT_TASKTYPE_CLR_ACA (0x08)
432 433
433/* MsgFlags bits */ 434/* MsgFlags bits */
434#define MPI_SCSITASKMGMT_MSGFLAGS_TARGET_RESET_OPTION (0x00) 435#define MPI_SCSITASKMGMT_MSGFLAGS_TARGET_RESET_OPTION (0x00)
diff --git a/drivers/message/fusion/lsi/mpi_ioc.h b/drivers/message/fusion/lsi/mpi_ioc.h
index 18ba407fd39..6c33e335337 100644
--- a/drivers/message/fusion/lsi/mpi_ioc.h
+++ b/drivers/message/fusion/lsi/mpi_ioc.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2000-2005 LSI Logic Corporation. 2 * Copyright (c) 2000-2006 LSI Logic Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi_ioc.h 5 * Name: mpi_ioc.h
6 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages 6 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
7 * Creation Date: August 11, 2000 7 * Creation Date: August 11, 2000
8 * 8 *
9 * mpi_ioc.h Version: 01.05.11 9 * mpi_ioc.h Version: 01.05.12
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -98,6 +98,14 @@
98 * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event 98 * Added MPI_EVENT_SAS_INIT_TABLE_OVERFLOW and event
99 * data structure. 99 * data structure.
100 * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION. 100 * Added MPI_EXT_IMAGE_TYPE_INITIALIZATION.
101 * 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED.
102 * Added MaxInitiators field to PortFacts reply.
103 * Added SAS Device Status Change ReasonCode for
104 * asynchronous notificaiton.
105 * Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event
106 * data structure.
107 * Added new ImageType values for FWDownload and FWUpload
108 * requests.
101 * -------------------------------------------------------------------------- 109 * --------------------------------------------------------------------------
102 */ 110 */
103 111
@@ -264,6 +272,7 @@ typedef struct _MSG_IOC_FACTS_REPLY
264#define MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002) 272#define MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002)
265#define MPI_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0004) 273#define MPI_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0004)
266#define MPI_IOCFACTS_EXCEPT_PERSISTENT_TABLE_FULL (0x0008) 274#define MPI_IOCFACTS_EXCEPT_PERSISTENT_TABLE_FULL (0x0008)
275#define MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED (0x0010)
267 276
268#define MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT (0x01) 277#define MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT (0x01)
269#define MPI_IOCFACTS_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02) 278#define MPI_IOCFACTS_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02)
@@ -328,7 +337,8 @@ typedef struct _MSG_PORT_FACTS_REPLY
328 U16 MaxPostedCmdBuffers; /* 1Ch */ 337 U16 MaxPostedCmdBuffers; /* 1Ch */
329 U16 MaxPersistentIDs; /* 1Eh */ 338 U16 MaxPersistentIDs; /* 1Eh */
330 U16 MaxLanBuckets; /* 20h */ 339 U16 MaxLanBuckets; /* 20h */
331 U16 Reserved4; /* 22h */ 340 U8 MaxInitiators; /* 22h */
341 U8 Reserved4; /* 23h */
332 U32 Reserved5; /* 24h */ 342 U32 Reserved5; /* 24h */
333} MSG_PORT_FACTS_REPLY, MPI_POINTER PTR_MSG_PORT_FACTS_REPLY, 343} MSG_PORT_FACTS_REPLY, MPI_POINTER PTR_MSG_PORT_FACTS_REPLY,
334 PortFactsReply_t, MPI_POINTER pPortFactsReply_t; 344 PortFactsReply_t, MPI_POINTER pPortFactsReply_t;
@@ -487,6 +497,7 @@ typedef struct _MSG_EVENT_ACK_REPLY
487#define MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE (0x00000018) 497#define MPI_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE (0x00000018)
488#define MPI_EVENT_SAS_INIT_TABLE_OVERFLOW (0x00000019) 498#define MPI_EVENT_SAS_INIT_TABLE_OVERFLOW (0x00000019)
489#define MPI_EVENT_SAS_SMP_ERROR (0x0000001A) 499#define MPI_EVENT_SAS_SMP_ERROR (0x0000001A)
500#define MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE (0x0000001B)
490#define MPI_EVENT_LOG_ENTRY_ADDED (0x00000021) 501#define MPI_EVENT_LOG_ENTRY_ADDED (0x00000021)
491 502
492/* AckRequired field values */ 503/* AckRequired field values */
@@ -593,6 +604,7 @@ typedef struct _EVENT_DATA_SAS_DEVICE_STATUS_CHANGE
593#define MPI_EVENT_SAS_DEV_STAT_RC_ABORT_TASK_SET_INTERNAL (0x0A) 604#define MPI_EVENT_SAS_DEV_STAT_RC_ABORT_TASK_SET_INTERNAL (0x0A)
594#define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) 605#define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B)
595#define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) 606#define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C)
607#define MPI_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D)
596 608
597 609
598/* SCSI Event data for Queue Full event */ 610/* SCSI Event data for Queue Full event */
@@ -895,6 +907,54 @@ typedef struct _EVENT_DATA_SAS_INIT_TABLE_OVERFLOW
895 MpiEventDataSasInitTableOverflow_t, 907 MpiEventDataSasInitTableOverflow_t,
896 MPI_POINTER pMpiEventDataSasInitTableOverflow_t; 908 MPI_POINTER pMpiEventDataSasInitTableOverflow_t;
897 909
910/* SAS Expander Status Change Event data */
911
912typedef struct _EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE
913{
914 U8 ReasonCode; /* 00h */
915 U8 Reserved1; /* 01h */
916 U16 Reserved2; /* 02h */
917 U8 PhysicalPort; /* 04h */
918 U8 Reserved3; /* 05h */
919 U16 EnclosureHandle; /* 06h */
920 U64 SASAddress; /* 08h */
921 U32 DiscoveryStatus; /* 10h */
922 U16 DevHandle; /* 14h */
923 U16 ParentDevHandle; /* 16h */
924 U16 ExpanderChangeCount; /* 18h */
925 U16 ExpanderRouteIndexes; /* 1Ah */
926 U8 NumPhys; /* 1Ch */
927 U8 SASLevel; /* 1Dh */
928 U8 Flags; /* 1Eh */
929 U8 Reserved4; /* 1Fh */
930} EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE,
931 MPI_POINTER PTR_EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE,
932 MpiEventDataSasExpanderStatusChange_t,
933 MPI_POINTER pMpiEventDataSasExpanderStatusChange_t;
934
935/* values for ReasonCode field of SAS Expander Status Change Event data */
936#define MPI_EVENT_SAS_EXP_RC_ADDED (0x00)
937#define MPI_EVENT_SAS_EXP_RC_NOT_RESPONDING (0x01)
938
939/* values for DiscoveryStatus field of SAS Expander Status Change Event data */
940#define MPI_EVENT_SAS_EXP_DS_LOOP_DETECTED (0x00000001)
941#define MPI_EVENT_SAS_EXP_DS_UNADDRESSABLE_DEVICE (0x00000002)
942#define MPI_EVENT_SAS_EXP_DS_MULTIPLE_PORTS (0x00000004)
943#define MPI_EVENT_SAS_EXP_DS_EXPANDER_ERR (0x00000008)
944#define MPI_EVENT_SAS_EXP_DS_SMP_TIMEOUT (0x00000010)
945#define MPI_EVENT_SAS_EXP_DS_OUT_ROUTE_ENTRIES (0x00000020)
946#define MPI_EVENT_SAS_EXP_DS_INDEX_NOT_EXIST (0x00000040)
947#define MPI_EVENT_SAS_EXP_DS_SMP_FUNCTION_FAILED (0x00000080)
948#define MPI_EVENT_SAS_EXP_DS_SMP_CRC_ERROR (0x00000100)
949#define MPI_EVENT_SAS_EXP_DS_SUBTRACTIVE_LINK (0x00000200)
950#define MPI_EVENT_SAS_EXP_DS_TABLE_LINK (0x00000400)
951#define MPI_EVENT_SAS_EXP_DS_UNSUPPORTED_DEVICE (0x00000800)
952
953/* values for Flags field of SAS Expander Status Change Event data */
954#define MPI_EVENT_SAS_EXP_FLAGS_ROUTE_TABLE_CONFIG (0x02)
955#define MPI_EVENT_SAS_EXP_FLAGS_CONFIG_IN_PROGRESS (0x01)
956
957
898 958
899/***************************************************************************** 959/*****************************************************************************
900* 960*
@@ -926,6 +986,10 @@ typedef struct _MSG_FW_DOWNLOAD
926#define MPI_FW_DOWNLOAD_ITYPE_BIOS (0x02) 986#define MPI_FW_DOWNLOAD_ITYPE_BIOS (0x02)
927#define MPI_FW_DOWNLOAD_ITYPE_NVDATA (0x03) 987#define MPI_FW_DOWNLOAD_ITYPE_NVDATA (0x03)
928#define MPI_FW_DOWNLOAD_ITYPE_BOOTLOADER (0x04) 988#define MPI_FW_DOWNLOAD_ITYPE_BOOTLOADER (0x04)
989#define MPI_FW_DOWNLOAD_ITYPE_MANUFACTURING (0x06)
990#define MPI_FW_DOWNLOAD_ITYPE_CONFIG_1 (0x07)
991#define MPI_FW_DOWNLOAD_ITYPE_CONFIG_2 (0x08)
992#define MPI_FW_DOWNLOAD_ITYPE_MEGARAID (0x09)
929 993
930 994
931typedef struct _FWDownloadTCSGE 995typedef struct _FWDownloadTCSGE
@@ -980,6 +1044,11 @@ typedef struct _MSG_FW_UPLOAD
980#define MPI_FW_UPLOAD_ITYPE_NVDATA (0x03) 1044#define MPI_FW_UPLOAD_ITYPE_NVDATA (0x03)
981#define MPI_FW_UPLOAD_ITYPE_BOOTLOADER (0x04) 1045#define MPI_FW_UPLOAD_ITYPE_BOOTLOADER (0x04)
982#define MPI_FW_UPLOAD_ITYPE_FW_BACKUP (0x05) 1046#define MPI_FW_UPLOAD_ITYPE_FW_BACKUP (0x05)
1047#define MPI_FW_UPLOAD_ITYPE_MANUFACTURING (0x06)
1048#define MPI_FW_UPLOAD_ITYPE_CONFIG_1 (0x07)
1049#define MPI_FW_UPLOAD_ITYPE_CONFIG_2 (0x08)
1050#define MPI_FW_UPLOAD_ITYPE_MEGARAID (0x09)
1051#define MPI_FW_UPLOAD_ITYPE_COMPLETE (0x0A)
983 1052
984typedef struct _FWUploadTCSGE 1053typedef struct _FWUploadTCSGE
985{ 1054{
diff --git a/drivers/message/fusion/lsi/mpi_log_sas.h b/drivers/message/fusion/lsi/mpi_log_sas.h
index 871ebc08b70..635bbe04513 100644
--- a/drivers/message/fusion/lsi/mpi_log_sas.h
+++ b/drivers/message/fusion/lsi/mpi_log_sas.h
@@ -1,4 +1,3 @@
1
2/*************************************************************************** 1/***************************************************************************
3 * * 2 * *
4 * Copyright 2003 LSI Logic Corporation. All rights reserved. * 3 * Copyright 2003 LSI Logic Corporation. All rights reserved. *
@@ -14,7 +13,7 @@
14#define IOPI_IOCLOGINFO_H_INCLUDED 13#define IOPI_IOCLOGINFO_H_INCLUDED
15 14
16#define SAS_LOGINFO_NEXUS_LOSS 0x31170000 15#define SAS_LOGINFO_NEXUS_LOSS 0x31170000
17#define SAS_LOGINFO_MASK 0xFFFF0000 16#define SAS_LOGINFO_MASK 0xFFFF0000
18 17
19/****************************************************************************/ 18/****************************************************************************/
20/* IOC LOGINFO defines, 0x00000000 - 0x0FFFFFFF */ 19/* IOC LOGINFO defines, 0x00000000 - 0x0FFFFFFF */
@@ -43,129 +42,172 @@
43/****************************************************************************/ 42/****************************************************************************/
44/* IOP LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = IOP */ 43/* IOP LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = IOP */
45/****************************************************************************/ 44/****************************************************************************/
46#define IOP_LOGINFO_CODE_INVALID_SAS_ADDRESS (0x00010000) 45#define IOP_LOGINFO_CODE_INVALID_SAS_ADDRESS (0x00010000)
47#define IOP_LOGINFO_CODE_UNUSED2 (0x00020000) 46#define IOP_LOGINFO_CODE_UNUSED2 (0x00020000)
48#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x00030000) 47#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x00030000)
49#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_RT (0x00030100) /* Route Table Entry not found */ 48#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_RT (0x00030100) /* Route Table Entry not found */
50#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PN (0x00030200) /* Invalid Page Number */ 49#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PN (0x00030200) /* Invalid Page Number */
51#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x00030300) /* Invalid FORM */ 50#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x00030300) /* Invalid FORM */
52#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x00030400) /* Invalid Page Type */ 51#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x00030400) /* Invalid Page Type */
53#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DNM (0x00030500) /* Device Not Mapped */ 52#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DNM (0x00030500) /* Device Not Mapped */
54#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PERSIST (0x00030600) /* Persistent Page not found */ 53#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_PERSIST (0x00030600) /* Persistent Page not found */
55#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DEFAULT (0x00030700) /* Default Page not found */ 54#define IOP_LOGINFO_CODE_CONFIG_INVALID_PAGE_DEFAULT (0x00030700) /* Default Page not found */
56 55
57#define IOP_LOGINFO_CODE_DIAG_MSG_ERROR (0x00040000) /* Error handling diag msg - or'd with diag status */ 56#define IOP_LOGINFO_CODE_FWUPLOAD_NO_FLASH_AVAILABLE (0x0003E000) /* Tried to upload from flash, but there is none */
58 57#define IOP_LOGINFO_CODE_FWUPLOAD_UNKNOWN_IMAGE_TYPE (0x0003E001) /* ImageType field contents were invalid */
59#define IOP_LOGINFO_CODE_TASK_TERMINATED (0x00050000) 58#define IOP_LOGINFO_CODE_FWUPLOAD_WRONG_IMAGE_SIZE (0x0003E002) /* ImageSize field in TCSGE was bad/offset in MfgPg 4 was wrong */
60 59#define IOP_LOGINFO_CODE_FWUPLOAD_ENTIRE_FLASH_UPLOAD_FAILED (0x0003E003) /* Error occured while attempting to upload the entire flash */
61#define IOP_LOGINFO_CODE_ENCL_MGMT_READ_ACTION_ERR0R (0x00060001) /* Read Action not supported for SEP msg */ 60#define IOP_LOGINFO_CODE_FWUPLOAD_REGION_UPLOAD_FAILED (0x0003E004) /* Error occured while attempting to upload single flash region */
62#define IOP_LOGINFO_CODE_ENCL_MGMT_INVALID_BUS_ID_ERR0R (0x00060002) /* Invalid Bus/ID in SEP msg */ 61#define IOP_LOGINFO_CODE_FWUPLOAD_DMA_FAILURE (0x0003E005) /* Problem occured while DMAing FW to host memory */
63 62
64#define IOP_LOGINFO_CODE_TARGET_ASSIST_TERMINATED (0x00070001) 63#define IOP_LOGINFO_CODE_DIAG_MSG_ERROR (0x00040000) /* Error handling diag msg - or'd with diag status */
65#define IOP_LOGINFO_CODE_TARGET_STATUS_SEND_TERMINATED (0x00070002) 64
66#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_ALL_IO (0x00070003) 65#define IOP_LOGINFO_CODE_TASK_TERMINATED (0x00050000)
67#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004) 66
68#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005) 67#define IOP_LOGINFO_CODE_ENCL_MGMT_READ_ACTION_ERR0R (0x00060001) /* Read Action not supported for SEP msg */
68#define IOP_LOGINFO_CODE_ENCL_MGMT_INVALID_BUS_ID_ERR0R (0x00060002) /* Invalid Bus/ID in SEP msg */
69
70#define IOP_LOGINFO_CODE_TARGET_ASSIST_TERMINATED (0x00070001)
71#define IOP_LOGINFO_CODE_TARGET_STATUS_SEND_TERMINATED (0x00070002)
72#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_ALL_IO (0x00070003)
73#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004)
74#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005)
69 75
70/****************************************************************************/ 76/****************************************************************************/
71/* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */ 77/* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */
72/****************************************************************************/ 78/****************************************************************************/
73#define PL_LOGINFO_CODE_OPEN_FAILURE (0x00010000) 79#define PL_LOGINFO_CODE_OPEN_FAILURE (0x00010000) /* see SUB_CODE_OPEN_FAIL_ below */
74#define PL_LOG_INFO_CODE_OPEN_FAILURE_NO_DEST_TIME_OUT (0x00010001) 80
75#define PL_LOGINFO_CODE_OPEN_FAILURE_BAD_DESTINATION (0x00010011) 81#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_NO_DEST_TIME_OUT (0x00000001)
76#define PL_LOGINFO_CODE_OPEN_FAILURE_PROTOCOL_NOT_SUPPORTED (0x00010013) 82#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PATHWAY_BLOCKED (0x00000002)
77#define PL_LOGINFO_CODE_OPEN_FAILURE_STP_RESOURCES_BSY (0x00010018) 83#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_CONTINUE0 (0x00000003)
78#define PL_LOGINFO_CODE_OPEN_FAILURE_WRONG_DESTINATION (0x00010019) 84#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_CONTINUE1 (0x00000004)
79#define PL_LOGINFO_CODE_OPEN_FAILURE_ORR_TIMEOUT (0X0001001A) 85#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_INITIALIZE0 (0x00000005)
80#define PL_LOGINFO_CODE_OPEN_FAILURE_PATHWAY_BLOCKED (0x0001001B) 86#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_INITIALIZE1 (0x00000006)
81#define PL_LOGINFO_CODE_OPEN_FAILURE_AWT_MAXED (0x0001001C) 87#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_STOP0 (0x00000007)
82#define PL_LOGINFO_CODE_INVALID_SGL (0x00020000) 88#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RES_STOP1 (0x00000008)
83#define PL_LOGINFO_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00030000) 89#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RETRY (0x00000009)
84#define PL_LOGINFO_CODE_FRAME_XFER_ERROR (0x00040000) 90#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_BREAK (0x0000000A)
85#define PL_LOGINFO_CODE_TX_FM_CONNECTED_LOW (0x00050000) 91#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0B (0x0000000B)
86#define PL_LOGINFO_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00060000) 92#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_OPEN_TIMEOUT_EXP (0x0000000C)
87#define PL_LOGINFO_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00070000) 93#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0D (0x0000000D)
88#define PL_LOGINFO_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00080000) 94#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_DVTBLE_ACCSS_FAIL (0x0000000E)
89#define PL_LOGINFO_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00090000) 95#define PL_LOGINFO_SUB CODE_OPEN_FAIL_BAD_DEST (0x00000011)
90#define PL_LOGINFO_CODE_RX_FM_INVALID_MESSAGE (0x000A0000) 96#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RATE_NOT_SUPP (0x00000012)
91#define PL_LOGINFO_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x000B0000) 97#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PROT_NOT_SUPP (0x00000013)
92#define PL_LOGINFO_CODE_RX_FM_CURRENT_FRAME_ERROR (0x000C0000) 98#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON0 (0x00000014)
93#define PL_LOGINFO_CODE_SATA_LINK_DOWN (0x000D0000) 99#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON1 (0x00000015)
94#define PL_LOGINFO_CODE_DISCOVERY_SATA_INIT_W_IOS (0x000E0000) 100#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON2 (0x00000016)
95#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x000F0000) 101#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON3 (0x00000017)
96#define PL_LOGINFO_CODE_CONFIG_PL_NOT_INITIALIZED (0x000F0001) /* PL not yet initialized, can't do config page req. */ 102#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_STP_RESOURCES_BSY (0x00000018)
97#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x000F0100) /* Invalid Page Type */ 103#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_WRONG_DESTINATION (0x00000019)
98#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NUM_PHYS (0x000F0200) /* Invalid Number of Phys */ 104
99#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NOT_IMP (0x000F0300) /* Case Not Handled */ 105#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PATH_BLOCKED (0x0000001B) /* Retry Timeout */
100#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_DEV (0x000F0400) /* No Device Found */ 106#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_AWT_MAXED (0x0000001C) /* Retry Timeout */
101#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x000F0500) /* Invalid FORM */ 107
102#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PHY (0x000F0600) /* Invalid Phy */ 108
103#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_OWNER (0x000F0700) /* No Owner Found */ 109
104#define PL_LOGINFO_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00100000) 110#define PL_LOGINFO_CODE_INVALID_SGL (0x00020000)
105#define PL_LOGINFO_CODE_RESET (0x00110000) /* See Sub-Codes below */ 111#define PL_LOGINFO_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00030000)
106#define PL_LOGINFO_CODE_ABORT (0x00120000) /* See Sub-Codes below */ 112#define PL_LOGINFO_CODE_FRAME_XFER_ERROR (0x00040000)
107#define PL_LOGINFO_CODE_IO_NOT_YET_EXECUTED (0x00130000) 113#define PL_LOGINFO_CODE_TX_FM_CONNECTED_LOW (0x00050000)
108#define PL_LOGINFO_CODE_IO_EXECUTED (0x00140000) 114#define PL_LOGINFO_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00060000)
109#define PL_LOGINFO_CODE_PERS_RESV_OUT_NOT_AFFIL_OWNER (0x00150000) 115#define PL_LOGINFO_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00070000)
110#define PL_LOGINFO_CODE_OPEN_TXDMA_ABORT (0x00160000) 116#define PL_LOGINFO_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00080000)
111#define PL_LOGINFO_CODE_IO_DEVICE_MISSING_DELAY_RETRY (0x00170000) 117#define PL_LOGINFO_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00090000)
112#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE (0x00000100) 118#define PL_LOGINFO_CODE_RX_FM_INVALID_MESSAGE (0x000A0000)
113#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_NO_DEST_TIMEOUT (0x00000101) 119#define PL_LOGINFO_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x000B0000)
114#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ORR_TIMEOUT (0x0000011A) /* Open Reject (Retry) Timeout */ 120#define PL_LOGINFO_CODE_RX_FM_CURRENT_FRAME_ERROR (0x000C0000)
115#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_PATHWAY_BLOCKED (0x0000011B) 121#define PL_LOGINFO_CODE_SATA_LINK_DOWN (0x000D0000)
116#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_AWT_MAXED (0x0000011C) /* Arbitration Wait Timer Maxed */ 122#define PL_LOGINFO_CODE_DISCOVERY_SATA_INIT_W_IOS (0x000E0000)
117 123#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE (0x000F0000)
118#define PL_LOGINFO_SUB_CODE_TARGET_BUS_RESET (0x00000120) 124#define PL_LOGINFO_CODE_CONFIG_PL_NOT_INITIALIZED (0x000F0001) /* PL not yet initialized, can't do config page req. */
119#define PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER (0x00000130) /* Leave lower nibble (1-f) reserved. */ 125#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PT (0x000F0100) /* Invalid Page Type */
120#define PL_LOGINFO_SUB_CODE_PORT_LAYER (0x00000140) /* Leave lower nibble (1-f) reserved. */ 126#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NUM_PHYS (0x000F0200) /* Invalid Number of Phys */
121 127#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NOT_IMP (0x000F0300) /* Case Not Handled */
122 128#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_DEV (0x000F0400) /* No Device Found */
123#define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200) 129#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_FORM (0x000F0500) /* Invalid FORM */
124#define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300) 130#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_PHY (0x000F0600) /* Invalid Phy */
125#define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) 131#define PL_LOGINFO_CODE_CONFIG_INVALID_PAGE_NO_OWNER (0x000F0700) /* No Owner Found */
126#define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500) 132#define PL_LOGINFO_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00100000)
127#define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600) 133#define PL_LOGINFO_CODE_RESET (0x00110000) /* See Sub-Codes below (PL_LOGINFO_SUB_CODE) */
128#define PL_LOGINFO_SUB_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00000700) 134#define PL_LOGINFO_CODE_ABORT (0x00120000) /* See Sub-Codes below (PL_LOGINFO_SUB_CODE)*/
129#define PL_LOGINFO_SUB_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00000800) 135#define PL_LOGINFO_CODE_IO_NOT_YET_EXECUTED (0x00130000)
130#define PL_LOGINFO_SUB_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00000900) 136#define PL_LOGINFO_CODE_IO_EXECUTED (0x00140000)
131#define PL_LOGINFO_SUB_CODE_RX_FM_INVALID_MESSAGE (0x00000A00) 137#define PL_LOGINFO_CODE_PERS_RESV_OUT_NOT_AFFIL_OWNER (0x00150000)
132#define PL_LOGINFO_SUB_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x00000B00) 138#define PL_LOGINFO_CODE_OPEN_TXDMA_ABORT (0x00160000)
133#define PL_LOGINFO_SUB_CODE_RX_FM_CURRENT_FRAME_ERROR (0x00000C00) 139#define PL_LOGINFO_CODE_IO_DEVICE_MISSING_DELAY_RETRY (0x00170000)
134#define PL_LOGINFO_SUB_CODE_SATA_LINK_DOWN (0x00000D00) 140#define PL_LOGINFO_CODE_IO_CANCELLED_DUE_TO_R_ERR (0x00180000)
135#define PL_LOGINFO_SUB_CODE_DISCOVERY_SATA_INIT_W_IOS (0x00000E00) 141#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE (0x00000100)
136#define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01) 142#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_NO_DEST_TIMEOUT (0x00000101)
137#define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00) 143#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_SATA_NEG_RATE_2HI (0x00000102)
138#define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000) 144#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_RATE_NOT_SUPPORTED (0x00000103)
139 145#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_BREAK (0x00000104)
140 146#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ZONE_VIOLATION (0x00000114)
141#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */ 147#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON0 (0x00000114) /* Open Reject (Zone Violation) - available on SAS-2 devices */
142#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */ 148#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON1 (0x00000115)
143#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR (0x00200020) /* Error occured on SMP Write */ 149#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON2 (0x00000116)
144#define PL_LOGINFO_CODE_ENCL_MGMT_NOT_SUPPORTED_ON_ENCL (0x00200040) /* Encl Mgmt services not available for this WWID */ 150#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ABANDON3 (0x00000117)
145#define PL_LOGINFO_CODE_ENCL_MGMT_ADDR_MODE_NOT_SUPPORTED (0x00200050) /* Address Mode not suppored */ 151#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_ORR_TIMEOUT (0x0000011A) /* Open Reject (Retry) Timeout */
146#define PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM (0x00200060) /* Invalid Slot Number in SEP Msg */ 152#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_PATH_BLOCKED (0x0000011B)
147#define PL_LOGINFO_CODE_ENCL_MGMT_SGPIO_NOT_PRESENT (0x00200070) /* SGPIO not present/enabled */ 153#define PL_LOGINFO_SUB_CODE_OPEN_FAILURE_AWT_MAXED (0x0000011C) /* Arbitration Wait Timer Maxed */
148#define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_NOT_CONFIGURED (0x00200080) /* GPIO not configured */ 154
149#define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_FRAME_ERROR (0x00200090) /* GPIO can't allocate a frame */ 155#define PL_LOGINFO_SUB_CODE_TARGET_BUS_RESET (0x00000120)
150#define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_CONFIG_PAGE_ERROR (0x002000A0) /* GPIO failed config page request */ 156#define PL_LOGINFO_SUB_CODE_TRANSPORT_LAYER (0x00000130) /* Leave lower nibble (1-f) reserved. */
151#define PL_LOGINFO_CODE_ENCL_MGMT_SES_FRAME_ALLOC_ERROR (0x002000B0) /* Can't get frame for SES command */ 157#define PL_LOGINFO_SUB_CODE_PORT_LAYER (0x00000140) /* Leave lower nibble (1-f) reserved. */
152#define PL_LOGINFO_CODE_ENCL_MGMT_SES_IO_ERROR (0x002000C0) /* I/O execution error */ 158
153#define PL_LOGINFO_CODE_ENCL_MGMT_SES_RETRIES_EXHAUSTED (0x002000D0) /* SEP I/O retries exhausted */ 159
154#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_ALLOC_ERROR (0x002000E0) /* Can't get frame for SMP command */ 160#define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200)
155 161#define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300)
156#define PL_LOGINFO_DA_SEP_NOT_PRESENT (0x00200100) /* SEP not present when msg received */ 162#define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) /* Bits 0-3 encode Transport Status Register (offset 0x08) */
157#define PL_LOGINFO_DA_SEP_SINGLE_THREAD_ERROR (0x00200101) /* Can only accept 1 msg at a time */ 163 /* Bit 0 is Status Bit 0: FrameXferErr */
158#define PL_LOGINFO_DA_SEP_ISTWI_INTR_IN_IDLE_STATE (0x00200102) /* ISTWI interrupt recvd. while IDLE */ 164 /* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */
159#define PL_LOGINFO_DA_SEP_RECEIVED_NACK_FROM_SLAVE (0x00200103) /* SEP NACK'd, it is busy */ 165 /* Bit 3 is Status Bit 18 WriteDataLenghtGTDataLengthErr */
160#define PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK (0x00200104) /* SEP didn't rcv. ACK (Last Rcvd Bit = 1) */ 166
161#define PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM (0x00200105) /* SEP stopped or sent bad chksum in Hdr */ 167#define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500)
162#define PL_LOGINFO_DA_SEP_STOP_ON_DATA (0x00200106) /* SEP stopped while transfering data */ 168#define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600)
163#define PL_LOGINFO_DA_SEP_STOP_ON_SENSE_DATA (0x00200107) /* SEP stopped while transfering sense data */ 169#define PL_LOGINFO_SUB_CODE_SATA_READ_LOG_RECEIVE_DATA_ERR (0x00000700)
164#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_1 (0x00200108) /* SEP returned unknown scsi status */ 170#define PL_LOGINFO_SUB_CODE_SATA_NCQ_FAIL_ALL_CMDS_AFTR_ERR (0x00000800)
165#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_2 (0x00200109) /* SEP returned unknown scsi status */ 171#define PL_LOGINFO_SUB_CODE_SATA_ERR_IN_RCV_SET_DEV_BIT_FIS (0x00000900)
166#define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP (0x0020010A) /* SEP returned bad chksum after STOP */ 172#define PL_LOGINFO_SUB_CODE_RX_FM_INVALID_MESSAGE (0x00000A00)
167#define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP_GETDATA (0x0020010B) /* SEP returned bad chksum after STOP while gettin data*/ 173#define PL_LOGINFO_SUB_CODE_RX_CTX_MESSAGE_VALID_ERROR (0x00000B00)
168#define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND (0x0020010C) /* SEP doesn't support CDB opcode */ 174#define PL_LOGINFO_SUB_CODE_RX_FM_CURRENT_FRAME_ERROR (0x00000C00)
175#define PL_LOGINFO_SUB_CODE_SATA_LINK_DOWN (0x00000D00)
176#define PL_LOGINFO_SUB_CODE_DISCOVERY_SATA_INIT_W_IOS (0x00000E00)
177#define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01)
178#define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00)
179#define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000)
180
181#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */
182#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */
183#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR (0x00200020) /* Error occured on SMP Write */
184#define PL_LOGINFO_CODE_ENCL_MGMT_NOT_SUPPORTED_ON_ENCL (0x00200040) /* Encl Mgmt services not available for this WWID */
185#define PL_LOGINFO_CODE_ENCL_MGMT_ADDR_MODE_NOT_SUPPORTED (0x00200050) /* Address Mode not suppored */
186#define PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM (0x00200060) /* Invalid Slot Number in SEP Msg */
187#define PL_LOGINFO_CODE_ENCL_MGMT_SGPIO_NOT_PRESENT (0x00200070) /* SGPIO not present/enabled */
188#define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_NOT_CONFIGURED (0x00200080) /* GPIO not configured */
189#define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_FRAME_ERROR (0x00200090) /* GPIO can't allocate a frame */
190#define PL_LOGINFO_CODE_ENCL_MGMT_GPIO_CONFIG_PAGE_ERROR (0x002000A0) /* GPIO failed config page request */
191#define PL_LOGINFO_CODE_ENCL_MGMT_SES_FRAME_ALLOC_ERROR (0x002000B0) /* Can't get frame for SES command */
192#define PL_LOGINFO_CODE_ENCL_MGMT_SES_IO_ERROR (0x002000C0) /* I/O execution error */
193#define PL_LOGINFO_CODE_ENCL_MGMT_SES_RETRIES_EXHAUSTED (0x002000D0) /* SEP I/O retries exhausted */
194#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_ALLOC_ERROR (0x002000E0) /* Can't get frame for SMP command */
195
196#define PL_LOGINFO_DA_SEP_NOT_PRESENT (0x00200100) /* SEP not present when msg received */
197#define PL_LOGINFO_DA_SEP_SINGLE_THREAD_ERROR (0x00200101) /* Can only accept 1 msg at a time */
198#define PL_LOGINFO_DA_SEP_ISTWI_INTR_IN_IDLE_STATE (0x00200102) /* ISTWI interrupt recvd. while IDLE */
199#define PL_LOGINFO_DA_SEP_RECEIVED_NACK_FROM_SLAVE (0x00200103) /* SEP NACK'd, it is busy */
200#define PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK (0x00200104) /* SEP didn't rcv. ACK (Last Rcvd Bit = 1) */
201#define PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM (0x00200105) /* SEP stopped or sent bad chksum in Hdr */
202#define PL_LOGINFO_DA_SEP_STOP_ON_DATA (0x00200106) /* SEP stopped while transfering data */
203#define PL_LOGINFO_DA_SEP_STOP_ON_SENSE_DATA (0x00200107) /* SEP stopped while transfering sense data */
204#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_1 (0x00200108) /* SEP returned unknown scsi status */
205#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_2 (0x00200109) /* SEP returned unknown scsi status */
206#define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP (0x0020010A) /* SEP returned bad chksum after STOP */
207#define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP_GETDATA (0x0020010B) /* SEP returned bad chksum after STOP while gettin data*/
208#define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND (0x0020010C) /* SEP doesn't support CDB opcode f/w location 1 */
209#define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND_2 (0x0020010D) /* SEP doesn't support CDB opcode f/w location 2 */
210#define PL_LOGINFO_DA_SEP_UNSUPPORTED_COMMAND_3 (0x0020010E) /* SEP doesn't support CDB opcode f/w location 3 */
169 211
170 212
171/****************************************************************************/ 213/****************************************************************************/
diff --git a/drivers/message/fusion/lsi/mpi_sas.h b/drivers/message/fusion/lsi/mpi_sas.h
index 50b8f0a8f45..8e990a0fa7a 100644
--- a/drivers/message/fusion/lsi/mpi_sas.h
+++ b/drivers/message/fusion/lsi/mpi_sas.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2004 LSI Logic Corporation. 2 * Copyright (c) 2004-2006 LSI Logic Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi_sas.h 5 * Name: mpi_sas.h
6 * Title: MPI Serial Attached SCSI structures and definitions 6 * Title: MPI Serial Attached SCSI structures and definitions
7 * Creation Date: August 19, 2004 7 * Creation Date: August 19, 2004
8 * 8 *
9 * mpi_sas.h Version: 01.05.03 9 * mpi_sas.h Version: 01.05.04
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -21,6 +21,8 @@
21 * and Remove Device operations to SAS IO Unit Control. 21 * and Remove Device operations to SAS IO Unit Control.
22 * Added DevHandle field to SAS IO Unit Control request and 22 * Added DevHandle field to SAS IO Unit Control request and
23 * reply. 23 * reply.
24 * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO
25 * Unit Control request.
24 * -------------------------------------------------------------------------- 26 * --------------------------------------------------------------------------
25 */ 27 */
26 28
@@ -237,7 +239,8 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST
237#define MPI_SAS_OP_SEND_PRIMITIVE (0x0A) 239#define MPI_SAS_OP_SEND_PRIMITIVE (0x0A)
238#define MPI_SAS_OP_FORCE_FULL_DISCOVERY (0x0B) 240#define MPI_SAS_OP_FORCE_FULL_DISCOVERY (0x0B)
239#define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C) 241#define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C)
240#define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) 242#define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */
243#define MPI_SAS_OP_REMOVE_DEVICE (0x0D)
241 244
242/* values for the PrimFlags field */ 245/* values for the PrimFlags field */
243#define MPI_SAS_PRIMFLAGS_SINGLE (0x08) 246#define MPI_SAS_PRIMFLAGS_SINGLE (0x08)