kern/165032: brgphy(4) is not used for BCM57780

Alexander Milanov a at
Sun Feb 12 14:20:07 UTC 2012

>Number:         165032
>Category:       kern
>Synopsis:       brgphy(4) is not used for BCM57780
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 12 14:20:06 UTC 2012
>Originator:     Alexander Milanov
>Release:        9.0-RELEASE
FreeBSD  9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:15:25 UTC 2012     root at  i386
ukphy(4) is used instead of brgphy(4) for Broadcom BCM57780. See output of dmesg:

bge0: <Broadcom BCM57780 A1, ASIC rev. 0x57780001> mem 0xfebf0000-0xfebfffff irq 17 at device 0.0 on pci4
bge0: attempting to allocate 1 MSI vectors (1 supported)
msi: routing MSI IRQ 257 to local APIC 0 vector 54
bge0: using IRQ 257 for MSI
bge0: CHIP ID 0x57780001; ASIC REV 0x57780; CHIP REV 0x577800; PCI-E
bge0: Disabling fastboot
bge0: Disabling fastboot
miibus0: <MII bus> on bge0
ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
ukphy0: OUI 0x001be9, model 0x0019, rev. 1
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
bge0: bpf attached

Add OUIs for BCM57780 to brgphy(4). The following patch also adds a check for BGE_FLAG_JUMBO, as suggested by Pyun YongHyeon[1] and as seen in OpenBSD[2].


Patch attached with submission follows:

Index: sys/dev/mii/miidevs
--- sys/dev/mii/miidevs	(revision 231557)
+++ sys/dev/mii/miidevs	(working copy)
@@ -84,6 +84,8 @@
 oui xxATHEROS			0x00c82e	Atheros Communications
 oui xxBROADCOM			0x000818	Broadcom Corporation
 oui xxBROADCOM_ALT1		0x0050ef	Broadcom Corporation
+oui xxBROADCOM_ALT2		0x00d897	Broadcom Corporation
+oui xxBROADCOM_ALT3		0x001be9	Broadcom Corporation
 oui xxDAVICOM			0x000676	Davicom Semiconductor
 oui yyINTEL			0x005500	Intel Corporation
 oui xxJATO			0x0007c1	Jato Technologies
@@ -184,6 +186,8 @@
 model BROADCOM3 BCM57765	0x0024 BCM57765 1000BASE-T media interface
 model BROADCOM3 BCM5720C	0x0036 BCM5720C 1000BASE-T media interface
 model xxBROADCOM_ALT1 BCM5906	0x0004 BCM5906 10/100baseTX media interface
+model xxBROADCOM_ALT2 BCM57780	0x0019 BCM57780 10/100/1000baseT PHY
+model xxBROADCOM_ALT3 BCM57780	0x0019 BCM57780 10/100/1000baseT PHY
 /* Cicada Semiconductor PHYs (now owned by Vitesse?) */
 model xxCICADA CS8201		0x0001 Cicada CS8201 10/100/1000TX PHY
Index: sys/dev/mii/brgphy.c
--- sys/dev/mii/brgphy.c	(revision 231557)
+++ sys/dev/mii/brgphy.c	(working copy)
@@ -147,6 +147,8 @@
@@ -942,7 +944,8 @@
 		if (bge_sc->bge_phy_flags & BGE_PHY_JITTER_BUG)
-		brgphy_jumbo_settings(sc, ifp->if_mtu);
+		if (bge_sc->bge_phy_flags & BGE_FLAG_JUMBO)
+			brgphy_jumbo_settings(sc, ifp->if_mtu);
 		if ((bge_sc->bge_phy_flags & BGE_PHY_NO_WIRESPEED) == 0)


More information about the freebsd-bugs mailing list