net/mlx5: FPGA, Add basic support for Innova
authorIlan Tayari <ilant@mellanox.com>
Mon, 13 Mar 2017 18:05:45 +0000 (20:05 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Sun, 14 May 2017 11:24:17 +0000 (14:24 +0300)
commite29341fb3a5b885a4bb5b9a38f2814ca07d3382c
tree3af4401fdc3b11100fedf32bd83d9e642ec81eeb
parent0179720d6be2096b8d0a4d143254ff9e77747daa
net/mlx5: FPGA, Add basic support for Innova

Mellanox Innova is a NIC with ConnectX and an FPGA on the same
board. The FPGA is a bump-on-the-wire and thus affects operation of
the mlx5_core driver on the ConnectX ASIC.

Add basic support for Innova in mlx5_core.

This allows using the Innova card as a regular NIC, by detecting
the FPGA capability bit, and verifying its load state before
initializing ConnectX interfaces.

Also detect FPGA fatal runtime failures and enter error state if
they ever happen.

All new FPGA-related logic is placed in its own subdirectory 'fpga',
which may be built by selecting CONFIG_MLX5_FPGA.
This prepares for further support of various Innova features in later
patchsets.
Additional details about hardware architecture will be provided as
more features get submitted.

Signed-off-by: Ilan Tayari <ilant@mellanox.com>
Reviewed-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
13 files changed:
MAINTAINERS
drivers/net/ethernet/mellanox/mlx5/core/Kconfig
drivers/net/ethernet/mellanox/mlx5/core/Makefile
drivers/net/ethernet/mellanox/mlx5/core/eq.c
drivers/net/ethernet/mellanox/mlx5/core/fpga/cmd.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/fpga/cmd.h [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/main.c
include/linux/mlx5/device.h
include/linux/mlx5/driver.h
include/linux/mlx5/mlx5_ifc.h
include/linux/mlx5/mlx5_ifc_fpga.h [new file with mode: 0644]