summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/efi/gummiboot.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/efi/gummiboot.c b/src/efi/gummiboot.c
index a91dae9..940b162 100644
--- a/src/efi/gummiboot.c
+++ b/src/efi/gummiboot.c
@@ -1763,10 +1763,21 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
entry->call();
continue;
}
- } else if (entry->splash)
- graphics_splash(root_dir, entry->splash);
- else if (config.splash)
- graphics_splash(root_dir, config.splash);
+ } else {
+ err = EFI_NOT_FOUND;
+
+ /* splash from entry file */
+ if (entry->splash)
+ err = graphics_splash(root_dir, entry->splash);
+
+ /* splash from config file */
+ if (EFI_ERROR(err) && config.splash)
+ err = graphics_splash(root_dir, config.splash);
+
+ /* default splash */
+ if (EFI_ERROR(err))
+ graphics_splash(root_dir, L"\\EFI\\gummiboot\\splash.bmp");
+ }
/* export the selected boot entry to the system */
efivar_set(L"LoaderEntrySelected", entry->file, FALSE);