VGA bootsplash isn't displayed because video mode is set which clears the display. Video mode has already been set by the VGA BIOS.
Signed-off-by: Gerhard Wiesinger lists@wiesinger.com --- src/bootsplash.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/bootsplash.c b/src/bootsplash.c index 76b72c1..8519bf4 100644 --- a/src/bootsplash.c +++ b/src/bootsplash.c @@ -38,12 +38,14 @@ void enable_vga_console(void) { dprintf(1, "Turning on vga text mode console\n"); +#ifdef SET_VGA_TEXT_MODE struct bregs br;
/* Enable VGA text mode */ memset(&br, 0, sizeof(br)); br.ax = 0x0003; call16_int10(&br); +#endif
// Write to screen. printf("SeaBIOS (version %s)\n\n", VERSION);
On Mon, Feb 13, 2012 at 07:42:52AM +0100, Gerhard Wiesinger wrote:
VGA bootsplash isn't displayed because video mode is set which clears the display. Video mode has already been set by the VGA BIOS.
The experience from running on real hardware has indicated that a real off-the-shelf BIOS will init the display and clear the screen at startup. We've seen real off-the-shelf vgabios do weird things if the BIOS doesn't init and clear the screen.
-Kevin
On Mon, 13 Feb 2012, Kevin O'Connor wrote:
On Mon, Feb 13, 2012 at 07:42:52AM +0100, Gerhard Wiesinger wrote:
VGA bootsplash isn't displayed because video mode is set which clears the display. Video mode has already been set by the VGA BIOS.
The experience from running on real hardware has indicated that a real off-the-shelf BIOS will init the display and clear the screen at startup. We've seen real off-the-shelf vgabios do weird things if the BIOS doesn't init and clear the screen.
But on real hardware one CAN SEE init string display of e.g. NVIDIA and AMD cards (some do also a beep after VGA display or on BIOS init). Also screen is cleared afterwards. Maybe there is a short delay in VGA BIOS/BIOS.
Another possibility would be to add it as option in the build process. I've already defined an #ifdef therefore.
Maybe an optional delay (config option) before setting video mode would also be fine.
Ciao, Gerhard
Gerhard Wiesinger wrote:
Maybe an optional delay (config option) before setting video mode would also be fine.
I think this would be quite fundamentally incompatible with the intent of SeaBIOS, and even if implemented as optional it would still be nothing but bad karma.
//Peter
On Tue, Feb 14, 2012 at 06:37:18AM +0100, Gerhard Wiesinger wrote:
On Mon, 13 Feb 2012, Kevin O'Connor wrote:
On Mon, Feb 13, 2012 at 07:42:52AM +0100, Gerhard Wiesinger wrote:
VGA bootsplash isn't displayed because video mode is set which clears the display. Video mode has already been set by the VGA BIOS.
The experience from running on real hardware has indicated that a real off-the-shelf BIOS will init the display and clear the screen at startup. We've seen real off-the-shelf vgabios do weird things if the BIOS doesn't init and clear the screen.
But on real hardware one CAN SEE init string display of e.g. NVIDIA and AMD cards (some do also a beep after VGA display or on BIOS init). Also screen is cleared afterwards. Maybe there is a short delay in VGA BIOS/BIOS.
This would be for the vgabios to do. I certainly wouldn't encourage it though, as I don't much like boot delays.
Another possibility would be to add it as option in the build process. I've already defined an #ifdef therefore.
Maybe an optional delay (config option) before setting video mode would also be fine.
I would really prefer to have one code path for all platforms. I don't see much value in seeing the vgabios screen - certainly not enough to add delays to the boot.
-Kevin
On Tue, 14 Feb 2012, Kevin O'Connor wrote:
On Tue, Feb 14, 2012 at 06:37:18AM +0100, Gerhard Wiesinger wrote:
On Mon, 13 Feb 2012, Kevin O'Connor wrote:
On Mon, Feb 13, 2012 at 07:42:52AM +0100, Gerhard Wiesinger wrote:
VGA bootsplash isn't displayed because video mode is set which clears the display. Video mode has already been set by the VGA BIOS.
The experience from running on real hardware has indicated that a real off-the-shelf BIOS will init the display and clear the screen at startup. We've seen real off-the-shelf vgabios do weird things if the BIOS doesn't init and clear the screen.
But on real hardware one CAN SEE init string display of e.g. NVIDIA and AMD cards (some do also a beep after VGA display or on BIOS init). Also screen is cleared afterwards. Maybe there is a short delay in VGA BIOS/BIOS.
This would be for the vgabios to do. I certainly wouldn't encourage it though, as I don't much like boot delays.
Another possibility would be to add it as option in the build process. I've already defined an #ifdef therefore.
Maybe an optional delay (config option) before setting video mode would also be fine.
I would really prefer to have one code path for all platforms. I don't see much value in seeing the vgabios screen - certainly not enough to add delays to the boot.
I agree, delay isn't the best thing. I think having just another compile time config option is the best choice and doesn't hurt anyone if default behaviour is "without change". Prepared another patch. Will post it.
BTW: I don't get anything from seabios mailing list, subscription was ok.
Ciao, Gerhard