:: commit 895bc73c1c25881b2426660decf5fdcae71ea0f1

Mintsuki <mintsuki@protonmail.com> — 2026-04-30 18:37

parents: 16bc667215

protos/limine: Narrow the measured-boot 4 GiB module cap to IA-32

diff --git a/common/protos/limine.c b/common/protos/limine.c
index d13213c1..cbdea610 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -1341,12 +1341,15 @@ FEAT_START
         print("limine: Loading module `%#`...\n", module_path);
 
         struct file_handle *f;
-        // Refuse >4 GiB allocations under measured boot on IA-32: firmware's
+        // On IA-32 under measured boot, refuse >4 GiB allocations: firmware's
         // HashLogExtendEvent can't reach them, so we'd be unable to measure
-        // the module.
-        if ((f = uri_open(module_path, MEMMAP_KERNEL_AND_MODULES, !measured_boot
+        // the module. Elsewhere, the firmware can address all of physical
+        // memory and high allocations remain measurable.
+        if ((f = uri_open(module_path, MEMMAP_KERNEL_AND_MODULES,
 #if defined (__i386__)
-            , limine_memcpy_to_64, limine_memcpy_from_64
+            !measured_boot, limine_memcpy_to_64, limine_memcpy_from_64
+#else
+            true
 #endif
         )) == NULL) {
             if (module_required) {
tab: 248 wrap: offon