19caac5ddSSunil Kumar Kori /* SPDX-License-Identifier: BSD-3-Clause 29caac5ddSSunil Kumar Kori * Copyright 2017 NXP 39caac5ddSSunil Kumar Kori */ 49caac5ddSSunil Kumar Kori 59caac5ddSSunil Kumar Kori #ifndef __DPAA_EVENTDEV_H__ 69caac5ddSSunil Kumar Kori #define __DPAA_EVENTDEV_H__ 79caac5ddSSunil Kumar Kori 825187042SBruce Richardson #include <eventdev_pmd.h> 925187042SBruce Richardson #include <eventdev_pmd_vdev.h> 109caac5ddSSunil Kumar Kori #include <rte_atomic.h> 119caac5ddSSunil Kumar Kori #include <rte_per_lcore.h> 129caac5ddSSunil Kumar Kori 1349f6d965SNipun Gupta #define EVENTDEV_NAME_DPAA_PMD event_dpaa1 149caac5ddSSunil Kumar Kori 1577b5311dSHemant Agrawal #define DPAA_EVENT_MAX_PORTS 4 1677b5311dSHemant Agrawal #define DPAA_EVENT_MAX_QUEUES 8 179caac5ddSSunil Kumar Kori #define DPAA_EVENT_MIN_DEQUEUE_TIMEOUT 1 189caac5ddSSunil Kumar Kori #define DPAA_EVENT_MAX_DEQUEUE_TIMEOUT (UINT32_MAX - 1) 199caac5ddSSunil Kumar Kori #define DPAA_EVENT_MAX_QUEUE_FLOWS 2048 209caac5ddSSunil Kumar Kori #define DPAA_EVENT_MAX_QUEUE_PRIORITY_LEVELS 8 219caac5ddSSunil Kumar Kori #define DPAA_EVENT_MAX_EVENT_PRIORITY_LEVELS 0 22100915c0SGowrishankar Muthukrishnan #define DPAA_EVENT_MAX_EVENT_PORT RTE_MIN(RTE_MAX_LCORE, INT8_MAX) 239caac5ddSSunil Kumar Kori #define DPAA_EVENT_MAX_PORT_DEQUEUE_DEPTH 8 2477b5311dSHemant Agrawal #define DPAA_EVENT_PORT_DEQUEUE_TIMEOUT_NS 100000UL 259caac5ddSSunil Kumar Kori #define DPAA_EVENT_PORT_DEQUEUE_TIMEOUT_INVALID ((uint64_t)-1) 269caac5ddSSunil Kumar Kori #define DPAA_EVENT_MAX_PORT_ENQUEUE_DEPTH 1 279caac5ddSSunil Kumar Kori #define DPAA_EVENT_MAX_NUM_EVENTS (INT32_MAX - 1) 289caac5ddSSunil Kumar Kori 299caac5ddSSunil Kumar Kori #define DPAA_EVENT_DEV_CAP \ 309caac5ddSSunil Kumar Kori do { \ 319caac5ddSSunil Kumar Kori RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED | \ 329caac5ddSSunil Kumar Kori RTE_EVENT_DEV_CAP_BURST_MODE; \ 339caac5ddSSunil Kumar Kori } while (0) 349caac5ddSSunil Kumar Kori 35c37421a2SNipun Gupta #define DPAA_EVENT_QUEUE_ATOMIC_FLOWS 2048 369caac5ddSSunil Kumar Kori #define DPAA_EVENT_QUEUE_ORDER_SEQUENCES 2048 379caac5ddSSunil Kumar Kori 389caac5ddSSunil Kumar Kori #define RTE_EVENT_ETH_RX_ADAPTER_DPAA_CAP \ 399caac5ddSSunil Kumar Kori (RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT | \ 409caac5ddSSunil Kumar Kori RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ | \ 419caac5ddSSunil Kumar Kori RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID) 429caac5ddSSunil Kumar Kori 43b0f66a68SAkhil Goyal #define RTE_EVENT_CRYPTO_ADAPTER_DPAA_CAP \ 44b0f66a68SAkhil Goyal (RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW | \ 45b0f66a68SAkhil Goyal RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND | \ 46b0f66a68SAkhil Goyal RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA) 47b0f66a68SAkhil Goyal 489caac5ddSSunil Kumar Kori struct dpaa_eventq { 499caac5ddSSunil Kumar Kori /* Channel Id */ 509caac5ddSSunil Kumar Kori uint16_t ch_id; 519caac5ddSSunil Kumar Kori /* Configuration provided by the user */ 529caac5ddSSunil Kumar Kori uint32_t event_queue_cfg; 539caac5ddSSunil Kumar Kori uint32_t event_queue_id; 549caac5ddSSunil Kumar Kori /* Event port */ 559caac5ddSSunil Kumar Kori void *event_port; 569caac5ddSSunil Kumar Kori }; 579caac5ddSSunil Kumar Kori 589caac5ddSSunil Kumar Kori struct dpaa_port { 599caac5ddSSunil Kumar Kori struct dpaa_eventq evq_info[DPAA_EVENT_MAX_QUEUES]; 609caac5ddSSunil Kumar Kori uint8_t num_linked_evq; 619caac5ddSSunil Kumar Kori uint8_t is_port_linked; 6277b5311dSHemant Agrawal uint64_t timeout_us; 639caac5ddSSunil Kumar Kori }; 649caac5ddSSunil Kumar Kori 659caac5ddSSunil Kumar Kori struct dpaa_eventdev { 669caac5ddSSunil Kumar Kori struct dpaa_eventq evq_info[DPAA_EVENT_MAX_QUEUES]; 679caac5ddSSunil Kumar Kori struct dpaa_port ports[DPAA_EVENT_MAX_PORTS]; 689caac5ddSSunil Kumar Kori uint32_t dequeue_timeout_ns; 699caac5ddSSunil Kumar Kori uint32_t nb_events_limit; 709caac5ddSSunil Kumar Kori uint8_t max_event_queues; 719caac5ddSSunil Kumar Kori uint8_t nb_event_queues; 729caac5ddSSunil Kumar Kori uint8_t nb_event_ports; 7377b5311dSHemant Agrawal uint8_t intr_mode; 749caac5ddSSunil Kumar Kori uint32_t nb_event_queue_flows; 759caac5ddSSunil Kumar Kori uint32_t nb_event_port_dequeue_depth; 769caac5ddSSunil Kumar Kori uint32_t nb_event_port_enqueue_depth; 779caac5ddSSunil Kumar Kori uint32_t event_dev_cfg; 789caac5ddSSunil Kumar Kori }; 79df80d4f8SHemant Agrawal 802b843cacSDavid Marchand #define DPAA_EVENTDEV_LOG(level, ...) \ 812b843cacSDavid Marchand RTE_LOG_LINE_PREFIX(level, DPAA_EVENTDEV, "%s(): ", __func__, __VA_ARGS__) 82df80d4f8SHemant Agrawal 83df80d4f8SHemant Agrawal #define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>") 84df80d4f8SHemant Agrawal 85*fd51012dSAndre Muezerie #define DPAA_EVENTDEV_DEBUG(fmt, ...) \ 86*fd51012dSAndre Muezerie DPAA_EVENTDEV_LOG(DEBUG, fmt, ## __VA_ARGS__) 87*fd51012dSAndre Muezerie #define DPAA_EVENTDEV_ERR(fmt, ...) \ 88*fd51012dSAndre Muezerie DPAA_EVENTDEV_LOG(ERR, fmt, ## __VA_ARGS__) 89*fd51012dSAndre Muezerie #define DPAA_EVENTDEV_INFO(fmt, ...) \ 90*fd51012dSAndre Muezerie DPAA_EVENTDEV_LOG(INFO, fmt, ## __VA_ARGS__) 91*fd51012dSAndre Muezerie #define DPAA_EVENTDEV_WARN(fmt, ...) \ 92*fd51012dSAndre Muezerie DPAA_EVENTDEV_LOG(WARNING, fmt, ## __VA_ARGS__) 93df80d4f8SHemant Agrawal 949caac5ddSSunil Kumar Kori #endif /* __DPAA_EVENTDEV_H__ */ 95