
On 11/4/22 09:06, Jan Kiszka wrote:
From: Jan Kiszka jan.kiszka@siemens.com
Before clearing the screen, ensure that no previous output of firmware or UEFI programs will be overwritten on serial devices or other streaming consoles. This helps generating complete boot logs.
Tested regarding multi-output against qemu-x86_defconfig.
Signed-off-by: Jan Kiszka jan.kiszka@siemens.com
lib/efi_loader/efi_console.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 4d08dd3763a..6ce0fcc168d 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -461,10 +461,16 @@ static efi_status_t EFIAPI efi_cout_set_attribute( }
/**
- efi_cout_clear_screen() - clear screen
*/ static void efi_clear_screen(void) {
- efi_clear_screen() - clear screen
- unsigned int row;
- /* Avoid overwriting previous outputs on streaming consoles */
- for (row = 1; row < efi_cout_modes[efi_con_mode.mode].rows; row++)
printf("\n");
Scrolling on a framebuffer is a very expensive operations: For each of the 135 lines of an UHD display you have to copy 32 MiB. This would create a delay of multiple seconds on a slow device.
So keep the patch for your debugging purposed. But we cannot merge it into upstream.
Best regards
Heinrich
/* * The Linux console wants both a clear and a home command. The video * uclass does not support <ESC>[H without coordinates, yet.