Add VMXNET3 v5 support

Tested, using testpmd, for different hardware version on ESXi 7.0 Update 2.

Signed-off-by: Pankaj Gupta <pagu...@vmware.com>
---
 drivers/net/vmxnet3/vmxnet3_ethdev.c | 7 +++++--
 drivers/net/vmxnet3/vmxnet3_ethdev.h | 2 ++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c 
b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index d1ef1cad08..a7e1e5fef5 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -316,9 +316,12 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
 
        /* Check h/w version compatibility with driver. */
        ver = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_VRRS);
-       PMD_INIT_LOG(DEBUG, "Hardware version : %d", ver);
 
-       if (ver & (1 << VMXNET3_REV_4)) {
+       if (ver & (1 << VMXNET3_REV_5)) {
+               VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_VRRS,
+                                      1 << VMXNET3_REV_5);
+               hw->version = VMXNET3_REV_5 + 1;
+       } else if (ver & (1 << VMXNET3_REV_4)) {
                VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_VRRS,
                                       1 << VMXNET3_REV_4);
                hw->version = VMXNET3_REV_4 + 1;
diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.h 
b/drivers/net/vmxnet3/vmxnet3_ethdev.h
index ef858ac951..7ec3b2e1f0 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.h
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.h
@@ -124,11 +124,13 @@ struct vmxnet3_hw {
        UPT1_RxStats          snapshot_rx_stats[VMXNET3_MAX_RX_QUEUES];
 };
 
+#define VMXNET3_REV_5          4               /* Vmxnet3 Rev. 5 */
 #define VMXNET3_REV_4          3               /* Vmxnet3 Rev. 4 */
 #define VMXNET3_REV_3          2               /* Vmxnet3 Rev. 3 */
 #define VMXNET3_REV_2          1               /* Vmxnet3 Rev. 2 */
 #define VMXNET3_REV_1          0               /* Vmxnet3 Rev. 1 */
 
+#define VMXNET3_VERSION_GE_5(hw) ((hw)->version >= VMXNET3_REV_5 + 1)
 #define VMXNET3_VERSION_GE_4(hw) ((hw)->version >= VMXNET3_REV_4 + 1)
 #define VMXNET3_VERSION_GE_3(hw) ((hw)->version >= VMXNET3_REV_3 + 1)
 #define VMXNET3_VERSION_GE_2(hw) ((hw)->version >= VMXNET3_REV_2 + 1)
-- 
2.17.1

Reply via email to