freebsd-skq/sys/dev/mlx5
hselasky 4c421e8157 Handle software reset of firmware in error flow in mlx5core.
Some mlx5 adapter firmware allows the driver to reset the firmware in
the event of an error. When a software reset is issued on any physical
function all PFs enter reset state. This is a recoverable condition.
The existing recovery flow was designed to allow the recovery of a
VF after a PF driver reload. This patch expands the scope of that
flow to recover PFs or VFs after a SW reset has been issued.
When a software reset is issued the following occurs:

1. The NIC interface mode is set to SW_RESET (7) while the reset is in
   progress.
2. Once the reset completes the NIC interface mode is set to NIC
   disabled (1).

After the reset has been issued (added in a subsequent patch) the
health poll for other functions will detect that the NIC interface
state has been set to disabled. This will cause it to enter the
existing recovery flow.  If the PCI is still working (meaning it
doesn't return 0xff on all reads) it means recovery can proceed
immediately instead of waiting 60 seconds.

The error detetion has also been refactored to avoid incorrect or
misleading log messages.

Submitted by:	slavash@
MFC after:	1 week
Sponsored by:	Mellanox Technologies
2018-03-23 18:20:42 +00:00
..
mlx5_core Handle software reset of firmware in error flow in mlx5core. 2018-03-23 18:20:42 +00:00
mlx5_en Create designated workqueue for each mlx5en(4) device instance. 2018-03-23 16:59:51 +00:00
mlx5_ib Set correct SL in completion for RoCE in mlx5ib(4). 2018-03-08 16:27:31 +00:00
cmd.h Remove duplicate prototypes. 2018-03-08 15:37:09 +00:00
cq.h Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
device.h Add vendor specific capability interface support in mlx5core. 2018-03-08 11:59:47 +00:00
diagnostics.h Make "desc" pointer non-constant inside the mlx5_core_diagnostics_entry 2017-01-30 08:35:15 +00:00
doorbell.h
driver.h Handle software reset of firmware in error flow in mlx5core. 2018-03-23 18:20:42 +00:00
fs.h Refactor the flowsteering APIs used by mlx5en(4). This change is needed by 2017-11-10 09:49:08 +00:00
mlx5_ifc.h Add support for fast unload in shutdown flow in mlx5core. 2018-03-23 18:02:20 +00:00
mlx5_rdma_if.h
mlx5io.h Add kernel and userspace code to dump the firmware state of supported 2018-03-08 15:21:56 +00:00
port.h Add support for per priority flow control, PFC, to mlx5en(4). 2018-03-08 11:40:39 +00:00
qp.h Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
srq.h Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
vport.h Add API function to query port performance counters for infiniband and RoCE 2017-11-10 13:58:49 +00:00