[dpdk-dev] [PATCH v2 01/57] net/octeontx2: add build and doc infrastructure

jerinj at marvell.com jerinj at marvell.com
Sun Jun 30 20:05:13 CEST 2019


From: Jerin Jacob <jerinj at marvell.com>

Adding bare minimum PMD library and doc build infrastructure
and claim the maintainership for octeontx2 PMD.

Signed-off-by: Jerin Jacob <jerinj at marvell.com>
Signed-off-by: Nithin Dabilpuram <ndabilpuram at marvell.com>
Signed-off-by: Kiran Kumar K <kirankumark at marvell.com>
---
 MAINTAINERS                                   |  9 ++++++
 config/common_base                            |  5 +++
 doc/guides/nics/features/octeontx2.ini        |  9 ++++++
 doc/guides/nics/features/octeontx2_vec.ini    |  9 ++++++
 doc/guides/nics/features/octeontx2_vf.ini     |  9 ++++++
 doc/guides/nics/index.rst                     |  1 +
 doc/guides/nics/octeontx2.rst                 | 32 +++++++++++++++++++
 doc/guides/platform/octeontx2.rst             |  3 ++
 drivers/net/Makefile                          |  1 +
 drivers/net/meson.build                       |  6 +++-
 drivers/net/octeontx2/Makefile                | 30 +++++++++++++++++
 drivers/net/octeontx2/meson.build             |  9 ++++++
 drivers/net/octeontx2/otx2_ethdev.c           |  3 ++
 .../octeontx2/rte_pmd_octeontx2_version.map   |  4 +++
 mk/rte.app.mk                                 |  2 ++
 15 files changed, 131 insertions(+), 1 deletion(-)
 create mode 100644 doc/guides/nics/features/octeontx2.ini
 create mode 100644 doc/guides/nics/features/octeontx2_vec.ini
 create mode 100644 doc/guides/nics/features/octeontx2_vf.ini
 create mode 100644 doc/guides/nics/octeontx2.rst
 create mode 100644 drivers/net/octeontx2/Makefile
 create mode 100644 drivers/net/octeontx2/meson.build
 create mode 100644 drivers/net/octeontx2/otx2_ethdev.c
 create mode 100644 drivers/net/octeontx2/rte_pmd_octeontx2_version.map

diff --git a/MAINTAINERS b/MAINTAINERS
index 24431832a..37fb91d64 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -684,6 +684,15 @@ F: drivers/net/mvneta/
 F: doc/guides/nics/mvneta.rst
 F: doc/guides/nics/features/mvneta.ini
 
+Marvell OCTEON TX2
+M: Jerin Jacob <jerinj at marvell.com>
+M: Nithin Dabilpuram <ndabilpuram at marvell.com>
+M: Kiran Kumar K <kirankumark at marvell.com>
+T: git://dpdk.org/next/dpdk-next-net-mrvl
+F: drivers/net/octeontx2/
+F: doc/guides/nics/features/octeontx2*.rst
+F: doc/guides/nics/octeontx2.rst
+
 Mellanox mlx4
 M: Matan Azrad <matan at mellanox.com>
 M: Shahaf Shuler <shahafs at mellanox.com>
diff --git a/config/common_base b/config/common_base
index e700bf1e7..6cc44b65a 100644
--- a/config/common_base
+++ b/config/common_base
@@ -411,6 +411,11 @@ CONFIG_RTE_LIBRTE_LIO_DEBUG_REGS=n
 #
 CONFIG_RTE_LIBRTE_OCTEONTX_PMD=y
 
+#
+# Compile burst-oriented Marvell OCTEON TX2 network PMD driver
+#
+CONFIG_RTE_LIBRTE_OCTEONTX2_PMD=y
+
 #
 # Compile WRS accelerated virtual port (AVP) guest PMD driver
 #
diff --git a/doc/guides/nics/features/octeontx2.ini b/doc/guides/nics/features/octeontx2.ini
new file mode 100644
index 000000000..84d5ad779
--- /dev/null
+++ b/doc/guides/nics/features/octeontx2.ini
@@ -0,0 +1,9 @@
+;
+; Supported features of the 'octeontx2' network poll mode driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Linux VFIO           = Y
+ARMv8                = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/features/octeontx2_vec.ini b/doc/guides/nics/features/octeontx2_vec.ini
new file mode 100644
index 000000000..5fd7e4c5c
--- /dev/null
+++ b/doc/guides/nics/features/octeontx2_vec.ini
@@ -0,0 +1,9 @@
+;
+; Supported features of the 'octeontx2_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Linux VFIO           = Y
+ARMv8                = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/features/octeontx2_vf.ini b/doc/guides/nics/features/octeontx2_vf.ini
new file mode 100644
index 000000000..3128cc120
--- /dev/null
+++ b/doc/guides/nics/features/octeontx2_vf.ini
@@ -0,0 +1,9 @@
+;
+; Supported features of the 'octeontx2_vf' network poll mode driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Linux VFIO           = Y
+ARMv8                = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst
index d664c4592..9fec02f3e 100644
--- a/doc/guides/nics/index.rst
+++ b/doc/guides/nics/index.rst
@@ -46,6 +46,7 @@ Network Interface Controller Drivers
     nfb
     nfp
     octeontx
+    octeontx2
     qede
     sfc_efx
     softnic
diff --git a/doc/guides/nics/octeontx2.rst b/doc/guides/nics/octeontx2.rst
new file mode 100644
index 000000000..f0bd36be3
--- /dev/null
+++ b/doc/guides/nics/octeontx2.rst
@@ -0,0 +1,32 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(C) 2019 Marvell International Ltd.
+
+OCTEON TX2 Poll Mode driver
+===========================
+
+The OCTEON TX2 ETHDEV PMD (**librte_pmd_octeontx2**) provides poll mode ethdev
+driver support for the inbuilt network device found in **Marvell OCTEON TX2**
+SoC family as well as for their virtual functions (VF) in SR-IOV context.
+
+More information can be found at `Marvell Official Website
+<https://www.marvell.com/embedded-processors/infrastructure-processors>`_.
+
+Features
+--------
+
+Features of the OCTEON TX2 Ethdev PMD are:
+
+
+Prerequisites
+-------------
+
+See :doc:`../platform/octeontx2` for setup information.
+
+Compile time Config Options
+---------------------------
+
+The following options may be modified in the ``config`` file.
+
+- ``CONFIG_RTE_LIBRTE_OCTEONTX2_PMD`` (default ``y``)
+
+  Toggle compilation of the ``librte_pmd_octeontx2`` driver.
diff --git a/doc/guides/platform/octeontx2.rst b/doc/guides/platform/octeontx2.rst
index c9ea45647..d2592f119 100644
--- a/doc/guides/platform/octeontx2.rst
+++ b/doc/guides/platform/octeontx2.rst
@@ -98,6 +98,9 @@ HW Offload Drivers
 
 This section lists dataplane H/W block(s) available in OCTEON TX2 SoC.
 
+#. **Ethdev Driver**
+   See :doc:`../nics/octeontx2` for NIX Ethdev driver information.
+
 #. **Mempool Driver**
    See :doc:`../mempool/octeontx2` for NPA mempool driver information.
 
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index a1d45d9cb..5767fdf65 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -47,6 +47,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp
 DIRS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += null
 DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx
+DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += octeontx2
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += pcap
 DIRS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 86e704e13..513f19b33 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -33,7 +33,11 @@ drivers = ['af_packet',
 	'netvsc',
 	'nfb',
 	'nfp',
-	'null', 'octeontx', 'pcap', 'qede', 'ring',
+	'null',
+	'octeontx',
+	'octeontx2',
+	'pcap',
+	'ring',
 	'sfc',
 	'softnic',
 	'szedata2',
diff --git a/drivers/net/octeontx2/Makefile b/drivers/net/octeontx2/Makefile
new file mode 100644
index 000000000..9c467352f
--- /dev/null
+++ b/drivers/net/octeontx2/Makefile
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(C) 2019 Marvell International Ltd.
+#
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+#
+# library name
+#
+LIB = librte_pmd_octeontx2.a
+
+CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
+CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
+CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
+CFLAGS += -O3
+
+EXPORT_MAP := rte_pmd_octeontx2_version.map
+
+LIBABIVER := 1
+
+#
+# all source are stored in SRCS-y
+#
+SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += \
+	otx2_ethdev.c
+
+LDLIBS += -lrte_common_octeontx2 -lrte_mempool_octeontx2
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/octeontx2/meson.build b/drivers/net/octeontx2/meson.build
new file mode 100644
index 000000000..0d0ca32da
--- /dev/null
+++ b/drivers/net/octeontx2/meson.build
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(C) 2019 Marvell International Ltd.
+#
+
+sources = files(
+		'otx2_ethdev.c',
+		)
+
+deps += ['common_octeontx2', 'mempool_octeontx2']
diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c
new file mode 100644
index 000000000..d26535dee
--- /dev/null
+++ b/drivers/net/octeontx2/otx2_ethdev.c
@@ -0,0 +1,3 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2019 Marvell International Ltd.
+ */
diff --git a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
new file mode 100644
index 000000000..9a61188cd
--- /dev/null
+++ b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
@@ -0,0 +1,4 @@
+DPDK_19.08 {
+
+	local: *;
+};
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 2b5696a27..fab72ff6a 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -109,6 +109,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOO
 _LDLIBS-y += -lrte_common_octeontx
 endif
 OCTEONTX2-y := $(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL)
+OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD)
 ifeq ($(findstring y,$(OCTEONTX2-y)),y)
 _LDLIBS-y += -lrte_common_octeontx2
 endif
@@ -195,6 +196,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD)      += -lrte_pmd_mvpp2
 _LDLIBS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD)     += -lrte_pmd_mvneta
 _LDLIBS-$(CONFIG_RTE_LIBRTE_NFP_PMD)        += -lrte_pmd_nfp
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL)       += -lrte_pmd_null
+_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD)  += -lrte_pmd_octeontx2
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP)       += -lrte_pmd_pcap -lpcap
 _LDLIBS-$(CONFIG_RTE_LIBRTE_QEDE_PMD)       += -lrte_pmd_qede
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_RING)       += -lrte_pmd_ring
-- 
2.21.0



More information about the dev mailing list