]> git.droids-corp.org - dpdk.git/commitdiff
bus/dpaa: move QBMAN global init to bus
authorHemant Agrawal <hemant.agrawal@nxp.com>
Tue, 5 Nov 2019 14:23:20 +0000 (19:53 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 6 Nov 2019 00:14:41 +0000 (01:14 +0100)
DPAA SEC shall be able to work independent of DPAA ETH
driver.
This patch moves qbman init to bus, so that any driver
can use them even when no eth resources are present
or none of the eth devices are probed.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
drivers/bus/dpaa/dpaa_bus.c
drivers/bus/dpaa/rte_bus_dpaa_version.map
drivers/crypto/dpaa_sec/dpaa_sec.c
drivers/net/dpaa/dpaa_ethdev.c

index d028ef3bef7d3365dd802875c33647d42a083c4a..f27820db37d47ebdef5019f92cd0dce19eb80edc 100644 (file)
@@ -561,8 +561,24 @@ rte_dpaa_bus_probe(void)
                return 0;
 
        /* Device list creation is only done once */
-       if (!process_once)
+       if (!process_once) {
                rte_dpaa_bus_dev_build();
+               if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+                       /* One time load of Qman/Bman drivers */
+                       ret = qman_global_init();
+                       if (ret) {
+                               DPAA_PMD_ERR("QMAN initialization failed: %d",
+                                            ret);
+                               return ret;
+                       }
+                       ret = bman_global_init();
+                       if (ret) {
+                               DPAA_PMD_ERR("BMAN initialization failed: %d",
+                                            ret);
+                               return ret;
+                       }
+               }
+       }
        process_once = 1;
 
        /* If no device present on DPAA bus nothing needs to be done */
@@ -600,7 +616,8 @@ rte_dpaa_bus_probe(void)
                            RTE_DEV_WHITELISTED)) {
                                ret = drv->probe(drv, dev);
                                if (ret) {
-                                       DPAA_BUS_ERR("Unable to probe.\n");
+                                       DPAA_BUS_ERR("unable to probe:%s",
+                                                    dev->name);
                                } else {
                                        dev->driver = drv;
                                        dev->device.driver = &drv->driver;
index 97f4f622db502e1fc316b4f8055edc6eac4129f2..cf428a54dc47f0cb536025891b694a30b2f9ec9d 100644 (file)
@@ -4,7 +4,6 @@ DPDK_17.11 {
        bman_acquire;
        bman_free_pool;
        bman_get_params;
-       bman_global_init;
        bman_new_pool;
        bman_query_free_buffers;
        bman_release;
@@ -48,7 +47,6 @@ DPDK_17.11 {
        qman_enqueue_multi;
        qman_fq_fqid;
        qman_fq_state;
-       qman_global_init;
        qman_init_fq;
        qman_poll_dqrr;
        qman_query_fq_np;
index 6c186338ff38d4f4352eb907cf1066171f8aba4e..ee59cf9741644ff4716da5b09cc1e0c959be50c1 100644 (file)
@@ -3334,6 +3334,14 @@ cryptodev_dpaa_sec_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused,
                }
        }
 
+       if (unlikely(!RTE_PER_LCORE(dpaa_io))) {
+               retval = rte_dpaa_portal_init((void *)1);
+               if (retval) {
+                       DPAA_SEC_ERR("Unable to initialize portal");
+                       return retval;
+               }
+       }
+
        /* Invoke PMD device initialization function */
        retval = dpaa_sec_dev_init(cryptodev);
        if (retval == 0)
index caf255d674e479a1734faf5325af3e5ab551b7a4..16b52b5e15f9dc151459128f3036761e3e7ed910 100644 (file)
@@ -1576,20 +1576,6 @@ rte_dpaa_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused,
        }
 
        if (!is_global_init && (rte_eal_process_type() == RTE_PROC_PRIMARY)) {
-               /* One time load of Qman/Bman drivers */
-               ret = qman_global_init();
-               if (ret) {
-                       DPAA_PMD_ERR("QMAN initialization failed: %d",
-                                    ret);
-                       return ret;
-               }
-               ret = bman_global_init();
-               if (ret) {
-                       DPAA_PMD_ERR("BMAN initialization failed: %d",
-                                    ret);
-                       return ret;
-               }
-
                if (access("/tmp/fmc.bin", F_OK) == -1) {
                        RTE_LOG(INFO, PMD,
                                "* FMC not configured.Enabling default mode\n");