Skip site navigation (1)Skip section navigation (2)
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>