[coreboot] suspend/resume in v3

Kevin O'Connor kevin at koconnor.net
Mon Sep 8 01:27:54 CEST 2008


On Sun, Sep 07, 2008 at 11:40:51PM +0200, Rudolf Marek wrote:
>> CAR will write to memory locations below 1M. There are three ways to
>> cope with that:
>> 1. Back up that area during suspend and restore it as last instruction
>> of resume.
>> 2. Declare the CAR area (48 kB) as reserved memory.
> Imho this is OK, and easiest.

I don't think one can mark 48KB reserved below 0xA0000.  I've found
that boot loaders are picky about any reserved memory below 1MB.

It's normal to reserve the ebda (typically 0x9fc00 to 0xa0000), but I
seem to recall reading that an EBDA over 16KB will confuse some
programs.  Using the EBDA area would also likely break SeaBIOS.

>> 3. Write excessively clever and fragile code which performs a double
>> stack switch during resume.
> Here are some other ideas, might not work if stack is never realocated. I 
> dont know how CAR in v3 works.
> 4. use 0xA0000-0xBFFFF
> I think we can use this RAM because it will be covered by SMM (done by 
> us) or will be covered by legacy VGA anyway.

That should work for CAR, but it obviously wouldn't be useful for any
long term storage.

> 5.  use 0xf0000-0xfffff
> It will get overwritten by some our code, before that we might use it.

Using that area would prevent SeaBIOS from working.


More information about the coreboot mailing list