if_bge driver problem. - Upgrade to RELEASE :)
Oleg Bulyzhin
oleg at freebsd.org
Mon Jan 30 12:57:56 PST 2006
On Sun, Jan 29, 2006 at 04:44:48PM +0200, husnu demir wrote:
> On Sat, Jan 28, 2006 at 11:08:43AM +0300, Oleg Bulyzhin wrote:
> > On Fri, Jan 27, 2006 at 06:29:04PM +0200, husnu demir wrote:
> > > > Also it is important to know whether doing 'ifconfig bge0 -rxcsum -txcsum'
> > > > fixes operation on 6.0-STABLE.
> > >
> > > No, It does not fixed. I will go back to STABLE if you need further detail.
> > >
> >
> > Could you please provide following information:
> > 1) boot with verbose mode on (boot -v or verbose_loading="YES" into your
> > loader.conf) and check your console messages. Are there any
> > "bge2: link UP/DOWN" messages? Unplug/plug cable and check those messages again.
> >
> > 2) When you sniff bge2 with tcpdump which packets do you see (incoming, outgoing, both)?
> >
> > --
> > Oleg.
>
> Hi Oleg,
>
> I added ;
>
> root@~# less /boot/loader.conf
> verbose_loading="YES
>
>
> and reboot the machine;
>
> root@~# uname -a
> FreeBSD nrouter.cc.metu.edu.tr 6.0-STABLE FreeBSD 6.0-STABLE #1: Sun Jan 29 16:29:48 EET 2006 root at nrouter.cc.metu.edu.tr:/usr/obj/usr/src/sys/NON-GENERIC i386
>
> and dmesg shows nothing. After reboot I configured bge2 with ;
>
> ifconfig bge2 xxx.yyy.2.2/24 up
>
> root@~# dmesg | grep bge
> bge0: <Broadcom BCM5703 Gigabit Ethernet, ASIC rev. 0x1002> mem 0xf1020000-0xf102ffff irq 48 at device 1.0 on pci3
> miibus0: <MII bus> on bge0
> bge0: Ethernet address: 00:11:09:9b:6a:7d
> bge1: <Broadcom BCM5701 Gigabit Ethernet, ASIC rev. 0x105> mem 0xf1000000-0xf100ffff irq 52 at device 2.0 on pci3
> miibus1: <MII bus> on bge1
> bge1: Ethernet address: 00:04:76:f7:99:6e
> bge2: <Broadcom BCM5703 Gigabit Ethernet, ASIC rev. 0x1002> mem 0xf1010000-0xf101ffff irq 56 at device 3.0 on pci3
> bge2: Ethernet address: 00:10:18:00:4d:53
> bge0: link state changed to UP
>
> then I tried to remove the fiber optic connection from the card and reinsert but there was no error messages. I tried it a couple of times. It shows "no carrier" message in the ifconfig status but print no console message.
>
>
> I also added the tcpdump; before starting out tcpdump I initiated a ping xxx.yyy.2.1 for the outgoing messages. No PF working .
>
>
>
> root@~# pfctl -d
> pfctl: pf not enabled
>
Could you apply attached patch and try those tests again (verbose boot,
plug/unplug cable, check for link messages)?
--
Oleg.
-------------- next part --------------
Index: if_bge.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/bge/if_bge.c,v
retrieving revision 1.91.2.10
diff -u -r1.91.2.10 if_bge.c
--- if_bge.c 30 Jan 2006 13:17:44 -0000 1.91.2.10
+++ if_bge.c 30 Jan 2006 20:53:54 -0000
@@ -3769,23 +3769,9 @@
}
if (sc->bge_tbi) {
- /*
- * Sometimes PCS encoding errors are detected in
- * TBI mode (on fiber NICs), and for some reason
- * the chip will signal them as link changes.
- * If we get a link change event, but the 'PCS
- * encoding error' bit in the MAC status register
- * is set, don't bother doing a link check.
- * This avoids spurious "link UP" messages
- * that sometimes appear on fiber NICs during
- * periods of heavy traffic. (There should be no
- * effect on copper NICs.)
- */
status = CSR_READ_4(sc, BGE_MAC_STS);
- if (!(status & (BGE_MACSTAT_PORT_DECODE_ERROR|
- BGE_MACSTAT_MI_COMPLETE))) {
- if (!sc->bge_link &&
- (status & BGE_MACSTAT_TBI_PCS_SYNCHED)) {
+ if (status & BGE_MACSTAT_TBI_PCS_SYNCHED) {
+ if (!sc->bge_link) {
sc->bge_link++;
if (sc->bge_asicrev == BGE_ASICREV_BCM5704)
BGE_CLRBIT(sc, BGE_MAC_MODE,
@@ -3793,11 +3779,13 @@
CSR_WRITE_4(sc, BGE_MAC_STS, 0xFFFFFFFF);
if (bootverbose)
if_printf(sc->bge_ifp, "link UP\n");
- } else if (sc->bge_link) {
- sc->bge_link = 0;
- if (bootverbose)
- if_printf(sc->bge_ifp, "link DOWN\n");
+ if_link_state_change(sc->bge_ifp, LINK_STATE_UP);
}
+ } else if (sc->bge_link) {
+ sc->bge_link = 0;
+ if (bootverbose)
+ if_printf(sc->bge_ifp, "link DOWN\n");
+ if_link_state_change(sc->bge_ifp, LINK_STATE_DOWN);
}
} else {
/*
More information about the freebsd-stable
mailing list