grub2: avoid switching modes

to reduce flickering during boot

Issue #2778
This commit is contained in:
Alexander Boettcher 2018-06-06 13:01:54 +02:00 committed by Christian Helmuth
parent a3999c93f4
commit 193e14a489
4 changed files with 13 additions and 4 deletions

View File

@ -490,11 +490,17 @@ Platform::Platform() :
Hip::Mem_desc *boot_fb = nullptr;
bool efi_boot = false;
/*
* All "available" ram must be added to our physical allocator before all
* non "available" regions that overlaps with ram get removed.
*/
for (unsigned i = 0; i < num_mem_desc; i++, mem_desc++) {
/* 32/64bit EFI image handle pointer - see multiboot spec 2 */
if (mem_desc->type == 20 || mem_desc->type == 19)
efi_boot = true;
if (mem_desc->type == Hip::Mem_desc::FRAMEBUFFER)
boot_fb = mem_desc;
if (mem_desc->type != Hip::Mem_desc::AVAILABLE_MEMORY) continue;
@ -675,6 +681,9 @@ Platform::Platform() :
if (!boot_fb)
return;
if (!efi_boot)
return;
xml.node("framebuffer", [&] () {
xml.attribute("phys", String<32>(Hex(boot_fb->addr)));
xml.attribute("width", Resolution::Width::get(boot_fb->size));

View File

@ -1 +1 @@
e1b6f0ea55b716ef8548fbf416ec503a5d31a09d
8cf62c015199b37018676d8c13be026989724a4b

View File

@ -3,7 +3,7 @@ VERSION := git
DOWNLOADS := g2fg.git
URL(g2fg) := https://github.com/alex-ab/g2fg.git
REV(g2fg) := cf35a6e5dc35a9b1961f66cd37cb1d4c23309832
REV(g2fg) := 1b148c6479f2c1f96fa1a1ae66c8cd3bbae538f2
DIR(g2fg) := boot
default: $(DOWNLOADS)

View File

@ -107,8 +107,8 @@ proc run_boot_dir {binaries} {
# puts $fh "loadfont /boot/grub/unicode.pf2"
puts $fh "set timeout=0"
# tell grub2 to prefer 32bit framebuffer resolution
puts $fh "set gfxpayload=\"0x0x32\""
# choose best graphic mode
puts $fh "set gfxpayload=auto"
if {[have_include image/uefi]} {
puts $fh "insmod gfxterm"