Date: Tue, 30 Dec 2008 11:14:17 -0800 From: Nate Lawson <nate@root.org> To: Coleman Kane <cokane@FreeBSD.org> Cc: freebsd-acpi@FreeBSD.org Subject: Re: amd64 S3 patch on HP 6715b: NICs won't work after resume from S3 Message-ID: <495A7309.2060400@root.org> In-Reply-To: <1230662172.1702.2.camel@localhost> References: <1230564886.2280.11.camel@localhost> <4958F887.2010203@root.org> <1230579699.2386.5.camel@localhost> <49593036.4030306@root.org> <1230662172.1702.2.camel@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
Coleman Kane wrote: > On Mon, 2008-12-29 at 12:16 -0800, Nate Lawson wrote: >> Coleman Kane wrote: >>> On Mon, 2008-12-29 at 08:19 -0800, Nate Lawson wrote: >>>> Coleman Kane wrote: >>>>> I've been testing Jung-uk Kim's recent amd64 suspend patch on my HP >>>>> notebook, and it seems to be very close to working well. >>>>> >>>>> The notebook goes into S3 state properly, but when it comes back out it >>>>> seems that the hardware is left in a bad state. I cannot attach my >>>>> if_bge and if_ndis network drivers after a resume. >>>> Dump the pci config register states for those devices both before and >>>> after the resume. Where the bits differ is probably where you'll find >>>> the problem. >>>> >>>> Example to read 256 bytes: >>>> pciconf -r pci0:4:0 0:256 >>>> >>> Tried that, and I also tried to use pciconf -w to set the registers to >>> the initial state of the hardware before if_bge is loaded. I still get >>> the following messages when I attempt to reload the kld after the >>> resume, followed by a failed attach: >>> >>> bge0: <Broadcom BCM5754/5787 A2, ASIC rev. 0xb002> mem 0xd0000000-0xd000ffff irq 16 at device 0.0 on pci16 >>> bge0: firmware handshake timed out, found 0x4b657654 >>> bge0: firmware handshake timed out, found 0x4b657654 >>> bge0: RX CPU self-diagnostics failed! >>> bge0: chip initialization failed >>> device_attach: bge0 attach returned 6 >>> >>> Anyone have success with S3 on amd64 or i386 with if_bge cards? >> Did you post the register states before and after? >> > Attached are the before and after snapshots of the device's PCI register > space. I need to track down a good table to mate these with. In this > case, I didn't unload the driver, as the if_bge driver is supposed to be > able to properly handle suspend/resume now. > > These are dumps of the whole 256-byte register space, using: > pciconf -r -b pci0:16:0:0 0:0x100 Great. So far in FreeBSD, anything after the first 64 bytes is the driver's responsibility. According to your dump, that is where all the differences are. -- Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?495A7309.2060400>