Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause 2 : : * 3 : : * Copyright 2017,2019,2024 -2025 NXP 4 : : * 5 : : */ 6 : : #ifndef __DPAA_MEMPOOL_H__ 7 : : #define __DPAA_MEMPOOL_H__ 8 : : 9 : : /* System headers */ 10 : : #include <stdio.h> 11 : : #include <stdbool.h> 12 : : #include <inttypes.h> 13 : : #include <unistd.h> 14 : : 15 : : #include <rte_mempool.h> 16 : : 17 : : #include <bus_dpaa_driver.h> 18 : : #include <rte_dpaa_logs.h> 19 : : 20 : : #include <fsl_usd.h> 21 : : #include <fsl_bman.h> 22 : : 23 : : #define CPU_SPIN_BACKOFF_CYCLES 512 24 : : 25 : : /* total number of bpools on SoC */ 26 : : #define DPAA_MAX_BPOOLS 256 27 : : 28 : : /* Maximum release/acquire from BMAN */ 29 : : #define DPAA_MBUF_MAX_ACQ_REL FSL_BM_BURST_MAX 30 : : 31 : : /* Buffers are allocated from single mem segment i.e. phys contiguous */ 32 : : #define DPAA_MPOOL_SINGLE_SEGMENT 0x01 33 : : 34 : : #define FMAN_ERRATA_4K_SPAN_ADDR_ALIGN 256 35 : : #define FMAN_ERRATA_4K_SPAN_ADDR_MASK \ 36 : : (FMAN_ERRATA_4K_SPAN_ADDR_ALIGN - 1) 37 : : 38 : : #define FMAN_ERRATA_BUF_START_ALIGN 16 39 : : #define FMAN_ERRATA_BUF_START_MASK (FMAN_ERRATA_BUF_START_ALIGN - 1) 40 : : #define FMAN_ERRATA_SG_LEN_ALIGN 16 41 : : #define FMAN_ERRATA_SG_LEN_MASK (FMAN_ERRATA_SG_LEN_ALIGN - 1) 42 : : 43 : : struct dpaa_bp_info { 44 : : struct rte_mempool *mp; 45 : : struct bman_pool *bp; 46 : : uint32_t bpid; 47 : : uint32_t size; 48 : : uint32_t meta_data_size; 49 : : int32_t dpaa_ops_index; 50 : : int64_t ptov_off; 51 : : uint8_t flags; 52 : : }; 53 : : 54 : : static inline void * 55 : : DPAA_MEMPOOL_PTOV(struct dpaa_bp_info *bp_info __rte_unused, uint64_t addr) 56 : : { 57 : 0 : return rte_dpaa_mem_ptov(addr); 58 : : } 59 : : 60 : : #define DPAA_MEMPOOL_TO_POOL_INFO(__mp) \ 61 : : ((struct dpaa_bp_info *)__mp->pool_data) 62 : : 63 : : #define DPAA_MEMPOOL_TO_BPID(__mp) \ 64 : : (((struct dpaa_bp_info *)__mp->pool_data)->bpid) 65 : : 66 : : extern struct dpaa_bp_info *rte_dpaa_bpid_info; 67 : : 68 : : #define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_bpid_info[__bpid]) 69 : : 70 : : /* Mempool related logs */ 71 : : 72 : : #define DPAA_MEMPOOL_LOG(level, ...) \ 73 : : RTE_LOG_LINE_PREFIX(level, DPAA_MEMPOOL, "%s(): ", __func__, __VA_ARGS__) 74 : : 75 : : #define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>") 76 : : 77 : : #define DPAA_MEMPOOL_DPDEBUG(fmt, ...) \ 78 : : RTE_LOG_DP(DEBUG, DPAA_MEMPOOL, fmt, ## __VA_ARGS__) 79 : : #define DPAA_MEMPOOL_DEBUG(fmt, ...) \ 80 : : DPAA_MEMPOOL_LOG(DEBUG, fmt, ## __VA_ARGS__) 81 : : #define DPAA_MEMPOOL_ERR(fmt, ...) \ 82 : : DPAA_MEMPOOL_LOG(ERR, fmt, ## __VA_ARGS__) 83 : : #define DPAA_MEMPOOL_INFO(fmt, ...) \ 84 : : DPAA_MEMPOOL_LOG(INFO, fmt, ## __VA_ARGS__) 85 : : #define DPAA_MEMPOOL_WARN(fmt, ...) \ 86 : : DPAA_MEMPOOL_LOG(WARNING, fmt, ## __VA_ARGS__) 87 : : 88 : : #endif