Attention is currently required from: Patrick Rudolph. Raul Rangel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39002 )
Change subject: lib/edid_fill_fb: Support multiple framebuffers ......................................................................
Patch Set 27:
(1 comment)
File src/lib/edid_fill_fb.c:
https://review.coreboot.org/c/coreboot/+/39002/comment/2ff81cde_fa30760a PS27, Line 53: " This is a driver bug.\n", __func__, fb->bits_per_pixel, bpp_mask); Here are the supported VESA modes:
Calling Option ROM... ... Option ROM returned. Supported Video Mode list for OpRom: VBE: Getting information about VESA mode 4110 VBE: resolution: 640x480@16 VBE: Getting information about VESA mode 4111 VBE: resolution: 640x480@16 VBE: Getting information about VESA mode 4113 VBE: resolution: 800x600@16 VBE: Getting information about VESA mode 4114 VBE: resolution: 800x600@16 VBE: Getting information about VESA mode 4116 VBE: resolution: 1024x768@16 VBE: Getting information about VESA mode 4117 VBE: resolution: 1024x768@16 VBE: Getting information about VESA mode 4119 VBE: resolution: 1280x1024@16 VBE: Getting information about VESA mode 411a VBE: resolution: 1280x1024@16 VBE: Getting information about VESA mode 4165 VBE: resolution: 1280x960@16 VBE: Getting information about VESA mode 4166 VBE: resolution: 1280x960@32 VBE: Getting information about VESA mode 4121 VBE: resolution: 640x480@32 VBE: Getting information about VESA mode 4122 VBE: resolution: 800x600@32 VBE: Getting information about VESA mode 4123 VBE: resolution: 1024x768@32 VBE: Getting information about VESA mode 4124 VBE: resolution: 1280x1024@32 VBE: Getting information about VESA mode 4145 VBE: resolution: 1400x1050@16 VBE: Getting information about VESA mode 4146 VBE: resolution: 1400x1050@32 VBE: Getting information about VESA mode 4175 VBE: resolution: 1600x1200@16 VBE: Getting information about VESA mode 4176 VBE: resolution: 1600x1200@32 VBE: Getting information about VESA mode 41d2 VBE: resolution: 1920x1080@16 VBE: Getting information about VESA mode 41d4 VBE: resolution: 1920x1080@32 VBE: Getting information about VESA mode 41d4 VBE: resolution: 1920x1080@32 VBE: framebuffer: 0xd0000000 VBE: Setting VESA mode 41d4 fb_add_framebuffer_info_ex: BPP=32 and channel bit mask=24 doesn't match. This is a driver bug.
Ideally, you would convince AMD to contribute to open-source graphics. Blobs
will always stay fragile. Agreed, but that's a battle for a different day 😊
Second best option is to ask them for a VGA BIOS that sets sane values.
If VBE doesn't specify what to do with the reserved fields, I'm not sure I can make the argument to change the VBIOS for picasso. I could maybe make the argument to change it for future revisions though.
I'd say our VBE driver should sanitize the fields before passing them on
to common code? Is the thought that vbe_get_mode_info would do:
if (fb->blue_mask_size + fb->green_mask_size + fb->red_mask_size == 24 && fb->bits_per_pixel == 32) fb->reserved_mask_size = 8;
I think it would be cleaner to relax this check then modify any data.