[SeaBIOS] [PATCH] src/bootsplash.c: Fix displaying VGA bootsplash

Gerhard Wiesinger lists at wiesinger.com
Wed Feb 15 07:56:45 CET 2012


VGA bootsplash isn't displayed because video mode is set
which clears the display. Video mode has already been set
by some VGA BIOS. User can choose by config option to disable
setting of VGA video mode by seabios
(CONFIG_BOOT_SET_VIDEO_MODE).
Works well under QEMU/KVM with VGA BIOS and seabios.

Default behaviour is the same as before where VGA mode is
set by seabios.

Signed-off-by: Gerhard Wiesinger <lists at wiesinger.com>
---
  src/Kconfig      |    5 +++++
  src/bootsplash.c |   13 ++++++++-----
  2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/Kconfig b/src/Kconfig
index 250663a..08325cc 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -52,6 +52,11 @@ menu "General Features"
          default y
          help
              Support showing a graphical boot splash screen.
+    config BOOT_SET_VIDEO_MODE
+        bool "Set video mode on initialization"
+        default y
+        help
+            Option should not be set when the VGA init string should be displayed.
      config BOOTORDER
          depends on BOOT
          bool "Boot ordering"
diff --git a/src/bootsplash.c b/src/bootsplash.c
index 76b72c1..09ad0a1 100644
--- a/src/bootsplash.c
+++ b/src/bootsplash.c
@@ -38,12 +38,15 @@ void
  enable_vga_console(void)
  {
      dprintf(1, "Turning on vga text mode console\n");
-    struct bregs br;

-    /* Enable VGA text mode */
-    memset(&br, 0, sizeof(br));
-    br.ax = 0x0003;
-    call16_int10(&br);
+    if (CONFIG_BOOT_SET_VIDEO_MODE) {
+        struct bregs br;
+
+        /* Enable VGA text mode */
+        memset(&br, 0, sizeof(br));
+        br.ax = 0x0003;
+        call16_int10(&br);
+    }

      // Write to screen.
      printf("SeaBIOS (version %s)\n\n", VERSION);
-- 
1.7.7.6



More information about the SeaBIOS mailing list