bge problems when resuming

Paul B. Mahol onemda at gmail.com
Wed Jul 15 07:20:47 UTC 2009


On 7/15/09, Adam K Kirchhoff <adamk at voicenet.com> wrote:
>
> 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.

Put this lines into loader.conf and reboot.

hw.pci.do_power_nodriver="3"
hw.pci.do_power_resume="1"

Now, before suspend, unload if_bge and some another driver (sound
drivers are best candidate) and load sound driver again, suspend and
resume.
Now loading if_bge should make it succesfully attach.

-- 
Paul


More information about the freebsd-current mailing list