[SeaBIOS] [PATCH 1/5] SeaVGABios/cbvga: Advertise correct pixel format
Patrick Rudolph
siro at das-labor.org
Mon May 29 19:25:10 CEST 2017
Accumulate the pixel format's bits instead relying on coreboot's
bits_per_pixel, which says nothing about the active pixel format.
Allows VBE to correctly advertise XRGB8 and BGRX8 framebuffer formats,
commonly used by coreboot.
Fixes at least Windows Bootloader and gfxboot.
Signed-off-by: Patrick Rudolph <siro at das-labor.org>
---
vgasrc/cbvga.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/vgasrc/cbvga.c b/vgasrc/cbvga.c
index b8216a9..39ffdbb 100644
--- a/vgasrc/cbvga.c
+++ b/vgasrc/cbvga.c
@@ -1,6 +1,7 @@
// Simple framebuffer vgabios for use with coreboot native vga init.
//
// Copyright (C) 2014 Kevin O'Connor <kevin at koconnor.net>
+// Copyright (C) 2017 Patrick Rudolph <siro at das-labor.org>
//
// This file may be distributed under the terms of the GNU LGPLv3 license.
@@ -164,7 +165,8 @@ cbvga_setup(void)
}
u64 addr = GET_FARVAR(0, cbfb->physical_address);
- u8 bpp = GET_FARVAR(0, cbfb->bits_per_pixel);
+ u8 bpp = cbfb->blue_mask_size + cbfb->green_mask_size
+ + cbfb->red_mask_size + cbfb->reserved_mask_size;
u32 xlines = GET_FARVAR(0, cbfb->x_resolution);
u32 ylines = GET_FARVAR(0, cbfb->y_resolution);
u32 linelength = GET_FARVAR(0, cbfb->bytes_per_line);
--
2.9.3
More information about the SeaBIOS
mailing list