Skip to contentSkip to conversation

bnxt_en: New Broadcom ethernet driver.

PATCH Superseded Michael Chan 2 participants 2 messages Oct 14, 2015

Subsystems (3)

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 bnxt_en: New Broadcom ethernet driver.

Broadcom ethernet driver for the new family of NetXtreme-C/E ethernet devices.

v2: Fixed all kbuild test rebot reported warnings. Fixed many of the checkpatch.pl errors and warnings. Fixed the Kconfig description.

---
 drivers/net/ethernet/broadcom/Kconfig              |   19 +
 drivers/net/ethernet/broadcom/Makefile             |    1 +
 drivers/net/ethernet/broadcom/bnxt/Makefile        |    4 +
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          | 5821 ++++++++++++++++++++
 drivers/net/ethernet/broadcom/bnxt/bnxt.h          | 1033 ++++
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  | 1149 ++++
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h  |   18 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_fw_hdr.h   |  104 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h      | 4707 ++++++++++++++++
 drivers/net/ethernet/broadcom/bnxt/bnxt_nvm_defs.h |   59 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c    |  787 +++
 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h    |   22 +
 12 files changed, 13724 insertions(+)
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/Makefile
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt.c
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt.h
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_fw_hdr.h
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_nvm_defs.h
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h
drivers/net/ethernet/broadcom/Kconfig +19 -0
index e930aa9..67a7d52 100644
@@ -170,4 +170,23 @@ config SYSTEMPORT
 	  Broadcom BCM7xxx Set Top Box family chipset using an internal
 	  Ethernet switch.
 
+config BNXT
+	tristate "Broadcom NetXtreme-C/E support"
+	depends on PCI
+	select FW_LOADER
+	select LIBCRC32C
+	---help---
+	  This driver supports Broadcom NetXtreme-C/E 10/25/40/50 gigabit
+	  Ethernet cards.  To compile this driver as a module, choose M here:
+	  the module will be called bnxt_en.  This is recommended.
+
+config BNXT_SRIOV
+	bool "Broadcom NetXtreme-C/E SR-IOV support"
+	depends on BNXT && PCI_IOV
+	default y
+	---help---
+	  This configuration parameter enables Single Root Input Output
+	  Virtualization support in the NetXtreme-C/E products. This
+	  allows for virtual function acceleration in virtual environments.
+
 endif # NET_VENDOR_BROADCOM
drivers/net/ethernet/broadcom/Makefile +1 -0
index e2a958a..00584d7 100644
@@ -12,3 +12,4 @@ obj-$(CONFIG_SB1250_MAC) += sb1250-mac.o
 obj-$(CONFIG_TIGON3) += tg3.o
 obj-$(CONFIG_BGMAC) += bgmac.o
 obj-$(CONFIG_SYSTEMPORT) += bcmsysport.o
+obj-$(CONFIG_BNXT) += bnxt/
drivers/net/ethernet/broadcom/bnxt/Makefile new file +4 -0
new file mode 100644
index 0000000..55b9815
@@ -0,0 +1,4 @@
+obj-$(CONFIG_BNXT) += bnxt_en.o
+
+bnxt_en-y := bnxt.o bnxt_sriov.o bnxt_ethtool.o
+
drivers/net/ethernet/broadcom/bnxt/bnxt.c new file +5821 -0

2,969 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt.h new file +1033 -0

1,033 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c new file +1149 -0

1,149 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h new file +18 -0
new file mode 100644
index 0000000..0567c73

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/bnxt/bnxt_fw_hdr.h new file +104 -0

104 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h new file +4707 -0

4,707 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_nvm_defs.h new file +59 -0

59 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c new file +787 -0

787 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h new file +22 -0
new file mode 100644
index 0000000..0b430f1

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
1.8.3.1

Part of the diff is not shown here. View the raw message.

#1 lore raw
url: https://github.com/0day-ci/linux/commits/Michael-Chan/bnxt_en-New-Broadcom-ethernet-driver/20151014-112018 reproduce:

Hi Michael,

[auto build test WARNING on net-next/master -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url: https://github.com/0day-ci/linux/commits/Michael-Chan/bnxt_en-New-Broadcom-ethernet-driver/20151014-112018
reproduce:

        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__

sparse warnings: (new ones prefixed by >>)

>> drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:204:20: sparse: incorrect type in assignment (different base types)
   drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:204:20:    expected restricted __le32 [addressable] [assigned] [usertype] max_bw
   drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:204:20:    got int [signed] max_tx_rate
>> drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:206:20: sparse: incorrect type in assignment (different base types)

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:206:20: expected restricted __le32 [addressable] [assigned] [usertype] min_bw
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:206:20: got int [signed] min_tx_rate

vim +204 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c

198 if (min_tx_rate == vf->min_tx_rate && max_tx_rate == vf->max_tx_rate)
199 return 0;
200 bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_FUNC_CFG, -1, -1);
201 req.vf_id = cpu_to_le16(vf->fw_fid);
202 req.flags = cpu_to_le32(vf->func_flags);
203 req.enables = cpu_to_le32(FUNC_CFG_REQ_ENABLES_MAX_BW);

 > 204		req.max_bw = max_tx_rate;
   205		req.enables |= cpu_to_le32(FUNC_CFG_REQ_ENABLES_MIN_BW);
 > 206		req.min_bw = min_tx_rate;

207 rc = hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
208 if (!rc) {
209 vf->min_tx_rate = min_tx_rate;

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation