Subject: Re: bge0 doesn't like to autodetect gigabit
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Bryan Vyhmeister <bsd@hub3.net>
List: tech-net
Date: 09/03/2003 12:37:27
> 
> In message 
>
<Pine.NEB.4.21.0309031100340.27049-100000@brio.precedence.co.uk>Stephen
Borrill 
> wr
> ites
> >On Tue, 2 Sep 2003, Jonathan Stone wrote:
> >> In message
<r02000100-1026-C3A32494DD2211D79B49000393D5E5DA@[10.0.1.30]>Bryan 
> Vyhmeister w
> 
> 
> >> What kind of bge? [...]
> 
> 
> >5703. dmesg section is:
> >
> >bge0 at pci3 dev 4 function 0: Broadcom BCM5703X Gigabit Ethernet
> >bge0: interrupting at irq 7
> >bge0: ASIC BCM5703 A2, Ethernet address 00:02:55:b7:79:0d
> >brgphy0 at bge0 phy 1: BCM5703 1000BASE-T media interface, rev. 2
> >bge1 at pci3 dev 5 function 0: Broadcom BCM5703X Gigabit Ethernet
> >bge1: interrupting at irq 5
> >bge1: ASIC BCM5703 A2, Ethernet address 00:02:55:b7:79:0e
> >brgphy1 at bge1 phy 1: BCM5703 1000BASE-T media interface, rev. 2
> >
> >See above.
> 
> How embarassing. I had an EMCOFFEE moment there yesterday.
> (and I was so close with the "no dsp phy patch", too).
> 
> You should edit sys/dev/mii/brgphy.c, remove the 
> 
>   #ifdef notyet /* unverified, untested */
> 
> around line 220 in -current, and the matching #endif, recompile,
> reboot, and see whether that helps.  The kernel should then print a
> messaage that it is "using the bcm5703 DSP patch". If that works, the
> change should be committed, and pulled up to the 1.6 branch.
> 
> If your brgphy.c on the 1.6 branch doesn't have the #ifdef/#endif,
> it'll have to be backported from -current. You'll need:
> 
>   bcm_5703_load_dspcode()
>   brgphy_5703_reset()
>   const struct mii_phy_funcs brgphy_5703_funcs {}
> 
> and any machinery they use which isn't already in the 1.6 branch.

I followed your instructions and commented out what you said to. I then
built a new kernel and restarted. My dmesg output did show that the
patch was being used but it did not solve the problem. When I plugged in
a network cable it reported 1000base-T but when I ran dhclient it went
back to 100base-T and then got an IP address. When I first ran dhclient,
it sent out several requests and then by the fourth or fifth it
apparently switched to 100base-T and got its IP address.

Bryan