[SeaBIOS] [PATCH 0/5] More bootsplash enhancements

Kevin O'Connor kevin at koconnor.net
Fri Jul 30 21:19:35 CEST 2010


On Fri, Jul 30, 2010 at 09:13:32PM +0200, Sebastian Herbszt wrote:
> Kevin O'Connor wrote:
> >This series further enhances the bootsplash code.  The last patch
> >enables it by default (for coreboot users).
> 
> What about adding some wrappers to "paravirt.h" like bootsplash_file_find,
> bootsplash_file_size and bootsplash_file_copy (along the lines of romfile_*) ?
> This should allow qemu to use the bootsplash screen.

The romfile_* wrappers could likely serve this purpose.  (See patch
below.)  Of course, this needs changes to qemu, which I was going to
look at next.

-Kevin


diff --git a/src/bootsplash.c b/src/bootsplash.c
index 676ece3..00bb921 100644
--- a/src/bootsplash.c
+++ b/src/bootsplash.c
@@ -11,6 +11,7 @@
 #include "util.h" // dprintf
 #include "jpeg.h" // splash
 #include "biosvar.h" // SET_EBDA
+#include "paravirt.h" // romfile_find
 
 
 /****************************************************************
@@ -148,12 +149,12 @@ void enable_vga_console(void)
     u8 *filedata = NULL, *picture = NULL;
 
     /* Needs coreboot support for CBFS */
-    if (!CONFIG_BOOTSPLASH || !CONFIG_COREBOOT)
+    if (!CONFIG_BOOTSPLASH)
         goto gotext;
-    struct cbfs_file *file = cbfs_finddatafile("bootsplash.jpg");
+    u32 file = romfile_find("bootsplash.jpg");
     if (!file)
         goto gotext;
-    int filesize = cbfs_datasize(file);
+    int filesize = romfile_size(file);
 
     filedata = malloc_tmphigh(filesize);
     vesa_info = malloc_tmplow(sizeof(*vesa_info));
@@ -186,7 +187,7 @@ void enable_vga_console(void)
             vendor, product);
 
     // Parse jpeg and get image size.
-    cbfs_copyfile(file, filedata, filesize);
+    romfile_copy(file, filedata, filesize);
     int ret = jpeg_decode(jpeg, filedata);
     if (ret) {
         dprintf(1, "jpeg_decode failed with return code %d...\n", ret);
@@ -248,7 +249,7 @@ gotext:
 void
 disable_bootsplash(void)
 {
-    if (!CONFIG_BOOTSPLASH  || !CONFIG_COREBOOT || !GET_EBDA(bootsplash_active))
+    if (!CONFIG_BOOTSPLASH || !GET_EBDA(bootsplash_active))
         return;
     SET_EBDA(bootsplash_active, 0);
     enable_vga_text_console();




More information about the SeaBIOS mailing list