opnsense-src/sys/dev/mlx5
Hans Petter Selasky f20b553d75 Add mutual exclusion mechanism for software reset of firmware in mlx5core.
Since the FW can be shared between PCI functions it is common that
more than one health poll will detected a failure, this can lead to
multiple resets.

The solution is to use a FW locking mechanism using semaphore space to
provide a way to synchronize between functions. The FW semaphore is
acquired via config cycle access. First the VSEC gateway must be
acquired, then the semaphore can be locked by writing a value to it
and confirmed it's locked by reading the same value back. The process
in the same to free the semaphore, except the value written should be
zero.

Submitted by:	slavash@
MFC after:	1 week
Sponsored by:	Mellanox Technologies
2018-03-23 18:32:03 +00:00
..
mlx5_core Add mutual exclusion mechanism for software reset of firmware in mlx5core. 2018-03-23 18:32:03 +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 Issue a software reset on firmware assert in mlx5core. 2018-03-23 18:24:09 +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 Add mutual exclusion mechanism for software reset of firmware in mlx5core. 2018-03-23 18:32:03 +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