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");
