common/sfc_efx/base: update EF100 registers definitions
[dpdk.git] / drivers / common / sfc_efx / base / rhead_impl.h
index c62cf8c..dd38ded 100644 (file)
@@ -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,20 @@ 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
 
 /*
@@ -447,10 +466,55 @@ 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
 }
 #endif