Adds cxgbe poll mode driver for DPDK under drivers/net/cxgbe directory. This
patch:
1. Adds the Makefile to compile cxgbe pmd.
2. Registers and initializes the cxgbe pmd driver.
Enable cxgbe PMD for compilation and linking with changes to:
1. config/common_linuxapp to add macros for cxgbe pmd.
2. drivers/net/Makefile to add cxgbe pmd to the compile list.
3. mk/rte.app.mk to add cxgbe pmd to link.
Update MAINTAINERS file to claim responsibility for the cxgbe PMD.
Signed-off-by: Rahul Lakkireddy
Signed-off-by: Kumar Sanghvi
---
v3:
- Merge patches 10 and 11 with this patch to enable compilation and update
MAINTAINERS. Also, update commit log.
- Add rte_pmd_cxgbe_version.map and add EXPORT_MAP and LIBABIVER to cxgbe
Makefile.
- Use RTE_DIM macro for calculating ARRAY_SIZE.
v2:
- Move files to new directory under drivers/net/cxgbe and update commit log.
- Move eth_dev_ops to separate patches.
- Update cxgbe Makefile to use relative rather than absolute path of pmd.
- Replace bitwise operations in fls() with gcc's __builtin_clz().
- Fix an issue in adap_init0_tweaks() related to rx_dma_offset.
MAINTAINERS | 5 +
config/common_linuxapp | 10 +
drivers/net/Makefile| 1 +
drivers/net/cxgbe/Makefile | 78 +++
drivers/net/cxgbe/cxgbe.h | 48 ++
drivers/net/cxgbe/cxgbe_compat.h| 266 +++
drivers/net/cxgbe/cxgbe_ethdev.c| 169 +++
drivers/net/cxgbe/cxgbe_main.c | 706
drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 4 +
drivers/net/cxgbe/sge.c | 311
mk/rte.app.mk | 1 +
11 files changed, 1599 insertions(+)
create mode 100644 drivers/net/cxgbe/Makefile
create mode 100644 drivers/net/cxgbe/cxgbe.h
create mode 100644 drivers/net/cxgbe/cxgbe_compat.h
create mode 100644 drivers/net/cxgbe/cxgbe_ethdev.c
create mode 100644 drivers/net/cxgbe/cxgbe_main.c
create mode 100644 drivers/net/cxgbe/rte_pmd_cxgbe_version.map
create mode 100644 drivers/net/cxgbe/sge.c
diff --git a/MAINTAINERS b/MAINTAINERS
index 9362c19..1ec5117 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -210,6 +210,11 @@ Linux AF_PACKET
M: John W. Linville
F: drivers/net/af_packet/
+Chelsio cxgbe
+M: Rahul Lakkireddy
+F: drivers/net/cxgbe/
+F: doc/guides/nics/cxgbe.rst
+
Cisco enic
F: drivers/net/enic/
diff --git a/config/common_linuxapp b/config/common_linuxapp
index 5deb55a..22a6d4e 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -208,6 +208,16 @@ CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8
CONFIG_RTE_LIBRTE_MLX4_SOFT_COUNTERS=1
#
+# Compile burst-oriented Chelsio Terminator 10GbE/40GbE (CXGBE) PMD
+#
+CONFIG_RTE_LIBRTE_CXGBE_PMD=y
+CONFIG_RTE_LIBRTE_CXGBE_DEBUG=n
+CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG=n
+CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX=n
+CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX=n
+CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX=n
+
+#
# Compile burst-oriented Cisco ENIC PMD driver
#
CONFIG_RTE_LIBRTE_ENIC_PMD=y
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 1e6648a..644cacb 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -33,6 +33,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += af_packet
DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bonding
+DIRS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe
DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000
DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic
DIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k
diff --git a/drivers/net/cxgbe/Makefile b/drivers/net/cxgbe/Makefile
new file mode 100644
index 000..4dfc6b0
--- /dev/null
+++ b/drivers/net/cxgbe/Makefile
@@ -0,0 +1,78 @@
+# BSD LICENSE
+#
+# Copyright(c) 2014-2015 Chelsio Communications.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Chelsio Communications nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL,