[SeaBIOS] [PATCH 0/7] vgabios improvements

Kevin O'Connor kevin at koconnor.net
Thu Apr 17 02:12:21 CEST 2014


On Wed, Apr 16, 2014 at 04:25:48PM -0700, H. Peter Anvin wrote:
> On 04/16/2014 04:21 PM, Kevin O'Connor wrote:
> > If I build SeaVGABIOS without vesa and run the Fedora 16 (or later)
> > installer in qemu I get a menu that is not centered and the bottom
> > line of the menu box isn't drawn.  Also, when I hit up arrow or down
> > arrow I can't see which menu item is highlighted.  I'm really not sure
> > if this is syslinux related though.  (This wasn't an issue in Fedora
> > 15 or earlier - though they always show up as black-and-white.)  See
> > the attached screenshot as an example.
> > 
> 
> I wonder if they simply specify a geometry that is too large for the
> text mode screen.  I'll have to take a look at their config file.

Thanks.  The menu definitely looks weird even with a larger screen.
If I disable vesa and switch into a graphics mode (eg, 0x12) prior to
running syslinux I get a screenshot like the attached.  (Same steps to
reproduce as in my previous email with the additional patch below to
force SeaBIOS to switch to mode 0x12.)

To be clear, the biggest issue is not being able to see which item is
highlighted.

[...]
> For the record, Syslinux in text mode will use only BIOS calls (no
> direct write to the screen) to allow things like serial port capture and
> text-to-graphics conversion to work.

Yes - modern bootloaders seem quite good about using the bios
interface.

> Let me know if I can be of assistance.

While you're here - what conditions does syslinux require in order to
use graphics mode?  When we use the coreboot native vga SeaVGABIOS, it
does include vesa support and it will advertise exactly one vesa mode.
(For example, in our qemu tests it's mode 0x0140 that is 800x600 with
32bpp.)  However, syslinux (at least on my fedora tests) doesn't seem
to want to go into graphics mode and instead uses its text mode.  Are
we doing something wrong here, or is it just that a different
resolution is required?

Thanks,
-Kevin


--- a/src/bootsplash.c
+++ b/src/bootsplash.c
@@ -45,6 +45,7 @@ enable_vga_console(void)
     /* Enable VGA text mode */
     memset(&br, 0, sizeof(br));
     br.ax = 0x0003;
+    br.ax = 0x0012;
     call16_int10(&br);
 
     // Write to screen.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screenshot2.png
Type: image/png
Size: 6657 bytes
Desc: not available
URL: <http://www.seabios.org/pipermail/seabios/attachments/20140416/66e66312/attachment.png>


More information about the SeaBIOS mailing list