-
Notifications
You must be signed in to change notification settings - Fork 190
Expand file tree
/
Copy pathChangeLog
More file actions
2009 lines (1397 loc) · 70.8 KB
/
ChangeLog
File metadata and controls
2009 lines (1397 loc) · 70.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2026-04-09 Mintsuki <mintsuki@protonmail.com>
*** Release 11.3.1 ***
(Note: 11.3.0 was skipped due to GHA migration issues)
Noteworthy changes compared to the previous release, 11.2.1:
New features:
- Implement "TSC Frequency" feature of the Limine boot protocol.
- Add PIT-based TSC calibration for BIOS.
- Do not clear framebuffer in quiet mode.
Bug fixes:
- Make "Keep IOMMU" Limine boot protocol feature x86-64-only.
- Do not clear framebuffer on modeset as Flanterm immediately repaints
it, wasting time.
- Allow menu recovery on overflow panics in the multiboot protocols.
- Significantly improve TSC calibration accuracy.
Miscellaneous:
- Do not force-start uninitialised GOP outputs if a framebuffer is
already available, for compatibility with quirky firmwares (Apple
Macs).
- Call Apple set_os protocol on UEFI to try to keep iGPU alive on
dual-GPU Apple Macs.
- Migrated to GitHub alongside with several subprojects.
- Build limine.exe using i486 MinGW from osdev0/mingw-binary-builds
in binary builds for better compatibility.
2026-04-04 Mintsuki <mintsuki@protonmail.com>
*** Release 11.2.1 ***
Noteworthy changes compared to the previous release, 11.2.0:
Bug fixes:
- Revert Secure Boot enforcement policy for configuration file hash
and other file hashes. This broke semantic versioning, so the fair
thing to do is to revert it and move on to 12.x afterwards.
- Add workaround for VMware optical drive detection on BIOS.
2026-04-02 Mintsuki <mintsuki@protonmail.com>
*** Release 11.2.0 ***
Noteworthy changes compared to the previous release, 11.1.0:
New features:
- Enforce hash verification of loaded files when UEFI Secure Boot is
active. When Secure Boot is detected, Limine requires an enrolled
config checksum, BLAKE2B hashes on security-critical file paths,
disables the config editor, and forces hash_mismatch_panic to yes.
- Linux boot protocol: Load and concatenate all modules on non-x86, not
just the first.
- ISO 9660: Handle Rock Ridge NM continuation entries.
Bug fixes:
- Use -malign-double for IA-32 UEFI builds to match UEFI specification
struct alignment.
- Fix unique sector pool being clobbered by find_unique_sectors().
- Revert GOP workaround that called SetMode() on every handle to avoid
clearing the screen where unnecessary/ugly.
- Do not call ClearScreen() on EFI fallback terminal init for the same
reason.
- Miscellaneous fixes for low severity bugs found with static analysis.
Miscellaneous:
- Re-enable decompressor bounds checks, CRC32, and length validation.
- Mix hardware entropy on non-x86 via RNDR instruction and EFI RNG
protocol and add support for aarch64 hardware RNG.
- Prefer 64-bit rdrand/rdseed on x86-64 over 32-bit. Fixes potential
issues on certain unpatched Zen 5 systems.
2026-03-25 Mintsuki <mintsuki@protonmail.com>
*** Release 11.1.0 ***
Noteworthy changes compared to the previous release, 11.0.0:
New features:
- Walk back previous breaking change where base revisions 0 through 3
were dropped on x86.
- Walk back previous breaking change where base revisions < 6 were
dropped on loongarch64 and riscv64 (it remains in effect on aarch64).
Miscellaneous:
- Improve Limine protocol page tables layout to better coalesce
contiguous 4KiB entries into 2MiB/1GiB pages.
2026-03-23 Mintsuki <mintsuki@protonmail.com>
*** Release 11.0.0 ***
Noteworthy changes compared to the previous release, 10.8.5:
Breaking changes:
- Dropped support for base revisions 0, 1, 2, and 3 of the Limine boot
protocol for x86.
- Dropped support for all base revisions except 6 of the Limine boot
protocol for aarch64, loongarch64, and riscv64.
New features:
- Implement support for base revision 6 of the Limine boot protocol
(see specification for details).
- Added support for multiprocessor startup for the loongarch64 version
of the Limine boot protocol.
- Add a new feature to the Limine boot protocol,
`flanterm_fb_init_params`, that passes information to the booted
executable about the text terminal, as used by the bootloader, in a
Flanterm-compatible format.
- Add a new boot protocol, "efi_boot_entry", which allows rebooting
into other EFI boot menu entries by name.
- Support using a formatted path as the value for the `default_entry`
configuration option.
Bug fixes:
- Miscellaneous fixes relating to the Linux boot protocol on non-x86
ports.
- Improve feature to remember last booted entry by internally using the
same path format as `default_entry`.
Miscellaneous:
- LoongArch64 is no longer in an "experimental" state, but rather fully
supported.
- Updated the Flanterm library to 3.0.2.
2026-03-12 Mintsuki <mintsuki@protonmail.com>
*** Release 10.8.5 ***
Noteworthy changes compared to the previous release, 10.8.4:
Bug fixes:
- Update the Flanterm library for a hotfix to a regression introduced
in Flanterm 3.0.1 that would also cause misrenderings of the boot
menu's text colour for selected entries.
2026-03-11 Mintsuki <mintsuki@protonmail.com>
*** Release 10.8.4 ***
Noteworthy changes compared to the previous release, 10.8.3:
Bug fixes:
- Update the Flanterm library to 3.0.1 to fix a regression that would
cause misrenderings of the boot menu's text colour for selected
entries.
2026-03-07 Mintsuki <mintsuki@protonmail.com>
*** Release 10.8.3 ***
Noteworthy changes compared to the previous release, 10.8.2:
Bug fixes:
- Preserve LAPIC register state across x2APIC-to-xAPIC transition.
- SMP: Widen bsp_lapic_id to uint32_t to avoid x2APIC ID truncation.
- Linux boot protocol: Validate RISC-V kernel header before trusting
image_size for allocation.
- Host tool: Replace GCC/Clang __builtin overflow checks with portable
C99 helpers.
- Host tool: Fix ENDSWAP width mismatch in GPT-to-MBR partition entry
conversion on big-endian hosts.
- BIOS HDD Stage 1: Fix 64-bit LBA calculation and carry propagation in
disk read loop.
- BIOS HDD Stage 1: Fix stack imbalance on int 13h/AH=48h failure.
- Add NULL terminator check in config_get_entry header line scan.
- Guard editor window_size decrement to prevent underflow on long line
wrapping.
2026-02-26 Mintsuki <mintsuki@protonmail.com>
*** Release 10.8.2 ***
Noteworthy changes compared to the previous release, 10.8.1:
Bug fixes:
- Revert broken/pointless legacy PIC reinitialisation logic on flush
that accidentally made it into 10.8.1.
2026-02-26 Mintsuki <mintsuki@protonmail.com>
*** Release 10.8.1 ***
Noteworthy changes compared to the previous release, 10.8.0:
Bug fixes:
- Fix VT-d disable order to TE, IRE, QIE.
- Fix VT-d polling loop read order and remove polling timeout.
- SMP: Add xAPIC ICR delivery status checks to INIT-SIPI-SIPI sequence.
- Amend certain APIC-related issues of Limine boot protocol and
implement the corrected behaviour.
2026-02-22 Mintsuki <mintsuki@protonmail.com>
*** Release 10.8.0 ***
Noteworthy changes compared to the previous release, 10.7.0:
New features:
- Limine boot protocol: Implement base revision 5.
- Limine boot protocol: Implement x86-64 Keep IOMMU feature.
Bug fixes:
- Fix font autoscaling not resetting per display in multi-display
configurations.
- Fix undefined behaviour in memmove() due to direct pointer
comparisons.
- Skip GOP and VBE modes with invalid pitch values.
- GOP: Work around firmware reporting incorrect pitch via QueryMode()
by fetching from gop->Mode->Info after SetMode().
- GOP: Ensure SetMode() is called at least once per handle to work
around firmware not initialising state without that.
- Fall back to EFI/BIOS console instead of panicking on small
terminals.
Miscellaneous:
- Disable Intel VT-d and AMD-Vi IOMMUs before kernel entry by default
for the Limine, multiboot1, and multiboot2 protocols.
- Try to gracefully disable x2APIC before handoff for the Limine
(unless kernel asks for it), multiboot1, and multiboot2 protocols.
- Replace cycle-based delay() with wall time calibrated stall().
- Prefer physical memory allocations below 4 GiB on x86.
- Align ACPI table memory map entries to page size where safe.
- Undo several overzealous limits and bounds checks added in prior
releases.
- Updated limine-protocol subproject to latest revision.
2026-02-10 Mintsuki <mintsuki@protonmail.com>
*** Release 10.7.0 ***
Noteworthy changes compared to the previous release, 10.6.6:
New features:
- Multiboot2: Implement relocatable preference=2 (prefer highest
address).
- Multiboot2: Accept LOAD_BASE_ADDR and NETWORK info request tags.
- Multiboot2: Accept EFI system table and image handle info requests.
Bug fixes:
- Extensive hardening of the ELF and PE loaders with thorough bounds,
overflow, and alignment validation.
- Extensive hardening of the Multiboot and Multiboot2 protocol
implementations with thorough validation of header fields, tag sizes,
and relocation parameters.
- Linux boot protocol: Honour kernel_alignment field from the x86 boot
protocol header for kernel load address alignment, and init_size for
allocation sizing. Use image_size from the kernel header for non-x86
allocation.
- Fix several bugs in the physical memory manager's overlap detection,
sanitiser logic, and memory info reporting.
- SMP: Fix x86 AP temp stack pointer to pass top of allocation instead
of base. Fix several bugs in the AArch64 SMP trampoline and AP
enumeration paths. Skip APs with unrecognised PSCI method instead of
panicking.
- Host tool: Fix signature search algorithm to correctly handle partial
prefix overlaps. Bounds-check GPT partition entry offset arithmetic
for overflow. Guard secondary GPT nuke against alternate_lba
underflow.
- ACPI: Fall back to RSDT when XSDT is above 4 GiB on 32-bit.
- VMM: Preserve WC/FB cache attribute in x86 page table flags during
page splits.
Miscellaneous:
- SMP: Send two SIPIs per Intel SDM recommendation for AP startup.
- Use rdtime.d and CPUCFG for LoongArch64 performance timing.
- Use rdtime and time_base_frequency for RISC-V performance timing.
- Updated Flanterm subproject to latest revision.
- Miscellaneous bug fixes and improvements.
2026-02-05 Mintsuki <mintsuki@protonmail.com>
*** Release 10.6.6 ***
Noteworthy changes compared to the previous release, 10.6.5:
Bug fixes:
- Re-add a mistakenly removed check for EFI volume responsiveness. Lack
of this check would indirectly cause hangs due to EFI volumes being
indexed despite their non-responsiveness.
Miscellaneous:
- Replace suboptimal code to handle reads close to the end of a volume.
2026-02-04 Mintsuki <mintsuki@protonmail.com>
*** Release 10.6.5 ***
Noteworthy changes compared to the previous release, 10.6.4:
Bug fixes:
- Work around PicoEFI structure definition issue related to padding
that would cause volume_by_device_path() to always fail for
non-optical media.
- Fix issue that would cause unique sector detection on systems with 3+
collisions to fail and misreport unique sectors.
- Add extra layer of verification for unique sector matches to minimise
the chance of volume mismatches.
Miscellaneous:
- RISC-V: Implement Flanterm refresh path for SoCs not exposing Zicbom
in the device tree or ACPI (often the case with U-boot).
- Use volume_by_device_path() as primary disk_volume_from_efi_handle()
detection method.
- Lazily discover unique sectors only when the fallback requiring this
procedure is actually used.
2026-02-02 Mintsuki <mintsuki@protonmail.com>
*** Release 10.6.4 ***
Noteworthy changes compared to the previous release, 10.6.3:
Bug fixes:
- Strip out all code relying on disk writes from the codebase. This
gets rid of the (remote) possibility of disk corruption and the (even
more remote) possibility of firmware/flash corruption. This also
sorts out an issue on Apple Silicon where m1n1/U-boot appears to
leave the NVMe controller in an inconsistent state after write
operations are attempted.
2026-01-14 Mintsuki <mintsuki@protonmail.com>
*** Release 10.6.3 ***
Noteworthy changes compared to the previous release, 10.6.2:
Bug fixes:
- Fix an issue with the `limine` host tool where the files read by or
created by the `bios-install` command with the
`--uninstall-data-file=` flag were prefixed by `=` due to an
off-by-one error.
- Fix an issue with the `limine` host tool where the `--quiet` and
`--reset` flags could cause the next flag to be ignored due to an
off-by-one error.
- Fix an issue with the `limine` host tool that would allow a user to
provide a GPT BIOS boot partition to the `bios-install` command that
was 1 greater than the maximum number of partitions due to an
off-by-one error.
- Fix internal module path corruption in the Limine boot protocol code,
caused by a static buffer reuse bug.
- Add timeout for A20 address line initialisation in the keyboard
controller code path. Lack of this could cause hangs on certain older
"legacy-free" PCs.
- Fix a couple of minor memory leaks.
- Undo several overzealous "bug fixes" done since 10.5.0 for issues
that were impossible or highly unlikely to trigger in practice.
- Miscellaneous bug fixes.
2026-01-07 Mintsuki <mintsuki@protonmail.com>
*** Release 10.6.2 ***
Noteworthy changes compared to the previous release, 10.6.1:
Bug fixes:
- Fix a bug where a buffer holding a configuration file option's value
was erroneously overwritten. This affected x86 BIOS builds only, and
it would be triggered if the `serial_baudrate` configuration file
option was used.
2026-01-05 Mintsuki <mintsuki@protonmail.com>
*** Release 10.6.1 ***
Noteworthy changes compared to the previous release, 10.6.0:
Bug fixes:
- Fix an issue where there were no bound checks when pressing the
delete key in the menu entry editor, sometimes causing out-of-bounds
accesses.
- Add many checks for return values of disk-related functions that
could fail.
- Fix a typo in the physical memory manager code where a pointer was
checked instead of the value it was pointing to. This could have in
theory caused 0-length usable memory entries to appear in the memory
map.
- Add checks to avoid division by 0 if the user-specified baud rate is
0.
- Fix broken calculation in the fb_clear() function that caused severe
out-of-bounds writes when the bits-per-pixel were not 32 or 16.
- Fix potential unaligned memory accesses in the BLAKE2B code. This
could have caused issues on RISC architectures like aarch64 or
riscv64.
- Fix missing continues in the riscv ISA string initialisation logic.
This could have caused HARTs with invalid ISA strings to be used
anyways instead of being ignored.
- More minor bug fixes for bugs discovered during static analysis.
Miscellaneous:
- Use C versions of mem*() functions instead of assembly versions for
x86 and x86-64.
2025-12-28 Mintsuki <mintsuki@protonmail.com>
*** Release 10.6.0 ***
Noteworthy changes compared to the previous release, 10.5.1:
New features:
- ISO9660: Add support for large, multi-extent files.
Bug fixes:
- Unbreak BIOS booting from optical media with ISO9660 filesystems on
many platforms including QEMU. This was a regression introduced in
10.5.1.
- Fix an issue with large (>4GiB) physical memory allocations on 32-bit
platforms. Some values were truncated to size_t (aka uint32_t) in
many instances causing bugs.
- Fix a couple of memory leaks missed in 10.5.1.
- Add safeguard against the font file being too small for the expected
size. This avoids potential panics from the filesystem driver, and it
instead just prints a warning and falls back to using the default
font.
Miscellaneous:
- Update description of the `term_font_size` and `term_font_spacing`
configuration options in CONFIG.md.
2025-12-26 Mintsuki <mintsuki@protonmail.com>
*** Release 10.5.1 ***
Noteworthy changes compared to the previous release, 10.5.0:
Bug fixes:
- Many bug fixes throughout the codebase, mainly tackling hardening
(especially of filesystem drivers). Most issues were caught with
static analysis.
- Fixage of some memory leaks.
- Fixage of major issue that could have caused UEFI PXE to not work.
- Multiboot1: fix issue that would cause the information buffer to be
underallocated.
2025-12-11 Mintsuki <mintsuki@protonmail.com>
*** Release 10.5.0 ***
Noteworthy changes compared to the previous release, 10.4.0:
New features:
- Add new `interface_help_colour` global configuration file option to
allow changing the colour of "helper" messages in the interface.
- Add new `interface_rotation` global configuration option to allow
rotating the output interface be 0, 90, 180, or 270 degrees.
2025-11-30 Mintsuki <mintsuki@protonmail.com>
*** Release 10.4.0 ***
Noteworthy changes compared to the previous release, 10.3.2:
New features:
- Add new configuration file option "global_dtb" to allow overriding
the device tree used by Limine itself as well as for all boot entries
(unless overridden by entry-local "dtb_path" option).
Bug fixes:
- Flush entire I-Cache if it is not PIPT on aarch64.
- Fix use-after-free bug in riscv64 initialisation code related to
device tree handling.
Miscellaneous:
- Framebuffer-related caching improvements for riscv64 and aarch64.
This should fix a long standing issue where, on a lot of riscv64
boards, the Limine interface would look mangled due to missing cache
flushing.
- Prioritise using ACPI for riscv64 initialisation code if available
and if a DTB is not manually specified.
2025-11-23 Mintsuki <mintsuki@protonmail.com>
*** Release 10.3.2 ***
Noteworthy changes compared to the previous release, 10.3.1:
CI-related changes, otherwise, same as 10.3.1.
2025-11-23 Mintsuki <mintsuki@protonmail.com>
*** Release 10.3.1 ***
Noteworthy changes compared to the previous release, 10.3.0:
Bug fixes:
- Fix wrong virtual address related constants, for the loongarch64
port, that made Limine-protocol kernels fail to boot.
- Fix issue that caused the MBR ID in the Limine boot protocol
limine_file structure to always be 0.
2025-11-07 Mintsuki <mintsuki@protonmail.com>
*** Release 10.3.0 ***
Noteworthy changes compared to the previous release, 10.2.1:
**Special notes:**
Despite there being breaking changes in this release, no major version
bump is done; this is because the changes are minor enough, there are
no big new features, and version 10.x was not released long enough ago.
This is technically in violation of Semantic Versioning, but considered
to be an acceptable exception.
Breaking changes:
- Change default paths and default path ordering for configuration file
search. Mainly, search first for a configuration file in the same
directory as the EFI application file of Limine, on EFI ports.
- Change default path ordering for stage 3 file search on BIOS ports.
- No longer install the limine.h header file on the host.
- No longer install PROTOCOL.md (Limine Boot Protocol specification) on
the host.
Bug fixes:
- Fix an issue where code assumed that the RSDT address in the RSDP was
always non-NULL, which could cause crashes or hangs when using base
revision 4 of the Limine Boot Protocol.
2025-10-29 Mintsuki <mintsuki@protonmail.com>
*** Release 10.2.1 ***
Noteworthy changes compared to the previous release, 10.2.0:
Bug fixes:
- Add workaround for skipping SPI flash devices exposed as EFI volumes.
This fixes the hanging issues on many ARM laptops, without breaking
U-Boot unlike the previous workaround.
2025-10-26 Mintsuki <mintsuki@protonmail.com>
*** Release 10.2.0 ***
Noteworthy changes compared to the previous release, 10.1.1:
New features:
- Implement base revision 4 of the Limine boot protocol as per
documentation (read documentation for specific details).
Bug fixes:
- "Fix" multiboot1 framebuffer structure to match GRUB instead of the
multiboot1 specification.
2025-10-13 Mintsuki <mintsuki@protonmail.com>
*** Release 10.1.1 ***
Noteworthy changes compared to the previous release, 10.1.0:
Bug fixes:
- DTBs: Always reallocate DTBs to bootloader-reclaimable memory. This
is to prevent pointers to EFI/reserved memory from being leaked to
Limine protocol executables, which is against said protocol, which
mandates that DTBs have to be in bootloader-reclaimable memory.
2025-10-05 Mintsuki <mintsuki@protonmail.com>
*** Release 10.1.0 ***
Noteworthy changes compared to the previous release, 10.0.1:
New features:
- Expand safety checks of the `limine bios-install` command and replace
the `--force-mbr` flag with just `--force`.
- Add autodetection of the BIOS boot partition if no explicit partition
index is passed to `limine bios-install`.
Bug fixes:
- Only use ASCII characters for terminal output when graphical output
fails to initialise and the EFI standard output console is used
instead.
Miscellaneous:
- Remove left-over logic that was meant to supplement the removed GPT
embedding feature.
- Remove workaround to allow building the RISC-V port with LLVM <=16.
- Update a bunch of output messages from the `limine` host tool.
2025-09-21 Mintsuki <mintsuki@protonmail.com>
*** Release 10.0.1 ***
Noteworthy changes compared to the previous release, 10.0.0:
Bug fixes:
- Fix a potential use-after-free issue when flushing interrupts on x86
UEFI systems.
- Prefer using the 32-bit Linux protocol unless it is strictly
necessary to use the 64-bit protocol due to allocation constraints.
This is due to reports of the 32-bit protocol being more reliable
on certain rare systems where the 64-bit protocol crashes or hangs.
2025-09-15 Mintsuki <mintsuki@protonmail.com>
*** Release 10.0.0 ***
Noteworthy changes compared to the previous release, 9.6.7:
Breaking changes:
- GPT embedding is no longer supported as a deployment method for
GPT-with-BIOS configurations. The rationale for this being that it is
far too fragile, especially with regards to growing or shrinking disk
images, and it may cause certain machines to refuse to boot such
setups as they are technically in violation of the GPT specification.
- The default baud rate for serial I/O on BIOS systems is now 115200,
instead of 9600.
- BIOS (chainloading) boot menu entries are now hidden when booting in
UEFI mode, and EFI (chainloading) entries are hidden when booting in
BIOS mode.
- For the Limine boot protocol, for relocatable executables, KASLR now
defaults to being disabled. The rationale for this being that KASLR
is a somewhat niche and fairly bypassable security technique, which
can cause headaches for kernels not wanting to support it, and make
troubleshooting harder.
- For the Limine boot protocol, for PE format kernels, do not discard
discardable sections, as code put to a discardable section like INIT
might be intended to only be discarded after early kernel init, not
before the kernel is even loaded.
2025-09-13 Mintsuki <mintsuki@protonmail.com>
*** Release 9.6.7 ***
Noteworthy changes compared to the previous release, 9.6.6:
Bug fixes:
- Relax EFI handle validation before running fallback volume detection.
This further addresses issues caused by 9.5.4.
2025-09-06 Mintsuki <mintsuki@protonmail.com>
*** Release 9.6.6 ***
Noteworthy changes compared to the previous release, 9.6.5:
Bug fixes:
- Fix regression introduced by 9.5.4 that caused Limine to fail to boot
with U-Boot.
2025-08-30 Mintsuki <mintsuki@protonmail.com>
*** Release 9.6.3 through 9.6.5 ***
Noteworthy changes compared to the previous release, 9.6.2:
These are special hotfix releases attempting to address issues with the
Forgejo release workflow after the migration to Codeberg.
Other than that, they have no differences compared to 9.6.2.
2025-08-30 Mintsuki <mintsuki@protonmail.com>
*** Release 9.6.2 ***
Noteworthy changes compared to the previous release, 9.6.1:
Miscellaneous:
- The Limine project has moved its home to Codeberg.
- Nyu-EFI was rebranded to PicoEFI.
- Minor build system improvements and subproject bumps.
2025-08-16 Mintsuki <mintsuki@protonmail.com>
*** Release 9.6.1 ***
Noteworthy changes compared to the previous release, 9.6.0:
Bug fixes:
- EFI chainloading: Make EFI device path of loaded image relative to
the loaded image device handle. This now complies with the EFI
specification, and, amongst others, it fixes chainloading Shim.
Miscellaneous:
- Miscellaneous build system changes and improvements.
- Do not disable linker relaxations for LoongArch64.
- `limine` host tool: Add check to ensure that a provided GPT BIOS
partition is at least 32KiB in size.
2025-08-07 Mintsuki <mintsuki@protonmail.com>
*** Release 9.6.0 ***
Noteworthy changes compared to the previous release, 9.5.4:
Miscellaneous:
- Get rid of the fragile and messy "freestanding-toolchain" build
helper tool. This allows for a simpler and more predictable way of
selecting the target toolchain components via ./configure.
2025-08-06 Mintsuki <mintsuki@protonmail.com>
*** Release 9.5.4 ***
Noteworthy changes compared to the previous release, 9.5.3:
Bug fixes:
- Exclude non-PCI devices from the volume discovery process on UEFI.
This is because on (especially, but not limited to) Snapdragon X
systems, firmware/flash devices, which are non-PCI, are exposed as
block I/O volumes too. This skips them, which makes the bootloader
more reliable and avoids long hangs at boot.
- Miscellaneous changes and fixes to the fallback volume discovery
path, to increase reliability and reduce the chance of accidental
damage or data loss. See GitHub issue #525.
- Minor assembly improvement that fixed Limine not building with old
NASM.
2025-08-04 Mintsuki <mintsuki@protonmail.com>
*** Release 9.5.3 ***
Noteworthy changes compared to the previous release, 9.5.2:
Bug fixes:
- Miscellaneous build system fixes, mainly to sort out possible issues
introduced by 9.5.2.
2025-08-01 Mintsuki <mintsuki@protonmail.com>
*** Release 9.5.2 ***
Noteworthy changes compared to the previous release, 9.5.1:
Bug fixes:
- Revert change that moved to `nm` from `objdump` for generating the
symbol table, as that broke section-specific symbol dumps and caused
BIOS stage 2 to be bloated with the full symbol table.
Miscellaneous:
- Miscellaneous build system updates and improvements.
2025-07-29 Mintsuki <mintsuki@protonmail.com>
*** Release 9.5.1 ***
Noteworthy changes compared to the previous release, 9.5.0:
Bug fixes:
- Unbreak build using ld.gold as linker.
Miscellaneous:
- Miscellaneous build system updates and improvements.
2025-07-14 Mintsuki <mintsuki@protonmail.com>
*** Release 9.5.0 ***
Noteworthy changes compared to the previous release, 9.4.0:
New features:
- protocols/efi: Hybridise loading mechanism with old memory-device
based approach. This may work around the redundant requirement that
EFI applications be signed, and it may fix certain issues created
when the chainload mechanism was changed in 9.0.1.
Bug fixes:
- `limine` host tool: Fix some mismatched printf format specifiers.
Miscellaneous:
- Miscellaneous build system updates and improvements.
- Many dependencies had their commits bumped, some new dependencies
were added (limine-protocol), some were changed (libfdt moved to a
different repository that only includes BSD-2-Clause licensable
code).
2025-07-10 Mintsuki <mintsuki@protonmail.com>
*** Release 9.4.0 ***
Noteworthy changes compared to the previous release, 9.3.4:
New features:
- BLI: Implement `LoaderTimeInitUSec` and `LoaderTimeExecUSec`.
These are variables used by `systemd-analyze` and are useful for boot
performance metrics.
- Limine boot protocol: Add bootloader performance feature.
This feature provides the same information as the new Boot Loader
Interface variables, but encoded in a nicer way for Limine protocol
executables.
Miscellaneous:
- Use `nm` instead of `objdump` for generating the symbol table, which
results in a better, more consistent output, especially for non-x86
architectures.
- Miscellaneous build system updates and improvements.
2025-06-21 Mintsuki <mintsuki@protonmail.com>
*** Release 9.3.4 ***
Noteworthy changes compared to the previous release, 9.3.3:
Bug fixes:
- ELF: Make an optimisation related to skipping scanning of .bss
regions for finding of structures in the loaded image (for Limine
protocol structures or otherwise) less overeager as that could break
in certain cases.
- SMP: On x86, ensure that the value of IA32_APIC_BASE is the same on
the APs as it is on the BSP.
- PMM: Mark EfiLoader{Code,Data} regions as bootloader reclaimable
rather than reserved memory, as for certain protocols, like the
Limine boot protocol, reserved memory is unmapped at runtime, while
these regions may contain hot data that is still needed, like Limine
bootloader memory stacks.
2025-05-27 Mintsuki <mintsuki@protonmail.com>
*** Release 9.3.3 ***
Noteworthy changes compared to the previous release, 9.3.2:
Bug fixes:
- Reinstate the limit for scanned drives to 0xf0. This is due to a
report of int 13h hangs when used on drives >=0xf0.
2025-05-19 Mintsuki <mintsuki@protonmail.com>
*** Release 9.3.2 ***
Noteworthy changes compared to the previous release, 9.3.1:
Bug fixes:
- PMM: Mark EfiBootServices{Code,Data} memory regions as bootloader
reclaimable instead of usable free memory as apparently the ACPI
and UEFI specifications make no guarantees about useful structures
being left in these areas after leaving boot services (namely BGRT
and ESRT).
2025-05-15 Mintsuki <mintsuki@protonmail.com>
*** Release 9.3.1 ***
Noteworthy changes compared to the previous release, 9.3.0:
Bug fixes:
- Remove .git directory mistakenly left over inside release tarballs.
- Fix bug that would lead to panics when booting Linux protocol kernels
without modules on x86.
2025-05-07 Mintsuki <mintsuki@protonmail.com>
*** Release 9.3.0 ***
Noteworthy changes compared to the previous release, 9.2.3:
New features:
- Add optional support for the 64-bit x86-64 boot protocol for Linux.
This is supported on the UEFI/x86-64 port of Limine, and it is
preferred over the 32-bit boot protocol if supported by the given
kernel. This helps with loading larger modules on certain systems
with low amounts of low memory which would otherwise panic.
Bug fixes:
- Fix away some ungraceful handling of out-of-memory situations when
loading files using the Linux boot protocol. Make into panics instead
of crashes or hangs.
Miscellaneous:
- Improve performance and memory usage of loading modules for the Linux
boot protocol.
2025-04-12 Mintsuki <mintsuki@protonmail.com>
*** Release 9.2.3 ***
Noteworthy changes compared to the previous release, 9.2.2:
Bug fixes:
- Fix issues introduced by the stb_image fix introduced in 9.2.1 which
could cause hangs or crashes when certain wallpaper images are used.
Miscellaneous:
- Update cc-runtime to new, integer-only, packed version.
2025-03-31 Mintsuki <mintsuki@protonmail.com>
*** Release 9.2.2 ***
Noteworthy changes compared to the previous release, 9.2.1:
Bug fixes:
- Two quick bug fixes and workarounds in order to make multiboot2 more
resilient when booting specific kernels such as Xen.
- Avoid mistakenly allocating more memory than necessary when creating
the volume index.
2025-03-25 Mintsuki <mintsuki@protonmail.com>
*** Release 9.2.1 ***
Noteworthy changes compared to the previous release, 9.2.0:
Bug fixes:
- Fix potential buffer overflow bug with our stb_image support code.
Miscellaneous:
- Dynamically allocate volume index instead of relying on a hard coded
limit and a fixed allocation. This fixes potential panics or failure
to access volumes on systems with a lot of drives/partitions.
- Limine boot protocol/ELF: Print the name of unresolved symbols on
panic.
2025-03-16 Mintsuki <mintsuki@protonmail.com>
*** Release 9.2.0 ***
Noteworthy changes compared to the previous release, 9.1.3:
New features:
- Introduce initial support for the Boot Loader Interface
specification.
- Add /EFI/limine/limine.conf to the paths tried for config file when
using EFI.
Miscellaneous:
- Do not try config path /EFI/BOOT/limine.conf unless booted using EFI.
2025-03-13 Mintsuki <mintsuki@protonmail.com>
*** Release 9.1.3 ***
Noteworthy changes compared to the previous release, 9.1.2:
Bug fixes:
- Loongarch64: Fix alignment of TLB-refill handler.
Miscellaneous:
- Many fixes and improvements to documentation, installed or otherwise,
including further licensing clarifications.
2025-03-11 Mintsuki <mintsuki@protonmail.com>
*** Release 9.1.2 ***
Noteworthy changes compared to the previous release, 9.1.1:
This release does not change anything code-wise, but rather it focuses on
sorting out the licensing mess of Nyu-EFI, by updating it to the latest
revision which tackles this problem, and furthermore it improves the
COPYING file to be more explicit about submodules and their licensing.
2025-03-10 Mintsuki <mintsuki@protonmail.com>
*** Release 9.1.1 ***
Noteworthy changes compared to the previous release, 9.1.0:
Bug fixes:
- Do not use ConOut for serial output exclusively unless serial is
verified to be present to the best of our abilities. This fixes an
issue where if `serial=yes` is used on some machines (including
several Apple Mac models) a black screen will be shown instead of the
Limine menu.
Miscellaneous:
- Begin signing tarballs and (most) commits.
2025-03-07 Mintsuki <mintsuki@protonmail.com>
*** Release 9.1.0 ***
Noteworthy changes compared to the previous release, 9.0.1:
New features:
- `limine` host tool: When using the `bios-install` command on an
ISOHYBRID with a GPT, automatically convert it to MBR, if possible
and unless explicitly disabled, in order to enhance compatibility of
said ISOHYBRIDs with many systems (of note, Lenovo Thinkpads).
2025-02-25 Mintsuki <mintsuki@protonmail.com>
*** Release 9.0.1 ***
Noteworthy changes compared to the previous release, 9.0.0:
Miscellaneous:
- EFI chainload: Replace old chainload method with one that is more
friendly to other EFI bootloaders such as rEFInd.
- Limine boot protocol/PE: Map previously unmapped PE image headers.
2025-02-17 Mintsuki <mintsuki@protonmail.com>
*** Release 9.0.0 ***
Noteworthy changes compared to the previous release, 8.7.0:
Breaking changes:
- Support for the ext2/3/4 filesystems has been once again dropped due
to lack of maintenance and to avoid extra potential attack surface
during Secure Boot Limine usage.
- Drop support for the legacy config format (limine.cfg) and only keep
around the new one (limine.conf) introduced with Limine 8.x.
- Drop support for the (barely worked and seldom used) `chainload_next`
protocol.
New features:
- Limine boot protocol: Introduce API revision 3, for the `limine.h`
file with several renamed identifiers for better clarity.
- Limine boot protocol: Specify and implement a new, convenience,