:: commit c2ed0bcbd11c252352967ea365d6155a8684170a

mintsuki <mintsuki@protonmail.com> — 2022-09-22 13:12

parents: 58ef3bd8a9

config: On UEFI, scan the volume containing the EFI executable first. Addresses #219

diff --git a/CONFIG.md b/CONFIG.md
index 0c61536e..66e135a2 100644
--- a/CONFIG.md
+++ b/CONFIG.md
@@ -3,7 +3,8 @@
 ## Location of the config file
 
 Limine scans for a config file on *the boot drive*. Every partition on the boot drive
-is scanned sequentially (first partition first, last partition last) for the presence
+is scanned sequentially - first partition first (or, on UEFI, the partition containing the
+EFI executable of the booted Limine is scanned first), last partition last - for the presence
 of either a `/limine.cfg`, `/boot/limine.cfg`, or a `/EFI/BOOT/limine.cfg` file, in that order.
 
 Once the file is located, Limine will use it as its config file. Other possible
diff --git a/common/menu.c b/common/menu.c
index 762b67e4..afe0fc33 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -603,12 +603,18 @@ noreturn void _menu(bool first_run) {
     }
 
     if (bad_config == false) {
+#if defined (UEFI)
+        if (init_config_disk(boot_volume)) {
+#endif
         volume_iterate_parts(boot_volume,
             if (!init_config_disk(_PART)) {
                 boot_volume = _PART;
                 break;
             }
         );
+#if defined (UEFI)
+        }
+#endif
     }
 
     char *quiet_str = config_get_value(NULL, 0, "QUIET");
tab: 248 wrap: offon