[dpdk-dev,v4,11/26] net/bnxt: add support to get fw version
Checks
Commit Message
This patch adds support for fw_version_get dev_op
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
--
v1->v2: regroup related patches and incorporate other review comments
v2->v3:
- rebasing to next-net tree
- Use net/bnxt instead of just bnxt in patch subject
- Avoid using dev_ops in the patch subject line
---
doc/guides/nics/features/bnxt.ini | 1 +
drivers/net/bnxt/bnxt_ethdev.c | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+)
@@ -16,6 +16,7 @@ RSS reta update = Y
Basic stats = Y
Extended stats = Y
SR-IOV = Y
+FW version = Y
Linux VFIO = Y
Linux UIO = Y
x86-64 = Y
@@ -1356,6 +1356,25 @@ bnxt_dev_set_mc_addr_list_op(struct rte_eth_dev *eth_dev,
return bnxt_hwrm_cfa_l2_set_rx_mask(bp, vnic);
}
+static int
+bnxt_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
+{
+ struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+ uint8_t fw_major = (bp->fw_ver >> 24) & 0xff;
+ uint8_t fw_minor = (bp->fw_ver >> 16) & 0xff;
+ uint8_t fw_updt = (bp->fw_ver >> 8) & 0xff;
+ int ret;
+
+ ret = snprintf(fw_version, fw_size, "%d.%d.%d",
+ fw_major, fw_minor, fw_updt);
+
+ ret += 1; /* add the size of '\0' */
+ if (fw_size < (uint32_t)ret)
+ return ret;
+ else
+ return 0;
+}
+
/*
* Initialization
*/
@@ -1395,6 +1414,7 @@ static const struct eth_dev_ops bnxt_dev_ops = {
.xstats_get = bnxt_dev_xstats_get_op,
.xstats_get_names = bnxt_dev_xstats_get_names_op,
.xstats_reset = bnxt_dev_xstats_reset_op,
+ .fw_version_get = bnxt_fw_version_get,
.set_mc_addr_list = bnxt_dev_set_mc_addr_list_op,
};