Hi Nico,
On 6/23/20 7:55 PM, Nico Huber wrote:
On 23.06.20 16:51, Michal Zygowski wrote:
Now the only thing that comes to my mind are the VGA interrupts, because SeaBIOS has more complete interrupt services than coreboot. Any comments or suggestions on that? I think my next step would be to trace all INT 10h and compare the differences and fix it possibly in SeaVGABIOS.
Not sure what you are up to. Libgfxinit sets a specific mode. After that is set, SeaVGABIOS can't change it, only report the mode info. And if SeaBIOS' JPEG parser ignores the info, it doesn't matter what SeaVGABIOS reports.
Okay, I see. How do I know which mode is set by libgfxinit?
The resolution will be picked according to the attached monitors (either native resolution or lower if another monitor has lower resolution). The color format is currently hardcoded: 32-bit BGRX, or in terms of coreboot's `struct lb_framebuffer`:
bits_per_pixel => 32, reserved_mask_pos => 24, reserved_mask_size => 8, red_mask_pos => 16, red_mask_size => 8, green_mask_pos => 8, green_mask_size => 8, blue_mask_pos => 0, blue_mask_size => 8);
Nico
Thank you. It looks like I can't use JPG bootsplash with libgfxinit, because it requires 16bpp mode (according to SeaBIOS logs). A workaround I have found is to convert it to BMP, then it uses 32bpp and everything is allright.
But for example, when VGA option rom is used, SeaBIOS finds the mode it fits the bootsplash resolution and bpp. Additionaly the display area is adjusted to cover whole screen, i.e. when using 1024x768 bootsplash on 1920x1080 screen the bootsplash covers whole screen, while in libgfxinit it is centered leaving unused bars on the both sides of the screen. Any ideas how to improve that?
Best regards,