[SeaBIOS] running vga bios on resume from S3

Gleb Natapov gleb at redhat.com
Mon Mar 1 08:28:31 CET 2010


On Sun, Feb 28, 2010 at 02:27:19PM -0500, Kevin O'Connor wrote:
> On Thu, Feb 25, 2010 at 08:36:11AM +0200, Gleb Natapov wrote:
> > On Wed, Feb 24, 2010 at 11:34:17PM -0500, Kevin O'Connor wrote:
> > > On Wed, Feb 24, 2010 at 11:59:26AM +0200, Gleb Natapov wrote:
> > > > Shouldn't we make CONFIG_S3_RESUME_VGA_INIT=1 by default. Otherwise
> > > > console doesn't work on Linux after resume.
> > > 
> > > As far as I can tell, a real BIOS does not call the video bios on
> > > resume.
> [...]
> > > As such, I don't think it should be enabled by default.
> > > 
> > Googling "Run VGA Bios if S3 Resume" suggest that there are real BIOSes that
> > run video bios on resume.
> 
> Interesting.
> 
> Though, the presence of a bios option seems to indicate that always
> running the vga rom may not be a good idea.
>
Or it may indicate that there are BIOSes that always run VGA Bios on
resume, but we can provide similar option that will be passed on qemu
command line.

> >I don't see how resume can work otherwise for
> > non-GUI setups.
> 
> I don't know either - this topic has me confused.
May be because it can't :) Here is the same problem with real HW:
http://www.nvnews.net/vbulletin/showthread.php?t=130909

>                                                    The ACPI spec is
> clear though (section 15.3):
> 
It is never for me :(

>  Functional device configuration. The BIOS doesn't need to
>  configure/restore context of functional devices such as a network
>  interface (even if it is physically included in chipset) or interrupt
>  controller. OSPM is responsible for restoring all context of these
>  devices. The only requirement for the hardware and BIOS is to ensure
>  that interrupts are not asserted by devices when the control is
>  passed to OS.
> 
That is for the devices that are under OSPM control. VGA console in text
mode is hardly under OSPM control. When graphics is in use the device
driver is responsible to restore device state, but generic vga driver
cannot know how to restore internal state of different HW. This is the
reason Windows doesn't allow S3 when vga driver is used.

> Also, I've read through the PCI specs, and I haven't seen anything
> that indicates a VGA BIOS should support being run from S3 resume.  As
> such, I'm not confident that a generic VGA BIOS wont write to memory
> (corrupting the resume state) if it is run.
We should definitely audit our VGA BIOS for such things. Also moder VGA
BIOS should use PPM for memory allocation no?

> 
> It would be nice to know what the "auto" option that some BIOS' have
> for "Run VGA Bios if S3 Resume" does.  I wonder what they look at to
> determine whether or not to run the vga bios.
> 
> -Kevin

--
			Gleb.



More information about the SeaBIOS mailing list