Date: Fri, 02 Jan 2009 15:34:37 -0500 From: Coleman Kane <cokane@FreeBSD.org> To: Nate Lawson <nate@root.org> Cc: freebsd-acpi@FreeBSD.org Subject: Re: amd64 S3 patch on HP 6715b: NICs won't work after resume from S3 Message-ID: <1230928477.4841.21.camel@localhost> In-Reply-To: <1230915992.4841.4.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> <495A7309.2060400@root.org> <1230915992.4841.4.camel@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-0MKT+9/XASj1pGGjEHli Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2009-01-02 at 12:06 -0500, Coleman Kane wrote: > On Tue, 2008-12-30 at 11:14 -0800, Nate Lawson wrote: > > 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 m= y > > >>>>> 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 f= ind > > >>>> 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 regis= ter > > > 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. > > >=20 > > > These are dumps of the whole 256-byte register space, using: > > > pciconf -r -b pci0:16:0:0 0:0x100 > >=20 > > 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. > >=20 >=20 > So, my guess is that the bge_suspend and bge_resume methods in the bge > driver need some tweaking to support my hardware (the BCM5754/5787) when > it comes out of resume... >=20 > Any pointers on who I might be able to work on this with? >=20 I did find that one register that does get trashed by the resume is the high-part of the MSI Address Register (0x5C, BGE_PCI_MSI_ADDR_HIGH from sys/dev/bge/if_bgereg.h). Am I correct in assuming that the PCI 2.2 register addresses in the middle of if_bgereg.h correlate to the addresses in these reg dumps? --=20 Coleman Kane --=-0MKT+9/XASj1pGGjEHli Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAkleeloACgkQcMSxQcXat5cpSQCcDM0OF7zTWXz0eShSTj0ug9qE N4wAn3uSqBQPrSN7wUCBdPb38Ex3JiMI =ldRV -----END PGP SIGNATURE----- --=-0MKT+9/XASj1pGGjEHli--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1230928477.4841.21.camel>