On Mon, Sep 08, 2008 at 02:33:01AM +0200, Carl-Daniel Hailfinger wrote:
On 08.09.2008 02:20, Kevin O'Connor wrote:
Using the space at 0xc8000 - 0xf0000 would work, but it would limit the maximum number of option roms.
That applies to any location between 0xA0000 and 0xFFFFF, though.
Option roms reside between 0xc0000 and 0xf0000. The a and b segments are used for something else - vga mmio I think.
(You can't use 0xc0000 for long term storage, because the vga option rom must reside there.)
Fortunately, the stack is designed to be discarded the moment we run a payload, so there are no survival requirements at all.
On resume though, the CAR area would overwrite the VGA rom that was installed during the first boot.
Any memory that coreboot might clobber would need to be reserved, and 0xc0000 can't be reserved because vga option roms expect to be located there.
An alternative (as you mentioned in an early email) would be to save and restore some area of memory below 1MB.
-Kevin