From: Denis Pryazhennikov <denis.pryazhenni...@arknetworks.am> Future patches will add an implementation of MCDI Table Access API in libefx. This patch adds a way to determine if this API is supported.
Signed-off-by: Denis Pryazhennikov <denis.pryazhenni...@arknetworks.am> Reviewed-by: Ivan Malov <ivan.ma...@arknetworks.am> Reviewed-by: Andy Moreton <amore...@xilinx.com> --- drivers/common/sfc_efx/base/efx.h | 2 ++ drivers/common/sfc_efx/base/hunt_nic.c | 2 ++ drivers/common/sfc_efx/base/medford2_nic.c | 2 ++ drivers/common/sfc_efx/base/medford_nic.c | 2 ++ drivers/common/sfc_efx/base/rhead_nic.c | 9 +++++++++ drivers/common/sfc_efx/base/siena_nic.c | 2 ++ 6 files changed, 19 insertions(+) diff --git a/drivers/common/sfc_efx/base/efx.h b/drivers/common/sfc_efx/base/efx.h index f4fa88f169..520674a602 100644 --- a/drivers/common/sfc_efx/base/efx.h +++ b/drivers/common/sfc_efx/base/efx.h @@ -1672,6 +1672,8 @@ typedef struct efx_nic_cfg_s { boolean_t enc_mae_admin; /* NIC support for MAE action set v2 features. */ boolean_t enc_mae_aset_v2_supported; + /* NIC support for MCDI Table Access API. */ + boolean_t enc_table_api_supported; /* Firmware support for "FLAG" and "MARK" filter actions */ boolean_t enc_filter_action_flag_supported; boolean_t enc_filter_action_mark_supported; diff --git a/drivers/common/sfc_efx/base/hunt_nic.c b/drivers/common/sfc_efx/base/hunt_nic.c index 08ae324482..04595a39c8 100644 --- a/drivers/common/sfc_efx/base/hunt_nic.c +++ b/drivers/common/sfc_efx/base/hunt_nic.c @@ -192,6 +192,8 @@ hunt_board_cfg( /* All Huntington devices have a PCIe Gen3, 8 lane connector */ encp->enc_max_pcie_link_gen = EFX_PCIE_LINK_SPEED_GEN3; + encp->enc_table_api_supported = B_FALSE; + return (0); fail4: diff --git a/drivers/common/sfc_efx/base/medford2_nic.c b/drivers/common/sfc_efx/base/medford2_nic.c index 6d19524573..49adabffb2 100644 --- a/drivers/common/sfc_efx/base/medford2_nic.c +++ b/drivers/common/sfc_efx/base/medford2_nic.c @@ -152,6 +152,8 @@ medford2_board_cfg( encp->enc_required_pcie_bandwidth_mbps = bandwidth; encp->enc_max_pcie_link_gen = EFX_PCIE_LINK_SPEED_GEN3; + encp->enc_table_api_supported = B_FALSE; + return (0); fail4: diff --git a/drivers/common/sfc_efx/base/medford_nic.c b/drivers/common/sfc_efx/base/medford_nic.c index b111e3eded..9a460b2b9b 100644 --- a/drivers/common/sfc_efx/base/medford_nic.c +++ b/drivers/common/sfc_efx/base/medford_nic.c @@ -150,6 +150,8 @@ medford_board_cfg( encp->enc_required_pcie_bandwidth_mbps = bandwidth; encp->enc_max_pcie_link_gen = EFX_PCIE_LINK_SPEED_GEN3; + encp->enc_table_api_supported = B_FALSE; + return (0); fail4: diff --git a/drivers/common/sfc_efx/base/rhead_nic.c b/drivers/common/sfc_efx/base/rhead_nic.c index eda6c1c4f9..a773aea38d 100644 --- a/drivers/common/sfc_efx/base/rhead_nic.c +++ b/drivers/common/sfc_efx/base/rhead_nic.c @@ -176,6 +176,15 @@ rhead_board_cfg( encp->enc_required_pcie_bandwidth_mbps = bandwidth; encp->enc_max_pcie_link_gen = EFX_PCIE_LINK_SPEED_GEN3; + /* + * FIXME: MCDI table API support depends on an EF100 firmware build + * and an EF100 platform. It should be discovered by using a capability + * flag from MCDI that is not implemented yet. + * Right now we can safely rely on the return code from the libefx + * MCDI Table API. + */ + encp->enc_table_api_supported = B_TRUE; + return (0); fail3: diff --git a/drivers/common/sfc_efx/base/siena_nic.c b/drivers/common/sfc_efx/base/siena_nic.c index 9f14faf271..1f1fb7d2af 100644 --- a/drivers/common/sfc_efx/base/siena_nic.c +++ b/drivers/common/sfc_efx/base/siena_nic.c @@ -205,6 +205,8 @@ siena_board_cfg( encp->enc_mae_supported = B_FALSE; encp->enc_mae_admin = B_FALSE; + encp->enc_table_api_supported = B_FALSE; + encp->enc_dma_mapping = EFX_NIC_DMA_MAPPING_FLAT; return (0); -- 2.30.2