| 13 | #define CMDQ_PKT_IN_ALIGN 16 |
| 14 | |
| 15 | static int |
| 16 | nitrox_setup_cmdq(struct nitrox_qp *qp, uint8_t *bar_addr, |
| 17 | const char *dev_name, uint8_t instr_size, int socket_id) |
| 18 | { |
| 19 | char mz_name[RTE_MEMZONE_NAMESIZE]; |
| 20 | const struct rte_memzone *mz; |
| 21 | size_t cmdq_size = qp->count * instr_size; |
| 22 | uint64_t offset; |
| 23 | |
| 24 | snprintf(mz_name, sizeof(mz_name), "%s_cmdq_%d", dev_name, qp->qno); |
| 25 | mz = rte_memzone_reserve_aligned(mz_name, cmdq_size, socket_id, |
| 26 | RTE_MEMZONE_SIZE_HINT_ONLY | |
| 27 | RTE_MEMZONE_256MB, |
| 28 | CMDQ_PKT_IN_ALIGN); |
| 29 | if (!mz) { |
| 30 | NITROX_LOG(ERR, "cmdq memzone reserve failed for %s queue\n", |
| 31 | mz_name); |
| 32 | return -ENOMEM; |
| 33 | } |
| 34 | |
| 35 | qp->cmdq.mz = mz; |
| 36 | offset = NPS_PKT_IN_INSTR_BAOFF_DBELLX(qp->qno); |
| 37 | qp->cmdq.dbell_csr_addr = NITROX_CSR_ADDR(bar_addr, offset); |
| 38 | qp->cmdq.ring = mz->addr; |
| 39 | qp->cmdq.instr_size = instr_size; |
| 40 | setup_nps_pkt_input_ring(bar_addr, qp->qno, qp->count, mz->iova); |
| 41 | setup_nps_pkt_solicit_output_port(bar_addr, qp->qno); |
| 42 | |
| 43 | return 0; |
| 44 | } |
| 45 | |
| 46 | static int |
| 47 | nitrox_setup_ridq(struct nitrox_qp *qp, int socket_id) |
no test coverage detected