[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