net/dpaa: support firmware version get API

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
Hemant Agrawal 2017-09-28 17:59:59 +05:30 committed by Ferruh Yigit
parent 05ba55bc2b
commit cf0fab1d2c
3 changed files with 42 additions and 0 deletions

View File

@ -18,5 +18,6 @@ L3 checksum offload = Y
L4 checksum offload = Y
Packet type parsing = Y
Basic stats = Y
FW version = Y
ARMv8 = Y
Usage doc = Y

View File

@ -164,6 +164,41 @@ static void dpaa_eth_dev_close(struct rte_eth_dev *dev)
dpaa_eth_dev_stop(dev);
}
static int
dpaa_fw_version_get(struct rte_eth_dev *dev __rte_unused,
char *fw_version,
size_t fw_size)
{
int ret;
FILE *svr_file = NULL;
unsigned int svr_ver = 0;
PMD_INIT_FUNC_TRACE();
svr_file = fopen(DPAA_SOC_ID_FILE, "r");
if (!svr_file) {
DPAA_PMD_ERR("Unable to open SoC device");
return -ENOTSUP; /* Not supported on this infra */
}
ret = fscanf(svr_file, "svr:%x", &svr_ver);
if (ret <= 0) {
DPAA_PMD_ERR("Unable to read SoC device");
return -ENOTSUP; /* Not supported on this infra */
}
ret = snprintf(fw_version, fw_size,
"svr:%x-fman-v%x",
svr_ver,
fman_ip_rev);
ret += 1; /* add the size of '\0' */
if (fw_size < (uint32_t)ret)
return ret;
else
return 0;
}
static void dpaa_eth_dev_info(struct rte_eth_dev *dev,
struct rte_eth_dev_info *dev_info)
{
@ -512,6 +547,7 @@ static struct eth_dev_ops dpaa_devops = {
.mac_addr_remove = dpaa_dev_remove_mac_addr,
.mac_addr_set = dpaa_dev_set_mac_addr,
.fw_version_get = dpaa_fw_version_get,
};
static int dpaa_fc_set_default(struct dpaa_if *dpaa_intf)

View File

@ -43,6 +43,11 @@
#include <of.h>
#include <netcfg.h>
/* DPAA SoC identifier; If this is not available, it can be concluded
* that board is non-DPAA. Single slot is currently supported.
*/
#define DPAA_SOC_ID_FILE "sys/devices/soc0/soc_id"
#define DPAA_MBUF_HW_ANNOTATION 64
#define DPAA_FD_PTA_SIZE 64