1688654bfSRasesh Mody /* SPDX-License-Identifier: BSD-3-Clause 2540a2110SStephen Hemminger * Copyright (c) 2013-2015 Brocade Communications Systems, Inc. 3e3de5dadSRasesh Mody * Copyright (c) 2015-2018 Cavium Inc. 4540a2110SStephen Hemminger * All rights reserved. 5e3de5dadSRasesh Mody * www.cavium.com 6540a2110SStephen Hemminger */ 7540a2110SStephen Hemminger 8540a2110SStephen Hemminger #ifndef PMD_BNX2X_ETHDEV_H 9540a2110SStephen Hemminger #define PMD_BNX2X_ETHDEV_H 10540a2110SStephen Hemminger 11540a2110SStephen Hemminger #include <sys/queue.h> 12540a2110SStephen Hemminger #include <sys/param.h> 13540a2110SStephen Hemminger #include <sys/user.h> 14540a2110SStephen Hemminger #include <sys/stat.h> 15540a2110SStephen Hemminger 16540a2110SStephen Hemminger #include <stdio.h> 17540a2110SStephen Hemminger #include <stdlib.h> 18b6b1d2ebSDharmik Thakkar #include <stdbool.h> 19540a2110SStephen Hemminger #include <errno.h> 20540a2110SStephen Hemminger #include <stdint.h> 21540a2110SStephen Hemminger #include <string.h> 22540a2110SStephen Hemminger #include <unistd.h> 23540a2110SStephen Hemminger #include <stdarg.h> 24540a2110SStephen Hemminger #include <inttypes.h> 25540a2110SStephen Hemminger #include <assert.h> 26540a2110SStephen Hemminger 27540a2110SStephen Hemminger #include <rte_byteorder.h> 28540a2110SStephen Hemminger #include <rte_common.h> 29540a2110SStephen Hemminger #include <rte_cycles.h> 30540a2110SStephen Hemminger #include <rte_log.h> 31540a2110SStephen Hemminger #include <rte_debug.h> 32540a2110SStephen Hemminger #include <rte_pci.h> 33540a2110SStephen Hemminger #include <rte_malloc.h> 34*df96fd0dSBruce Richardson #include <ethdev_driver.h> 35540a2110SStephen Hemminger #include <rte_spinlock.h> 36540a2110SStephen Hemminger #include <rte_eal.h> 37540a2110SStephen Hemminger #include <rte_mempool.h> 38540a2110SStephen Hemminger #include <rte_mbuf.h> 39540a2110SStephen Hemminger 40540a2110SStephen Hemminger #include "bnx2x_rxtx.h" 41540a2110SStephen Hemminger #include "bnx2x_logs.h" 42540a2110SStephen Hemminger 43540a2110SStephen Hemminger #define DELAY(x) rte_delay_us(x) 44540a2110SStephen Hemminger #define DELAY_MS(x) rte_delay_ms(x) 45540a2110SStephen Hemminger #define usec_delay(x) DELAY(x) 46540a2110SStephen Hemminger #define msec_delay(x) DELAY(1000*(x)) 47540a2110SStephen Hemminger 48540a2110SStephen Hemminger #define FALSE 0 49540a2110SStephen Hemminger #define TRUE 1 50540a2110SStephen Hemminger 51540a2110SStephen Hemminger #define min(a,b) RTE_MIN(a,b) 52540a2110SStephen Hemminger 53540a2110SStephen Hemminger #define mb() rte_mb() 54540a2110SStephen Hemminger #define wmb() rte_wmb() 55540a2110SStephen Hemminger #define rmb() rte_rmb() 56540a2110SStephen Hemminger 57540a2110SStephen Hemminger #define MAX_QUEUES sysconf(_SC_NPROCESSORS_CONF) 58540a2110SStephen Hemminger 59540a2110SStephen Hemminger #define BNX2X_MIN_RX_BUF_SIZE 1024 60540a2110SStephen Hemminger #define BNX2X_MAX_RX_PKT_LEN 15872 61540a2110SStephen Hemminger #define BNX2X_MAX_MAC_ADDRS 1 62540a2110SStephen Hemminger 63540a2110SStephen Hemminger /* Hardware RX tick timer (usecs) */ 64540a2110SStephen Hemminger #define BNX2X_RX_TICKS 25 65540a2110SStephen Hemminger /* Hardware TX tick timer (usecs) */ 66540a2110SStephen Hemminger #define BNX2X_TX_TICKS 50 67540a2110SStephen Hemminger /* Maximum number of Rx packets to process at a time */ 68540a2110SStephen Hemminger #define BNX2X_RX_BUDGET 0xffffffff 69540a2110SStephen Hemminger 706041aa61SRasesh Mody #define BNX2X_SP_TIMER_PERIOD US_PER_S /* 1 second */ 716041aa61SRasesh Mody 72540a2110SStephen Hemminger #endif 73540a2110SStephen Hemminger 74540a2110SStephen Hemminger /* MAC address operations */ 75540a2110SStephen Hemminger struct bnx2x_mac_ops { 766d13ea8eSOlivier Matz void (*mac_addr_add)(struct rte_eth_dev *dev, 776d13ea8eSOlivier Matz struct rte_ether_addr *addr, 78540a2110SStephen Hemminger uint16_t index, uint32_t pool); /* not implemented yet */ 79540a2110SStephen Hemminger void (*mac_addr_remove)(struct rte_eth_dev *dev, uint16_t index); /* not implemented yet */ 80540a2110SStephen Hemminger }; 81