[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haiku-commits
Subject:    [haiku-commits] haiku: hrev52695 - in src/add-ons/kernel/drivers/network: emulex_oce/dev/oce . dec21
From:       waddlesplash <waddlesplash () gmail ! com>
Date:       2018-12-27 21:56:19
Message-ID: 20181227215619.2582823577 () turing ! freelists ! org
[Download RAW message or body]

hrev52695 adds 10 changesets to branch 'master'
old head: 125df15288865dca19c895d64dd6fc64655908fe
new head: 0c3e5b9745568e27ac7384427d69bd3d8cad6f1c
overview: https://git.haiku-os.org/haiku/log/?qt=range&q=0c3e5b974556+%5E125df1528886

----------------------------------------------------------------------------

d5b99ecde766: freebsd_network: Some small additions for FreeBSD 12 drivers.

71f1250df5c2: 3com: Upgrade to FreeBSD 12.

b240ae40df29: ar81xx: Upgrade to FreeBSD 12.

ca813faa3c7c: atheros813x: Upgrade to FreeBSD 12.

3bfc859a3852: attansic: Upgrade to FreeBSD 12.

65124582dcb4: broadcom440x: Upgrade to FreeBSD 12.

25531c5613e7: broadcom570x: Upgrade to FreeBSD 12; fix logic inversion in Haiku code.
  
  See inline comment in brgphy.c.

2aaa3af64dfa: dec21xxx: Upgrade to FreeBSD 12.

522d14392077: emulex_oce: Upgrade to FreeBSD 12.

0c3e5b974556: ipro100: Upgrade to FreeBSD 12.

                              [ Augustin Cavalier <waddlesplash@gmail.com> ]

----------------------------------------------------------------------------

69 files changed, 2805 insertions(+), 790 deletions(-)
.../kernel/drivers/network/3com/dev/mii/bmtphy.c |   10 +-
.../drivers/network/3com/dev/mii/bmtphyreg.h     |    4 +-
.../kernel/drivers/network/3com/dev/mii/ukphy.c  |    4 +-
.../drivers/network/3com/dev/mii/ukphy_subr.c    |    4 +-
.../kernel/drivers/network/3com/dev/xl/if_xl.c   |   24 +-
.../drivers/network/3com/dev/xl/if_xlreg.h       |    4 +-
.../kernel/drivers/network/3com/dev/xl/xlphy.c   |    4 +-
.../drivers/network/ar81xx/dev/ale/if_ale.c      |    6 +-
.../drivers/network/ar81xx/dev/ale/if_alereg.h   |    4 +-
.../drivers/network/ar81xx/dev/ale/if_alevar.h   |    4 +-
.../drivers/network/ar81xx/dev/mii/ukphy.c       |    4 +-
.../drivers/network/ar81xx/dev/mii/ukphy_subr.c  |    4 +-
.../drivers/network/atheros813x/dev/alc/if_alc.c |  104 +-
.../network/atheros813x/dev/alc/if_alcreg.h      |    4 +-
.../network/atheros813x/dev/alc/if_alcvar.h      |    4 +-
.../drivers/network/atheros813x/dev/mii/ukphy.c  |    4 +-
.../network/atheros813x/dev/mii/ukphy_subr.c     |    4 +-
.../drivers/network/attansic_l1/dev/age/if_age.c |   15 +-
.../network/attansic_l1/dev/age/if_agereg.h      |    4 +-
.../network/attansic_l1/dev/age/if_agevar.h      |    4 +-
.../drivers/network/attansic_l1/dev/mii/atphy.c  |    4 +-
.../network/attansic_l1/dev/mii/atphyreg.h       |    4 +-
.../drivers/network/attansic_l2/dev/ae/if_ae.c   |   32 +-
.../network/attansic_l2/dev/ae/if_aereg.h        |    4 +-
.../network/attansic_l2/dev/ae/if_aevar.h        |    4 +-
.../drivers/network/attansic_l2/dev/mii/ukphy.c  |    4 +-
.../network/attansic_l2/dev/mii/ukphy_subr.c     |    4 +-
.../network/broadcom440x/dev/bfe/if_bfe.c        |   12 +-
.../network/broadcom440x/dev/bfe/if_bfereg.h     |    4 +-
.../network/broadcom440x/dev/mii/bmtphy.c        |   11 +-
.../network/broadcom440x/dev/mii/bmtphyreg.h     |    4 +-
.../network/broadcom570x/dev/bce/if_bcereg.h     |    4 +-
.../network/broadcom570x/dev/bge/if_bge.c        |  131 +-
.../network/broadcom570x/dev/bge/if_bgereg.h     |    4 +-
.../network/broadcom570x/dev/mii/brgphy.c        |    4 +-
.../network/broadcom570x/dev/mii/brgphyreg.h     |    4 +-
.../drivers/network/broadcom570x/dev/mii/ukphy.c |    4 +-
.../network/broadcom570x/dev/mii/ukphy_subr.c    |    4 +-
.../drivers/network/dec21xxx/dev/dc/dcphy.c      |    4 +-
.../drivers/network/dec21xxx/dev/dc/if_dc.c      |    6 +-
.../drivers/network/dec21xxx/dev/dc/if_dcreg.h   |    4 +-
.../drivers/network/dec21xxx/dev/dc/pnphy.c      |    4 +-
.../drivers/network/dec21xxx/dev/de/dc21040reg.h |   18 +-
.../drivers/network/dec21xxx/dev/de/if_de.c      |   18 +-
.../drivers/network/dec21xxx/dev/de/if_devar.h   |    9 +-
.../drivers/network/dec21xxx/dev/mii/acphy.c     |    4 +-
.../drivers/network/dec21xxx/dev/mii/acphyreg.h  |    4 +-
.../drivers/network/dec21xxx/dev/mii/amphy.c     |    4 +-
.../drivers/network/dec21xxx/dev/mii/amphyreg.h  |    4 +-
.../drivers/network/dec21xxx/dev/mii/ukphy.c     |    4 +-
.../network/dec21xxx/dev/mii/ukphy_subr.c        |    4 +-
.../drivers/network/emulex_oce/dev/oce/oce_hw.c  |   39 +-
.../drivers/network/emulex_oce/dev/oce/oce_hw.h  |  533 +++++++-
.../drivers/network/emulex_oce/dev/oce/oce_if.c  | 1153 ++++++++++++++----
.../drivers/network/emulex_oce/dev/oce/oce_if.h  |  130 +-
.../network/emulex_oce/dev/oce/oce_mbox.c        |  462 ++++---
.../network/emulex_oce/dev/oce/oce_queue.c       |  295 ++++-
.../network/emulex_oce/dev/oce/oce_sysctl.c      |  245 ++--
.../network/emulex_oce/dev/oce/oce_user.h        |  121 ++
.../network/emulex_oce/dev/oce/oce_util.c        |    4 +-
.../drivers/network/ipro100/dev/fxp/if_fxp.c     |   27 +-
.../drivers/network/ipro100/dev/fxp/if_fxpreg.h  |    4 +-
.../drivers/network/ipro100/dev/fxp/if_fxpvar.h  |    4 +-
.../drivers/network/ipro100/dev/fxp/inphy.c      |    4 +-
.../drivers/network/ipro100/dev/fxp/inphyreg.h   |    4 +-
.../drivers/network/ipro100/dev/fxp/rcvbundl.h   |    4 +-
.../compat/freebsd_network/compat/net/ethernet.h |    3 +
.../compat/netinet/netdump/netdump.h             |   14 +
.../compat/freebsd_network/compat/sys/module.h   |    1 +

############################################################################

Commit:      d5b99ecde766bbb336eb6869cbbbb310935aa28a
URL:         https://git.haiku-os.org/haiku/commit/?id=d5b99ecde766
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:51:48 2018 UTC

freebsd_network: Some small additions for FreeBSD 12 drivers.

----------------------------------------------------------------------------

diff --git a/src/libs/compat/freebsd_network/compat/net/ethernet.h \
b/src/libs/compat/freebsd_network/compat/net/ethernet.h index b97f8529d7..e80033a886 \
                100644
--- a/src/libs/compat/freebsd_network/compat/net/ethernet.h
+++ b/src/libs/compat/freebsd_network/compat/net/ethernet.h
@@ -79,6 +79,9 @@ CTASSERT(sizeof (struct ether_addr) == ETHER_ADDR_LEN);
 #endif
 
 #define	ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */
+#define	ETHER_IS_BROADCAST(addr) \
+	(((addr)[0] & (addr)[1] & (addr)[2] & \
+	  (addr)[3] & (addr)[4] & (addr)[5]) == 0xff)
 
 /*
  *  NOTE: 0x0000-0x05DC (0..1500) are generally IEEE 802.3 length fields.
diff --git a/src/libs/compat/freebsd_network/compat/netinet/netdump/netdump.h \
b/src/libs/compat/freebsd_network/compat/netinet/netdump/netdump.h new file mode \
100644 index 0000000000..ef07076098
--- /dev/null
+++ b/src/libs/compat/freebsd_network/compat/netinet/netdump/netdump.h
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2018, Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef _FBSD_COMPAT_NETINET_NETDUMP_H_
+#define _FBSD_COMPAT_NETINET_NETDUMP_H_
+
+
+#define	NETDUMP_DEFINE(driver)
+#define	NETDUMP_REINIT(ifp)
+#define	NETDUMP_SET(ifp, driver)
+
+
+#endif /* _FBSD_COMPAT_NETINET_NETDUMP_H_ */
diff --git a/src/libs/compat/freebsd_network/compat/sys/module.h \
b/src/libs/compat/freebsd_network/compat/sys/module.h index 4315069b72..09dfd5d8ce \
                100644
--- a/src/libs/compat/freebsd_network/compat/sys/module.h
+++ b/src/libs/compat/freebsd_network/compat/sys/module.h
@@ -19,5 +19,6 @@ typedef enum modeventtype {
 
 #define MODULE_VERSION(name, version)
 #define MODULE_DEPEND(module, mdepend, vmin, vpref, vmax)
+#define	MODULE_PNP_INFO(d, b, unique, t, n)
 
 #endif

############################################################################

Commit:      71f1250df5c2e40c5f708f627374cd9762aebbaf
URL:         https://git.haiku-os.org/haiku/commit/?id=71f1250df5c2
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:52:27 2018 UTC

3com: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c \
b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c index \
                dd05e821f2..71aec8da84 100644
--- a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c
+++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphy.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -56,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/bmtphy.c 257184 2013-10-26 18:40:17Z \
glebius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/bmtphy.c 326255 2017-11-27 \
14:52:40Z pfg $");  
 /*
  * Driver for the Broadcom BCM5201/BCM5202 "Mini-Theta" PHYs.  This also
@@ -136,8 +138,14 @@ bmtphy_probe(device_t dev)
 
 	/* Let exphy(4) take precedence for these. */
 	rval = mii_phy_dev_probe(dev, bmtphys_lp, BUS_PROBE_LOW_PRIORITY);
+#ifndef __HAIKU__
 	if (rval <= 0)
 		return (rval);
+#else /* __HAIKU__ */
+	/* our BUS_PROBE_* constants are > 0 since errors are < 0 */
+	if (rval > 0)
+		return (rval);
+#endif
 
 	return (mii_phy_dev_probe(dev, bmtphys_dp, BUS_PROBE_DEFAULT));
 }
diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h \
b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h index \
                1acdf75d81..2ef489c41e 100644
--- a/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h
+++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/bmtphyreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -28,7 +30,7 @@
  *
  *	from NetBSD: bmtphyreg.h,v 1.1 2001/06/02 21:42:10 thorpej Exp
  *
- * $FreeBSD: releng/11.1/sys/dev/mii/bmtphyreg.h 204646 2010-03-03 17:55:51Z joel $
+ * $FreeBSD: releng/12.0/sys/dev/mii/bmtphyreg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef _DEV_MII_BMTPHYREG_H_
diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c \
b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c index \
                a4004afdb5..ea101c4ba4 100644
--- a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c
+++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy.c,v 1.2 1999/04/23 04:24:32 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -55,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy.c 257184 2013-10-26 18:40:17Z \
glebius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy.c 326255 2017-11-27 \
14:52:40Z pfg $");  
 /*
  * driver for generic unknown PHYs
diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c \
b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c index \
                f78b4e5e3b..e3d88c96c9 100644
--- a/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c
+++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/ukphy_subr.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy_subr.c,v 1.2 1998/11/05 04:08:02 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy_subr.c 215297 2010-11-14 13:26:10Z \
marius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy_subr.c 326255 \
2017-11-27 14:52:40Z pfg $");  
 /*
  * Subroutines shared by the ukphy driver and other PHY drivers.
diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c \
b/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c index d58b714e11..201657e1d6 \
                100644
--- a/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c
+++ b/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xl.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wpaul@ctr.columbia.edu>.  All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/xl/if_xl.c 338948 2018-09-26 17:12:14Z imp \
$");  
 /*
  * 3Com 3c90x Etherlink XL PCI NIC driver
@@ -75,7 +77,7 @@ __FBSDID("$FreeBSD$");
  * Columbia University, New York City
  */
 /*
- * The 3c90x series chips use a bus-master DMA interface for transfering
+ * The 3c90x series chips use a bus-master DMA interface for transferring
  * packets to and from the controller chip. Some of the "vortex" cards
  * (3c59x) also supported a bus master mode, however for those chips
  * you could only DMA packets to/from a contiguous memory buffer. For
@@ -106,13 +108,15 @@ __FBSDID("$FreeBSD$");
 #include <sys/systm.h>
 #include <sys/sockio.h>
 #include <sys/endian.h>
-#include <sys/mbuf.h>
 #include <sys/kernel.h>
+#include <sys/malloc.h>
+#include <sys/mbuf.h>
 #include <sys/module.h>
 #include <sys/socket.h>
 #include <sys/taskqueue.h>
 
 #include <net/if.h>
+#include <net/if_var.h>
 #include <net/if_arp.h>
 #include <net/ethernet.h>
 #include <net/if_dl.h>
@@ -330,6 +334,8 @@ static devclass_t xl_devclass;
 DRIVER_MODULE_ORDERED(xl, pci, xl_driver, xl_devclass, NULL, NULL,
     SI_ORDER_ANY);
 DRIVER_MODULE(miibus, xl, miibus_driver, miibus_devclass, NULL, NULL);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, xl, xl_devs,
+    nitems(xl_devs) - 1);
 
 static void
 xl_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nseg, int error)
@@ -351,7 +357,7 @@ xl_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nseg, int \
error)  static void
 xl_wait(struct xl_softc *sc)
 {
-	register int		i;
+	int			i;
 
 	for (i = 0; i < XL_TIMEOUT; i++) {
 		if ((CSR_READ_2(sc, XL_STATUS) & XL_STAT_CMDBUSY) == 0)
@@ -834,7 +840,7 @@ xl_setmode(struct xl_softc *sc, int media)
 static void
 xl_reset(struct xl_softc *sc)
 {
-	register int		i;
+	int			i;
 
 	XL_LOCK_ASSERT(sc);
 
@@ -2335,9 +2341,9 @@ xl_stats_update(struct xl_softc *sc)
 	if_inc_counter(ifp, IFCOUNTER_IERRORS, xl_stats.xl_rx_overrun);
 
 	if_inc_counter(ifp, IFCOUNTER_COLLISIONS,
-		xl_stats.xl_tx_multi_collision +
-		xl_stats.xl_tx_single_collision +
-		xl_stats.xl_tx_late_collision);
+	    xl_stats.xl_tx_multi_collision +
+	    xl_stats.xl_tx_single_collision +
+	    xl_stats.xl_tx_late_collision);
 
 	/*
 	 * Boomerang and cyclone chips have an extra stats counter
@@ -3172,7 +3178,7 @@ xl_watchdog(struct xl_softc *sc)
 static void
 xl_stop(struct xl_softc *sc)
 {
-	register int		i;
+	int			i;
 	struct ifnet		*ifp = sc->xl_ifp;
 
 	XL_LOCK_ASSERT(sc);
diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xlreg.h \
b/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xlreg.h index \
                17457beefc..725484cb9c 100644
--- a/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xlreg.h
+++ b/src/add-ons/kernel/drivers/network/3com/dev/xl/if_xlreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998
  *	Bill Paul <wpaul@ctr.columbia.edu>.  All rights reserved.
  *
@@ -29,7 +31,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/xl/if_xlreg.h 325966 2017-11-18 14:26:50Z pfg $
  */
 
 #define XL_EE_READ	0x0080	/* read, 5 bit address */
diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c \
b/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c index 68b8088ae5..99ed229ba2 \
                100644
--- a/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c
+++ b/src/add-ons/kernel/drivers/network/3com/dev/xl/xlphy.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: exphy.c,v 1.16 1999/04/23 04:24:32 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD AND BSD-2-Clause
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -55,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/xl/xlphy.c 257184 2013-10-26 18:40:17Z \
glebius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/xl/xlphy.c 326255 2017-11-27 \
14:52:40Z pfg $");  
 /*
  * driver for 3Com internal PHYs

############################################################################

Commit:      b240ae40df297d9370edc035e35599b66bea46e7
URL:         https://git.haiku-os.org/haiku/commit/?id=b240ae40df29
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:53:15 2018 UTC

ar81xx: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_ale.c \
b/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_ale.c index \
                e7d030636c..4cf205655b 100644
--- a/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_ale.c
+++ b/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_ale.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -28,7 +30,7 @@
 /* Driver for Atheros AR8121/AR8113/AR8114 PCIe Ethernet. */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/ale/if_ale.c 338948 2018-09-26 17:12:14Z imp \
$");  
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -176,6 +178,8 @@ static driver_t ale_driver = {
 static devclass_t ale_devclass;
 
 DRIVER_MODULE(ale, pci, ale_driver, ale_devclass, NULL, NULL);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, ale, ale_devs,
+    nitems(ale_devs));
 DRIVER_MODULE(miibus, ale, miibus_driver, miibus_devclass, NULL, NULL);
 
 static struct resource_spec ale_res_spec_mem[] = {
diff --git a/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alereg.h \
b/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alereg.h index \
                5804c53724..f6758dac3a 100644
--- a/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alereg.h
+++ b/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alereg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -24,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/ale/if_alereg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef	_IF_ALEREG_H
diff --git a/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alevar.h \
b/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alevar.h index \
                8995c693f8..a006cc00e7 100644
--- a/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alevar.h
+++ b/src/add-ons/kernel/drivers/network/ar81xx/dev/ale/if_alevar.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -24,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/ale/if_alevar.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef	_IF_ALEVAR_H
diff --git a/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy.c \
b/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy.c index \
                45addcbc75..ea101c4ba4 100644
--- a/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy.c
+++ b/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy.c,v 1.2 1999/04/23 04:24:32 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -55,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy.c 326255 2017-11-27 14:52:40Z pfg \
$");  
 /*
  * driver for generic unknown PHYs
diff --git a/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy_subr.c \
b/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy_subr.c index \
                5f2f6341ba..e3d88c96c9 100644
--- a/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy_subr.c
+++ b/src/add-ons/kernel/drivers/network/ar81xx/dev/mii/ukphy_subr.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy_subr.c,v 1.2 1998/11/05 04:08:02 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy_subr.c 326255 2017-11-27 14:52:40Z \
pfg $");  
 /*
  * Subroutines shared by the ukphy driver and other PHY drivers.

############################################################################

Commit:      ca813faa3c7c8f93832511258cd8e6484d1c52fe
URL:         https://git.haiku-os.org/haiku/commit/?id=ca813faa3c7c
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:53:24 2018 UTC

atheros813x: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alc.c \
b/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alc.c index \
                ca7ae9d17b..59e719d6b3 100644
--- a/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alc.c
+++ b/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alc.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2009, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -28,7 +30,7 @@
 /* Driver for Atheros AR813x/AR815x PCIe Ethernet. */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/alc/if_alc.c 338948 2018-09-26 17:12:14Z imp \
$");  
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -62,6 +64,7 @@ __FBSDID("$FreeBSD$");
 #include <netinet/in_systm.h>
 #include <netinet/ip.h>
 #include <netinet/tcp.h>
+#include <netinet/netdump/netdump.h>
 
 #include <dev/mii/mii.h>
 #include <dev/mii/miivar.h>
@@ -197,6 +200,7 @@ static int	alc_shutdown(device_t);
 static void	alc_start(struct ifnet *);
 static void	alc_start_locked(struct ifnet *);
 static void	alc_start_queue(struct alc_softc *);
+static void	alc_start_tx(struct alc_softc *);
 static void	alc_stats_clear(struct alc_softc *);
 static void	alc_stats_update(struct alc_softc *);
 static void	alc_stop(struct alc_softc *);
@@ -211,6 +215,8 @@ static int	sysctl_int_range(SYSCTL_HANDLER_ARGS, int, int);
 static int	sysctl_hw_alc_proc_limit(SYSCTL_HANDLER_ARGS);
 static int	sysctl_hw_alc_int_mod(SYSCTL_HANDLER_ARGS);
 
+NETDUMP_DEFINE(alc);
+
 static device_method_t alc_methods[] = {
 	/* Device interface. */
 	DEVMETHOD(device_probe,		alc_probe),
@@ -225,7 +231,7 @@ static device_method_t alc_methods[] = {
 	DEVMETHOD(miibus_writereg,	alc_miibus_writereg),
 	DEVMETHOD(miibus_statchg,	alc_miibus_statchg),
 
-	{ NULL, NULL }
+	DEVMETHOD_END
 };
 
 static driver_t alc_driver = {
@@ -237,6 +243,8 @@ static driver_t alc_driver = {
 static devclass_t alc_devclass;
 
 DRIVER_MODULE(alc, pci, alc_driver, alc_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, alc, alc_ident_table,
+    nitems(alc_ident_table) - 1);
 DRIVER_MODULE(miibus, alc, miibus_driver, miibus_devclass, 0, 0);
 
 static struct resource_spec alc_res_spec_mem[] = {
@@ -1649,6 +1657,9 @@ alc_attach(device_t dev)
 		goto fail;
 	}
 
+	/* Attach driver netdump methods. */
+	NETDUMP_SET(ifp, alc);
+
 fail:
 	if (error != 0)
 		alc_detach(dev);
@@ -2972,22 +2983,28 @@ alc_start_locked(struct ifnet *ifp)
 		ETHER_BPF_MTAP(ifp, m_head);
 	}
 
-	if (enq > 0) {
-		/* Sync descriptors. */
-		bus_dmamap_sync(sc->alc_cdata.alc_tx_ring_tag,
-		    sc->alc_cdata.alc_tx_ring_map, BUS_DMASYNC_PREWRITE);
-		/* Kick. Assume we're using normal Tx priority queue. */
-		if ((sc->alc_flags & ALC_FLAG_AR816X_FAMILY) != 0)
-			CSR_WRITE_2(sc, ALC_MBOX_TD_PRI0_PROD_IDX,
-			    (uint16_t)sc->alc_cdata.alc_tx_prod);
-		else
-			CSR_WRITE_4(sc, ALC_MBOX_TD_PROD_IDX,
-			    (sc->alc_cdata.alc_tx_prod <<
-			    MBOX_TD_PROD_LO_IDX_SHIFT) &
-			    MBOX_TD_PROD_LO_IDX_MASK);
-		/* Set a timeout in case the chip goes out to lunch. */
-		sc->alc_watchdog_timer = ALC_TX_TIMEOUT;
-	}
+	if (enq > 0)
+		alc_start_tx(sc);
+}
+
+static void
+alc_start_tx(struct alc_softc *sc)
+{
+
+	/* Sync descriptors. */
+	bus_dmamap_sync(sc->alc_cdata.alc_tx_ring_tag,
+	    sc->alc_cdata.alc_tx_ring_map, BUS_DMASYNC_PREWRITE);
+	/* Kick. Assume we're using normal Tx priority queue. */
+	if ((sc->alc_flags & ALC_FLAG_AR816X_FAMILY) != 0)
+		CSR_WRITE_2(sc, ALC_MBOX_TD_PRI0_PROD_IDX,
+		    (uint16_t)sc->alc_cdata.alc_tx_prod);
+	else
+		CSR_WRITE_4(sc, ALC_MBOX_TD_PROD_IDX,
+		    (sc->alc_cdata.alc_tx_prod <<
+		    MBOX_TD_PROD_LO_IDX_SHIFT) &
+		    MBOX_TD_PROD_LO_IDX_MASK);
+	/* Set a timeout in case the chip goes out to lunch. */
+	sc->alc_watchdog_timer = ALC_TX_TIMEOUT;
 }
 
 static void
@@ -4640,3 +4657,54 @@ sysctl_hw_alc_int_mod(SYSCTL_HANDLER_ARGS)
 	return (sysctl_int_range(oidp, arg1, arg2, req,
 	    ALC_IM_TIMER_MIN, ALC_IM_TIMER_MAX));
 }
+
+#ifdef NETDUMP
+static void
+alc_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize)
+{
+	struct alc_softc *sc;
+
+	sc = if_getsoftc(ifp);
+	KASSERT(sc->alc_buf_size <= MCLBYTES, ("incorrect cluster size"));
+
+	*nrxr = ALC_RX_RING_CNT;
+	*ncl = NETDUMP_MAX_IN_FLIGHT;
+	*clsize = MCLBYTES;
+}
+
+static void
+alc_netdump_event(struct ifnet *ifp __unused, enum netdump_ev event __unused)
+{
+}
+
+static int
+alc_netdump_transmit(struct ifnet *ifp, struct mbuf *m)
+{
+	struct alc_softc *sc;
+	int error;
+
+	sc = if_getsoftc(ifp);
+	if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
+	    IFF_DRV_RUNNING)
+		return (EBUSY);
+
+	error = alc_encap(sc, &m);
+	if (error == 0)
+		alc_start_tx(sc);
+	return (error);
+}
+
+static int
+alc_netdump_poll(struct ifnet *ifp, int count)
+{
+	struct alc_softc *sc;
+
+	sc = if_getsoftc(ifp);
+	if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
+	    IFF_DRV_RUNNING)
+		return (EBUSY);
+
+	alc_txeof(sc);
+	return (alc_rxintr(sc, count));
+}
+#endif /* NETDUMP */
diff --git a/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcreg.h \
b/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcreg.h index \
                29d877da9f..cade3f5526 100644
--- a/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcreg.h
+++ b/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2009, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -24,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/alc/if_alcreg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef	_IF_ALCREG_H
diff --git a/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcvar.h \
b/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcvar.h index \
                a1c3382f01..c1cd08949d 100644
--- a/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcvar.h
+++ b/src/add-ons/kernel/drivers/network/atheros813x/dev/alc/if_alcvar.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2009, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -24,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/alc/if_alcvar.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef	_IF_ALCVAR_H
diff --git a/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy.c \
b/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy.c index \
                45addcbc75..ea101c4ba4 100644
--- a/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy.c
+++ b/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy.c,v 1.2 1999/04/23 04:24:32 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -55,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy.c 326255 2017-11-27 14:52:40Z pfg \
$");  
 /*
  * driver for generic unknown PHYs
diff --git a/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy_subr.c \
b/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy_subr.c index \
                5f2f6341ba..e3d88c96c9 100644
--- a/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy_subr.c
+++ b/src/add-ons/kernel/drivers/network/atheros813x/dev/mii/ukphy_subr.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy_subr.c,v 1.2 1998/11/05 04:08:02 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy_subr.c 326255 2017-11-27 14:52:40Z \
pfg $");  
 /*
  * Subroutines shared by the ukphy driver and other PHY drivers.

############################################################################

Commit:      3bfc859a38529d5e24a615cf5afa07d029a35b03
URL:         https://git.haiku-os.org/haiku/commit/?id=3bfc859a3852
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:53:47 2018 UTC

attansic: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_age.c \
b/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_age.c index \
                6e338bfd08..953c167c96 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_age.c
+++ b/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_age.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -28,7 +30,7 @@
 /* Driver for Attansic Technology Corp. L1 Gigabit Ethernet. */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/age/if_age.c 338948 2018-09-26 17:12:14Z imp \
$");  
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -181,6 +183,8 @@ static driver_t age_driver = {
 static devclass_t age_devclass;
 
 DRIVER_MODULE(age, pci, age_driver, age_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, age, age_devs,
+    nitems(age_devs));
 DRIVER_MODULE(miibus, age, miibus_driver, miibus_devclass, 0, 0);
 
 static struct resource_spec age_res_spec_mem[] = {
@@ -1401,11 +1405,7 @@ age_setwol(struct age_softc *sc)
 					}
 				}
 				AGE_UNLOCK(sc);
-#ifdef __HAIKU__
-				DELAY(1);
-#else
 				pause("agelnk", hz);
-#endif
 				AGE_LOCK(sc);
 			}
 			if (i == MII_ANEGTICKS_GIGE)
@@ -2165,11 +2165,6 @@ age_int_task(void *arg, int pending)
 	    sc->age_cdata.age_cmb_block_map,
 	    BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
 
-#if 0
-	printf("INTR: 0x%08x\n", status);
-	status &= ~INTR_DIS_DMA;
-	CSR_WRITE_4(sc, AGE_INTR_STATUS, status | INTR_DIS_INT);
-#endif
 	ifp = sc->age_ifp;
 	if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
 		if ((status & INTR_CMB_RX) != 0)
diff --git a/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agereg.h \
b/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agereg.h index \
                284e5a4ee6..f866f8185c 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agereg.h
+++ b/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agereg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -24,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/age/if_agereg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef	_IF_AGEREG_H
diff --git a/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agevar.h \
b/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agevar.h index \
                14792726ca..61e018c89d 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agevar.h
+++ b/src/add-ons/kernel/drivers/network/attansic_l1/dev/age/if_agevar.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -24,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/age/if_agevar.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef	_IF_AGEVAR_H
diff --git a/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphy.c \
b/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphy.c index \
                819b156214..8e50aef4f3 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphy.c
+++ b/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphy.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
  * All rights reserved.
  *
@@ -26,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/atphy.c 326255 2017-11-27 14:52:40Z pfg \
$");  
 /*
  * Driver for the Attansic/Atheros F1 10/100/1000 PHY.
diff --git a/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphyreg.h \
b/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphyreg.h index \
                6181f2d107..3e35bdbca0 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphyreg.h
+++ b/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/atphyreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008, Pyun YongHyeon
  * All rights reserved.
  *              
@@ -24,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/mii/atphyreg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef	_DEV_MII_ATPHYREG_H_
diff --git a/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_ae.c \
b/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_ae.c index \
                098b681d1f..778fa8d456 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_ae.c
+++ b/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_ae.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008 Stanislav Sedov <stas@FreeBSD.org>.
  * All rights reserved.
  *
@@ -28,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/ae/if_ae.c 339735 2018-10-25 17:00:39Z \
brooks $");  
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -175,6 +177,8 @@ static driver_t ae_driver = {
 static devclass_t ae_devclass;
 
 DRIVER_MODULE(ae, pci, ae_driver, ae_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, ae, ae_devs,
+    nitems(ae_devs));
 DRIVER_MODULE(miibus, ae, miibus_driver, miibus_devclass, 0, 0);
 MODULE_DEPEND(ae, pci, 1, 1, 1);
 MODULE_DEPEND(ae, ether, 1, 1, 1);
@@ -310,7 +314,7 @@ ae_attach(device_t dev)
 			goto fail;
 		}
 	}
-	
+
 	ae_init_tunables(sc);
 
 	ae_phy_reset(sc);		/* Reset PHY. */
@@ -395,7 +399,7 @@ ae_attach(device_t dev)
 fail:
 	if (error != 0)
 		ae_detach(dev);
-	
+
 	return (error);
 }
 
@@ -499,7 +503,7 @@ ae_reset(ae_softc_t *sc)
 	AE_WRITE_4(sc, AE_MASTER_REG, AE_MASTER_SOFT_RESET);
 	bus_barrier(sc->mem[0], AE_MASTER_REG, 4,
 	    BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
-	
+
 	/*
 	 * Wait for reset to complete.
 	 */
@@ -1018,7 +1022,7 @@ ae_get_vpd_eaddr(ae_softc_t *sc, uint32_t *eaddr)
 
 	if (found < 2)
 		return (ENOENT);
-	
+
 	eaddr[1] &= 0xffff;	/* Only last 2 bytes are used. */
 	if (AE_CHECK_EADDR_VALID(eaddr) != 0) {
 		if (bootverbose)
@@ -1065,11 +1069,7 @@ ae_retrieve_address(ae_softc_t *sc)
 		if (bootverbose)
 			device_printf(sc->dev,
 			    "Generating random ethernet address.\n");
-#ifdef __HAIKU__
-		eaddr[0] = random();
-#else
 		eaddr[0] = arc4random();
-#endif
 
 		/*
 		 * Set OUI to ASUSTek COMPUTER INC.
@@ -1288,7 +1288,7 @@ static void
 ae_powersave_disable(ae_softc_t *sc)
 {
 	uint32_t val;
-	
+
 	AE_LOCK_ASSERT(sc);
 
 	AE_PHY_WRITE(sc, AE_PHY_DBG_ADDR, 0);
@@ -1304,7 +1304,7 @@ static void
 ae_powersave_enable(ae_softc_t *sc)
 {
 	uint32_t val;
-	
+
 	AE_LOCK_ASSERT(sc);
 
 	/*
@@ -1362,7 +1362,7 @@ ae_pm_init(ae_softc_t *sc)
 			    IFM_FDX) != 0)
 				val |= AE_MAC_FULL_DUPLEX;
 			AE_WRITE_4(sc, AE_MAC_REG, val);
-			    
+
 		} else {	/* No link. */
 			AE_WRITE_4(sc, AE_WOL_REG, AE_WOL_LNKCHG | \
 			    AE_WOL_LNKCHG_PME);
@@ -1430,7 +1430,7 @@ static unsigned int
 ae_tx_avail_size(ae_softc_t *sc)
 {
 	unsigned int avail;
-	
+
 	if (sc->txd_cur >= sc->txd_ack)
 		avail = AE_TXD_BUFSIZE_DEFAULT - (sc->txd_cur - sc->txd_ack);
 	else
@@ -1451,7 +1451,7 @@ ae_encap(ae_softc_t *sc, struct mbuf **m_head)
 
 	m0 = *m_head;
 	len = m0->m_pkthdr.len;
-	
+
 	if ((sc->flags & AE_FLAG_TXAVAIL) == 0 ||
 	    len + sizeof(ae_txd_t) + 3 > ae_tx_avail_size(sc)) {
 #ifdef AE_DEBUG
@@ -1599,7 +1599,7 @@ ae_link_task(void *arg, int pending)
 		AE_UNLOCK(sc);	/* XXX: could happen? */
 		return;
 	}
-	
+
 	sc->flags &= ~AE_FLAG_LINK;
 	if ((mii->mii_media_status & (IFM_AVALID | IFM_ACTIVE)) ==
 	    (IFM_AVALID | IFM_ACTIVE)) {
@@ -1700,7 +1700,7 @@ ae_stop_txmac(ae_softc_t *sc)
 	/*
 	 * Wait for IDLE state.
 	 */
-	for (i = 0; i < AE_IDLE_TIMEOUT; i--) {
+	for (i = 0; i < AE_IDLE_TIMEOUT; i++) {
 		val = AE_READ_4(sc, AE_IDLE_REG);
 		if ((val & (AE_IDLE_TXMAC | AE_IDLE_DMAREAD)) == 0)
 			break;
diff --git a/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aereg.h \
b/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aereg.h index \
                4e0ae3bbe4..eaad989729 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aereg.h
+++ b/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aereg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008 Stanislav Sedov <stas@FreeBSD.org>.
  * All rights reserved.
  *
@@ -22,7 +24,7 @@
  * (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$
+ * $FreeBSD: releng/12.0/sys/dev/ae/if_aereg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 /*
diff --git a/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aevar.h \
b/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aevar.h index \
                a250fd2efa..41f89ae018 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aevar.h
+++ b/src/add-ons/kernel/drivers/network/attansic_l2/dev/ae/if_aevar.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2008 Stanislav Sedov <stas@FreeBSD.org>.
  * All rights reserved.
  *
@@ -22,7 +24,7 @@
  * (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$
+ * $FreeBSD: releng/12.0/sys/dev/ae/if_aevar.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef IF_AEVAR_H
diff --git a/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy.c \
b/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy.c index \
                45addcbc75..ea101c4ba4 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy.c
+++ b/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy.c,v 1.2 1999/04/23 04:24:32 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -55,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy.c 326255 2017-11-27 14:52:40Z pfg \
$");  
 /*
  * driver for generic unknown PHYs
diff --git a/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy_subr.c \
b/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy_subr.c index \
                5f2f6341ba..e3d88c96c9 100644
--- a/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy_subr.c
+++ b/src/add-ons/kernel/drivers/network/attansic_l2/dev/mii/ukphy_subr.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy_subr.c,v 1.2 1998/11/05 04:08:02 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy_subr.c 326255 2017-11-27 14:52:40Z \
pfg $");  
 /*
  * Subroutines shared by the ukphy driver and other PHY drivers.

############################################################################

Commit:      65124582dcb4394c2f26dc635e22a88abd01f9bc
URL:         https://git.haiku-os.org/haiku/commit/?id=65124582dcb4
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:54:15 2018 UTC

broadcom440x: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfe.c \
b/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfe.c index \
                fc6445b00c..ccfb78d14c 100644
--- a/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfe.c
+++ b/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfe.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2003 Stuart Walsh<stu@ipng.org.uk>
  * and Duncan Barclay<dmlb@dmlb.org>
  *
@@ -26,7 +28,7 @@
 
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/bfe/if_bfe.c 338948 2018-09-26 17:12:14Z imp \
$");  
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -155,6 +157,8 @@ static driver_t bfe_driver = {
 static devclass_t bfe_devclass;
 
 DRIVER_MODULE(bfe, pci, bfe_driver, bfe_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, bfe, bfe_devs,
+    nitems(bfe_devs) - 1);
 DRIVER_MODULE(miibus, bfe, miibus_driver, miibus_devclass, 0, 0);
 
 /*
@@ -793,7 +797,7 @@ bfe_list_newbuf(struct bfe_softc *sc, int c)
 	int nsegs;
 
 	m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR);
-	if (!m)
+	if (m == NULL)
 		return (ENOBUFS);
 	m->m_len = m->m_pkthdr.len = MCLBYTES;
 
@@ -819,7 +823,7 @@ bfe_list_newbuf(struct bfe_softc *sc, int c)
 	rx_header->len = 0;
 	rx_header->flags = 0;
 	bus_dmamap_sync(sc->bfe_rxmbuf_tag, r->bfe_map, BUS_DMASYNC_PREREAD);
-
+	
 	ctrl = segs[0].ds_len & BFE_DESC_LEN;
 	KASSERT(ctrl > ETHER_MAX_LEN + 32, ("%s: buffer size too small(%d)!",
 	    __func__, ctrl));
@@ -1402,7 +1406,7 @@ bfe_rxeof(struct bfe_softc *sc)
 		 * Rx status should be read from mbuf such that we can't
 		 * delay bus_dmamap_sync(9). This hardware limiation
 		 * results in inefficent mbuf usage as bfe(4) couldn't
-		 * reuse mapped buffer from errored frame.
+		 * reuse mapped buffer from errored frame. 
 		 */
 		if (bfe_list_newbuf(sc, cons) != 0) {
 			if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1);
diff --git a/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfereg.h \
b/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfereg.h index \
                b50627edbf..0d8d9960e1 100644
--- a/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfereg.h
+++ b/src/add-ons/kernel/drivers/network/broadcom440x/dev/bfe/if_bfereg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2003 Stuart Walsh
  *
  * Redistribution and use in source and binary forms, with or without
@@ -22,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-/* $FreeBSD$ */
+/* $FreeBSD: releng/12.0/sys/dev/bfe/if_bfereg.h 326255 2017-11-27 14:52:40Z pfg $ \
*/  
 #ifndef _BFE_H
 #define _BFE_H
diff --git a/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphy.c \
b/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphy.c index \
                0482be9190..7ee49cd54b 100644
--- a/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphy.c
+++ b/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphy.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -56,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/bmtphy.c 326255 2017-11-27 14:52:40Z pfg \
$");  
 /*
  * Driver for the Broadcom BCM5201/BCM5202 "Mini-Theta" PHYs.  This also
@@ -138,11 +140,12 @@ bmtphy_probe(device_t dev)
 	rval = mii_phy_dev_probe(dev, bmtphys_lp, BUS_PROBE_LOW_PRIORITY);
 #ifndef __HAIKU__
 	if (rval <= 0)
-#else
-	if (rval <= 0 && rval != ENXIO)
+		return (rval);
+#else /* __HAIKU__ */
+	/* our BUS_PROBE_* constants are > 0 since errors are < 0 */
+	if (rval > 0)
 		return (rval);
 #endif
-
 	return (mii_phy_dev_probe(dev, bmtphys_dp, BUS_PROBE_DEFAULT));
 }
 
diff --git a/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphyreg.h \
b/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphyreg.h index \
                6aa141deb4..2ef489c41e 100644
--- a/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphyreg.h
+++ b/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/bmtphyreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -28,7 +30,7 @@
  *
  *	from NetBSD: bmtphyreg.h,v 1.1 2001/06/02 21:42:10 thorpej Exp
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/mii/bmtphyreg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef _DEV_MII_BMTPHYREG_H_

############################################################################

Commit:      25531c5613e7828d1e221c184b3c1862ef68a262
URL:         https://git.haiku-os.org/haiku/commit/?id=25531c5613e7
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:54:24 2018 UTC

broadcom570x: Upgrade to FreeBSD 12; fix logic inversion in Haiku code.

See inline comment in brgphy.c.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bce/if_bcereg.h \
b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bce/if_bcereg.h index \
                2f166eadea..1c137ea4ff 100644
--- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bce/if_bcereg.h
+++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bce/if_bcereg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
  * Copyright (c) 2006-2014 QLogic Corporation
  *
  * Redistribution and use in source and binary forms, with or without
@@ -22,7 +24,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/bce/if_bcereg.h 326022 2017-11-20 19:36:21Z pfg $
  */
 
 #ifndef	_BCEREG_H_DEFINED
diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bge.c \
b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bge.c index \
                4cbb85ef86..70fd581e1d 100644
--- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bge.c
+++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bge.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 2001 Wind River Systems
  * Copyright (c) 1997, 1998, 1999, 2001
  *	Bill Paul <wpaul@windriver.com>.  All rights reserved.
@@ -32,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/bge/if_bge.c 338948 2018-09-26 17:12:14Z imp \
$");  
 /*
  * Broadcom BCM57xx(x)/BCM590x NetXtreme and NetLink family Ethernet driver
@@ -98,6 +100,7 @@ __FBSDID("$FreeBSD$");
 #include <netinet/in.h>
 #include <netinet/ip.h>
 #include <netinet/tcp.h>
+#include <netinet/netdump/netdump.h>
 
 #include <machine/bus.h>
 #include <machine/resource.h>
@@ -424,8 +427,9 @@ static int bge_encap(struct bge_softc *, struct mbuf **, uint32_t \
*);  static void bge_intr(void *);
 static int bge_msi_intr(void *);
 static void bge_intr_task(void *, int);
-static void bge_start_locked(if_t);
 static void bge_start(if_t);
+static void bge_start_locked(if_t);
+static void bge_start_tx(struct bge_softc *, uint32_t);
 static int bge_ioctl(if_t, u_long, caddr_t);
 static void bge_init_locked(struct bge_softc *);
 static void bge_init(void *);
@@ -517,6 +521,8 @@ static void bge_add_sysctl_stats(struct bge_softc *, struct \
sysctl_ctx_list *,  struct sysctl_oid_list *);
 static int bge_sysctl_stats(SYSCTL_HANDLER_ARGS);
 
+NETDUMP_DEFINE(bge);
+
 static device_method_t bge_methods[] = {
 	/* Device interface */
 	DEVMETHOD(device_probe,		bge_probe),
@@ -543,6 +549,8 @@ static driver_t bge_driver = {
 static devclass_t bge_devclass;
 
 DRIVER_MODULE(bge, pci, bge_driver, bge_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, bge, bge_devs,
+    nitems(bge_devs) - 1);
 DRIVER_MODULE(miibus, bge, miibus_driver, miibus_devclass, 0, 0);
 
 static int bge_allow_asf = 1;
@@ -3216,6 +3224,14 @@ bge_can_use_msi(struct bge_softc *sc)
 		    sc->bge_chiprev != BGE_CHIPREV_5750_BX)
 			can_use_msi = 1;
 		break;
+	case BGE_ASICREV_BCM5784:
+		/*
+		 * Prevent infinite "watchdog timeout" errors
+		 * in some MacBook Pro and make it work out-of-the-box.
+		 */
+		if (sc->bge_chiprev == BGE_CHIPREV_5784_AX)
+			break;
+		/* FALLTHROUGH */
 	default:
 		if (BGE_IS_575X_PLUS(sc))
 			can_use_msi = 1;
@@ -3953,8 +3969,12 @@ again:
 	if (error) {
 		ether_ifdetach(ifp);
 		device_printf(sc->bge_dev, "couldn't set up irq\n");
+		goto fail;
 	}
 
+	/* Attach driver netdump methods. */
+	NETDUMP_SET(ifp, bge);
+
 fail:
 	if (error)
 		bge_detach(dev);
@@ -5401,22 +5421,26 @@ bge_start_locked(if_t ifp)
 		if_bpfmtap(ifp, m_head);
 	}
 
-	if (count > 0) {
-		bus_dmamap_sync(sc->bge_cdata.bge_tx_ring_tag,
-		    sc->bge_cdata.bge_tx_ring_map, BUS_DMASYNC_PREWRITE);
-		/* Transmit. */
+	if (count > 0)
+		bge_start_tx(sc, prodidx);
+}
+
+static void
+bge_start_tx(struct bge_softc *sc, uint32_t prodidx)
+{
+
+	bus_dmamap_sync(sc->bge_cdata.bge_tx_ring_tag,
+	    sc->bge_cdata.bge_tx_ring_map, BUS_DMASYNC_PREWRITE);
+	/* Transmit. */
+	bge_writembx(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx);
+	/* 5700 b2 errata */
+	if (sc->bge_chiprev == BGE_CHIPREV_5700_BX)
 		bge_writembx(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx);
-		/* 5700 b2 errata */
-		if (sc->bge_chiprev == BGE_CHIPREV_5700_BX)
-			bge_writembx(sc, BGE_MBX_TX_HOST_PROD0_LO, prodidx);
 
-		sc->bge_tx_prodidx = prodidx;
+	sc->bge_tx_prodidx = prodidx;
 
-		/*
-		 * Set a timeout in case the chip goes out to lunch.
-		 */
-		sc->bge_timer = BGE_TX_TIMEOUT;
-	}
+	/* Set a timeout in case the chip goes out to lunch. */
+	sc->bge_timer = BGE_TX_TIMEOUT;
 }
 
 /*
@@ -6714,15 +6738,15 @@ bge_sysctl_mem_read(SYSCTL_HANDLER_ARGS)
 static int
 bge_get_eaddr_fw(struct bge_softc *sc, uint8_t ether_addr[])
 {
-
+#ifdef __sparc64__
 	if (sc->bge_flags & BGE_FLAG_EADDR)
 		return (1);
 
-#ifdef __sparc64__
 	OF_getetheraddr(sc->bge_dev, ether_addr);
 	return (0);
-#endif
+#else
 	return (1);
+#endif
 }
 
 static int
@@ -6808,3 +6832,74 @@ bge_get_counter(if_t ifp, ift_counter cnt)
 		return (if_get_counter_default(ifp, cnt));
 	}
 }
+
+#ifdef NETDUMP
+static void
+bge_netdump_init(if_t ifp, int *nrxr, int *ncl, int *clsize)
+{
+	struct bge_softc *sc;
+
+	sc = if_getsoftc(ifp);
+	BGE_LOCK(sc);
+	*nrxr = sc->bge_return_ring_cnt;
+	*ncl = NETDUMP_MAX_IN_FLIGHT;
+	if ((sc->bge_flags & BGE_FLAG_JUMBO_STD) != 0 &&
+	    (if_getmtu(sc->bge_ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN +
+	    ETHER_VLAN_ENCAP_LEN > (MCLBYTES - ETHER_ALIGN)))
+		*clsize = MJUM9BYTES;
+	else
+		*clsize = MCLBYTES;
+	BGE_UNLOCK(sc);
+}
+
+static void
+bge_netdump_event(if_t ifp __unused, enum netdump_ev event __unused)
+{
+}
+
+static int
+bge_netdump_transmit(if_t ifp, struct mbuf *m)
+{
+	struct bge_softc *sc;
+	uint32_t prodidx;
+	int error;
+
+	sc = if_getsoftc(ifp);
+	if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
+	    IFF_DRV_RUNNING)
+		return (1);
+
+	prodidx = sc->bge_tx_prodidx;
+	error = bge_encap(sc, &m, &prodidx);
+	if (error == 0)
+		bge_start_tx(sc, prodidx);
+	return (error);
+}
+
+static int
+bge_netdump_poll(if_t ifp, int count)
+{
+	struct bge_softc *sc;
+	uint32_t rx_prod, tx_cons;
+
+	sc = if_getsoftc(ifp);
+	if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
+	    IFF_DRV_RUNNING)
+		return (1);
+
+	bus_dmamap_sync(sc->bge_cdata.bge_status_tag,
+	    sc->bge_cdata.bge_status_map,
+	    BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
+
+	rx_prod = sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx;
+	tx_cons = sc->bge_ldata.bge_status_block->bge_idx[0].bge_tx_cons_idx;
+
+	bus_dmamap_sync(sc->bge_cdata.bge_status_tag,
+	    sc->bge_cdata.bge_status_map,
+	    BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
+
+	(void)bge_rxeof(sc, rx_prod, 0);
+	bge_txeof(sc, tx_cons);
+	return (0);
+}
+#endif /* NETDUMP */
diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bgereg.h \
b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bgereg.h index \
                ecc2a7b3f8..29da7016cb 100644
--- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bgereg.h
+++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/if_bgereg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 2001 Wind River Systems
  * Copyright (c) 1997, 1998, 1999, 2001
  *	Bill Paul <wpaul@windriver.com>.  All rights reserved.
@@ -30,7 +32,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/bge/if_bgereg.h 325966 2017-11-18 14:26:50Z pfg $
  */
 
 /*
diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphy.c \
b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphy.c index \
                eea3588f70..807a361568 100644
--- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphy.c
+++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphy.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 2000
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/brgphy.c 325966 2017-11-18 14:26:50Z pfg \
$");  
 /*
  * Driver for the Broadcom BCM54xx/57xx 1000baseTX PHY.
diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphyreg.h \
b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphyreg.h index \
                b3535d59fb..aeed8e1661 100644
--- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphyreg.h
+++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/brgphyreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 2000
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -29,7 +31,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD$
+ * $FreeBSD: releng/12.0/sys/dev/mii/brgphyreg.h 325966 2017-11-18 14:26:50Z pfg $
  */
 
 #ifndef _DEV_MII_BRGPHYREG_H_
diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy.c \
b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy.c index \
                45addcbc75..ea101c4ba4 100644
--- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy.c
+++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy.c,v 1.2 1999/04/23 04:24:32 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -55,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy.c 326255 2017-11-27 14:52:40Z pfg \
$");  
 /*
  * driver for generic unknown PHYs
diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy_subr.c \
b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy_subr.c index \
                5f2f6341ba..e3d88c96c9 100644
--- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy_subr.c
+++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/ukphy_subr.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy_subr.c,v 1.2 1998/11/05 04:08:02 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy_subr.c 326255 2017-11-27 14:52:40Z \
pfg $");  
 /*
  * Subroutines shared by the ukphy driver and other PHY drivers.

############################################################################

Commit:      2aaa3af64dfac0154a59e4812745c7ebf37b6180
URL:         https://git.haiku-os.org/haiku/commit/?id=2aaa3af64dfa
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:55:23 2018 UTC

dec21xxx: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/dcphy.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/dcphy.c index \
                156a95b452..86cc96d844 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/dcphy.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/dcphy.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/dc/dcphy.c 266974 2014-06-02 17:54:39Z \
marcel $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/dc/dcphy.c 325966 2017-11-18 \
14:26:50Z pfg $");  
 /*
  * Pseudo-driver for internal NWAY support on DEC 21143 and workalike
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dc.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dc.c index \
                e2e3b1793f..9eb5e73932 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dc.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dc.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/dc/if_dc.c 277565 2015-01-23 15:14:30Z kevlo \
$"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/dc/if_dc.c 338948 2018-09-26 17:12:14Z \
imp $");  
 /*
  * DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143
@@ -357,6 +359,8 @@ static devclass_t dc_devclass;
 
 DRIVER_MODULE_ORDERED(dc, pci, dc_driver, dc_devclass, NULL, NULL,
     SI_ORDER_ANY);
+MODULE_PNP_INFO("W32:vendor/device;U8:revision;D:#", pci, dc, dc_devs,
+    nitems(dc_devs) - 1);
 DRIVER_MODULE(miibus, dc, miibus_driver, miibus_devclass, NULL, NULL);
 
 #define	DC_SETBIT(sc, reg, x)				\
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dcreg.h \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dcreg.h index \
                5d38fcec4c..793b59bee4 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dcreg.h
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/if_dcreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -29,7 +31,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: releng/11.1/sys/dev/dc/if_dcreg.h 227675 2011-11-18 19:38:19Z yongari $
+ * $FreeBSD: releng/12.0/sys/dev/dc/if_dcreg.h 325966 2017-11-18 14:26:50Z pfg $
  */
 
 /*
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/pnphy.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/pnphy.c index \
                48b7a5bf07..b584bc84ab 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/pnphy.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/pnphy.c
@@ -1,4 +1,6 @@
 /*
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/dc/pnphy.c 266974 2014-06-02 17:54:39Z \
marcel $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/dc/pnphy.c 325966 2017-11-18 \
14:26:50Z pfg $");  
 /*
  * Pseudo-driver for media selection on the Lite-On PNIC 82c168
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/dc21040reg.h \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/dc21040reg.h index \
                99c3cd5c3a..57baf309fd 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/dc21040reg.h
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/dc21040reg.h
@@ -1,8 +1,10 @@
 /*	$NetBSD: dc21040reg.h,v 1.15 1998/05/22 18:50:59 matt Exp $	*/
 
-/* $FreeBSD: releng/11.1/sys/dev/de/dc21040reg.h 298955 2016-05-03 03:41:25Z pfg $ \
*/ +/* $FreeBSD: releng/12.0/sys/dev/de/dc21040reg.h 326255 2017-11-27 14:52:40Z pfg \
$ */  
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1994, 1995, 1996 Matt Thomas <matt@3am-software.com>
  * All rights reserved.
  *
@@ -494,20 +496,6 @@ typedef struct {
 #define	PHYCTL_AUTONEG_RESTART	0x0200
 #define	PHYCTL_FULL_DUPLEX	0x0100
 
-/*
- * Definitions for the DE425.
- */
-#define	DE425_CFID		0x08	/* Configuration Id */
-#define	DE425_CFCS		0x0C	/* Configuration Command-Status */
-#define	DE425_CFRV		0x18	/* Configuration Revision */
-#define	DE425_CFLT		0x1C	/* Configuration Latency Timer */
-#define	DE425_CBIO		0x28	/* Configuration Base IO Address */
-#define	DE425_CFDA		0x2C	/* Configuration Driver Area */
-#define	DE425_ENETROM_OFFSET	0xC90	/* Offset in I/O space for ENETROM */
-#define	DE425_CFG0		0xC88	/* IRQ register */
-#define	DE425_EISAID		0x10a34250 /* EISA device id */
-#define	DE425_EISA_IOSIZE	0x100
-
 #define	DEC_VENDORID		0x1011
 #define	CHIPID_21040		0x0002
 #define	CHIPID_21140		0x0009
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_de.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_de.c index \
                583be02691..ea2007098c 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_de.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_de.c
@@ -1,5 +1,7 @@
 /*	$NetBSD: if_de.c,v 1.86 1999/06/01 19:17:59 thorpej Exp $	*/
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com)
  * All rights reserved.
  *
@@ -36,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/de/if_de.c 315221 2017-03-14 02:06:03Z pfg \
$"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/de/if_de.c 339735 2018-10-25 17:00:39Z \
brooks $");  
 #define	TULIP_HDR_DATA
 
@@ -3916,7 +3918,7 @@ tulip_txput(tulip_softc_t * const sc, struct mbuf *m)
      * a bit reminiscent of going on the Ark two by two
      * since each descriptor for the TULIP can describe
      * two buffers.  So we advance through packet filling
-     * each of the two entries at a time to to fill each
+     * each of the two entries at a time to fill each
      * descriptor.  Clear the first and last segment bits
      * in each descriptor (actually just clear everything
      * but the end-of-ring or chain bits) to make sure
@@ -4262,18 +4264,6 @@ tulip_ifioctl(struct ifnet * ifp, u_long cmd, caddr_t data)
 	    break;
 	}
 
-#ifdef SIOCGADDRROM
-	case SIOCGADDRROM: {
-	    error = copyout(sc->tulip_rombuf, ifr->ifr_data, sizeof(sc->tulip_rombuf));
-	    break;
-	}
-#endif
-#ifdef SIOCGCHIPID
-	case SIOCGCHIPID: {
-	    ifr->ifr_metric = (int) sc->tulip_chipid;
-	    break;
-	}
-#endif
 	default: {
 	    error = ether_ioctl(ifp, cmd, data);
 	    break;
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_devar.h \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_devar.h index \
                398649a6e7..c2b8730c49 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_devar.h
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/if_devar.h
@@ -1,8 +1,10 @@
 /*	$NetBSD: if_devar.h,v 1.32 1999/04/01 14:55:25 tsubai Exp $	*/
 
-/* $FreeBSD: releng/11.1/sys/dev/de/if_devar.h 298955 2016-05-03 03:41:25Z pfg $ */
+/* $FreeBSD: releng/12.0/sys/dev/de/if_devar.h 331737 2018-03-29 15:58:49Z brooks $ \
*/  
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com)
  * All rights reserved.
  *
@@ -874,11 +876,6 @@ static const struct {
 #define	TULIP_TXMAP_POSTSYNC(ri, di)					\
 	_TULIP_MAP_SYNC(ri, di, BUS_DMASYNC_POSTWRITE)
 
-#ifdef notyet
-#define	SIOCGADDRROM		_IOW('i', 240, struct ifreq)	/* get 128 bytes of ROM */
-#define	SIOCGCHIPID		_IOWR('i', 241, struct ifreq)	/* get chipid */
-#endif
-
 #if defined(TULIP_HDR_DATA)
 static tulip_softc_t	*tulips[TULIP_MAX_DEVICES];
 #endif
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphy.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphy.c index \
                d084843bd5..7ecb21c0db 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphy.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphy.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -53,7 +55,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/acphy.c 281821 2015-04-21 09:39:48Z \
glebius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/acphy.c 326255 2017-11-27 \
14:52:40Z pfg $");  
 /*
  * Driver for Altima AC101 10/100 PHY
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphyreg.h \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphyreg.h index \
                2f7bc7f8a7..e98a26f8ee 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphyreg.h
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/acphyreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2001 Semen Ustimenko (semenu@FreeBSD.org)
  * All rights reserved.
  *
@@ -23,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: releng/11.1/sys/dev/mii/acphyreg.h 165986 2007-01-12 22:58:04Z marius $
+ * $FreeBSD: releng/12.0/sys/dev/mii/acphyreg.h 326255 2017-11-27 14:52:40Z pfg $
  */
 
 #ifndef _DEV_MII_ACPHYREG_H_
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphy.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphy.c index \
                169947d193..ff894a5126 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphy.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphy.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/amphy.c 257184 2013-10-26 18:40:17Z \
glebius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/amphy.c 325966 2017-11-18 \
14:26:50Z pfg $");  
 /*
  * driver for AMD AM79c873 PHYs
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphyreg.h \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphyreg.h index \
                96d6df700a..ba4779308b 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphyreg.h
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/amphyreg.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-4-Clause
+ *
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
  *
@@ -29,7 +31,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: releng/11.1/sys/dev/mii/amphyreg.h 139749 2005-01-06 01:43:34Z imp $
+ * $FreeBSD: releng/12.0/sys/dev/mii/amphyreg.h 325966 2017-11-18 14:26:50Z pfg $
  */
 
 #ifndef _DEV_MII_AMTPHYREG_H_
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy.c index \
                a4004afdb5..ea101c4ba4 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy.c,v 1.2 1999/04/23 04:24:32 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -55,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy.c 257184 2013-10-26 18:40:17Z \
glebius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy.c 326255 2017-11-27 \
14:52:40Z pfg $");  
 /*
  * driver for generic unknown PHYs
diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy_subr.c \
b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy_subr.c index \
                f78b4e5e3b..e3d88c96c9 100644
--- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy_subr.c
+++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/ukphy_subr.c
@@ -1,6 +1,8 @@
 /*	$NetBSD: ukphy_subr.c,v 1.2 1998/11/05 04:08:02 thorpej Exp $	*/
 
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-NetBSD
+ *
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -31,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy_subr.c 215297 2010-11-14 13:26:10Z \
marius $"); +__FBSDID("$FreeBSD: releng/12.0/sys/dev/mii/ukphy_subr.c 326255 \
2017-11-27 14:52:40Z pfg $");  
 /*
  * Subroutines shared by the ukphy driver and other PHY drivers.

############################################################################

Commit:      522d1439207711dc1cd0d09f00a60a4e288b8a31
URL:         https://git.haiku-os.org/haiku/commit/?id=522d14392077
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:55:35 2018 UTC

emulex_oce: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.c \
b/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.c index \
                e1294c28c4..e5a4ac9497 100644
--- a/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.c
+++ b/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.c
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
  * Copyright (C) 2013 Emulex
  * All rights reserved.
  *
@@ -36,7 +38,7 @@
  * Costa Mesa, CA 92626
  */
 
-/* $FreeBSD$ */
+/* $FreeBSD: releng/12.0/sys/dev/oce/oce_hw.c 333813 2018-05-18 20:13:34Z mmacy $ */
 
 
 #include "oce_if.h"
@@ -96,7 +98,7 @@ oce_hw_init(POCE_SOFTC sc)
 	rc = oce_POST(sc);
 	if (rc)
 		return rc;
-
+	
 	/* create the bootstrap mailbox */
 	rc = oce_dma_alloc(sc, sizeof(struct oce_bmbx), &sc->bsmbx, 0);
 	if (rc) {
@@ -107,7 +109,7 @@ oce_hw_init(POCE_SOFTC sc)
 	rc = oce_reset_fun(sc);
 	if (rc)
 		goto error;
-
+		
 
 	rc = oce_mbox_init(sc);
 	if (rc)
@@ -129,14 +131,14 @@ oce_hw_init(POCE_SOFTC sc)
 					&sc->macaddr);
 	if (rc)
 		goto error;
-
+	
 	if ((IS_BE(sc) && (sc->flags & OCE_FLAGS_BE3)) || IS_SH(sc)) {
 		rc = oce_mbox_check_native_mode(sc);
 		if (rc)
 			goto error;
 	} else
 		sc->be3_native = 0;
-
+	
 	return rc;
 
 error:
@@ -209,7 +211,7 @@ void oce_get_pci_capabilities(POCE_SOFTC sc)
 #endif
 
 	if (pci_find_extcap(sc->dev, PCIY_PCIX, &val) == 0) {
-		if (val != 0)
+		if (val != 0) 
 			sc->flags |= OCE_FLAGS_PCIX;
 	}
 
@@ -260,10 +262,10 @@ oce_hw_pci_alloc(POCE_SOFTC sc)
 		pci_cfg_barnum = OCE_DEV_BE2_CFG_BAR;
 	else
 		pci_cfg_barnum = OCE_DEV_CFG_BAR;
-
+		
 	rr = PCIR_BAR(pci_cfg_barnum);
 
-	if (IS_BE(sc) || IS_SH(sc))
+	if (IS_BE(sc) || IS_SH(sc)) 
 		sc->devcfg_res = bus_alloc_resource_any(sc->dev,
 				SYS_RES_MEMORY, &rr,
 				RF_ACTIVE|RF_SHAREABLE);
@@ -286,7 +288,7 @@ oce_hw_pci_alloc(POCE_SOFTC sc)
 
 	if (intf.bits.sli_valid != OCE_INTF_VALID_SIG)
 		goto error;
-
+	
 	if (intf.bits.sli_rev != OCE_INTF_SLI_REV4) {
 		device_printf(sc->dev, "Adapter doesnt support SLI4\n");
 		goto error;
@@ -312,7 +314,7 @@ oce_hw_pci_alloc(POCE_SOFTC sc)
 		sc->csr_btag = rman_get_bustag(sc->csr_res);
 		sc->csr_bhandle = rman_get_bushandle(sc->csr_res);
 		sc->csr_vhandle = rman_get_virtual(sc->csr_res);
-
+		
 		/* set up DB doorbell region */
 		rr = PCIR_BAR(OCE_PCI_DB_BAR);
 		sc->db_res = bus_alloc_resource_any(sc->dev,
@@ -326,7 +328,7 @@ oce_hw_pci_alloc(POCE_SOFTC sc)
 
 	return 0;
 
-error:
+error:	
 	oce_hw_pci_free(sc);
 	return ENXIO;
 }
@@ -393,6 +395,11 @@ oce_create_nw_interface(POCE_SOFTC sc)
 	if (IS_SH(sc) || IS_XE201(sc))
 		capab_flags |= MBX_RX_IFACE_FLAGS_MULTICAST;
 
+        if (sc->enable_hwlro) {
+                capab_flags |= MBX_RX_IFACE_FLAGS_LRO;
+                capab_en_flags |= MBX_RX_IFACE_FLAGS_LRO;
+        }
+
 	/* enable capabilities controlled via driver startup parameters */
 	if (is_rss_enabled(sc))
 		capab_en_flags |= MBX_RX_IFACE_FLAGS_RSS;
@@ -475,9 +482,9 @@ oce_hw_start(POCE_SOFTC sc)
 	int rc = 0;
 
 	rc = oce_get_link_status(sc, &link);
-	if (rc)
+	if (rc) 
 		return 1;
-
+	
 	if (link.logical_link_status == NTWK_LOGICAL_LINK_UP) {
 		sc->link_status = NTWK_LOGICAL_LINK_UP;
 		if_link_state_change(sc->ifp, LINK_STATE_UP);
@@ -490,9 +497,9 @@ oce_hw_start(POCE_SOFTC sc)
 	sc->qos_link_speed = (uint32_t )link.qos_link_speed * 10;
 
 	rc = oce_start_mq(sc->mq);
-
+	
 	/* we need to get MCC aync events. So enable intrs and arm
-	   first EQ, Other EQs will be armed after interface is UP
+	   first EQ, Other EQs will be armed after interface is UP 
 	*/
 	oce_hw_intr_enable(sc);
 	oce_arm_eq(sc, sc->eq[0]->eq_id, 0, TRUE, FALSE);
@@ -530,7 +537,7 @@ void
 oce_hw_intr_disable(POCE_SOFTC sc)
 {
 	uint32_t reg;
-
+	
 	reg = OCE_READ_REG32(sc, devcfg, PCICFG_INTR_CTRL);
 	reg &= ~HOSTINTR_MASK;
 	OCE_WRITE_REG32(sc, devcfg, PCICFG_INTR_CTRL, reg);
diff --git a/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.h \
b/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.h index \
                1ad3f7889e..d9261457db 100644
--- a/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.h
+++ b/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_hw.h
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
  * Copyright (C) 2013 Emulex
  * All rights reserved.
  *
@@ -36,7 +38,7 @@
  * Costa Mesa, CA 92626
  */
 
-/* $FreeBSD$ */
+/* $FreeBSD: releng/12.0/sys/dev/oce/oce_hw.h 326022 2017-11-20 19:36:21Z pfg $ */
 
 #include <sys/types.h>
 
@@ -111,6 +113,9 @@
 #define	PD_MPU_MBOX_DB			0x0160
 #define	PD_MQ_DB			0x0140
 
+#define DB_OFFSET			0xc0
+#define DB_LRO_RQ_ID_MASK		0x7FF
+
 /* EQE completion types */
 #define	EQ_MINOR_CODE_COMPLETION 	0x00
 #define	EQ_MINOR_CODE_OTHER		0x01
@@ -180,6 +185,7 @@
 #define ASYNC_EVENT_GRP5		0x5
 #define ASYNC_EVENT_CODE_DEBUG		0x6
 #define ASYNC_EVENT_PVID_STATE		0x3
+#define ASYNC_EVENT_OS2BMC		0x5
 #define ASYNC_EVENT_DEBUG_QNQ		0x1
 #define ASYNC_EVENT_CODE_SLIPORT	0x11
 #define VLAN_VID_MASK			0x0FFF
@@ -722,6 +728,34 @@ struct oce_async_cqe_link_state {
 	} u0;
 };
 
+/* OS2BMC async event */
+struct oce_async_evt_grp5_os2bmc {
+	union {
+		struct {
+			uint32_t lrn_enable:1;
+			uint32_t lrn_disable:1;
+			uint32_t mgmt_enable:1;
+			uint32_t mgmt_disable:1;
+			uint32_t rsvd0:12;
+			uint32_t vlan_tag:16;
+			uint32_t arp_filter:1;
+			uint32_t dhcp_client_filt:1;
+			uint32_t dhcp_server_filt:1;
+			uint32_t net_bios_filt:1;
+			uint32_t rsvd1:3;
+			uint32_t bcast_filt:1;
+			uint32_t ipv6_nbr_filt:1;
+			uint32_t ipv6_ra_filt:1;
+			uint32_t ipv6_ras_filt:1;
+			uint32_t rsvd2[4];
+			uint32_t mcast_filt:1;
+			uint32_t rsvd3:16;
+			uint32_t evt_tag;
+			uint32_t dword3;
+		} s;
+		uint32_t dword[4];
+	} u;
+};
 
 /* PVID aync event */
 struct oce_async_event_grp5_pvid_state {
@@ -1396,7 +1430,7 @@ typedef union oce_cq_ctx_u {
 		uint32_t dw5rsvd3:1;
 		uint32_t eventable:1;
 		/* dw6 */
-		uint32_t eq_id:8;
+		uint32_t eq_id:16;
 		uint32_t dw6rsvd1:15;
 		uint32_t armed:1;
 		/* dw7 */
@@ -2403,8 +2437,8 @@ struct oce_nic_hdr_wqe {
 			uint32_t tcpcs:1;
 			uint32_t udpcs:1;
 			uint32_t ipcs:1;
-			uint32_t rsvd3:1;
-			uint32_t rsvd2:1;
+			uint32_t mgmt:1;
+			uint32_t lso6:1;
 			uint32_t forward:1;
 			uint32_t crc:1;
 			uint32_t event:1;
@@ -2426,8 +2460,8 @@ struct oce_nic_hdr_wqe {
 			uint32_t event:1;
 			uint32_t crc:1;
 			uint32_t forward:1;
-			uint32_t rsvd2:1;
-			uint32_t rsvd3:1;
+			uint32_t lso6:1;
+			uint32_t mgmt:1;
 			uint32_t ipcs:1;
 			uint32_t udpcs:1;
 			uint32_t tcpcs:1;
@@ -3010,6 +3044,53 @@ struct oce_rxf_stats_v0 {
 	uint32_t rsvd1[6];
 };
 
+struct oce_port_rxf_stats_v2 {
+        uint32_t rsvd0[10];
+        uint32_t roce_bytes_received_lsd;
+        uint32_t roce_bytes_received_msd;
+        uint32_t rsvd1[5];
+        uint32_t roce_frames_received;
+        uint32_t rx_crc_errors;
+        uint32_t rx_alignment_symbol_errors;
+        uint32_t rx_pause_frames;
+        uint32_t rx_priority_pause_frames;
+        uint32_t rx_control_frames;
+        uint32_t rx_in_range_errors;
+        uint32_t rx_out_range_errors;
+        uint32_t rx_frame_too_long;
+        uint32_t rx_address_match_errors;
+        uint32_t rx_dropped_too_small;
+        uint32_t rx_dropped_too_short;
+        uint32_t rx_dropped_header_too_small;
+        uint32_t rx_dropped_tcp_length;
+        uint32_t rx_dropped_runt;
+        uint32_t rsvd2[10];
+        uint32_t rx_ip_checksum_errs;
+        uint32_t rx_tcp_checksum_errs;
+        uint32_t rx_udp_checksum_errs;
+        uint32_t rsvd3[7];
+        uint32_t rx_switched_unicast_packets;
+        uint32_t rx_switched_multicast_packets;
+        uint32_t rx_switched_broadcast_packets;
+        uint32_t rsvd4[3];
+        uint32_t tx_pauseframes;
+        uint32_t tx_priority_pauseframes;
+        uint32_t tx_controlframes;
+        uint32_t rsvd5[10];
+        uint32_t rxpp_fifo_overflow_drop;
+        uint32_t rx_input_fifo_overflow_drop;
+        uint32_t pmem_fifo_overflow_drop;
+        uint32_t jabber_events;
+        uint32_t rsvd6[3];
+        uint32_t rx_drops_payload_size;
+        uint32_t rx_drops_clipped_header;
+        uint32_t rx_drops_crc;
+        uint32_t roce_drops_payload_len;
+        uint32_t roce_drops_crc;
+        uint32_t rsvd7[19];
+};
+
+
 struct oce_port_rxf_stats_v1 {
 	uint32_t rsvd0[12];
 	uint32_t rx_crc_errors;
@@ -3046,6 +3127,20 @@ struct oce_port_rxf_stats_v1 {
 	uint32_t rsvd5[3];
 };
 
+struct oce_rxf_stats_v2 {
+        struct oce_port_rxf_stats_v2 port[4];
+        uint32_t rsvd0[2];
+        uint32_t rx_drops_no_pbuf;
+        uint32_t rx_drops_no_txpb;
+        uint32_t rx_drops_no_erx_descr;
+        uint32_t rx_drops_no_tpre_descr;
+        uint32_t rsvd1[6];
+        uint32_t rx_drops_too_many_frags;
+        uint32_t rx_drops_invalid_ring;
+        uint32_t forwarded_packets;
+        uint32_t rx_drops_mtu;
+        uint32_t rsvd2[35];
+};
 
 struct oce_rxf_stats_v1 {
 	struct oce_port_rxf_stats_v1 port[4];
@@ -3062,6 +3157,11 @@ struct oce_rxf_stats_v1 {
 	uint32_t rsvd2[14];
 };
 
+struct oce_erx_stats_v2 {
+        uint32_t rx_drops_no_fragments[136];
+        uint32_t rsvd[3];
+};
+
 struct oce_erx_stats_v1 {
 	uint32_t rx_drops_no_fragments[68];
 	uint32_t rsvd[4];
@@ -3078,6 +3178,15 @@ struct oce_pmem_stats {
 	uint32_t rsvd[5];
 };
 
+struct oce_hw_stats_v2 {
+        struct oce_rxf_stats_v2 rxf;
+        uint32_t rsvd0[OCE_TXP_SW_SZ];
+        struct oce_erx_stats_v2 erx;
+        struct oce_pmem_stats pmem;
+        uint32_t rsvd1[18];
+};
+
+
 struct oce_hw_stats_v1 {
 	struct oce_rxf_stats_v1 rxf;
 	uint32_t rsvd0[OCE_TXP_SW_SZ];
@@ -3093,32 +3202,22 @@ struct oce_hw_stats_v0 {
 	struct oce_pmem_stats pmem;
 };
 
-struct mbx_get_nic_stats_v0 {
-	struct mbx_hdr hdr;
-	union {
-		struct {
-			uint32_t rsvd0;
-		} req;
-
-		union {
-			struct oce_hw_stats_v0 stats;
-		} rsp;
-	} params;
-};
-
-struct mbx_get_nic_stats {
-	struct mbx_hdr hdr;
-	union {
-		struct {
-			uint32_t rsvd0;
-		} req;
-		
-		struct {
-			struct oce_hw_stats_v1 stats;
-		} rsp;
-	} params;
-};
-
+#define MBX_GET_NIC_STATS(version)				\
+	struct mbx_get_nic_stats_v##version { 			\
+	struct mbx_hdr hdr; 					\
+	union { 						\
+		struct { 					\
+			uint32_t rsvd0; 			\
+		} req; 						\
+		union { 					\
+			struct oce_hw_stats_v##version stats; 	\
+		} rsp; 						\
+	} params; 						\
+}  
+
+MBX_GET_NIC_STATS(0);
+MBX_GET_NIC_STATS(1);
+MBX_GET_NIC_STATS(2);
 
 /* [18(0x12)] NIC_GET_PPORT_STATS */
 struct pport_stats {
@@ -3728,3 +3827,373 @@ enum OCE_QUEUE_RX_STATS {
 	QUEUE_RX_BUFFER_ERRORS = 8,
 	QUEUE_RX_N_WORDS = 10
 };
+
+/* HW LRO structures */
+struct mbx_nic_query_lro_capabilities {
+        struct mbx_hdr hdr;
+        union {
+                struct {
+                        uint32_t rsvd[6];
+                } req;
+                struct {
+#ifdef _BIG_ENDIAN
+                        uint32_t lro_flags;
+                        uint16_t lro_rq_cnt;
+                        uint16_t plro_max_offload;
+                        uint32_t rsvd[4];
+#else
+                        uint32_t lro_flags;
+                        uint16_t plro_max_offload;
+                        uint16_t lro_rq_cnt;
+                        uint32_t rsvd[4];
+#endif
+                } rsp;
+        } params;
+};
+
+struct mbx_nic_set_iface_lro_config {
+        struct mbx_hdr hdr;
+        union {
+                struct {
+#ifdef _BIG_ENDIAN
+                        uint32_t lro_flags;
+                        uint32_t iface_id;
+                        uint32_t max_clsc_byte_cnt;
+                        uint32_t max_clsc_seg_cnt;
+                        uint32_t max_clsc_usec_delay;
+                        uint32_t min_clsc_frame_byte_cnt;
+                        uint32_t rsvd[2];
+#else
+                        uint32_t lro_flags;
+                        uint32_t iface_id;
+                        uint32_t max_clsc_byte_cnt;
+                        uint32_t max_clsc_seg_cnt;
+                        uint32_t max_clsc_usec_delay;
+                        uint32_t min_clsc_frame_byte_cnt;
+                        uint32_t rsvd[2];
+#endif
+                } req;
+                struct {
+#ifdef _BIG_ENDIAN
+                        uint32_t lro_flags;
+                        uint32_t rsvd[7];
+#else
+                        uint32_t lro_flags;
+                        uint32_t rsvd[7];
+#endif
+                } rsp;
+        } params;
+};
+
+
+struct mbx_create_nic_rq_v2 {
+        struct mbx_hdr hdr;
+        union {
+                struct {
+#ifdef _BIG_ENDIAN
+                        uint8_t  num_pages;
+                        uint8_t  frag_size;
+                        uint16_t cq_id;
+
+                        uint32_t if_id;
+
+                        uint16_t page_size;
+                        uint16_t max_frame_size;
+
+                        uint16_t rsvd;
+                        uint16_t pd_id;
+
+                        uint16_t rsvd1;
+                        uint16_t rq_flags;
+
+                        uint16_t hds_fixed_offset;
+                        uint8_t hds_start;
+                        uint8_t hds_frag;
+
+                        uint16_t hds_backfill_size;
+                        uint16_t hds_frag_size;
+
+                        uint32_t rbq_id;
+
+                        uint32_t rsvd2[8];
+
+                        struct phys_addr pages[2];
+#else
+                        uint16_t cq_id;
+                        uint8_t  frag_size;
+                        uint8_t  num_pages;
+
+                        uint32_t if_id;
+
+                        uint16_t max_frame_size;
+                        uint16_t page_size;
+
+                        uint16_t pd_id;
+                        uint16_t rsvd;
+
+                        uint16_t rq_flags;
+                        uint16_t rsvd1;
+
+                        uint8_t hds_frag;
+                        uint8_t hds_start;
+                        uint16_t hds_fixed_offset;
+
+                        uint16_t hds_frag_size;
+                        uint16_t hds_backfill_size;
+
+                        uint32_t rbq_id;
+
+                        uint32_t rsvd2[8];
+
+                        struct phys_addr pages[2];
+#endif
+                } req;
+                struct {
+#ifdef _BIG_ENDIAN
+                        uint8_t rsvd0;
+                        uint8_t rss_cpuid;
+                        uint16_t rq_id;
+
+                        uint8_t db_format;
+                        uint8_t db_reg_set;
+                        uint16_t rsvd1;
+
+                        uint32_t db_offset;
+
+                        uint32_t rsvd2;
+
+                        uint16_t rsvd3;
+                        uint16_t rq_flags;
+
+#else
+                        uint16_t rq_id;
+                        uint8_t rss_cpuid;
+                        uint8_t rsvd0;
+
+                        uint16_t rsvd1;
+                        uint8_t db_reg_set;
+                        uint8_t db_format;
+
+                        uint32_t db_offset;
+
+                        uint32_t rsvd2;
+
+                        uint16_t rq_flags;
+                        uint16_t rsvd3;
+#endif
+                } rsp;
+
+        } params;
+};
+
+struct mbx_delete_nic_rq_v1 {
+        struct mbx_hdr hdr;
+        union {
+                struct {
+#ifdef _BIG_ENDIAN
+                        uint16_t bypass_flush;
+                        uint16_t rq_id;
+                        uint16_t rsvd;
+                        uint16_t rq_flags;
+#else
+                        uint16_t rq_id;
+                        uint16_t bypass_flush;
+                        uint16_t rq_flags;
+                        uint16_t rsvd;
+#endif
+                } req;
+                struct {
+                        uint32_t rsvd[2];
+                } rsp;
+        } params;
+};
+
+struct nic_hwlro_singleton_cqe {
+#ifdef _BIG_ENDIAN
+        /* dw 0 */
+        uint32_t ip_opt:1;
+        uint32_t vtp:1;
+        uint32_t pkt_size:14;
+        uint32_t vlan_tag:16;
+
+        /* dw 1 */
+        uint32_t num_frags:3;
+        uint32_t rsvd1:3;
+        uint32_t frag_index:10;
+        uint32_t rsvd:8;
+        uint32_t ipv6_frame:1;
+        uint32_t l4_cksum_pass:1;
+        uint32_t ip_cksum_pass:1;
+        uint32_t udpframe:1;
+        uint32_t tcpframe:1;
+        uint32_t ipframe:1;
+        uint32_t rss_hp:1;
+        uint32_t error:1;
+
+        /* dw 2 */
+        uint32_t valid:1;
+        uint32_t cqe_type:2;
+        uint32_t debug:7;
+        uint32_t rsvd4:6;
+        uint32_t data_offset:8;
+        uint32_t rsvd3:3;
+        uint32_t rss_bank:1;
+        uint32_t qnq:1;
+        uint32_t rsvd2:3;
+        
+	/* dw 3 */
+        uint32_t rss_hash_value;
+#else
+        /* dw 0 */
+        uint32_t vlan_tag:16;
+        uint32_t pkt_size:14;
+        uint32_t vtp:1;
+        uint32_t ip_opt:1;
+
+        /* dw 1 */
+        uint32_t error:1;
+        uint32_t rss_hp:1;
+        uint32_t ipframe:1;
+        uint32_t tcpframe:1;
+        uint32_t udpframe:1;
+        uint32_t ip_cksum_pass:1;
+        uint32_t l4_cksum_pass:1;
+        uint32_t ipv6_frame:1;
+        uint32_t rsvd:8;
+        uint32_t frag_index:10;
+        uint32_t rsvd1:3;
+        uint32_t num_frags:3;
+
+        /* dw 2 */
+        uint32_t rsvd2:3;
+        uint32_t qnq:1;
+        uint32_t rss_bank:1;
+        uint32_t rsvd3:3;
+        uint32_t data_offset:8;
+        uint32_t rsvd4:6;
+        uint32_t debug:7;
+        uint32_t cqe_type:2;
+        uint32_t valid:1;
+ 
+       /* dw 3 */
+        uint32_t rss_hash_value;
+#endif
+};
+
+struct nic_hwlro_cqe_part1 {
+#ifdef _BIG_ENDIAN
+        /* dw 0 */
+        uint32_t tcp_timestamp_val;
+
+        /* dw 1 */
+        uint32_t tcp_timestamp_ecr;
+
+        /* dw 2 */
+        uint32_t valid:1;
+        uint32_t cqe_type:2;
+        uint32_t rsvd3:7;
+        uint32_t rss_policy:4;
+        uint32_t rsvd2:2;
+        uint32_t data_offset:8;
+        uint32_t rsvd1:1;
+        uint32_t lro_desc:1;
+        uint32_t lro_timer_pop:1;
+        uint32_t rss_bank:1;
+        uint32_t qnq:1;
+        uint32_t rsvd:2;
+        uint32_t rss_flush:1;
+
+	/* dw 3 */
+        uint32_t rss_hash_value;
+#else
+        /* dw 0 */
+        uint32_t tcp_timestamp_val;

[ *** diff truncated: 3840 lines dropped *** ]


############################################################################

Revision:    hrev52695
Commit:      0c3e5b9745568e27ac7384427d69bd3d8cad6f1c
URL:         https://git.haiku-os.org/haiku/commit/?id=0c3e5b974556
Author:      Augustin Cavalier <waddlesplash@gmail.com>
Date:        Thu Dec 27 21:55:48 2018 UTC

ipro100: Upgrade to FreeBSD 12.

----------------------------------------------------------------------------


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic