efi_loader: Set default console colors on efi_cout_clear_screen if needed
authorJan Kiszka <jan.kiszka@siemens.com>
Wed, 18 Jan 2023 21:25:00 +0000 (22:25 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 20 Jan 2023 15:38:52 +0000 (16:38 +0100)
Ensures a consistent background color of the whole screen for succeeding
outputs as both demanded by the spec and implemented in EDK2 as well.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
lib/efi_loader/efi_console.c

index 4d08dd3..9316995 100644 (file)
@@ -489,6 +489,12 @@ static efi_status_t EFIAPI efi_cout_clear_screen(
 {
        EFI_ENTRY("%p", this);
 
+       /* Set default colors if not done yet */
+       if (efi_con_mode.attribute == 0) {
+               efi_con_mode.attribute = 0x07;
+               printf(ESC "[0;37;40m");
+       }
+
        efi_clear_screen();
 
        return EFI_EXIT(EFI_SUCCESS);