[PATCH 08/10] vdpa/nfp: recover the ring index on new host
Chaoyong He
chaoyong.he at corigine.com
Fri Apr 26 09:48:29 CEST 2024
From: Xinying Yu <xinying.yu at corigine.com>
After migrate to new host, the vring information was
recovered by the value in offset 'NFP_NET_CFG_TX_USED_INDEX'
and 'NFP_NET_CFG_RX_USED_INDEX'.
Signed-off-by: Xinying Yu <xinying.yu at corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he at corigine.com>
Reviewed-by: Long Wu <long.wu at corigine.com>
Reviewed-by: Peng Zhang <peng.zhang at corigine.com>
---
drivers/common/nfp/nfp_common_ctrl.h | 7 +++++--
drivers/vdpa/nfp/nfp_vdpa_core.c | 13 +++++++++++++
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/drivers/common/nfp/nfp_common_ctrl.h b/drivers/common/nfp/nfp_common_ctrl.h
index 9311d01590..4b273372a8 100644
--- a/drivers/common/nfp/nfp_common_ctrl.h
+++ b/drivers/common/nfp/nfp_common_ctrl.h
@@ -193,8 +193,11 @@ struct nfp_net_fw_ver {
#define NFP_NET_CFG_CAP_WORD1 0x00a4
-/* 16B reserved for future use (0x00b0 - 0x00c0). */
-#define NFP_NET_CFG_RESERVED 0x00b0
+#define NFP_NET_CFG_TX_USED_INDEX 0x00b0
+#define NFP_NET_CFG_RX_USED_INDEX 0x00b4
+
+/* 16B reserved for future use (0x00b8 - 0x0010). */
+#define NFP_NET_CFG_RESERVED 0x00b8
#define NFP_NET_CFG_RESERVED_SZ 0x0010
/*
diff --git a/drivers/vdpa/nfp/nfp_vdpa_core.c b/drivers/vdpa/nfp/nfp_vdpa_core.c
index 63a69aaf36..8f9aba9519 100644
--- a/drivers/vdpa/nfp/nfp_vdpa_core.c
+++ b/drivers/vdpa/nfp/nfp_vdpa_core.c
@@ -101,6 +101,16 @@ nfp_vdpa_hw_init(struct nfp_vdpa_hw *vdpa_hw,
return 0;
}
+static void
+nfp_vdpa_hw_queue_init(struct nfp_vdpa_hw *vdpa_hw)
+{
+ /* Distribute ring information to firmware */
+ nn_cfg_writel(&vdpa_hw->super, NFP_NET_CFG_TX_USED_INDEX,
+ vdpa_hw->vring[1].last_used_idx);
+ nn_cfg_writel(&vdpa_hw->super, NFP_NET_CFG_RX_USED_INDEX,
+ vdpa_hw->vring[0].last_used_idx);
+}
+
static uint32_t
nfp_vdpa_check_offloads(void)
{
@@ -199,6 +209,9 @@ nfp_vdpa_queue_config(struct nfp_vdpa_hw *vdpa_hw,
nn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(2), vdpa_hw->vring[0].used);
+ if (!relay)
+ nfp_vdpa_hw_queue_init(vdpa_hw);
+
rte_wmb();
}
--
2.39.1
More information about the dev
mailing list