aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2018-03-19 23:21:45 +0000
committerAlexander Motin <mav@FreeBSD.org>2018-03-19 23:21:45 +0000
commit5f5baf0e9697eea27a5a8e77fbdb639397f7f388 (patch)
treea3bd3b375c25e5fe515ef21ad0e11430a0372c5c
parentd6160f60790af6bc33658937daced47f24ac2f85 (diff)
downloadsrc-5f5baf0e9697eea27a5a8e77fbdb639397f7f388.tar.gz
src-5f5baf0e9697eea27a5a8e77fbdb639397f7f388.zip
Update mpr(4) driver from v15 to v18 from Broadcom site.
Version 16 is just a number bump, since we already had those changes. Version 17 introduces new AdapterType value, that allows new user-space tools from Broadcom to differentiate adapter generations 3 and 3.5. Version 18 updates headers and adds SAS_DEVICE_DISCOVERY_ERROR reporting. MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=331228
-rw-r--r--sys/dev/mpr/mpi/mpi2.h6
-rw-r--r--sys/dev/mpr/mpi/mpi2_cnfg.h17
-rw-r--r--sys/dev/mpr/mpi/mpi2_history.txt76
-rw-r--r--sys/dev/mpr/mpi/mpi2_ioc.h40
-rw-r--r--sys/dev/mpr/mpr_ioctl.h3
-rw-r--r--sys/dev/mpr/mpr_sas.c1
-rw-r--r--sys/dev/mpr/mpr_sas_lsi.c35
-rw-r--r--sys/dev/mpr/mpr_user.c5
-rw-r--r--sys/dev/mpr/mprvar.h2
9 files changed, 148 insertions, 37 deletions
diff --git a/sys/dev/mpr/mpi/mpi2.h b/sys/dev/mpr/mpi/mpi2.h
index 2689b5ccdf1e..aac2f70f1b80 100644
--- a/sys/dev/mpr/mpi/mpi2.h
+++ b/sys/dev/mpr/mpi/mpi2.h
@@ -44,7 +44,7 @@
* scatter/gather formats.
* Creation Date: June 21, 2006
*
- * mpi2.h Version: 02.00.46
+ * mpi2.h Version: 02.00.48
*
* NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25
* prefix are for use only on MPI v2.5 products, and must not be used
@@ -151,6 +151,8 @@
* 04-10-16 02.00.44 Bumped MPI2_HEADER_VERSION_UNIT.
* 07-06-16 02.00.45 Bumped MPI2_HEADER_VERSION_UNIT.
* 09-02-16 02.00.46 Bumped MPI2_HEADER_VERSION_UNIT.
+ * 11-23-16 02.00.47 Bumped MPI2_HEADER_VERSION_UNIT.
+ * 02-03-17 02.00.48 Bumped MPI2_HEADER_VERSION_UNIT.
* --------------------------------------------------------------------------
*/
@@ -194,7 +196,7 @@
/* Unit and Dev versioning for this MPI header set */
-#define MPI2_HEADER_VERSION_UNIT (0x2E)
+#define MPI2_HEADER_VERSION_UNIT (0x30)
#define MPI2_HEADER_VERSION_DEV (0x00)
#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00)
#define MPI2_HEADER_VERSION_UNIT_SHIFT (8)
diff --git a/sys/dev/mpr/mpi/mpi2_cnfg.h b/sys/dev/mpr/mpi/mpi2_cnfg.h
index 0595920e2f9d..909b26668cf1 100644
--- a/sys/dev/mpr/mpi/mpi2_cnfg.h
+++ b/sys/dev/mpr/mpi/mpi2_cnfg.h
@@ -42,7 +42,7 @@
* Title: MPI Configuration messages and pages
* Creation Date: November 10, 2006
*
- * mpi2_cnfg.h Version: 02.00.39
+ * mpi2_cnfg.h Version: 02.00.40
*
* NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25
* prefix are for use only on MPI v2.5 products, and must not be used
@@ -255,6 +255,10 @@
* 09-01-16 02.00.39 Added MPI26_CONFIG_PAGE_ENCLOSURE_0 and related defines.
* Added MPI26_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE and
* MPI26_ENCLOS_PGAD_FORM_HANDLE page address formats.
+ * 02-02-17 02.00.40 Added MPI2_MANPAGE7_SLOT_UNKNOWN.
+ * Added ChassisSlot field to SAS Enclosure Page 0.
+ * Added ChassisSlot Valid bit (bit 5) to the Flags field
+ * in SAS Enclosure Page 0.
* --------------------------------------------------------------------------
*/
@@ -853,6 +857,9 @@ typedef struct _MPI2_MANPAGE7_CONNECTOR_INFO
#define MPI2_MANPAGE7_LOCATION_NOT_PRESENT (0x20)
#define MPI2_MANPAGE7_LOCATION_NOT_CONNECTED (0x80)
+/* defines for the Slot field */
+#define MPI2_MANPAGE7_SLOT_UNKNOWN (0xFFFF)
+
/*
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
* one and check the value returned for NumPhys at runtime.
@@ -3092,11 +3099,11 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0
U16 EnclosureHandle; /* 0x16 */
U16 NumSlots; /* 0x18 */
U16 StartSlot; /* 0x1A */
- U8 Reserved2; /* 0x1C */
+ U8 ChassisSlot; /* 0x1C */
U8 EnclosureLevel; /* 0x1D */
U16 SEPDevHandle; /* 0x1E */
- U32 Reserved3; /* 0x20 */
- U32 Reserved4; /* 0x24 */
+ U32 Reserved2; /* 0x20 */
+ U32 Reserved3; /* 0x24 */
} MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0,
MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0,
Mpi2SasEnclosurePage0_t, MPI2_POINTER pMpi2SasEnclosurePage0_t,
@@ -3107,6 +3114,7 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0
#define MPI2_SASENCLOSURE0_PAGEVERSION (0x04)
/* values for SAS Enclosure Page 0 Flags field */
+#define MPI2_SAS_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020)
#define MPI2_SAS_ENCLS0_FLAGS_ENCL_LEVEL_VALID (0x0010)
#define MPI2_SAS_ENCLS0_FLAGS_MNG_MASK (0x000F)
#define MPI2_SAS_ENCLS0_FLAGS_MNG_UNKNOWN (0x0000)
@@ -3119,6 +3127,7 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0
#define MPI26_ENCLOSURE0_PAGEVERSION (0x04)
/* Values for Enclosure Page 0 Flags field */
+#define MPI26_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020)
#define MPI26_ENCLS0_FLAGS_ENCL_LEVEL_VALID (0x0010)
#define MPI26_ENCLS0_FLAGS_MNG_MASK (0x000F)
#define MPI26_ENCLS0_FLAGS_MNG_UNKNOWN (0x0000)
diff --git a/sys/dev/mpr/mpi/mpi2_history.txt b/sys/dev/mpr/mpi/mpi2_history.txt
index 482c7fa35abe..156975337e9f 100644
--- a/sys/dev/mpr/mpi/mpi2_history.txt
+++ b/sys/dev/mpr/mpi/mpi2_history.txt
@@ -41,16 +41,16 @@
All rights reserved.
---------------------------------------
- Header Set Release Version: 02.00.46
- Header Set Release Date: 09-07-16
+ Header Set Release Version: 02.00.48
+ Header Set Release Date: 02-03-17
---------------------------------------
Filename Current version Prior version
---------- --------------- -------------
- mpi2.h 02.00.46 02.00.45
- mpi2_cnfg.h 02.00.39 02.00.38
+ mpi2.h 02.00.48 02.00.47
+ mpi2_cnfg.h 02.00.40 02.00.39
mpi2_init.h 02.00.21 02.00.21
- mpi2_ioc.h 02.00.30 02.00.29
+ mpi2_ioc.h 02.00.32 02.00.31
mpi2_raid.h 02.00.11 02.00.11
mpi2_sas.h 02.00.10 02.00.10
mpi2_targ.h 02.00.09 02.00.09
@@ -59,7 +59,7 @@
mpi2_ra.h 02.00.01 02.00.01
mpi2_hbd.h 02.00.04 02.00.04
mpi2_pci.h 02.00.02 02.00.02
- mpi2_history.txt 02.00.43 02.00.43
+ mpi2_history.txt 02.00.45 02.00.44
* Date Version Description
@@ -161,6 +161,8 @@ mpi2.h
* 04-10-16 02.00.44 Bumped MPI2_HEADER_VERSION_UNIT.
* 07-06-16 02.00.45 Bumped MPI2_HEADER_VERSION_UNIT.
* 09-02-16 02.00.46 Bumped MPI2_HEADER_VERSION_UNIT.
+ * 11-23-16 02.00.47 Bumped MPI2_HEADER_VERSION_UNIT.
+ * 02-03-17 02.00.48 Bumped MPI2_HEADER_VERSION_UNIT.
* --------------------------------------------------------------------------
mpi2_cnfg.h
@@ -363,8 +365,12 @@ mpi2_cnfg.h
* phy data.
* Added InitStatus to PCIe IO Unit Page 1 header.
* 09-01-16 02.00.39 Added MPI26_CONFIG_PAGE_ENCLOSURE_0 and related defines.
- * Added MPI26_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE and
- * MPI26_ENCLOS_PGAD_FORM_HANDLE page address formats.
+ * Added MPI26_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE and
+ * MPI26_ENCLOS_PGAD_FORM_HANDLE page address formats.
+ * 02-02-17 02.00.40 Added MPI2_MANPAGE7_SLOT_UNKNOWN.
+ * Added ChassisSlot field to SAS Enclosure Page 0.
+ * Added ChassisSlot Valid bit (bit 5) to the Flags field
+ * in SAS Enclosure Page 0.
* --------------------------------------------------------------------------
mpi2_init.h
@@ -551,10 +557,15 @@ mpi2_ioc.h
* Request Message.
* Added new values for the RegionType field in the Layout
* Data sections of the FLASH Layout Extended Image Data.
- * Added new defines for the ReasonCode field of
+ * Added new defines for the ReasonCode field of
* Active Cable Exception Event.
- * Added MPI2_EVENT_ENCL_DEVICE_STATUS_CHANGE and
- * MPI26_EVENT_DATA_ENCL_DEV_STATUS_CHANGE.
+ * Added MPI2_EVENT_ENCL_DEVICE_STATUS_CHANGE and
+ * MPI26_EVENT_DATA_ENCL_DEV_STATUS_CHANGE.
+ * 11-23-16 02.00.31 Added MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR and
+ * MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR.
+ * 02-02-17 02.00.32 Added MPI2_FW_DOWNLOAD_ITYPE_CBB_BACKUP.
+ * Added MPI25_EVENT_DATA_ACTIVE_CABLE_EXCEPT and related
+ * defines for the ReasonCode field.
* --------------------------------------------------------------------------
mpi2_raid.h
@@ -676,20 +687,35 @@ mpi2_pci.h
mpi2_history.txt Parts list history
-Filename 02.00.46 02.00.45 02.00.44 02.00.43 02.00.42
----------- -------- -------- -------- -------- --------
-mpi2.h 02.00.46 02.00.45 02.00.44 02.00.43 02.00.42
-mpi2_cnfg.h 02.00.39 02.00.38 02.00.37 02.00.36 02.00.35
-mpi2_init.h 02.00.21 02.00.21 02.00.21 02.00.21 02.00.20
-mpi2_ioc.h 02.00.30 02.00.29 02.00.28 02.00.28 02.00.27
-mpi2_raid.h 02.00.11 02.00.11 02.00.11 02.00.11 02.00.11
-mpi2_sas.h 02.00.10 02.00.10 02.00.10 02.00.10 02.00.10
-mpi2_targ.h 02.00.09 02.00.09 02.00.09 02.00.09 02.00.09
-mpi2_tool.h 02.00.14 02.00.13 02.00.13 02.00.13 02.00.13
-mpi2_type.h 02.00.01 02.00.01 02.00.01 02.00.01 02.00.01
-mpi2_ra.h 02.00.01 02.00.01 02.00.01 02.00.01 02.00.01
-mpi2_hbd.h 02.00.04 02.00.04 02.00.04 02.00.04 02.00.03
-mpi2_pci.h 02.00.02 02.00.02 02.00.01 02.00.01 02.00.00
+Filename 02.00.48
+---------- --------
+mpi2.h 02.00.48
+mpi2_cnfg.h 02.00.40
+mpi2_init.h 02.00.21
+mpi2_ioc.h 02.00.32
+mpi2_raid.h 02.00.11
+mpi2_sas.h 02.00.10
+mpi2_targ.h 02.00.09
+mpi2_tool.h 02.00.14
+mpi2_type.h 02.00.01
+mpi2_ra.h 02.00.01
+mpi2_hbd.h 02.00.04
+mpi2_pci.h 02.00.02
+
+Filename 02.00.47 02.00.46 02.00.45 02.00.44 02.00.43 02.00.42
+---------- -------- -------- -------- -------- -------- --------
+mpi2.h 02.00.47 02.00.46 02.00.45 02.00.44 02.00.43 02.00.42
+mpi2_cnfg.h 02.00.39 02.00.39 02.00.38 02.00.37 02.00.36 02.00.35
+mpi2_init.h 02.00.21 02.00.21 02.00.21 02.00.21 02.00.21 02.00.20
+mpi2_ioc.h 02.00.31 02.00.30 02.00.29 02.00.28 02.00.28 02.00.27
+mpi2_raid.h 02.00.11 02.00.11 02.00.11 02.00.11 02.00.11 02.00.11
+mpi2_sas.h 02.00.10 02.00.10 02.00.10 02.00.10 02.00.10 02.00.10
+mpi2_targ.h 02.00.09 02.00.09 02.00.09 02.00.09 02.00.09 02.00.09
+mpi2_tool.h 02.00.14 02.00.14 02.00.13 02.00.13 02.00.13 02.00.13
+mpi2_type.h 02.00.01 02.00.01 02.00.01 02.00.01 02.00.01 02.00.01
+mpi2_ra.h 02.00.01 02.00.01 02.00.01 02.00.01 02.00.01 02.00.01
+mpi2_hbd.h 02.00.04 02.00.04 02.00.04 02.00.04 02.00.04 02.00.03
+mpi2_pci.h 02.00.02 02.00.02 02.00.02 02.00.01 02.00.01 02.00.00
Filename 02.00.41 02.00.40 02.00.39 02.00.38 02.00.37 02.00.36
---------- -------- -------- -------- -------- -------- --------
diff --git a/sys/dev/mpr/mpi/mpi2_ioc.h b/sys/dev/mpr/mpi/mpi2_ioc.h
index 5e3b7aeb540e..fc4837f29c14 100644
--- a/sys/dev/mpr/mpi/mpi2_ioc.h
+++ b/sys/dev/mpr/mpi/mpi2_ioc.h
@@ -42,7 +42,7 @@
* Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
* Creation Date: October 11, 2006
*
- * mpi2_ioc.h Version: 02.00.30
+ * mpi2_ioc.h Version: 02.00.32
*
* NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25
* prefix are for use only on MPI v2.5 products, and must not be used
@@ -200,6 +200,11 @@
* Active Cable Exception Event.
* Added MPI2_EVENT_ENCL_DEVICE_STATUS_CHANGE and
* MPI26_EVENT_DATA_ENCL_DEV_STATUS_CHANGE.
+ * 11-23-16 02.00.31 Added MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR and
+ * MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR.
+ * 02-02-17 02.00.32 Added MPI2_FW_DOWNLOAD_ITYPE_CBB_BACKUP.
+ * Added MPI25_EVENT_DATA_ACTIVE_CABLE_EXCEPT and related
+ * defines for the ReasonCode field.
* --------------------------------------------------------------------------
*/
@@ -610,6 +615,7 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY
#define MPI2_EVENT_PCIE_TOPOLOGY_CHANGE_LIST (0x0032) /* MPI v2.6 and later */
#define MPI2_EVENT_PCIE_LINK_COUNTER (0x0033) /* MPI v2.6 and later */
#define MPI2_EVENT_ACTIVE_CABLE_EXCEPTION (0x0034) /* MPI v2.6 and later */
+#define MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR (0x0035) /* MPI v2.5 and later */
#define MPI2_EVENT_MIN_PRODUCT_SPECIFIC (0x006E)
#define MPI2_EVENT_MAX_PRODUCT_SPECIFIC (0x007F)
@@ -715,12 +721,21 @@ typedef struct _MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT
U8 ReasonCode; /* 0x04 */
U8 ReceptacleID; /* 0x05 */
U16 Reserved1; /* 0x06 */
-} MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT,
+} MPI25_EVENT_DATA_ACTIVE_CABLE_EXCEPT,
+ MPI2_POINTER PTR_MPI25_EVENT_DATA_ACTIVE_CABLE_EXCEPT,
+ Mpi25EventDataActiveCableExcept_t,
+ MPI2_POINTER pMpi25EventDataActiveCableExcept_t,
+ MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT,
MPI2_POINTER PTR_MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT,
Mpi26EventDataActiveCableExcept_t,
MPI2_POINTER pMpi26EventDataActiveCableExcept_t;
-/* defines for ReasonCode field */
+/* MPI2.5 defines for the ReasonCode field */
+#define MPI25_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER (0x00)
+#define MPI25_EVENT_ACTIVE_CABLE_PRESENT (0x01)
+#define MPI25_EVENT_ACTIVE_CABLE_DEGRADED (0x02)
+
+/* MPI2.6 defines for the ReasonCode field */
#define MPI26_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER (0x00)
#define MPI26_EVENT_ACTIVE_CABLE_PRESENT (0x01)
#define MPI26_EVENT_ACTIVE_CABLE_DEGRADED (0x02)
@@ -1168,6 +1183,24 @@ typedef struct _MPI2_EVENT_DATA_SAS_QUIESCE
#define MPI2_EVENT_SAS_QUIESCE_RC_COMPLETED (0x02)
+typedef struct _MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR
+{
+ U16 DevHandle; /* 0x00 */
+ U8 ReasonCode; /* 0x02 */
+ U8 PhysicalPort; /* 0x03 */
+ U32 Reserved1[2]; /* 0x04 */
+ U64 SASAddress; /* 0x0C */
+ U32 Reserved2[2]; /* 0x14 */
+} MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR,
+ MPI2_POINTER PTR_MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR,
+ Mpi25EventDataSasDeviceDiscoveryError_t,
+ MPI2_POINTER pMpi25EventDataSasDeviceDiscoveryError_t;
+
+/* SAS Device Discovery Error Event data ReasonCode values */
+#define MPI25_EVENT_SAS_DISC_ERR_SMP_FAILED (0x01)
+#define MPI25_EVENT_SAS_DISC_ERR_SMP_TIMEOUT (0x02)
+
+
/* Host Based Discovery Phy Event data */
typedef struct _MPI2_EVENT_HBD_PHY_SAS
@@ -1493,6 +1526,7 @@ typedef struct _MPI2_FW_DOWNLOAD_REQUEST
#define MPI2_FW_DOWNLOAD_ITYPE_COMPLETE (0x0A)
#define MPI2_FW_DOWNLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B)
#define MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY (0x0C) /* MPI v2.5 and newer */
+#define MPI2_FW_DOWNLOAD_ITYPE_CBB_BACKUP (0x0D)
#define MPI2_FW_DOWNLOAD_ITYPE_SBR (0x0E)
#define MPI2_FW_DOWNLOAD_ITYPE_SBR_BACKUP (0x0F)
#define MPI2_FW_DOWNLOAD_ITYPE_HIIM (0x10)
diff --git a/sys/dev/mpr/mpr_ioctl.h b/sys/dev/mpr/mpr_ioctl.h
index df41f56c853b..d57d61000863 100644
--- a/sys/dev/mpr/mpr_ioctl.h
+++ b/sys/dev/mpr/mpr_ioctl.h
@@ -149,6 +149,7 @@ typedef struct mpr_pci_bits
*
*/
#define MPRIOCTL_ADAPTER_TYPE_SAS3 6
+#define MPRIOCTL_ADAPTER_TYPE_SAS35 7
typedef struct mpr_adapter_data
{
uint32_t StructureLength;
@@ -202,7 +203,7 @@ typedef struct mpr_pass_thru
/*
* Event queue defines
*/
-#define MPR_EVENT_QUEUE_SIZE (50) /* Max Events stored in driver */
+#define MPR_EVENT_QUEUE_SIZE (200) /* Max Events stored in driver */
#define MPR_MAX_EVENT_DATA_LENGTH (48) /* Size of each event in Dwords */
typedef struct mpr_event_query
diff --git a/sys/dev/mpr/mpr_sas.c b/sys/dev/mpr/mpr_sas.c
index 56bd4eb62c85..471bb0171e86 100644
--- a/sys/dev/mpr/mpr_sas.c
+++ b/sys/dev/mpr/mpr_sas.c
@@ -708,6 +708,7 @@ mprsas_register_events(struct mpr_softc *sc)
setbit(events, MPI2_EVENT_IR_PHYSICAL_DISK);
setbit(events, MPI2_EVENT_IR_OPERATION_STATUS);
setbit(events, MPI2_EVENT_TEMP_THRESHOLD);
+ setbit(events, MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR);
if (sc->facts->MsgVersion >= MPI2_VERSION_02_06) {
setbit(events, MPI2_EVENT_ACTIVE_CABLE_EXCEPTION);
if (sc->mpr_flags & MPR_FLAGS_GEN35_IOC) {
diff --git a/sys/dev/mpr/mpr_sas_lsi.c b/sys/dev/mpr/mpr_sas_lsi.c
index 967effb79a37..ac4979838e11 100644
--- a/sys/dev/mpr/mpr_sas_lsi.c
+++ b/sys/dev/mpr/mpr_sas_lsi.c
@@ -681,6 +681,41 @@ skip_fp_send:
}
break;
}
+ case MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR:
+ {
+ pMpi25EventDataSasDeviceDiscoveryError_t discovery_error_data;
+ uint64_t sas_address;
+
+ discovery_error_data =
+ (pMpi25EventDataSasDeviceDiscoveryError_t)
+ fw_event->event_data;
+
+ sas_address = discovery_error_data->SASAddress.High;
+ sas_address = (sas_address << 32) |
+ discovery_error_data->SASAddress.Low;
+
+ switch(discovery_error_data->ReasonCode) {
+ case MPI25_EVENT_SAS_DISC_ERR_SMP_FAILED:
+ {
+ mpr_printf(sc, "SMP command failed during discovery "
+ "for expander with SAS Address %jx and "
+ "handle 0x%x.\n", sas_address,
+ discovery_error_data->DevHandle);
+ break;
+ }
+ case MPI25_EVENT_SAS_DISC_ERR_SMP_TIMEOUT:
+ {
+ mpr_printf(sc, "SMP command timed out during "
+ "discovery for expander with SAS Address %jx and "
+ "handle 0x%x.\n", sas_address,
+ discovery_error_data->DevHandle);
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
case MPI2_EVENT_PCIE_TOPOLOGY_CHANGE_LIST:
{
MPI26_EVENT_DATA_PCIE_TOPOLOGY_CHANGE_LIST *data;
diff --git a/sys/dev/mpr/mpr_user.c b/sys/dev/mpr/mpr_user.c
index c2ff9c5d819f..74c2a07b41c7 100644
--- a/sys/dev/mpr/mpr_user.c
+++ b/sys/dev/mpr/mpr_user.c
@@ -1189,7 +1189,10 @@ mpr_user_get_adapter_data(struct mpr_softc *sc, mpr_adapter_data_t *data)
/*
* General device info.
*/
- data->AdapterType = MPRIOCTL_ADAPTER_TYPE_SAS3;
+ if (sc->mpr_flags & MPR_FLAGS_GEN35_IOC)
+ data->AdapterType = MPRIOCTL_ADAPTER_TYPE_SAS35;
+ else
+ data->AdapterType = MPRIOCTL_ADAPTER_TYPE_SAS3;
data->PCIDeviceHwId = pci_get_device(sc->mpr_dev);
data->PCIDeviceHwRev = pci_read_config(sc->mpr_dev, PCIR_REVID, 1);
data->SubSystemId = pci_get_subdevice(sc->mpr_dev);
diff --git a/sys/dev/mpr/mprvar.h b/sys/dev/mpr/mprvar.h
index d2767eedc408..e360042c02b1 100644
--- a/sys/dev/mpr/mprvar.h
+++ b/sys/dev/mpr/mprvar.h
@@ -33,7 +33,7 @@
#ifndef _MPRVAR_H
#define _MPRVAR_H
-#define MPR_DRIVER_VERSION "15.03.00.00-fbsd"
+#define MPR_DRIVER_VERSION "18.03.00.00-fbsd"
#define MPR_DB_MAX_WAIT 2500