kern/165032: brgphy(4) is not used for BCM57780
Alexander Milanov
a at amilanov.com
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
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Feb 12 14:20:06 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Alexander Milanov
>Release: 9.0-RELEASE
>Organization:
>Environment:
FreeBSD 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:15:25 UTC 2012 root at obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
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
>How-To-Repeat:
>Fix:
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].
[1] http://lists.freebsd.org/pipermail/freebsd-stable/2010-March/055793.html
[2] http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/mii/brgphy.c?rev=1.94
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 @@
MII_PHY_DESC(BROADCOM3, BCM5720C),
MII_PHY_DESC(BROADCOM3, BCM57765),
MII_PHY_DESC(xxBROADCOM_ALT1, BCM5906),
+ MII_PHY_DESC(xxBROADCOM_ALT2, BCM57780),
+ MII_PHY_DESC(xxBROADCOM_ALT3, BCM57780),
MII_PHY_END
};
@@ -942,7 +944,8 @@
if (bge_sc->bge_phy_flags & BGE_PHY_JITTER_BUG)
brgphy_fixup_jitter_bug(sc);
- 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)
brgphy_ethernet_wirespeed(sc);
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list