X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fmempool%2Focteontx2%2Fotx2_mempool.h;h=8aa548248df42941237aaf14608509dd13c06c03;hb=340d22cdd14802de3f80859a940dfa178b0de7ca;hp=41542cf899e66772529bfaf78c9dd0c86187d099;hpb=50b95c3ea7af13243a10a48189fe7e0bb0183398;p=dpdk.git diff --git a/drivers/mempool/octeontx2/otx2_mempool.h b/drivers/mempool/octeontx2/otx2_mempool.h index 41542cf899..8aa548248d 100644 --- a/drivers/mempool/octeontx2/otx2_mempool.h +++ b/drivers/mempool/octeontx2/otx2_mempool.h @@ -29,6 +29,11 @@ struct otx2_npa_qint { uint8_t qintx; }; +struct npa_aura_lim { + uint64_t ptr_start; + uint64_t ptr_end; +}; + struct otx2_npa_lf { uint16_t qints; uintptr_t base; @@ -42,6 +47,7 @@ struct otx2_npa_lf { uint32_t stack_pg_ptrs; uint32_t stack_pg_bytes; struct rte_bitmap *npa_bmp; + struct npa_aura_lim *aura_lim; struct rte_pci_device *pci_dev; struct rte_intr_handle *intr_handle; }; @@ -185,21 +191,31 @@ npa_lf_aura_op_range_set(uint64_t aura_handle, uint64_t start_iova, uint64_t end_iova) { uint64_t reg = npa_lf_aura_handle_to_aura(aura_handle); + struct otx2_npa_lf *lf = otx2_npa_lf_obj_get(); + struct npa_aura_lim *lim = lf->aura_lim; - otx2_store_pair(start_iova, reg, + lim[reg].ptr_start = RTE_MIN(lim[reg].ptr_start, start_iova); + lim[reg].ptr_end = RTE_MAX(lim[reg].ptr_end, end_iova); + + otx2_store_pair(lim[reg].ptr_start, reg, npa_lf_aura_handle_to_base(aura_handle) + NPA_LF_POOL_OP_PTR_START0); - otx2_store_pair(end_iova, reg, + otx2_store_pair(lim[reg].ptr_end, reg, npa_lf_aura_handle_to_base(aura_handle) + NPA_LF_POOL_OP_PTR_END0); } /* NPA LF */ +__rte_internal int otx2_npa_lf_init(struct rte_pci_device *pci_dev, void *otx2_dev); +__rte_internal int otx2_npa_lf_fini(void); /* IRQ */ int otx2_npa_register_irqs(struct otx2_npa_lf *lf); void otx2_npa_unregister_irqs(struct otx2_npa_lf *lf); +/* Debug */ +int otx2_mempool_ctx_dump(struct otx2_npa_lf *lf); + #endif /* __OTX2_MEMPOOL_H__ */