lib/gterm: Try to initialize all 32-bpp framebuffers
diff --git a/common/GNUmakefile b/common/GNUmakefile
index 95984625..8cd35610 100644
--- a/common/GNUmakefile
+++ b/common/GNUmakefile
@@ -56,7 +56,9 @@ override CPPFLAGS_FOR_TARGET := \
-MMD \
-MP
-$(call MKESCAPE,$(BUILDDIR))/./flanterm/backends/fb.o: override CPPFLAGS_FOR_TARGET += -DFLANTERM_FB_DISABLE_BUMP_ALLOC
+$(call MKESCAPE,$(BUILDDIR))/./flanterm/backends/fb.o: override CPPFLAGS_FOR_TARGET += \
+ -DFLANTERM_FB_DISABLE_BUMP_ALLOC \
+ -DFLANTERM_FB_SUPPORT_BPP
ifeq ($(TARGET),bios)
override CFLAGS_FOR_TARGET += \
diff --git a/common/lib/gterm.c b/common/lib/gterm.c
index b8b0be66..efd5367d 100644
--- a/common/lib/gterm.c
+++ b/common/lib/gterm.c
@@ -10,6 +10,7 @@
#include <lib/image.h>
#include <mm/pmm.h>
#include <flanterm/flanterm.h>
+#define FLANTERM_FB_SUPPORT_BPP
#include <flanterm/backends/fb.h>
#include <lib/term.h>
@@ -673,13 +674,8 @@ no_load_font:;
for (size_t i = 0; i < fbs_count; i++) {
struct fb_info *fb = &fbs[i];
- // Ensure this is xRGB8888, we only support that for the menu
- if (fb->red_mask_size != 8
- || fb->red_mask_shift != 16
- || fb->green_mask_size != 8
- || fb->green_mask_shift != 8
- || fb->blue_mask_size != 8
- || fb->blue_mask_shift != 0) {
+ // Ensure that this framebuffer uses 32-bits per pixel.
+ if (fb->framebuffer_bpp != 32) {
continue;
}
@@ -714,6 +710,9 @@ no_load_font:;
pmm_free,
(void *)(uintptr_t)fb->framebuffer_addr,
fb->framebuffer_width, fb->framebuffer_height, fb->framebuffer_pitch,
+ fb->red_mask_size, fb->red_mask_shift,
+ fb->green_mask_size, fb->green_mask_shift,
+ fb->blue_mask_size, fb->blue_mask_shift,
bg_canvas,
ansi_colours, ansi_bright_colours,
&default_bg, &default_fg,
diff --git a/test/GNUmakefile b/test/GNUmakefile
index fc9cf160..89134e21 100644
--- a/test/GNUmakefile
+++ b/test/GNUmakefile
@@ -6,7 +6,7 @@ export OBJCOPY_FOR_TARGET
export READELF_FOR_TARGET
override CC := $(CC_FOR_TARGET)
-CFLAGS = -O2 -g -Wall -Wextra
+CFLAGS = -O2 -g -Wall -Wextra -DFLANTERM_FB_SUPPORT_BPP
LDFLAGS =
override LD := $(LD_FOR_TARGET)
override QEMU := qemu-system-x86_64
