[dpdk-dev,v5,4/4] bnx2x: enable PMD build

Message ID 1437410000-15907-5-git-send-email-stephen@networkplumber.org (mailing list archive)
State Accepted, archived
Headers

Commit Message

Stephen Hemminger July 20, 2015, 4:33 p.m. UTC
  This is build infrastructure changes for bnx2x driver.
 - enable BNX2X poll mode driver in default config.
 - add it to mk
 - put entry in MAINTAINERS

Note: I intentionally did not list myself as maintainer of this
driver. QLogic has discussed taking over as maintainer.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

---
v4 - Add PCI id's for 57840
---
 MAINTAINERS                                     |  3 ++
 config/common_linuxapp                          | 10 ++++
 drivers/net/Makefile                            |  1 +
 drivers/net/bnx2x/Makefile                      | 28 ++++++++++++
 lib/librte_eal/common/include/rte_pci_dev_ids.h | 61 +++++++++++++++++++++++++
 mk/rte.app.mk                                   |  2 +
 6 files changed, 105 insertions(+)
 create mode 100644 drivers/net/bnx2x/Makefile
  

Comments

Iremonger, Bernard July 27, 2015, 9:42 a.m. UTC | #1
Hi Stephen,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Stephen
> Hemminger
> Sent: Monday, July 20, 2015 5:33 PM
> To: harish.patil@qlogic.com
> Cc: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH v5 4/4] bnx2x: enable PMD build
> 
> This is build infrastructure changes for bnx2x driver.
>  - enable BNX2X poll mode driver in default config.
>  - add it to mk
>  - put entry in MAINTAINERS
> 
> Note: I intentionally did not list myself as maintainer of this driver. QLogic has
> discussed taking over as maintainer.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> 
> ---
> v4 - Add PCI id's for 57840
> ---
>  MAINTAINERS                                     |  3 ++
>  config/common_linuxapp                          | 10 ++++
>  drivers/net/Makefile                            |  1 +
>  drivers/net/bnx2x/Makefile                      | 28 ++++++++++++
>  lib/librte_eal/common/include/rte_pci_dev_ids.h | 61
> +++++++++++++++++++++++++
>  mk/rte.app.mk                                   |  2 +
>  6 files changed, 105 insertions(+)
>  create mode 100644 drivers/net/bnx2x/Makefile
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 6531900..b6a82ad 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -277,6 +277,9 @@ M: John McNamara <john.mcnamara@intel.com>
>  F: drivers/net/pcap/
>  F: doc/guides/nics/pcap_ring.rst
> 
> +Qlogic/Broadcom bnx2x
> +F: drivers/net/bnx2x/
> +
>  Ring PMD
>  M: Bruce Richardson <bruce.richardson@intel.com>
>  F: drivers/net/ring/
> diff --git a/config/common_linuxapp b/config/common_linuxapp index
> 579a5d7..a8a392e 100644
> --- a/config/common_linuxapp
> +++ b/config/common_linuxapp
> @@ -229,6 +229,16 @@ CONFIG_RTE_LIBRTE_ENIC_PMD=y
> CONFIG_RTE_LIBRTE_ENIC_DEBUG=n
> 
>  #
> +# Compile burst-oriented Broadcom PMD driver #
> +CONFIG_RTE_LIBRTE_BNX2X_PMD=y
> CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=n
> +CONFIG_RTE_LIBRTE_BNX2X_DEBUG=n
> +CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n
> +CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n
> +CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n
> +
> +#
>  # Compile burst-oriented VIRTIO PMD driver  #
> CONFIG_RTE_LIBRTE_VIRTIO_PMD=y diff --git a/drivers/net/Makefile
> b/drivers/net/Makefile index 6171430..6d519b6 100644
> --- a/drivers/net/Makefile
> +++ b/drivers/net/Makefile
> @@ -47,6 +47,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
>  DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio
>  DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3
>  DIRS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += xenvirt
> +DIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x
> 
>  include $(RTE_SDK)/mk/rte.sharelib.mk
>  include $(RTE_SDK)/mk/rte.subdir.mk
> diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile new
> file mode 100644 index 0000000..0de5db9
> --- /dev/null
> +++ b/drivers/net/bnx2x/Makefile
> @@ -0,0 +1,28 @@
> +include $(RTE_SDK)/mk/rte.vars.mk
> +
> +#
> +# library name
> +#
> +LIB = librte_pmd_bnx2x.a
> +
> +CFLAGS += -O3 -g
> +CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -DZLIB_CONST
> +
> +#
> +# all source are stored in SRCS-y
> +#
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x.c
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_rxtx.c
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_stats.c
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_ethdev.c
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += ecore_sp.c
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += elink.c
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_vfpf.c
> +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_DEBUG) += debug.c
> +
> +# this lib depends upon:
> +DEPDIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += lib/librte_eal
> +lib/librte_ether lib/librte_hash
> +DEPDIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += lib/librte_mempool
> +lib/librte_mbuf
> +
> +include $(RTE_SDK)/mk/rte.lib.mk
> diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h
> b/lib/librte_eal/common/include/rte_pci_dev_ids.h
> index 084d182..badb719 100644
> --- a/lib/librte_eal/common/include/rte_pci_dev_ids.h
> +++ b/lib/librte_eal/common/include/rte_pci_dev_ids.h
> @@ -144,6 +144,14 @@
>  #define RTE_PCI_DEV_ID_DECL_ENIC(vend, dev)  #endif
> 
> +#ifndef RTE_PCI_DEV_ID_DECL_BNX2X
> +#define RTE_PCI_DEV_ID_DECL_BNX2X(vend, dev) #endif
> +
> +#ifndef RTE_PCI_DEV_ID_DECL_BNX2XVF
> +#define RTE_PCI_DEV_ID_DECL_BNX2XVF(vend, dev) #endif
> +
>  #ifndef PCI_VENDOR_ID_INTEL
>  /** Vendor ID used by Intel devices */
>  #define PCI_VENDOR_ID_INTEL 0x8086
> @@ -164,6 +172,11 @@
>  #define PCI_VENDOR_ID_CISCO 0x1137
>  #endif
> 
> +#ifndef PCI_VENDOR_ID_BROADCOM
> +/** Vendor ID used by Broadcom devices */ #define
> +PCI_VENDOR_ID_BROADCOM 0x14E4 #endif
> +
>  /******************** Physical EM devices from e1000_hw.h
> ********************/
> 
>  #define E1000_DEV_ID_82542                    0x1000
> @@ -566,6 +579,52 @@
> RTE_PCI_DEV_ID_DECL_FM10KVF(PCI_VENDOR_ID_INTEL,
> FM10K_DEV_ID_VF)  RTE_PCI_DEV_ID_DECL_ENIC(PCI_VENDOR_ID_CISCO,
> PCI_DEVICE_ID_CISCO_VIC_ENET)
> RTE_PCI_DEV_ID_DECL_ENIC(PCI_VENDOR_ID_CISCO,
> PCI_DEVICE_ID_CISCO_VIC_ENET_VF)
> 
> +/****************** QLogic devices ******************/
> +
> +/* Broadcom/QLogic BNX2X */
> +#define BNX2X_DEV_ID_57710	0x164e
> +#define BNX2X_DEV_ID_57711	0x164f
> +#define BNX2X_DEV_ID_57711E	0x1650
> +#define BNX2X_DEV_ID_57712	0x1662
> +#define BNX2X_DEV_ID_57712_MF	0x1663
> +#define BNX2X_DEV_ID_57712_VF	0x166f
> +#define BNX2X_DEV_ID_57713	0x1651
> +#define BNX2X_DEV_ID_57713E	0x1652
> +#define BNX2X_DEV_ID_57800	0x168a
> +#define BNX2X_DEV_ID_57800_MF	0x16a5
> +#define BNX2X_DEV_ID_57800_VF	0x16a9
> +#define BNX2X_DEV_ID_57810	0x168e
> +#define BNX2X_DEV_ID_57810_MF	0x16ae
> +#define BNX2X_DEV_ID_57810_VF	0x16af
> +#define BNX2X_DEV_ID_57811	0x163d
> +#define BNX2X_DEV_ID_57811_MF	0x163e
> +#define BNX2X_DEV_ID_57811_VF	0x163f
> +
> +#define BNX2X_DEV_ID_57840_OBS		0x168d
> +#define BNX2X_DEV_ID_57840_OBS_MF	0x16ab
> +#define BNX2X_DEV_ID_57840_4_10		0x16a1
> +#define BNX2X_DEV_ID_57840_2_20		0x16a2
> +#define BNX2X_DEV_ID_57840_MF		0x16a4
> +#define BNX2X_DEV_ID_57840_VF		0x16ad
> +
> +
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> BNX2X_DEV_ID_57800)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57800_VF)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> BNX2X_DEV_ID_57711)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> BNX2X_DEV_ID_57810)
> +RTE_PCI_DEV_ID_DECL_BNX2XVF(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57810_VF)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> BNX2X_DEV_ID_57811)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57811_VF)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57840_OBS)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57840_4_10)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57840_2_20)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57840_VF) #ifdef RTE_LIBRTE_BNX2X_MF_SUPPORT
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57810_MF)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57811_MF)
> +RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM,
> +BNX2X_DEV_ID_57840_MF) #endif
> +
>  /*
>   * Undef all RTE_PCI_DEV_ID_DECL_* here.
>   */
> @@ -578,5 +637,7 @@
> RTE_PCI_DEV_ID_DECL_ENIC(PCI_VENDOR_ID_CISCO,
> PCI_DEVICE_ID_CISCO_VIC_ENET_VF)  #undef
> RTE_PCI_DEV_ID_DECL_I40EVF  #undef RTE_PCI_DEV_ID_DECL_VIRTIO
> #undef RTE_PCI_DEV_ID_DECL_VMXNET3
> +#undef RTE_PCI_DEV_ID_DECL_BNX2X
> +#undef RTE_PCI_DEV_ID_DECL_BNX2XVF
>  #undef RTE_PCI_DEV_ID_DECL_FM10K
>  #undef RTE_PCI_DEV_ID_DECL_FM10KVF
> diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 67bce48..2cc5b5b 100644
> --- a/mk/rte.app.mk
> +++ b/mk/rte.app.mk
> @@ -101,6 +101,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST)          += -
> lfuse
>  endif
> 
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD)       += -libverbs
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD)      += -lz
> 
>  _LDLIBS-y += --start-group
> 
> @@ -138,6 +139,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_RING)       += -
> lrte_pmd_ring
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP)       += -lrte_pmd_pcap
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET)  += -
> lrte_pmd_af_packet
>  _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL)       += -lrte_pmd_null
> +_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD)      += -lrte_pmd_bnx2x
> 
>  endif # ! $(CONFIG_RTE_BUILD_SHARED_LIB)
> 
> --
> 2.1.4

Seeing a build error on Linux with build of bnx2x enabled

== Build drivers/net/bnx2x
  CC bnx2x.o
/root/dpdk_sforge_2/drivers/net/bnx2x/bnx2x.c:50:18: fatal error: zlib.h: No such file or directory
 #include <zlib.h>

Regards,

Bernard.

                  ^
  
Thomas Monjalon July 27, 2015, 1:29 p.m. UTC | #2
2015-07-27 09:42, Iremonger, Bernard:
> Seeing a build error on Linux with build of bnx2x enabled
> 
> == Build drivers/net/bnx2x
>   CC bnx2x.o
> /root/dpdk_sforge_2/drivers/net/bnx2x/bnx2x.c:50:18: fatal error: zlib.h: No such file or directory
>  #include <zlib.h>

bnx2x requires zlib to be installed with its header.

Stephen, it would be smoother to have a build option for the zip feature
and disable it by default.
Then the file pkg/dpdk.spec must be updated for this new dependency.

One day, a configure script could replace such build options.
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 6531900..b6a82ad 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -277,6 +277,9 @@  M: John McNamara <john.mcnamara@intel.com>
 F: drivers/net/pcap/
 F: doc/guides/nics/pcap_ring.rst
 
+Qlogic/Broadcom bnx2x
+F: drivers/net/bnx2x/
+
 Ring PMD
 M: Bruce Richardson <bruce.richardson@intel.com>
 F: drivers/net/ring/
diff --git a/config/common_linuxapp b/config/common_linuxapp
index 579a5d7..a8a392e 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -229,6 +229,16 @@  CONFIG_RTE_LIBRTE_ENIC_PMD=y
 CONFIG_RTE_LIBRTE_ENIC_DEBUG=n
 
 #
+# Compile burst-oriented Broadcom PMD driver
+#
+CONFIG_RTE_LIBRTE_BNX2X_PMD=y
+CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=n
+CONFIG_RTE_LIBRTE_BNX2X_DEBUG=n
+CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n
+CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n
+CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n
+
+#
 # Compile burst-oriented VIRTIO PMD driver
 #
 CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 6171430..6d519b6 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -47,6 +47,7 @@  DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
 DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio
 DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += xenvirt
+DIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x
 
 include $(RTE_SDK)/mk/rte.sharelib.mk
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile
new file mode 100644
index 0000000..0de5db9
--- /dev/null
+++ b/drivers/net/bnx2x/Makefile
@@ -0,0 +1,28 @@ 
+include $(RTE_SDK)/mk/rte.vars.mk
+
+#
+# library name
+#
+LIB = librte_pmd_bnx2x.a
+
+CFLAGS += -O3 -g
+CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DZLIB_CONST
+
+#
+# all source are stored in SRCS-y
+#
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x.c
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_rxtx.c
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_stats.c
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_ethdev.c
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += ecore_sp.c
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += elink.c
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_vfpf.c
+SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_DEBUG) += debug.c
+
+# this lib depends upon:
+DEPDIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += lib/librte_eal lib/librte_ether lib/librte_hash
+DEPDIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += lib/librte_mempool lib/librte_mbuf
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/common/include/rte_pci_dev_ids.h b/lib/librte_eal/common/include/rte_pci_dev_ids.h
index 084d182..badb719 100644
--- a/lib/librte_eal/common/include/rte_pci_dev_ids.h
+++ b/lib/librte_eal/common/include/rte_pci_dev_ids.h
@@ -144,6 +144,14 @@ 
 #define RTE_PCI_DEV_ID_DECL_ENIC(vend, dev)
 #endif
 
+#ifndef RTE_PCI_DEV_ID_DECL_BNX2X
+#define RTE_PCI_DEV_ID_DECL_BNX2X(vend, dev)
+#endif
+
+#ifndef RTE_PCI_DEV_ID_DECL_BNX2XVF
+#define RTE_PCI_DEV_ID_DECL_BNX2XVF(vend, dev)
+#endif
+
 #ifndef PCI_VENDOR_ID_INTEL
 /** Vendor ID used by Intel devices */
 #define PCI_VENDOR_ID_INTEL 0x8086
@@ -164,6 +172,11 @@ 
 #define PCI_VENDOR_ID_CISCO 0x1137
 #endif
 
+#ifndef PCI_VENDOR_ID_BROADCOM
+/** Vendor ID used by Broadcom devices */
+#define PCI_VENDOR_ID_BROADCOM 0x14E4
+#endif
+
 /******************** Physical EM devices from e1000_hw.h ********************/
 
 #define E1000_DEV_ID_82542                    0x1000
@@ -566,6 +579,52 @@  RTE_PCI_DEV_ID_DECL_FM10KVF(PCI_VENDOR_ID_INTEL, FM10K_DEV_ID_VF)
 RTE_PCI_DEV_ID_DECL_ENIC(PCI_VENDOR_ID_CISCO, PCI_DEVICE_ID_CISCO_VIC_ENET)
 RTE_PCI_DEV_ID_DECL_ENIC(PCI_VENDOR_ID_CISCO, PCI_DEVICE_ID_CISCO_VIC_ENET_VF)
 
+/****************** QLogic devices ******************/
+
+/* Broadcom/QLogic BNX2X */
+#define BNX2X_DEV_ID_57710	0x164e
+#define BNX2X_DEV_ID_57711	0x164f
+#define BNX2X_DEV_ID_57711E	0x1650
+#define BNX2X_DEV_ID_57712	0x1662
+#define BNX2X_DEV_ID_57712_MF	0x1663
+#define BNX2X_DEV_ID_57712_VF	0x166f
+#define BNX2X_DEV_ID_57713	0x1651
+#define BNX2X_DEV_ID_57713E	0x1652
+#define BNX2X_DEV_ID_57800	0x168a
+#define BNX2X_DEV_ID_57800_MF	0x16a5
+#define BNX2X_DEV_ID_57800_VF	0x16a9
+#define BNX2X_DEV_ID_57810	0x168e
+#define BNX2X_DEV_ID_57810_MF	0x16ae
+#define BNX2X_DEV_ID_57810_VF	0x16af
+#define BNX2X_DEV_ID_57811	0x163d
+#define BNX2X_DEV_ID_57811_MF	0x163e
+#define BNX2X_DEV_ID_57811_VF	0x163f
+
+#define BNX2X_DEV_ID_57840_OBS		0x168d
+#define BNX2X_DEV_ID_57840_OBS_MF	0x16ab
+#define BNX2X_DEV_ID_57840_4_10		0x16a1
+#define BNX2X_DEV_ID_57840_2_20		0x16a2
+#define BNX2X_DEV_ID_57840_MF		0x16a4
+#define BNX2X_DEV_ID_57840_VF		0x16ad
+
+
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57800)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57800_VF)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57711)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57810)
+RTE_PCI_DEV_ID_DECL_BNX2XVF(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57810_VF)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57811)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57811_VF)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57840_OBS)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57840_4_10)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57840_2_20)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57840_VF)
+#ifdef RTE_LIBRTE_BNX2X_MF_SUPPORT
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57810_MF)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57811_MF)
+RTE_PCI_DEV_ID_DECL_BNX2X(PCI_VENDOR_ID_BROADCOM, BNX2X_DEV_ID_57840_MF)
+#endif
+
 /*
  * Undef all RTE_PCI_DEV_ID_DECL_* here.
  */
@@ -578,5 +637,7 @@  RTE_PCI_DEV_ID_DECL_ENIC(PCI_VENDOR_ID_CISCO, PCI_DEVICE_ID_CISCO_VIC_ENET_VF)
 #undef RTE_PCI_DEV_ID_DECL_I40EVF
 #undef RTE_PCI_DEV_ID_DECL_VIRTIO
 #undef RTE_PCI_DEV_ID_DECL_VMXNET3
+#undef RTE_PCI_DEV_ID_DECL_BNX2X
+#undef RTE_PCI_DEV_ID_DECL_BNX2XVF
 #undef RTE_PCI_DEV_ID_DECL_FM10K
 #undef RTE_PCI_DEV_ID_DECL_FM10KVF
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 67bce48..2cc5b5b 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -101,6 +101,7 @@  _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST)          += -lfuse
 endif
 
 _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD)       += -libverbs
+_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD)      += -lz
 
 _LDLIBS-y += --start-group
 
@@ -138,6 +139,7 @@  _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_RING)       += -lrte_pmd_ring
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP)       += -lrte_pmd_pcap
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET)  += -lrte_pmd_af_packet
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL)       += -lrte_pmd_null
+_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD)      += -lrte_pmd_bnx2x
 
 endif # ! $(CONFIG_RTE_BUILD_SHARED_LIB)