Issue #476 has been updated by Bill XIE.
"Grub payload could turn coreboot-initialized simplefb to efifb" turns out that grub payload can read video mode info from the coreboot table and fill them into a `struct linux_kernel_params` (corresponding to `struct linux_params` of `util/cbfstool/linux.h` and `struct screen_info` of Linux kernel) to boot the Linux kernel, and set the member `have_vga` (corresponding to `orig_video_isVGA` of `struct linux_params` and `struct screen_info`) to 0x70, allowing the driver `efifb` to take over the framebuffer.
To copy this behavior in coreboot, features to identify a linux payload at runtime and to modify the linux_params at runtime may have to be added.
---------------------------------------- Feature #476: Add option to convert coreboot-inited linear frame buffer to efifb directly https://ticket.coreboot.org/issues/476#change-1465
* Author: Bill XIE * Status: New * Priority: Normal * Category: coreboot common code * Target version: none * Start date: 2023-03-30 * Affected OS: GNU/Linux ---------------------------------------- Currently, the linear frame buffer that coreboot initializes should be handled by Linux kernel with dedicated driver "simplefb", but most installer of GNU/Linux distributions only enables "efifb" support, which causes a GNU/Linux installer kexec-ed from a Linux payload running atop simplefb unable to output graphics.
Currently, Grub payload could turn coreboot-initialized simplefb to efifb, which can be easily examined from the dmesg log of GNU/Linux booted from Grub payload running atop coreboot-inited linear frame buffer (simplefb). Chainloading a Linux payload with a minimal Grub payload only containing module "linux" and "cbfs" could make the Linux payload running atop efifb, of which GNU/Linux installers can make use, but the related code could be ported to coreboot to make things easier.