freebsd-dev/sys/dev/mlx5/mlx5_core
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
..
fs_core.h Refactor the flowsteering APIs used by mlx5en(4). This change is needed by 2017-11-10 09:49:08 +00:00
mlx5_alloc.c Use the busdma API to allocate all DMA-able memory. 2017-01-27 11:46:55 +00:00
mlx5_cmd.c Add support for fast unload in shutdown flow in mlx5core. 2018-03-23 18:02:20 +00:00
mlx5_core.h Add mutual exclusion mechanism for software reset of firmware in mlx5core. 2018-03-23 18:32:03 +00:00
mlx5_cq.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_crspace.c Add mutual exclusion mechanism for software reset of firmware in mlx5core. 2018-03-23 18:32:03 +00:00
mlx5_diagnostics.c Add support for reading advanced diagnostic counters. 2017-01-27 10:03:50 +00:00
mlx5_eq.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_fs_cmd.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_fs_tree.c Remove duplicate static function prototype to fix compilation of 2017-11-18 20:32:09 +00:00
mlx5_fw.c Add support for fast unload in shutdown flow in mlx5core. 2018-03-23 18:02:20 +00:00
mlx5_fwdump_regmaps.c Add kernel and userspace code to dump the firmware state of supported 2018-03-08 15:21:56 +00:00
mlx5_fwdump.c Add call to setup firmware data dump structure during device load in 2018-03-08 16:19:01 +00:00
mlx5_health.c Add mutual exclusion mechanism for software reset of firmware in mlx5core. 2018-03-23 18:32:03 +00:00
mlx5_mad.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_main.c Add mutual exclusion mechanism for software reset of firmware in mlx5core. 2018-03-23 18:32:03 +00:00
mlx5_mcg.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_mr.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_pagealloc.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_pd.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_port.c Add support for per priority flow control, PFC, to mlx5en(4). 2018-03-08 11:40:39 +00:00
mlx5_qp.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_srq.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_transobj.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_uar.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_vport.c Use the autogenerated interface file for all commands in mlx5core. 2018-03-08 10:43:42 +00:00
mlx5_vsc.c Add vendor specific capability interface support in mlx5core. 2018-03-08 11:59:47 +00:00
mlx5_wq.c
transobj.h Add API functions to modify the transport interface send object, TIS, 2017-11-10 13:50:08 +00:00
wq.h