X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcommon%2Fsfc_efx%2Fbase%2Frhead_impl.h;h=dd38ded7751ce3fc1363e62387ae1914e5844379;hb=c4f4a0e60dcb2a3877a4a751d7641fa1d9c46c29;hp=c3ffad72083195b0cb3c6b7362c28860fa4e0c8c;hpb=4fd0181f6c00785ba4e2ed211ad27661d70587ad;p=dpdk.git diff --git a/drivers/common/sfc_efx/base/rhead_impl.h b/drivers/common/sfc_efx/base/rhead_impl.h index c3ffad7208..dd38ded775 100644 --- a/drivers/common/sfc_efx/base/rhead_impl.h +++ b/drivers/common/sfc_efx/base/rhead_impl.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: BSD-3-Clause * - * Copyright(c) 2019-2020 Xilinx, Inc. + * Copyright(c) 2019-2021 Xilinx, Inc. * Copyright(c) 2018-2019 Solarflare Communications Inc. */ @@ -32,6 +32,10 @@ extern "C" { #define RHEAD_RXQ_DESC_SIZE (sizeof (efx_qword_t)) #define RHEAD_TXQ_DESC_SIZE (sizeof (efx_oword_t)) +#if EFSYS_OPT_EV_EXTENDED_WIDTH +#define RHEAD_EVQ_EW_DESC_SIZE (sizeof (efx_xword_t)) +#endif + /* NIC */ @@ -127,6 +131,7 @@ rhead_ev_qcreate( __in uint32_t id, __in uint32_t us, __in uint32_t flags, + __in uint32_t irq, __in efx_evq_t *eep); LIBEFX_INTERNAL @@ -437,6 +442,78 @@ rhead_tx_qstats_update( #endif /* EFSYS_OPT_QSTATS */ +#if EFSYS_OPT_TUNNEL + +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_tunnel_reconfigure( + __in efx_nic_t *enp); + +LIBEFX_INTERNAL +extern void +rhead_tunnel_fini( + __in efx_nic_t *enp); + +#endif /* EFSYS_OPT_TUNNEL */ + +#if EFSYS_OPT_PCI + +/* + * Perform discovery of function control window by looking for a + * EF100 locator in Xilinx capabilities tables. + */ +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_pci_nic_membar_lookup( + __in efsys_pci_config_t *espcp, + __in const efx_pci_ops_t *epop, + __out efx_bar_region_t *ebrp); + +#endif /* EFSYS_OPT_PCI */ + +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_nic_xilinx_cap_tbl_read_ef100_locator( + __in efsys_bar_t *esbp, + __in efsys_dma_addr_t offset, + __out efx_bar_region_t *ebrp); + +#if EFSYS_OPT_VIRTIO + +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_virtio_qstart( + __in efx_virtio_vq_t *evvp, + __in efx_virtio_vq_cfg_t *evvcp, + __in_opt efx_virtio_vq_dyncfg_t *evvdp); + +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_virtio_qstop( + __in efx_virtio_vq_t *evvp, + __out_opt efx_virtio_vq_dyncfg_t *evvdp); + +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_virtio_get_doorbell_offset( + __in efx_virtio_vq_t *evvp, + __out uint32_t *offsetp); + +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_virtio_get_features( + __in efx_nic_t *enp, + __in efx_virtio_device_type_t type, + __out uint64_t *featuresp); + +LIBEFX_INTERNAL +extern __checkReturn efx_rc_t +rhead_virtio_verify_features( + __in efx_nic_t *enp, + __in efx_virtio_device_type_t type, + __in uint64_t features); + +#endif /* EFSYS_OPT_VIRTIO */ #ifdef __cplusplus }