aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message')
-rw-r--r--drivers/message/fusion/Kconfig2
-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
8 files changed, 411 insertions, 181 deletions
diff --git a/drivers/message/fusion/Kconfig b/drivers/message/fusion/Kconfig
index ea31d8470510..71037f91c222 100644
--- a/drivers/message/fusion/Kconfig
+++ b/drivers/message/fusion/Kconfig
@@ -66,7 +66,7 @@ config FUSION_MAX_SGE
66 66
67config FUSION_CTL 67config FUSION_CTL
68 tristate "Fusion MPT misc device (ioctl) driver" 68 tristate "Fusion MPT misc device (ioctl) driver"
69 depends on FUSION_SPI || FUSION_FC 69 depends on FUSION_SPI || FUSION_FC || FUSION_SAS
70 ---help--- 70 ---help---
71 The Fusion MPT misc device driver provides specialized control 71 The Fusion MPT misc device driver provides specialized control
72 of MPT adapters via system ioctl calls. Use of ioctl calls to 72 of MPT adapters via system ioctl calls. Use of ioctl calls to
diff --git a/drivers/message/fusion/lsi/mpi.h b/drivers/message/fusion/lsi/mpi.h
index 81ad77622dac..75223bf24ae8 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 47e13e360c10..0e4c8e77a81d 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 582cfe7c2aa1..d6b4c607453b 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 c1c678989a23..ec9dff2249a7 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 18ba407fd399..6c33e3353375 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 871ebc08b706..635bbe04513e 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 50b8f0a8f456..8e990a0fa7a2 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)