Suspend/Resume on AMD64

Miguel Lopes Santos Ramos miguel at
Mon Sep 1 21:13:45 UTC 2008

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.


> 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.

More information about the freebsd-acpi mailing list