On Wed, Jun 29, 2022 at 02:50:10AM -0400, Felix Freeman via SeaBIOS wrote:
Hello,
I have noticed several problems when using coreboot native graphics ("high resolution" linear framebuffer) with a resolution of 1024x768, on SeaBIOS + SeaVGABIOS:
- Boot menus (GRUB, Syslinux) look at a resolution of 640x480.
- I get a warning in Debian "graphical" installer "Undefined video mode number: 314", asking me to select a mode, if I select a resolution of 1024x768 it boots fine, if I don't, after 30 seconds, it crashes.
- When I use iPXE with SeaBIOS I can't get video on "text based installers" (which use ncurses, for example Debian text based installers).
I don't know if its implementation is incomplete, or because of technical reasons SeaVGABIOS is unable to behave correctly without a proprietary VGA BIOS.
I think a first step might be to be able to force a minimum resolution in text and video modes.
So, my first question is: what is needed to force SeaBIOS/SeaVGABIOS to display a resolution of 1024x768 instead of 640x480 when in "text mode" and "video mode"?
Sure, it's possible to filter the list of modes, but that doesn't guarantee the software using the vgabios behaves accordingly ...
debian complaining about 314 missing is such a case. IIRC that is a 15 or 16 bpp mode which is simply not supported in case coreboot native graphics run with 32 bpp. Seems the debian installer expects that mode being supported and can't deal with the case that it isn't.
And my second question is whether with some work the coreboot native graphics implementation could behave as good as (or close to) a proprietary VGA BIOS.
Nope. The linear framebuffer has a fixed resolution and depth. That implies some compatibility constrains which can hardly be avoided.
Also note that text mode emulation on the framebuffer only works for vgabios calls, linux vgacon (which talks directly to the hardware) is not supported.
take care, Gerd