1c147eae0SHemant Agrawal /*- 2c147eae0SHemant Agrawal * BSD LICENSE 3c147eae0SHemant Agrawal * 4c147eae0SHemant Agrawal * Copyright (c) 2015-2016 Freescale Semiconductor, Inc. All rights reserved. 5c147eae0SHemant Agrawal * Copyright (c) 2016 NXP. All rights reserved. 6c147eae0SHemant Agrawal * 7c147eae0SHemant Agrawal * Redistribution and use in source and binary forms, with or without 8c147eae0SHemant Agrawal * modification, are permitted provided that the following conditions 9c147eae0SHemant Agrawal * are met: 10c147eae0SHemant Agrawal * 11c147eae0SHemant Agrawal * * Redistributions of source code must retain the above copyright 12c147eae0SHemant Agrawal * notice, this list of conditions and the following disclaimer. 13c147eae0SHemant Agrawal * * Redistributions in binary form must reproduce the above copyright 14c147eae0SHemant Agrawal * notice, this list of conditions and the following disclaimer in 15c147eae0SHemant Agrawal * the documentation and/or other materials provided with the 16c147eae0SHemant Agrawal * distribution. 17c147eae0SHemant Agrawal * * Neither the name of Freescale Semiconductor, Inc nor the names of its 18c147eae0SHemant Agrawal * contributors may be used to endorse or promote products derived 19c147eae0SHemant Agrawal * from this software without specific prior written permission. 20c147eae0SHemant Agrawal * 21c147eae0SHemant Agrawal * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22c147eae0SHemant Agrawal * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23c147eae0SHemant Agrawal * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24c147eae0SHemant Agrawal * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25c147eae0SHemant Agrawal * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26c147eae0SHemant Agrawal * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27c147eae0SHemant Agrawal * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28c147eae0SHemant Agrawal * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29c147eae0SHemant Agrawal * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30c147eae0SHemant Agrawal * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31c147eae0SHemant Agrawal * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32c147eae0SHemant Agrawal */ 33c147eae0SHemant Agrawal 34c147eae0SHemant Agrawal #ifndef _DPAA2_ETHDEV_H 35c147eae0SHemant Agrawal #define _DPAA2_ETHDEV_H 36c147eae0SHemant Agrawal 373e5a335dSHemant Agrawal #include <mc/fsl_dpni.h> 383e5a335dSHemant Agrawal #include <mc/fsl_mc_sys.h> 393e5a335dSHemant Agrawal 40bee61d86SHemant Agrawal #define DPAA2_MIN_RX_BUF_SIZE 512 41bee61d86SHemant Agrawal #define DPAA2_MAX_RX_PKT_LEN 10240 /*WRIOP support*/ 42bee61d86SHemant Agrawal 4389c2ea8fSHemant Agrawal #define MAX_TCS DPNI_MAX_TC 443e5a335dSHemant Agrawal #define MAX_RX_QUEUES 16 453e5a335dSHemant Agrawal #define MAX_TX_QUEUES 16 463e5a335dSHemant Agrawal 473e5a335dSHemant Agrawal /*default tc to be used for ,congestion, distribution etc configuration. */ 483e5a335dSHemant Agrawal #define DPAA2_DEF_TC 0 493e5a335dSHemant Agrawal 5089c2ea8fSHemant Agrawal /* Size of the input SMMU mapped memory required by MC */ 5189c2ea8fSHemant Agrawal #define DIST_PARAM_IOVA_SIZE 256 5289c2ea8fSHemant Agrawal 53c147eae0SHemant Agrawal struct dpaa2_dev_priv { 54c147eae0SHemant Agrawal void *hw; 55c147eae0SHemant Agrawal int32_t hw_id; 563e5a335dSHemant Agrawal int32_t qdid; 57c147eae0SHemant Agrawal uint16_t token; 583e5a335dSHemant Agrawal uint8_t nb_tx_queues; 593e5a335dSHemant Agrawal uint8_t nb_rx_queues; 603e5a335dSHemant Agrawal void *rx_vq[MAX_RX_QUEUES]; 613e5a335dSHemant Agrawal void *tx_vq[MAX_TX_QUEUES]; 62c147eae0SHemant Agrawal 63bee61d86SHemant Agrawal struct dpaa2_bp_list *bp_list; /**<Attached buffer pool list */ 6433fad432SHemant Agrawal uint32_t options; 6589c2ea8fSHemant Agrawal uint16_t num_dist_per_tc[MAX_TCS]; 6633fad432SHemant Agrawal uint8_t max_mac_filters; 6733fad432SHemant Agrawal uint8_t max_vlan_filters; 683e5a335dSHemant Agrawal uint8_t num_tc; 69c147eae0SHemant Agrawal uint8_t flags; /*dpaa2 config flags */ 70c147eae0SHemant Agrawal }; 7189c2ea8fSHemant Agrawal 7289c2ea8fSHemant Agrawal int dpaa2_setup_flow_dist(struct rte_eth_dev *eth_dev, 7389c2ea8fSHemant Agrawal uint32_t req_dist_set); 7489c2ea8fSHemant Agrawal 7589c2ea8fSHemant Agrawal int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev, 7689c2ea8fSHemant Agrawal uint8_t tc_index); 7789c2ea8fSHemant Agrawal 78bee61d86SHemant Agrawal int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist); 79bee61d86SHemant Agrawal 80*cd9935ceSHemant Agrawal uint16_t dpaa2_dev_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts); 81*cd9935ceSHemant Agrawal uint16_t dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts); 82*cd9935ceSHemant Agrawal 83c147eae0SHemant Agrawal #endif /* _DPAA2_ETHDEV_H */ 84