[PATCH v2] efi_loader: Improve console screen clearing and reset
Jan Kiszka
jan.kiszka at siemens.com
Mon May 9 11:05:09 CEST 2022
On 09.05.22 10:31, Jan Kiszka wrote:
> On 06.05.22 18:46, Heinrich Schuchardt wrote:
>> On 5/6/22 16:50, Jan Kiszka wrote:
>>> From: Jan Kiszka <jan.kiszka at 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 at siemens.com>
>>> ---
>>>
>>> Changes in v2:
>>> - rebased and tested against more scenarios, sucessfully
>>>
>>> lib/efi_loader/efi_console.c | 16 +++++++++++++---
>>> 1 file changed, 13 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c
>>> index 60a3fc85ac4..0270b20bafe 100644
>>> --- a/lib/efi_loader/efi_console.c
>>> +++ b/lib/efi_loader/efi_console.c
>>> @@ -463,8 +463,18 @@ static efi_status_t EFIAPI efi_cout_set_attribute(
>>> static efi_status_t EFIAPI efi_cout_clear_screen(
>>> struct efi_simple_text_output_protocol *this)
>>> {
>>> + unsigned int row;
>>> +
>>> EFI_ENTRY("%p", this);
>>>
>>> + /* Avoid overwriting previous outputs on streaming consoles */
>>> + for (row = 1; row < efi_cout_modes[efi_con_mode.mode].rows; row++)
>>> + printf("\n");
>>
>> Unfortunately you seem to have missed to consider my review comments in
>> https://lists.denx.de/pipermail/u-boot/2022-April/482754.html
>
> Nope, I address them or verified them to not apply. Please highlight
> what I either missed or what I have to reproduce how.
>
Ok, one thing I actually ignored as not directly related was the "cls"
command and possibly other U-Boot internal clear-screen triggers. Those
might be addressed similarly, but that is a different story for me. The
purpose of this patch is to avoid that U-Boot external workload, EFI
executables, can trigger overwriting console logs of U-Boot. If U-Boot
decides to do that itself, or if the user does that on the command line,
that is a different thing for me.
BTW, the bootmenu would likely be fine an in-place approach as well, but
nothing at UART level.
Jan
--
Siemens AG, Technology
Competence Center Embedded Linux
More information about the U-Boot
mailing list