svn commit: r309377 - in stable/11: release/doc/en_US.ISO8859-1/hardware share/man/man4 sys/boot/forth sys/conf sys/dev/bnxt sys/modules sys/modules/bnxt
Stephen Hurd
shurd at FreeBSD.org
Thu Dec 1 23:37:20 UTC 2016
Author: shurd (ports committer)
Date: Thu Dec 1 23:37:17 2016
New Revision: 309377
URL: https://svnweb.freebsd.org/changeset/base/309377
Log:
MFC r308696, r308729, r308787, r308813, r309028, r309073, r309078:
r308696:
New driver for Broadcom NetXtreme-C and NetXtreme-E devices.
r308729:
Add bnxt(4) to the hardware notes.
r308787:
Add missing newline in error mesage
r308813:
Check link status after init
r309028:
Add missing break to switch statement
r309073:
Fix version string
r309078:
Add new device IDs
Approved by: sbruno
Relnotes: yes
Sponsored by: Broadcom Limited
Added:
stable/11/share/man/man4/bnxt.4
- copied unchanged from r308696, head/share/man/man4/bnxt.4
stable/11/sys/dev/bnxt/
- copied from r308696, head/sys/dev/bnxt/
stable/11/sys/modules/bnxt/
- copied from r308696, head/sys/modules/bnxt/
Modified:
stable/11/release/doc/en_US.ISO8859-1/hardware/article.xml
stable/11/share/man/man4/Makefile
stable/11/sys/boot/forth/loader.conf
stable/11/sys/conf/NOTES
stable/11/sys/conf/files
stable/11/sys/dev/bnxt/bnxt.h
stable/11/sys/dev/bnxt/bnxt_hwrm.c
stable/11/sys/dev/bnxt/if_bnxt.c
stable/11/sys/modules/Makefile
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/release/doc/en_US.ISO8859-1/hardware/article.xml
==============================================================================
--- stable/11/release/doc/en_US.ISO8859-1/hardware/article.xml Thu Dec 1 23:27:59 2016 (r309376)
+++ stable/11/release/doc/en_US.ISO8859-1/hardware/article.xml Thu Dec 1 23:37:17 2016 (r309377)
@@ -817,6 +817,8 @@
&hwlist.bge;
+ &hwlist.bnxt;
+
&hwlist.bxe;
&hwlist.cas;
Modified: stable/11/share/man/man4/Makefile
==============================================================================
--- stable/11/share/man/man4/Makefile Thu Dec 1 23:27:59 2016 (r309376)
+++ stable/11/share/man/man4/Makefile Thu Dec 1 23:37:17 2016 (r309377)
@@ -79,6 +79,7 @@ MAN= aac.4 \
bhndb.4 \
bktr.4 \
blackhole.4 \
+ bnxt.4 \
bpf.4 \
bridge.4 \
bt.4 \
@@ -593,6 +594,7 @@ MLINKS+=bce.4 if_bce.4
MLINKS+=bfe.4 if_bfe.4
MLINKS+=bge.4 if_bge.4
MLINKS+=bktr.4 brooktree.4
+MLINKS+=bnxt.4 if_bnxt.4
MLINKS+=bridge.4 if_bridge.4
MLINKS+=bwi.4 if_bwi.4
MLINKS+=bwn.4 if_bwn.4
Copied: stable/11/share/man/man4/bnxt.4 (from r308696, head/share/man/man4/bnxt.4)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/11/share/man/man4/bnxt.4 Thu Dec 1 23:37:17 2016 (r309377, copy of r308696, head/share/man/man4/bnxt.4)
@@ -0,0 +1,222 @@
+.\" Copyright (c) 2016 Broadcom, All Rights Reserved.
+.\" The term Broadcom refers to Broadcom Limited and/or its subsidiaries
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. 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.
+.\"
+.\" 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, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+.\" THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd May 12, 2016
+.Dt BNXT 4
+.Os
+.Sh NAME
+.Nm bnxt
+.Nd "Broadcom NetXtreme-C/NetXtreme-E Family Ethernet driver"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device bnxt"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_bnxt_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for various NICs based on the Broadcom BCM57301/2/4,
+and BCM57402/4/6 Ethernet controller chips.
+.Pp
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+driver provides support for various NICs based on the Broadcom NetXtreme-C and
+NetXtreme-E families of Gigabit Ethernet controller chips, including the
+following:
+.Pp
+.Bl -bullet -compact
+.It
+Broadcom BCM57301 NetXtreme-C 10Gb Ethernet Controller
+.It
+Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Controller
+.It
+Broadcom BCM57304 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet Controller
+.It
+Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller
+.It
+Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller
+.It
+Broadcom BCM57406 NetXtreme-E 10GBase-T Ethernet Controller
+.It
+Broadcom BCM57402 NetXtreme-E Partition
+.It
+Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
+.It
+Broadcom BCM57404 NetXtreme-E Partition
+.It
+Broadcom BCM57406 NetXtreme-E Partition
+.It
+Broadcom BCM57407 NetXtreme-E 25Gb Ethernet Controller
+.It
+Broadcom BCM57304 NetXtreme-C Virtual Function
+.It
+Broadcom BCM57404 NetXtreme-E Virtual Function
+.El
+.Sh SYSCTL VARIABLES
+These variables must be set before loading the driver, either via
+.Xr loader.conf 5
+or through the use of
+.Xr kenv 1 .
+These are provided by the
+.Xr iflib 9
+framework, and might be better documented there.
+.Bl -tag -width indent
+.It Va dev.bnxt.X.iflib.override_nrxds
+Override the number of RX descriptors for each queue.
+The value is a comma separated list of three positive integers: the size of the
+completion ring,
+the size of the receive ring, and the size of the aggregation ring respectively.
+The completion ring should be at least the size of the aggregation ring plus
+four times the size of the receive ring.
+These numbers must be powers of two, and zero means to use the default.
+Defaults to 0,0,0.
+.It Va dev.bnxt.X.iflib.override_ntxds
+Override the number of TX descriptors for each queue.
+The value is a comma separated list of two positive integers: the size of the
+completion ring, and the size of the transmit ring respectively.
+The completion ring should be at least twice the size of the transmit ring.
+These numbers must be powers of two, and zero means to use the default.
+Defaults to 0,0.
+.It Va override_qs_enable
+When set, allows the number of transmit and receive queues to be different.
+If not set, the lower of the number of TX or RX queues will be used for both.
+.It Va override_nrxqs
+Set the number of RX queues.
+If zero, the number of RX queues is derived from the number of cores on the
+socket connected to the controller.
+Defaults to 0.
+.It Va override_ntxqs
+Set the number of TX queues.
+If zero, the number of TX queues is derived from the number of cores on the
+socket connected to the controller.
+.El
+.Pp
+These
+.Xr sysctl 8
+variables can be changed at any time:
+.Bl -tag -width indent
+.It Va dev.bnxt.X.vlan_only
+Require that incoming frames must have a VLAN tag on them that matches one that
+is configured for the NIC.
+Normally, both frames that have a matching VLAN tag and frames that have no
+VLAN tag are accepted.
+Defaults to 0.
+.It Va dev.bnxt.X.vlan_strip
+When non-zero the NIC strips VLAN tags on receive.
+Defaults to 0.
+.It Va dev.bnxt.X.rx_stall
+Enable buffering rather than dropping frames when there are no available host
+RX buffers for DMA.
+Defaults to 0.
+.It Va dev.bnxt.X.rss_type
+Comma-separated list of RSS hash types to support.
+Default is all types.
+Defaults to ipv4,tcp_ipv4,udp_ipv4,ipv6,tcp_ipv6,udp_ipv6.
+.It Va dev.bnxt.X.rss_key
+Current RSS key.
+Defaults to a randomly generated value which is generated for each device
+during attach.
+.It Va dev.bnxt.X.ver.hwrm_min_ver
+Minimum HWRM (HardWare Resource Manager) firmware API to support.
+If the firmware implements an older version, a warning will be printed, and the
+firmware should be upgraded.
+Defaults to 1.2.2.
+.El
+.Pp
+These
+.Xr sysctl 8
+variables are read-only:
+.Bl -tag -width indent
+.It Va dev.bnxt.X.if_name
+Current interface name of the device.
+This will normally be
+.Va bnxtX ,
+but this can be changed using
+.Cm ifconfig name .
+This sysctl allows correlating an interface with a child of dev.bnxt.
+.It Va dev.bnxt.X.nvram.*
+Information about the NVRAM device which contains the device firmware.
+.It Va dev.bnxt.X.ver.*
+Version-related information about the device and firmware:
+.It Va dev.bnxt.X.ver.hwrm_if
+Supported HWRM API version of the currently running firmware.
+.It Va dev.bnxt.X.ver.driver_hwrm_if
+HWRM API version the driver was built to support.
+.It Va dev.bnxt.X.hwstats.*
+Per-queue statistics tracked by the hardware.
+.It Va dev.bnxt.X.hwstats.rxq0.drop_pkts
+Number of packets dropped by hardware on queue zero.
+This number might seem high, but the count includes packets dropped due to
+incorrect destination MAC, unsubscribed multicast address, and other normal
+reasons to ignore Ethernet frames.
+.El
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "bnxt%d: %s command returned %s error."
+Device firmware rejected a command from the driver.
+There might be a driver/firmware HWRM API mismatch.
+.It "bnxt%d: Timeout sending %s (timeout: %d) seq %d\n"
+Device firmware unresponsive.
+A PCI device reset is likely needed.
+.It "bnxt%d: Timeout sending %s (timeout: %d) msg {0x%x 0x%x} len:%d v: %d\n"
+Partial firmware response.
+A PCI device reset is likely needed.
+.Pp
+As of this writing, the system must be rebooted to initiate a PCI device reset.
+.El
+.Sh SEE ALSO
+.Xr altq 4 ,
+.Xr arp 4 ,
+.Xr netintro 4 ,
+.Xr ng_ether 4 ,
+.Xr vlan 4 ,
+.Xr ifconfig 8 ,
+.Xr iflib 4
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 12.0 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Jack Vogel Aq Mt jfvogel at gmail.com .
+and is currently maintained by
+.An Stephen Hurd Aq Mt stephen.hurd at broadcom.com .
Modified: stable/11/sys/boot/forth/loader.conf
==============================================================================
--- stable/11/sys/boot/forth/loader.conf Thu Dec 1 23:27:59 2016 (r309376)
+++ stable/11/sys/boot/forth/loader.conf Thu Dec 1 23:37:17 2016 (r309377)
@@ -312,6 +312,7 @@ if_axe_load="NO" # ASIX Electronics AX8
if_bce_load="NO" # Broadcom NetXtreme II Gigabit Ethernet
if_bfe_load="NO" # Broadcom BCM4401
if_bge_load="NO" # Broadcom BCM570x PCI Gigabit Ethernet
+if_bnxt_load="NO" # Broadcom NetXtreme-C/NetXtreme-E
if_bridge_load="NO" # if_bridge(4) devices
if_bwi_load="NO" # Broadcom BCM53xx IEEE 802.11b/g wireness NICs
if_bwn_load="NO" # Broadcom BCM43xx IEEE 802.11 wireless NICs
Modified: stable/11/sys/conf/NOTES
==============================================================================
--- stable/11/sys/conf/NOTES Thu Dec 1 23:27:59 2016 (r309376)
+++ stable/11/sys/conf/NOTES Thu Dec 1 23:37:17 2016 (r309377)
@@ -1900,6 +1900,7 @@ device amphy # AMD AM79c873 / Davicom
device atphy # Attansic/Atheros F1
device axphy # Asix Semiconductor AX88x9x
device bmtphy # Broadcom BCM5201/BCM5202 and 3Com 3c905C
+device bnxt # Broadcom NetXtreme-C/NetXtreme-E
device brgphy # Broadcom BCM54xx/57xx 1000baseTX
device ciphy # Cicada/Vitesse CS/VSC8xxx
device e1000phy # Marvell 88E1000 1000/100/10-BT
@@ -1940,6 +1941,7 @@ device xmphy # XaQti XMAC II
# BCM570x family of controllers, including the 3Com 3c996-T,
# the Netgear GA302T, the SysKonnect SK-9D21 and SK-9D41, and
# the embedded gigE NICs on Dell PowerEdge 2550 servers.
+# bnxt: Broadcom NetXtreme-C and NetXtreme-E PCIe 10/25/50G Ethernet adapters.
# bxe: Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
# adapters.
# bwi: Broadcom BCM430* and BCM431* family of wireless adapters.
Modified: stable/11/sys/conf/files
==============================================================================
--- stable/11/sys/conf/files Thu Dec 1 23:27:59 2016 (r309376)
+++ stable/11/sys/conf/files Thu Dec 1 23:37:17 2016 (r309377)
@@ -1187,6 +1187,10 @@ dev/bktr/bktr_i2c.c optional bktr pci s
dev/bktr/bktr_os.c optional bktr pci
dev/bktr/bktr_tuner.c optional bktr pci
dev/bktr/msp34xx.c optional bktr pci
+dev/bnxt/bnxt_hwrm.c optional bnxt iflib pci
+dev/bnxt/bnxt_sysctl.c optional bnxt iflib pci
+dev/bnxt/bnxt_txrx.c optional bnxt iflib pci
+dev/bnxt/if_bnxt.c optional bnxt iflib pci
dev/buslogic/bt.c optional bt
dev/buslogic/bt_eisa.c optional bt eisa
dev/buslogic/bt_isa.c optional bt isa
Modified: stable/11/sys/dev/bnxt/bnxt.h
==============================================================================
--- head/sys/dev/bnxt/bnxt.h Tue Nov 15 20:35:29 2016 (r308696)
+++ stable/11/sys/dev/bnxt/bnxt.h Thu Dec 1 23:37:17 2016 (r309377)
@@ -52,16 +52,39 @@ __FBSDID("$FreeBSD$");
#define BCM57301 0x16c8
#define BCM57302 0x16c9
#define BCM57304 0x16ca
+#define BCM57311 0x16ce
+#define BCM57312 0x16cf
+#define BCM57314 0x16df
#define BCM57402 0x16d0
-#define BCM57404 0x16d1
-#define BCM57406 0x16d2
#define BCM57402_NPAR 0x16d4
-#define BCM57407 0x16d5
+#define BCM57404 0x16d1
#define BCM57404_NPAR 0x16e7
+#define BCM57406 0x16d2
#define BCM57406_NPAR 0x16e8
+#define BCM57407 0x16d5
+#define BCM57407_NPAR 0x16ea
#define BCM57407_SFP 0x16e9
-#define BCM57304_VF 0x16cb
-#define BCM57404_VF 0x16d3
+#define BCM57412 0x16d6
+#define BCM57412_NPAR1 0x16de
+#define BCM57412_NPAR2 0x16eb
+#define BCM57414 0x16d7
+#define BCM57414_NPAR1 0x16ec
+#define BCM57414_NPAR2 0x16ed
+#define BCM57416 0x16d8
+#define BCM57416_NPAR1 0x16ee
+#define BCM57416_NPAR2 0x16ef
+#define BCM57416_SFP 0x16e3
+#define BCM57417 0x16d9
+#define BCM57417_NPAR1 0x16c0
+#define BCM57417_NPAR2 0x16cc
+#define BCM57417_SFP 0x16e2
+#define BCM58700 0x16cd
+#define NETXTREME_C_VF1 0x16cb
+#define NETXTREME_C_VF2 0x16e1
+#define NETXTREME_C_VF3 0x16e5
+#define NETXTREME_E_VF1 0x16c1
+#define NETXTREME_E_VF2 0x16d3
+#define NETXTREME_E_VF3 0x16dc
#define CSUM_OFFLOAD (CSUM_IP_TSO|CSUM_IP6_TSO|CSUM_IP| \
CSUM_IP_UDP|CSUM_IP_TCP|CSUM_IP_SCTP| \
Modified: stable/11/sys/dev/bnxt/bnxt_hwrm.c
==============================================================================
--- head/sys/dev/bnxt/bnxt_hwrm.c Tue Nov 15 20:35:29 2016 (r308696)
+++ stable/11/sys/dev/bnxt/bnxt_hwrm.c Thu Dec 1 23:37:17 2016 (r309377)
@@ -424,7 +424,7 @@ bnxt_hwrm_func_qcaps(struct bnxt_softc *
pf->max_rx_wm_flows = le32toh(resp->max_rx_wm_flows);
}
if (!_is_valid_ether_addr(func->mac_addr)) {
- device_printf(softc->dev, "Invalid ethernet address, generating random locally administered address");
+ device_printf(softc->dev, "Invalid ethernet address, generating random locally administered address\n");
get_random_ether_addr(func->mac_addr);
}
Modified: stable/11/sys/dev/bnxt/if_bnxt.c
==============================================================================
--- head/sys/dev/bnxt/if_bnxt.c Tue Nov 15 20:35:29 2016 (r308696)
+++ stable/11/sys/dev/bnxt/if_bnxt.c Thu Dec 1 23:37:17 2016 (r309377)
@@ -75,26 +75,72 @@ static pci_vendor_info_t bnxt_vendor_inf
"Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Controller"),
PVID(BROADCOM_VENDOR_ID, BCM57304,
"Broadcom BCM57304 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet Controller"),
+ PVID(BROADCOM_VENDOR_ID, BCM57311,
+ "Broadcom BCM57311 NetXtreme-C 10Gb Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM57312,
+ "Broadcom BCM57312 NetXtreme-C 10Gb/25Gb Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM57314,
+ "Broadcom BCM57314 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet"),
PVID(BROADCOM_VENDOR_ID, BCM57402,
"Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller"),
- PVID(BROADCOM_VENDOR_ID, BCM57404,
- "Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller"),
- PVID(BROADCOM_VENDOR_ID, BCM57406,
- "Broadcom BCM57406 NetXtreme-E 10GBase-T Ethernet Controller"),
PVID(BROADCOM_VENDOR_ID, BCM57402_NPAR,
"Broadcom BCM57402 NetXtreme-E Partition"),
- PVID(BROADCOM_VENDOR_ID, BCM57407,
- "Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller"),
+ PVID(BROADCOM_VENDOR_ID, BCM57404,
+ "Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller"),
PVID(BROADCOM_VENDOR_ID, BCM57404_NPAR,
"Broadcom BCM57404 NetXtreme-E Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57406,
+ "Broadcom BCM57406 NetXtreme-E 10GBase-T Ethernet Controller"),
PVID(BROADCOM_VENDOR_ID, BCM57406_NPAR,
"Broadcom BCM57406 NetXtreme-E Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57407,
+ "Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller"),
+ PVID(BROADCOM_VENDOR_ID, BCM57407_NPAR,
+ "Broadcom BCM57407 NetXtreme-E Ethernet Partition"),
PVID(BROADCOM_VENDOR_ID, BCM57407_SFP,
"Broadcom BCM57407 NetXtreme-E 25Gb Ethernet Controller"),
- PVID(BROADCOM_VENDOR_ID, BCM57304_VF,
- "Broadcom BCM57304 NetXtreme-C Virtual Function"),
- PVID(BROADCOM_VENDOR_ID, BCM57404_VF,
- "Broadcom BCM57404 NetXtreme-E Virtual Function"),
+ PVID(BROADCOM_VENDOR_ID, BCM57412,
+ "Broadcom BCM57412 NetXtreme-E 10Gb Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM57412_NPAR1,
+ "Broadcom BCM57412 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57412_NPAR2,
+ "Broadcom BCM57412 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57414,
+ "Broadcom BCM57414 NetXtreme-E 10Gb/25Gb Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM57414_NPAR1,
+ "Broadcom BCM57414 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57414_NPAR2,
+ "Broadcom BCM57414 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57416,
+ "Broadcom BCM57416 NetXtreme-E 10GBase-T Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM57416_NPAR1,
+ "Broadcom BCM57416 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57416_NPAR2,
+ "Broadcom BCM57416 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57416_SFP,
+ "Broadcom BCM57416 NetXtreme-E 10Gb Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM57417,
+ "Broadcom BCM57417 NetXtreme-E 10GBase-T Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM57417_NPAR1,
+ "Broadcom BCM57417 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57417_NPAR2,
+ "Broadcom BCM57417 NetXtreme-E Ethernet Partition"),
+ PVID(BROADCOM_VENDOR_ID, BCM57417_SFP,
+ "Broadcom BCM57417 NetXtreme-E 10Gb/25Gb Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, BCM58700,
+ "Broadcom BCM58700 Nitro 1Gb/2.5Gb/10Gb Ethernet"),
+ PVID(BROADCOM_VENDOR_ID, NETXTREME_C_VF1,
+ "Broadcom NetXtreme-C Ethernet Virtual Function"),
+ PVID(BROADCOM_VENDOR_ID, NETXTREME_C_VF2,
+ "Broadcom NetXtreme-C Ethernet Virtual Function"),
+ PVID(BROADCOM_VENDOR_ID, NETXTREME_C_VF3,
+ "Broadcom NetXtreme-C Ethernet Virtual Function"),
+ PVID(BROADCOM_VENDOR_ID, NETXTREME_E_VF1,
+ "Broadcom NetXtreme-E Ethernet Virtual Function"),
+ PVID(BROADCOM_VENDOR_ID, NETXTREME_E_VF2,
+ "Broadcom NetXtreme-E Ethernet Virtual Function"),
+ PVID(BROADCOM_VENDOR_ID, NETXTREME_E_VF3,
+ "Broadcom NetXtreme-E Ethernet Virtual Function"),
/* required last entry */
PVID_END
@@ -227,7 +273,7 @@ static driver_t bnxt_iflib_driver = {
* iflib shared context
*/
-char bnxt_driver_version[] = "https://github.com/Broadcom/freebsd-nxt/commits/bnxt-dev";
+char bnxt_driver_version[] = "FreeBSD base";
extern struct if_txrx bnxt_txrx;
static struct if_shared_ctx bnxt_sctx_init = {
.isc_magic = IFLIB_MAGIC,
@@ -540,14 +586,26 @@ bnxt_attach_pre(if_ctx_t ctx)
softc->sctx = iflib_get_sctx(ctx);
scctx = softc->scctx;
+ /* TODO: Better way of detecting NPAR/VF is needed */
switch (softc->sctx->isc_vendor_info->pvi_device_id) {
case BCM57402_NPAR:
case BCM57404_NPAR:
case BCM57406_NPAR:
+ case BCM57407_NPAR:
+ case BCM57412_NPAR1:
+ case BCM57412_NPAR2:
+ case BCM57414_NPAR1:
+ case BCM57414_NPAR2:
+ case BCM57416_NPAR1:
+ case BCM57416_NPAR2:
softc->flags |= BNXT_FLAG_NPAR;
break;
- case BCM57304_VF:
- case BCM57404_VF:
+ case NETXTREME_C_VF1:
+ case NETXTREME_C_VF2:
+ case NETXTREME_C_VF3:
+ case NETXTREME_E_VF1:
+ case NETXTREME_E_VF2:
+ case NETXTREME_E_VF3:
softc->flags |= BNXT_FLAG_VF;
break;
}
@@ -822,6 +880,7 @@ static void
bnxt_init(if_ctx_t ctx)
{
struct bnxt_softc *softc = iflib_get_softc(ctx);
+ struct ifmediareq ifmr;
int i, j;
int rc;
@@ -975,6 +1034,7 @@ bnxt_init(if_ctx_t ctx)
}
bnxt_do_enable_intr(&softc->def_cp_ring);
+ bnxt_media_status(softc->ctx, &ifmr);
return;
fail:
@@ -1910,6 +1970,7 @@ bnxt_add_media_types(struct bnxt_softc *
if (supported & HWRM_PORT_PHY_QCFG_OUTPUT_SUPPORT_SPEEDS_10GB)
ifmedia_add(softc->media, IFM_ETHER | IFM_10G_KR, 0,
NULL);
+ break;
case HWRM_PORT_PHY_QCFG_OUTPUT_PHY_TYPE_BASELR:
if (supported & HWRM_PORT_PHY_QCFG_OUTPUT_SUPPORT_SPEEDS_100GB)
ifmedia_add(softc->media, IFM_ETHER | IFM_100G_LR4, 0,
Modified: stable/11/sys/modules/Makefile
==============================================================================
--- stable/11/sys/modules/Makefile Thu Dec 1 23:27:59 2016 (r309376)
+++ stable/11/sys/modules/Makefile Thu Dec 1 23:37:17 2016 (r309377)
@@ -57,6 +57,7 @@ SUBDIR= \
${_bios} \
${_bktr} \
${_bm} \
+ bnxt \
bridgestp \
bwi \
bwn \
More information about the svn-src-stable
mailing list