[coreboot] suspend/resume in v3

Kevin O'Connor kevin at koconnor.net
Mon Sep 8 04:53:40 CEST 2008


On Mon, Sep 08, 2008 at 04:11:35AM +0200, Carl-Daniel Hailfinger wrote:
> On 08.09.2008 03:37, Kevin O'Connor wrote:
> > 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.
> 
> OK. The problem here is that large multicore machines need 48 kB CAR
> size, probably more in the future. Are VGA option ROMs guaranteed to be
> 16 kB or smaller?

No - I have vga roms nearly 64KB in size.  I don't know if there is an
upper limit.

> > An alternative (as you mentioned in an early email) would be to save
> > and restore some area of memory below 1MB.
> >   
> 
> Yes, but the problem is that the CAR area can't be saved before enabling
> CAR. That means we have to reserve the memory. Let me summarize the
> current black list:
> - 0x00000-0x9FFFF is low 640 kB. May break bootloaders and 16-bit OS.

Right.

> - 0xA0000-0xAFFFF is VGA graphics memory mapped area.
> - 0xB0000-0xB7FFF is ancient monochrome memmapped, but may still be
> decoded by newer VGA cards.
> - 0xB8000-0xBFFFF is VGA text mode memory mapped area.

I wonder if one could back this area with memory during resume, and
then return control to the vga cards before returning to the OS.

> - 0xC0000-???? is VGA ROM location.

You can almost certainly reserve space in the 0xe0000 area.  However,
doing so limits the space for other option roms.

> - 0xF0000-0xFFFFF is used by SeaBIOS.

Something could be worked out here.  We could backup seabios and
restore it before resume completes.  It'd be ugly though.

-Kevin




More information about the coreboot mailing list