Suspend/Resume on AMD64

Steve Franks stevefranks at
Tue Sep 2 22:21:53 UTC 2008

If you're looking for more volunteers, I've been highly disappointed
for sometime in the lack of support for amd64, especially for suspend.
 I'm a reasonable C programmer as well, and I've got about 5 boxes
deployed to test on.  The one thing I don't have is oodles of time for
learning new stuff, I'm afraid (little feet around the house these

It's somewhat suprising that our "sever-grade" os sticks with the
lowest-common denominator for everything - don't we want terabytes of
ram?  I had enough icky experiences with linux a while back to make me
stick with freebsd, so let's flush out the feature set, a bit.


On Mon, Sep 1, 2008 at 2:13 PM, Miguel Lopes Santos Ramos
<miguel at> wrote:
> This is pretty scary...
> There's much more to be done than I thought.
> Well, I'm editing code without paying attention to consequences.
> It can't hurt anyone until it runs...
> I'm starting with the easyest part: adding the extra registers (r8-r15, cool!, I
> wish I had these back in my days of assembly programming).
> I am also taking a look at amd64/amd64/mpboot.S, which contains protected mode
> and 64-bit mode initialization, needed for wakeup.
> It is too early to need help.
> I'm still learning about AMD64 and refreshing my memory of control registers.
> I will contact you again in a week or so, if it's ok.
> Miguel
>> From takawata at  Sat Aug 30 20:10:23 2008
>> In message <200808301751.m7UHprcc023311 at>, Miguel Lope
>> s Santos Ramos wrote:
>> >
>> >Hi,
>> >
>> >I'm running amd64 on my laptop since early 2005.
>> >Had a bunch of problems, ehci, radeon, etc, but most were fixed by someone sin
>> >ce then.
>> >One thing I still miss though is ACPI suspend/resume.
>> >Browsing through dev/acpica I found out that this feature set is simply disabl
>> >ed outside i386
>> >(several #ifndef __i386__) and figured that maybe that's just because no one a
>> >ppeared to test it.
>> The code is in i386/acpica/acpi_wakeup.c, i386/acpica/acpi_wakecode.S
>> >Well, I hereby volunteer to test this.
>> >I have already removed the ifndefs and achieved a machine hang when tried to s
>> >uspend.
>> >
>> >I have some experience with 80386 initialization (almost obsolete),
>> >I am a capable programmer (able to keep the indentation of an existing source
>> >file),
>> >and may be able to develop some new code if someone points me to the right
>> >documents at Intel or AMD.
>> >I am partially available on weekends.
>> >
>> >Will someone involved with suspend/resume on i386 help me on this?
>> You called me? :-)
>> >Would it be necessary to move to -CURRENT?
>> >Where should I start?
>> Copy the code to amd64/acpica/ then try to run as it is.
>> In amd64, you have to preserve many registers than i386, so
>> the code should be more ABI aware.
>> To debug lowest part of resume code, you may want to use
>> BEEP debug.
>> I wrote incomplete SMP suspend/resume code 3 months ago.
>> Indeed, I reserve 10GB partition to my primary laptop
>> to develop amd64 suspend/resume.But I don't even install it yet.
>> So if you implement it, I'm willing to test it :-P.
> _______________________________________________
> freebsd-acpi at mailing list
> To unsubscribe, send any mail to "freebsd-acpi-unsubscribe at"

More information about the freebsd-acpi mailing list