Skip to content

Commit

Permalink
ON-16178: Add support for MCDI rx event suppresion
Browse files Browse the repository at this point in the history
Set it by default as currently we are only using shared kernel event
queues and don't have interrupt support.
  • Loading branch information
tcrawley-xilinx committed Jan 21, 2025
1 parent 7a2704d commit a050f14
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
3 changes: 3 additions & 0 deletions src/include/ci/efhw/mc_driver_pcol.h
Original file line number Diff line number Diff line change
Expand Up @@ -12579,6 +12579,9 @@
#define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_OFST 16
#define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_LBN 20
#define MC_CMD_INIT_RXQ_V5_IN_FLAG_NO_CONT_EV_WIDTH 1
#define MC_CMD_INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS_OFST 16
#define MC_CMD_INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS_LBN 21
#define MC_CMD_INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS_WIDTH 1
/* Owner ID to use if in buffer mode (zero if physical) */
#define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_OFST 20
#define MC_CMD_INIT_RXQ_V5_IN_OWNER_ID_LEN 4
Expand Down
7 changes: 5 additions & 2 deletions src/lib/efhw/ef10ct/ef10ct.c
Original file line number Diff line number Diff line change
Expand Up @@ -818,6 +818,7 @@ ef10ct_shared_rxq_bind(struct efhw_nic* nic,
int rc;
struct efx_auxdev_rpc rpc;
void **post_buffer_addr;
bool suppress_events = false;

EFHW_WARN("%s: evq %d, rxq %d", __func__, params->wakeup_instance,
params->qid);
Expand Down Expand Up @@ -849,6 +850,7 @@ ef10ct_shared_rxq_bind(struct efhw_nic* nic,
EFHW_ASSERT(ef10ct->shared_n >= 1 );
evq = ef10ct->shared[0].evq_id;
EFHW_WARN("%s: Using shared evq %d", __func__, evq);
suppress_events = true;

EFHW_MCDI_INITIALISE_BUF(in);

Expand All @@ -862,12 +864,13 @@ ef10ct_shared_rxq_bind(struct efhw_nic* nic,
EFHW_MCDI_SET_DWORD(in, INIT_RXQ_V5_IN_INSTANCE, rxq_handle);
EFHW_MCDI_SET_DWORD(in, INIT_RXQ_V5_IN_PORT_ID, EVB_PORT_ID_ASSIGNED);

EFHW_MCDI_POPULATE_DWORD_4(in, INIT_RXQ_V5_IN_FLAGS,
EFHW_MCDI_POPULATE_DWORD_5(in, INIT_RXQ_V5_IN_FLAGS,
INIT_RXQ_V5_IN_DMA_MODE,
MC_CMD_INIT_RXQ_V5_IN_EQUAL_STRIDE_SUPER_BUFFER,
INIT_RXQ_V5_IN_FLAG_TIMESTAMP, 1,
INIT_RXQ_V5_IN_FLAG_PREFIX, 1,
INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER, 1);
INIT_RXQ_V5_IN_FLAG_DISABLE_SCATTER, 1,
INIT_RXQ_V5_IN_FLAG_SUPPRESS_RX_EVENTS, suppress_events);

EFHW_MCDI_SET_DWORD(in, INIT_RXQ_V5_IN_ES_PACKET_STRIDE, EFCT_PKT_STRIDE);
EFHW_MCDI_SET_DWORD(in, INIT_RXQ_V5_IN_ES_MAX_DMA_LEN, nic->mtu);
Expand Down

0 comments on commit a050f14

Please sign in to comment.