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