[coreboot] ACPI S3
Marc Jones
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:
> http://www.coreboot.org/pipermail/coreboot/2008-January/028787.html
>
> Worked for K8T890 and K8 DDR revE
>
> Here is described in the steps what needs to be done:
> http://www.coreboot.org/pipermail/coreboot/2008-September/038539.html
>
> >
> > 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
> RAM.
>
> 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.
Marc
More information about the coreboot
mailing list