[coreboot] ACPI S3

Rudolf Marek r.marek at assembler.cz
Wed Nov 12 21:38:39 CET 2008

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

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

For which chipset/processor are you planning that?


More information about the coreboot mailing list