Hello Andrei,
The "Keep VESA framebuffer" is a setting in Coreboot and without it the
*gfxterm* mode is not properly configured or unusable. As a consequence
*vga_text* mode is set which causes the restart issue and boot problems
with Linux.
Also as a consequence of the below error, by setting "set debug=all" GRUB2
would output a lot of text and become unusable (with the below code) - as
opposed to other modules where by setting "set pager=1" would make it quite
usable.
Regarding the restart issue I traced the cause to the function
call screen_read_char() from ./grub-core/term/i386/pc/vga_text.c. This gets
called when (grub_curr_pos.y == ROWS - 1) -- my bad on forgetting the -1.
static void
inc_y (void)
{
grub_curr_pos.x = 0;
if (grub_curr_pos.y < ROWS - 1)
grub_curr_pos.y++;
else
{
#if 0
int x, y;
for (y = 0; y < ROWS - 1; y++)
for (x = 0; x < COLS; x++)
* screen_write_char (x, y, screen_read_char (x, y + 1)); //
restart happens on this call*
for (x = 0; x < COLS; x++)
screen_write_char (x, ROWS - 1, ' ' | (cur_color << 8));
#else
int x, y;
for (y = 0; y < ROWS; y++)
for (x = 0; x < COLS; x++)
screen_write_char (x, y, ' ');
grub_curr_pos.y = 0;
#endif
}
}
Regards,
Grigore
_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel