:: commit 83e07006f8f2f75031556ecc21881dee1b66fc64

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

parents: e9df2f11c5

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

diff --git a/CONFIG.md b/CONFIG.md
index 3b671e11..8198b493 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 15fab804..ae8268b4 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -606,12 +606,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