summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/efi_loader/Kconfig11
-rw-r--r--lib/efi_loader/efi_console.c3
-rw-r--r--lib/efi_loader/efi_var_sf.c5
-rw-r--r--lib/fwu_updates/fwu.c2
4 files changed, 16 insertions, 5 deletions
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index b5f81e0ff53..bae98e07d23 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -576,6 +576,17 @@ config EFI_EBBR_2_1_CONFORMANCE
help
Enabling this option adds the EBBRv2.1 conformance entry to the ECPT UEFI table.
+config EFI_CONSOLE_DISABLE_ANSI
+ bool "Disable ANSI escape sequence queries for console size"
+ help
+ Select this option to disable ANSI escape sequence queries for
+ detecting serial console size. When enabled,
+ efi_setup_console_size() will not send ANSI escape sequences to
+ the terminal and will use default 25x80 dimensions instead.
+ This is useful for platforms where the serial console cannot
+ properly handle ANSI queries, causing boot delays or garbled
+ output.
+
config EFI_SCROLL_ON_CLEAR_SCREEN
bool "Avoid overwriting previous output on clear screen"
help
diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c
index 068d1a0a7b7..a798d5604a3 100644
--- a/lib/efi_loader/efi_console.c
+++ b/lib/efi_loader/efi_console.c
@@ -365,6 +365,9 @@ void efi_setup_console_size(void)
int rows = 25, cols = 80;
int ret = -ENODEV;
+ if (IS_ENABLED(CONFIG_EFI_CONSOLE_DISABLE_ANSI))
+ efi_console_set_ansi(false);
+
if (IS_ENABLED(CONFIG_VIDEO))
ret = query_vidconsole(&rows, &cols);
if (ret) {
diff --git a/lib/efi_loader/efi_var_sf.c b/lib/efi_loader/efi_var_sf.c
index 6eae8d46464..b84ec8e67dc 100644
--- a/lib/efi_loader/efi_var_sf.c
+++ b/lib/efi_loader/efi_var_sf.c
@@ -98,11 +98,8 @@ efi_status_t efi_var_from_storage(void)
goto error;
}
- if (efi_var_restore(buf, false) != EFI_SUCCESS) {
+ if (efi_var_restore(buf, false) != EFI_SUCCESS)
log_err("No valid EFI variables in SPI Flash\n");
- ret = EFI_DEVICE_ERROR;
- goto error;
- }
ret = EFI_SUCCESS;
error:
diff --git a/lib/fwu_updates/fwu.c b/lib/fwu_updates/fwu.c
index 37c613014d1..e82600a29a4 100644
--- a/lib/fwu_updates/fwu.c
+++ b/lib/fwu_updates/fwu.c
@@ -796,4 +796,4 @@ static int fwu_boottime_checks(void)
return 0;
}
-EVENT_SPY_SIMPLE(EVT_MAIN_LOOP, fwu_boottime_checks);
+EVENT_SPY_SIMPLE(EVT_POST_PREBOOT, fwu_boottime_checks);