mbuf: rename data address helpers to IOVA
[dpdk.git] / drivers / net / mrvl / mrvl_ethdev.c
index 4beaa1d..a897ba0 100644 (file)
@@ -1,7 +1,9 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2017 Semihalf. All rights reserved.
+ *   Copyright(c) 2017 Marvell International Ltd.
+ *   Copyright(c) 2017 Semihalf.
+ *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
@@ -93,6 +95,9 @@
 #define MRVL_COOKIE_HIGH_ADDR_SHIFT    (sizeof(pp2_cookie_t) * 8)
 #define MRVL_COOKIE_HIGH_ADDR_MASK     (~0ULL << MRVL_COOKIE_HIGH_ADDR_SHIFT)
 
+/* Memory size (in bytes) for MUSDK dma buffers */
+#define MRVL_MUSDK_DMA_MEMSIZE 41943040
+
 static const char * const valid_args[] = {
        MRVL_IFACE_NAME_ARG,
        MRVL_CFG_ARG,
@@ -1148,7 +1153,7 @@ mrvl_fill_bpool(struct mrvl_rxq *rxq, int num)
                }
 
                entries[i].buff.addr =
-                       rte_mbuf_data_dma_addr_default(mbufs[i]);
+                       rte_mbuf_data_iova_default(mbufs[i]);
                entries[i].buff.cookie = (pp2_cookie_t)(uint64_t)mbufs[i];
                entries[i].bpool = bpool;
        }
@@ -1593,7 +1598,7 @@ mrvl_rx_pkt_burst(void *rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
                status = pp2_ppio_inq_desc_get_l2_pkt_error(&descs[i]);
                if (unlikely(status != PP2_DESC_ERR_OK)) {
                        struct pp2_buff_inf binf = {
-                               .addr = rte_mbuf_data_dma_addr_default(mbuf),
+                               .addr = rte_mbuf_data_iova_default(mbuf),
                                .cookie = (pp2_cookie_t)(uint64_t)mbuf,
                        };
 
@@ -1849,7 +1854,7 @@ mrvl_tx_pkt_burst(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 
                sq->ent[sq->head].buff.cookie = (pp2_cookie_t)(uint64_t)mbuf;
                sq->ent[sq->head].buff.addr =
-                       rte_mbuf_data_dma_addr_default(mbuf);
+                       rte_mbuf_data_iova_default(mbuf);
                sq->ent[sq->head].bpool =
                        (unlikely(mbuf->port == 0xff || mbuf->refcnt > 1)) ?
                         NULL : mrvl_port_to_bpool_lookup[mbuf->port];
@@ -1858,7 +1863,7 @@ mrvl_tx_pkt_burst(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 
                pp2_ppio_outq_desc_reset(&descs[i]);
                pp2_ppio_outq_desc_set_phys_addr(&descs[i],
-                                                rte_pktmbuf_mtophys(mbuf));
+                                                rte_pktmbuf_iova(mbuf));
                pp2_ppio_outq_desc_set_pkt_offset(&descs[i], 0);
                pp2_ppio_outq_desc_set_pkt_len(&descs[i],
                                               rte_pktmbuf_pkt_len(mbuf));
@@ -2193,9 +2198,14 @@ rte_pmd_mrvl_probe(struct rte_vdev_device *vdev)
         * ret == -EEXIST is correct, it means DMA
         * has been already initialized (by another PMD).
         */
-       ret = mv_sys_dma_mem_init(RTE_MRVL_MUSDK_DMA_MEMSIZE);
-       if (ret < 0 && ret != -EEXIST)
-               goto out_free_kvlist;
+       ret = mv_sys_dma_mem_init(MRVL_MUSDK_DMA_MEMSIZE);
+       if (ret < 0) {
+               if (ret != -EEXIST)
+                       goto out_free_kvlist;
+               else
+                       RTE_LOG(INFO, PMD,
+                               "DMA memory has been already initialized by a different driver.\n");
+       }
 
        ret = mrvl_init_pp2();
        if (ret) {