common/sfc_efx/base: add max number of Rx scatter buffers
Riverhead QDMA has limitation on maximum number of Rx scatter buffers to be used by a packet. If the limitation is violated, the datapath is dead. FW should ensure that it is OK, but drivers need to know the limitation anyway to check parameters when Rx queues are configured and MTU is set. Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
This commit is contained in:
parent
36d7927838
commit
abd9dc47e0
@ -1156,6 +1156,9 @@ ef10_get_datapath_caps(
|
||||
else
|
||||
encp->enc_rx_disable_scatter_supported = B_FALSE;
|
||||
|
||||
/* No limit on maximum number of Rx scatter elements per packet. */
|
||||
encp->enc_rx_scatter_max = -1;
|
||||
|
||||
/* Check if the firmware supports packed stream mode */
|
||||
if (CAP_FLAGS1(req, RX_PACKED_STREAM))
|
||||
encp->enc_rx_packed_stream_supported = B_TRUE;
|
||||
|
@ -1555,6 +1555,8 @@ typedef struct efx_nic_cfg_s {
|
||||
/* Datapath firmware vport reconfigure support */
|
||||
boolean_t enc_vport_reconfigure_supported;
|
||||
boolean_t enc_rx_disable_scatter_supported;
|
||||
/* Maximum number of Rx scatter segments supported by HW */
|
||||
uint32_t enc_rx_scatter_max;
|
||||
boolean_t enc_allow_set_mac_with_installed_filters;
|
||||
boolean_t enc_enhanced_set_mac_supported;
|
||||
boolean_t enc_init_evq_v2_supported;
|
||||
|
@ -158,6 +158,9 @@ rhead_board_cfg(
|
||||
}
|
||||
encp->enc_rx_buf_align_end = end_padding;
|
||||
|
||||
/* FIXME: It should be extracted from design parameters (Bug 86844) */
|
||||
encp->enc_rx_scatter_max = 7;
|
||||
|
||||
/*
|
||||
* Riverhead stores a single global copy of VPD, not per-PF as on
|
||||
* Huntington.
|
||||
|
@ -177,6 +177,7 @@ siena_board_cfg(
|
||||
encp->enc_fw_assisted_tso_v2_enabled = B_FALSE;
|
||||
encp->enc_fw_assisted_tso_v2_n_contexts = 0;
|
||||
encp->enc_tso_v3_enabled = B_FALSE;
|
||||
encp->enc_rx_scatter_max = -1;
|
||||
encp->enc_allow_set_mac_with_installed_filters = B_TRUE;
|
||||
encp->enc_rx_packed_stream_supported = B_FALSE;
|
||||
encp->enc_rx_var_packed_stream_supported = B_FALSE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user