bus/dpaa: update platform SoC value register routines

This patch update the logic and expose the soc value
register, so that it can be used by other modules as well.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
Hemant Agrawal 2018-01-10 16:16:26 +05:30 committed by Ferruh Yigit
parent a8e78906af
commit 3b59b73dea
5 changed files with 34 additions and 6 deletions

View File

@ -51,6 +51,8 @@ struct netcfg_info *dpaa_netcfg;
/* define a variable to hold the portal_key, once created.*/
pthread_key_t dpaa_portal_key;
unsigned int dpaa_svr_family;
RTE_DEFINE_PER_LCORE(bool, _dpaa_io);
static inline void
@ -417,6 +419,8 @@ rte_dpaa_bus_probe(void)
int ret = -1;
struct rte_dpaa_device *dev;
struct rte_dpaa_driver *drv;
FILE *svr_file = NULL;
unsigned int svr_ver;
BUS_INIT_FUNC_TRACE();
@ -436,6 +440,14 @@ rte_dpaa_bus_probe(void)
break;
}
}
svr_file = fopen(DPAA_SOC_ID_FILE, "r");
if (svr_file) {
if (fscanf(svr_file, "svr:%x", &svr_ver) > 0)
dpaa_svr_family = svr_ver & SVR_MASK;
fclose(svr_file);
}
return 0;
}

View File

@ -64,3 +64,11 @@ DPDK_17.11 {
local: *;
};
DPDK_18.02 {
global:
dpaa_svr_family;
local: *;
} DPDK_17.11;

View File

@ -20,6 +20,17 @@
#define DEV_TO_DPAA_DEVICE(ptr) \
container_of(ptr, struct rte_dpaa_device, device)
/* 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 SVR_LS1043A_FAMILY 0x87920000
#define SVR_LS1046A_FAMILY 0x87070000
#define SVR_MASK 0xffff0000
extern unsigned int dpaa_svr_family;
struct rte_dpaa_device;
struct rte_dpaa_driver;

View File

@ -186,7 +186,9 @@ dpaa_fw_version_get(struct rte_eth_dev *dev __rte_unused,
DPAA_PMD_ERR("Unable to open SoC device");
return -ENOTSUP; /* Not supported on this infra */
}
if (fscanf(svr_file, "svr:%x", &svr_ver) <= 0)
if (fscanf(svr_file, "svr:%x", &svr_ver) > 0)
dpaa_svr_family = svr_ver & SVR_MASK;
else
DPAA_PMD_ERR("Unable to read SoC device");
fclose(svr_file);

View File

@ -17,11 +17,6 @@
#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