bge problems when resuming

Adam K Kirchhoff adamk at voicenet.com
Wed Jul 15 00:51:00 UTC 2009


Hello all,

I have a Dell Latitude D610 laptop with 8.0-BETA1 installed.  I hadn't 
tried suspend/resume for a while and decided to give it a shot.  I was 
pleasantly surprised to see that I could suspend to ram, resume, and 
have a (relatively) working system (previously the display would never 
come back up and the serial console I had hooked up remained dead).   
Great job to everyone who helped make that possible.

The only real issue that I seem to have now is that bge is completely 
unusable after resume.  Another individual seems to have reported 
similar problems with bge and resume, but he also had other issues that 
apparently trumped his networking issues:

http://lists.freebsd.org/pipermail/freebsd-current/2009-July/009023.html

Like him, resuming from suspend gives me:

Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 0, 
val 32768)
Jul 14 12:35:53 scroll kernel: bge0: PHY read timed out (phy 1, reg 0, 
val 0xffffffff)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 24, 
val 3072)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 23, 
val 10)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 21, 
val 12555)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 23, 
val 8223)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 21, 
val 38150)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 23, 
val 16415)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 21, 
val 5346)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 24, 
val 1024)
Jul 14 12:35:53 scroll kernel: bge0: PHY write timed out (phy 1, reg 24, 
val 7)

And so on and so forth.

I thought that compiling if_bge as a module, unloading it before 
suspend, and reloading it after resume, might get this working.   
However, doing a "kldload if_bge" after the resume does nothing.  Well, 
the module gets loaded, but the device doesn't show up.  No errors from 
kldload, and there is nothing new in dmesg.

Before the suspend, the device shows up as:

bge0 at pci0:2:0:0:        class=0x020000 card=0x01821028 chip=0x167714e4 
rev=0x01 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'NetXtreme Gigabit Ethernet PCI Express (BCM5750A1)'
    class      = network
    subclass   = ethernet

After resuming,  and reloading the module, it's:

none1 at pci0:2:0:0:       class=0x020000 card=0x01821028 chip=0x167714e4 
rev=0x01 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'NetXtreme Gigabit Ethernet PCI Express (BCM5750A1)'
    class      = network
    subclass   = ethernet

If there are no ideas, I'll go ahead and open up a pr.  I assume this is 
just one bug, since both problems (the PHY issues and the inability to 
reload the driver) are both related to the network device.

Adam



More information about the freebsd-current mailing list