summaryrefslogtreecommitdiffstats
path: root/sys/dev/mpr/mpr_mapping.h
diff options
context:
space:
mode:
authorslm <slm@FreeBSD.org>2017-06-01 15:39:09 +0000
committerslm <slm@FreeBSD.org>2017-06-01 15:39:09 +0000
commit58a58e183e3d690ffdaa01b0873c17c420cd765a (patch)
tree461c5682b74995934f8ece68093966c7d13bd028 /sys/dev/mpr/mpr_mapping.h
parent5e170453372eb92d479ec8beb3e61951b2369f71 (diff)
downloadFreeBSD-src-58a58e183e3d690ffdaa01b0873c17c420cd765a.zip
FreeBSD-src-58a58e183e3d690ffdaa01b0873c17c420cd765a.tar.gz
MFC r308217, r308301, r311958, r312437, r318188, r318427, r318679
r308217: Add a fallback to the device mapper logic. We've seen systems in the field that are apparently misconfigured by the manufacturer and cause the mapping logic to fail. The fallback allows drive numbers to be assigned based on the PHY number that they're attached to. Add sysctls and tunables to overrid this new behavior, but they should be considered only necessary for debugging. Reviewed by: imp, smh Obtained from: Netflix MFC after: 3 days Sponsored by: D8403 r308301: Record the LogInfo field when reporting the IOCStatus. Helps in debugging errors. Submitted by: slm Obtained from: Netflix MFC after: 3 days r311958: Print out the number of queues/MSIx vectors. Sponsored by: Netflix r312437: Rework the debug print API. Event printing no longer gets special handling. All of the printing from the tables file now has wrappers so that the handling is cleaner and it's possible to print something out (say, during development) without having to fight the global debug flags. This re-org will also make it easier to have the tables be compiled out at build time if desired. Other than fixing some minor bugs, there are no user-visible changes from this change Sponsored by: Netflix, Inc. Differential Revision: D9238 r318188: Improve error messages during command timeout for the mpr and mps drivers. Sponsored by: Netflix r318427: Add tri-mode support (SAS/SATA/PCIe). This includes NVMe device support and adds support for the following adapters: SAS 3408 SAS 3416 SAS 3508 SAS 3516 SAS 3616 SAS 3708 SAS 3716 Reviewed by: ken, scottl, asomers, mav Approved by: ken, scottl, mav MFC after: 2 weeks Relnotes: yes Differential Revision: https://reviews.freebsd.org/D10095 r318679: Fix powerpc compiler error. Approved by: ken
Diffstat (limited to 'sys/dev/mpr/mpr_mapping.h')
-rw-r--r--sys/dev/mpr/mpr_mapping.h51
1 files changed, 49 insertions, 2 deletions
diff --git a/sys/dev/mpr/mpr_mapping.h b/sys/dev/mpr/mpr_mapping.h
index 05571f2e..925eb03 100644
--- a/sys/dev/mpr/mpr_mapping.h
+++ b/sys/dev/mpr/mpr_mapping.h
@@ -53,9 +53,36 @@ struct _map_phy_change {
};
/**
- * struct _map_topology_change - entries to be removed from mapping table
- * @dpm_entry_num: index of this device in device persistent map table
+ * struct _map_port_change - PCIe Port entries received in PCIe Topology change
+ * list event
+ * @physical_id: WWID of the device attached to the associated port
+ * @device_info: bitfield provides detailed info about the device
+ * @MDTS: Maximum Data Transfer Size for the device
* @dev_handle: device handle for the device pointed by this entry
+ * @slot: slot ID
+ * @is_processed: Flag to indicate whether this entry is processed or not
+ */
+struct _map_port_change {
+ uint64_t physical_id;
+ uint32_t device_info;
+ uint32_t MDTS;
+ uint16_t dev_handle;
+ uint16_t slot;
+ uint8_t reason;
+ uint8_t is_processed;
+ uint8_t reserved[2];
+};
+
+/**
+ * struct _map_topology_change - SAS/SATA entries to be removed from mapping
+ * table
+ * @enc_handle: enclosure handle where this device is located
+ * @exp_handle: expander handle where this device is located
+ * @num_entries: number of entries in the SAS Topology Change List event
+ * @start_phy_num: PHY number of the first PHY in the event data
+ * @num_phys: number of PHYs in the expander where this device is located
+ * @exp_status: status for the expander where this device is located
+ * @phy_details: more details about each PHY in the event data
*/
struct _map_topology_change {
uint16_t enc_handle;
@@ -67,6 +94,26 @@ struct _map_topology_change {
struct _map_phy_change *phy_details;
};
+/**
+ * struct _map_pcie_topology_change - PCIe entries to be removed from mapping
+ * table
+ * @enc_handle: enclosure handle where this device is located
+ * @switch_dev_handle: PCIe switch device handle where this device is located
+ * @num_entries: number of entries in the PCIe Topology Change List event
+ * @start_port_num: port number of the first port in the event data
+ * @num_ports: number of ports in the PCIe switch device
+ * @switch_status: status for the PCIe switch where this device is located
+ * @port_details: more details about each Port in the event data
+ */
+struct _map_pcie_topology_change {
+ uint16_t enc_handle;
+ uint16_t switch_dev_handle;
+ uint8_t num_entries;
+ uint8_t start_port_num;
+ uint8_t num_ports;
+ uint8_t switch_status;
+ struct _map_port_change *port_details;
+};
extern int
mprsas_get_sas_address_for_sata_disk(struct mpr_softc *ioc,
OpenPOWER on IntegriCloud