[coreboot] ACPI S3
marcj303 at yahoo.com
Wed Nov 12 22:32:52 CET 2008
----- Original Message ----
> From: Rudolf Marek <r.marek at assembler.cz>
> To: "Feng, Libo" <Libo.Feng at amd.com>
> Cc: coreboot at coreboot.org
> Sent: Wednesday, November 12, 2008 1:38:39 PM
> Subject: Re: [coreboot] ACPI S3
> Feng, Libo napsal(a):
> > Hi, all,
> > I am trying to implement the ACPI S3 on coreboot. I have some questions:
> Hi, I have posted some experimental version year ago. It is quite tricky to get
> it working correctly because coreboot overwrittes lot of memory.
> Here is the patch:
> Worked for K8T890 and K8 DDR revE
> Here is described in the steps what needs to be done:
> > 1. Where is the proper place to check the sleep type in the power register?
> Now I check it just prior to disabling the cache as RAM, for not ruining the
> Problem is that you need to setup again some devices which are not setup by OS.
> Like memory controller DDR and chipset low level stuff.
> ACPI allows to wakeup in state like fresh boot, therefore I just let coreboot
> run again and then jump not to payload but to previously saved waking vector.
> Problem only is not to overwrite the memory. I solved that by instructing the
> kernel not to use the low memory at all. Except one page for the trampoline code
> from your mail.
Did you do that with e820 ( via the coreboot table)? I think you could reserve the stack area with E820. That would at least give back some of the memory.
It also looks like we need a s3 aware CAR
> > 2. How to jump into the wakeup_start in x86_64/kernel/acpi/wakeup.S? The code
> is in real mode, how does coreboot jump from the protected mode to the entry? In
> my case, the wakeup_start points to the physical address 0x2000, from there some
> real mode code reside. How to jump to the code.
> There is reset vector in some DSDT table. Check mine original patch.
The real vm86 think code in either real_mode_switch_call_* should be a good example.
> For which chipset/processor are you planning that?
Libo and Co. are working on the dbm690t platform K8 revf/g and rs690/sb600.
More information about the coreboot