:: limine / ChangeLog 78.9 KB raw

1
2026-05-24  Mintsuki  <mintsuki@protonmail.com>
2
3
    *** Release 12.3.1 ***
4
5
    Noteworthy changes compared to the previous release, 12.3.0:
6
7
    Bug fixes:
8
        - Fix x86(_64) Linux protocol loader miscompliance that could cause
9
          boot failures on some setups showing an "invalid magic at start of
10
          compressed archive" error.
11
12
    Miscellaneous:
13
        - Shrink the size of `limine-uefi-cd.bin` to avoid wasting space when
14
          unnecessary.
15
16
2026-05-18  Mintsuki  <mintsuki@protonmail.com>
17
18
    *** Release 12.3.0 ***
19
20
    Noteworthy changes compared to the previous release, 12.2.0:
21
22
    New features:
23
        - Add support for fractional timeout values.
24
25
    Miscellaneous:
26
        - Significantly improve framebuffer performance on some machines by
27
          using the Write Combining caching mode via PAT and page tables on
28
          x86-64/UEFI instead of MTRRs.
29
        - Improve reliability of the MTRR framebuffer Write Combining path on
30
          IA-32 (UEFI and BIOS).
31
32
2026-05-07  Mintsuki  <mintsuki@protonmail.com>
33
34
    *** Release 12.2.0 ***
35
36
    Noteworthy changes compared to the previous release, 12.1.0:
37
38
    New features:
39
        - Add a hotkey to launch the UEFI Shell from the boot menu.
40
41
    Bug fixes:
42
        - Free UEFI buffers with their original allocation size after
43
          LocateHandle to avoid pool corruption on strict firmwares.
44
        - Reallocate the UEFI memory map buffer if it grows during the
45
          ExitBootServices retry loop.
46
        - Drop a redundant IER write in the serial driver that clobbered DLM at
47
          low baud rates.
48
        - Limine boot protocol: Allow trimming reserved entries that overlap
49
          framebuffer pages.
50
        - Harden the ELF loader against crafted RELR tables that overflow the
51
          relocation count on 32-bit builds (found via fuzzing).
52
        - Reject PE images with `SectionAlignment` = 0 (found via fuzzing).
53
        - Miscellaneous bug fixes.
54
55
    Miscellaneous:
56
        - Update pdgzip subproject. Improves performance by ~25%.
57
58
2026-05-01  Mintsuki  <mintsuki@protonmail.com>
59
60
    *** Release 12.1.0 ***
61
62
    Noteworthy changes compared to the previous release, 12.0.2:
63
64
    New features:
65
        - Implement Measured Boot support.
66
        - Limine boot protocol: Expose the TCG2 event log to the kernel via a
67
          new "TPM Event Log" feature.
68
        - Linux boot protocol: Publish the TCG2 event log to the kernel via the
69
          LINUX_EFI_TPM_EVENT_LOG configuration table.
70
        - Linux boot protocol: Publish EFI RNG entropy to the kernel via the
71
          LINUX_EFI_RANDOM_SEED configuration table.
72
        - Linux boot protocol: Report UEFI Secure Boot state to the kernel on
73
          x86.
74
        - Re-introduce logic to enable WC on the framebuffer using x86 MTRRs
75
          where the firmware leaves it as UC.
76
        - Add support for the QOI image format for wallpapers and other image
77
          resources.
78
        - Add `IF_FW_TYPE` and `IF_ARCH` menu entry options to hide entries
79
          based on firmware type (BIOS/UEFI) or processor architecture.
80
81
    Bug fixes:
82
        - Cap menu nesting depth to prevent stack exhaustion on crafted
83
          configuration files.
84
        - Validate user-supplied DTB before invoking libfdt to avoid
85
          out-of-bounds accesses in the FDT helpers.
86
        - Reject ELF images with no non-empty PT_LOAD segments in the Multiboot
87
          elsewhere loader, avoiding bogus min/max range arithmetic.
88
        - Reject Multiboot address-tag ranges whose address or file-offset
89
          arithmetic overflows before the copy.
90
        - Fix a TOCTOU on UEFI PXE/TFTP reads by enforcing the byte count
91
          returned by the size query against the actual transfer size.
92
        - Miscellaneous bug fixes.
93
94
2026-04-26  Mintsuki  <mintsuki@protonmail.com>
95
96
    *** Release 12.0.2 ***
97
98
    Noteworthy changes compared to the previous release, 12.0.1:
99
100
    Bug fixes:
101
        - Make centering bias consistently left and up across all UI elements.
102
103
    Miscellaneous;
104
        - Release binary tarballs without version suffixes.
105
106
2026-04-25  Mintsuki  <mintsuki@protonmail.com>
107
108
    *** Release 12.0.1 ***
109
110
    Same as 12.0.0, but re-released due to a botched binary release whose
111
    fixed assets that cannot be amended into 12.0.0 afterwards due to release
112
    immutability.
113
114
2026-04-25  Mintsuki  <mintsuki@protonmail.com>
115
116
    *** Release 12.0.0 ***
117
118
    Noteworthy changes compared to the previous release, 11.4.1:
119
120
    Breaking changes:
121
        - Re-introduce hash verification enforcement for files loaded under
122
          UEFI Secure Boot (originally shipped in 11.2.0 and reverted in 11.2.1
123
          pending the next major version bump). When Secure Boot is active and
124
          a config checksum is enrolled, Limine now requires BLAKE2B hashes on
125
          all loaded file paths (with EFI chainloads exempted, as they rely on
126
          firmware-side Secure Boot verification, and wallpaper and font files
127
          silently skipped on a missing hash), unconditionally disables the
128
          config editor, and forces `hash_mismatch_panic` to `yes`. Enrolling
129
          a config checksum is the explicit opt-in to this hardening; without
130
          one, Secure Boot enforcement is not applied.
131
        - The `interface_branding_colour` and `interface_help_colour` config
132
          options now take an `RRGGBB` hexadecimal value instead of a 0-7
133
          colour index. A new `interface_help_colour_bright` option has been
134
          added to control the brighter accent colour used for the auto-boot
135
          countdown digit.
136
137
    New features:
138
        - Re-introduce transparent gzip decompression for files, using a port
139
          of embeddable pdgzip (CC0) by Kamila Szewczyk that provides
140
          significantly better decode performance than the previous tinf-based
141
          implementation.
142
        - Major overhaul of the boot menu interface, including consistent
143
          left-biased centering of all UI elements, ellipsis truncation of long
144
          branding strings, shortened countdown text, and the removal of entry
145
          name length limits.
146
147
    Bug fixes:
148
        - Fix NULL dereference in `gterm_init` cached path.
149
        - Fix NULL dereference in the menu when `default_entry` is out of range
150
          with `timeout=0`.
151
        - Add a trailing fence after the `cbo.flush` loop in the RISC-V Zicbom
152
          framebuffer flush path.
153
        - Miscellaneous bug fixes.
154
155
    Miscellaneous:
156
        - Replace upstream `stb_image` with a hardened version.
157
        - Bring back hand-written assembly versions of the x86-64 and IA-32
158
          `mem*()` routines to mitigate performance regressions versus the C
159
          implementations.
160
        - Updated the Flanterm library to 3.1.1.
161
        - Ship binary releases as tarballs in release assets, replacing the
162
          previous separate git branch.
163
164
2026-04-20  Mintsuki  <mintsuki@protonmail.com>
165
166
    *** Release 11.4.1 ***
167
168
    Noteworthy changes compared to the previous release, 11.4.0:
169
170
    Bug fixes:
171
        - Fix an issue with the limlz compressor/decompressor that could cause
172
          spurious failures ("limine integrity error") on the legacy x86 BIOS
173
          port.
174
        - Portability fixes for the `limlzpack` build-time tool (mainly fixing
175
          it on big-endian build systems).
176
        - Miscellaneous bug fixes.
177
178
2026-04-19  Mintsuki  <mintsuki@protonmail.com>
179
180
    *** Release 11.4.0 ***
181
182
    Noteworthy changes compared to the previous release, 11.3.1:
183
184
    New features:
185
        - Revamped BIOS early-stage decompressor, replacing gzip (tinf) with a
186
          simpler, smaller, faster, and more auditable compressor/decompressor
187
          using a fixed-width LZ77 encoding purpose-tailored for x86 code mixed
188
          with data by Kamila Szewczyk.
189
        - Implement timeout and entry control of the Boot Loader Interface
190
          (BLI).
191
        - Make `graphics: no` functional on UEFI ports as well.
192
193
    Bug fixes:
194
        - Revert the "Call Apple set_os protocol on UEFI" change from 11.3.1 as
195
          that seems to have been causing issues relating to input devices on
196
          certain other Apple systems, pending investigation and usefulness
197
          assessment.
198
        - Many assorted bug fixes and improvements.
199
200
2026-04-09  Mintsuki  <mintsuki@protonmail.com>
201
202
    *** Release 11.3.1 ***
203
204
    (Note: 11.3.0 was skipped due to GHA migration issues)
205
206
    Noteworthy changes compared to the previous release, 11.2.1:
207
208
    New features:
209
        - Implement "TSC Frequency" feature of the Limine boot protocol.
210
        - Add PIT-based TSC calibration for BIOS.
211
        - Do not clear framebuffer in quiet mode.
212
213
    Bug fixes:
214
        - Make "Keep IOMMU" Limine boot protocol feature x86-64-only.
215
        - Do not clear framebuffer on modeset as Flanterm immediately repaints
216
          it, wasting time.
217
        - Allow menu recovery on overflow panics in the multiboot protocols.
218
        - Significantly improve TSC calibration accuracy.
219
220
    Miscellaneous:
221
        - Do not force-start uninitialised GOP outputs if a framebuffer is
222
          already available, for compatibility with quirky firmwares (Apple
223
          Macs).
224
        - Call Apple set_os protocol on UEFI to try to keep iGPU alive on
225
          dual-GPU Apple Macs.
226
        - Migrated to GitHub alongside with several subprojects.
227
        - Build limine.exe using i486 MinGW from osdev0/mingw-binary-builds
228
          in binary builds for better compatibility.
229
230
2026-04-04  Mintsuki  <mintsuki@protonmail.com>
231
232
    *** Release 11.2.1 ***
233
234
    Noteworthy changes compared to the previous release, 11.2.0:
235
236
    Bug fixes:
237
        - Revert Secure Boot enforcement policy for configuration file hash
238
          and other file hashes. This broke semantic versioning, so the fair
239
          thing to do is to revert it and move on to 12.x afterwards.
240
        - Add workaround for VMware optical drive detection on BIOS.
241
242
2026-04-02  Mintsuki  <mintsuki@protonmail.com>
243
244
    *** Release 11.2.0 ***
245
246
    Noteworthy changes compared to the previous release, 11.1.0:
247
248
    New features:
249
        - Enforce hash verification of loaded files when UEFI Secure Boot is
250
          active. When Secure Boot is detected, Limine requires an enrolled
251
          config checksum, BLAKE2B hashes on security-critical file paths,
252
          disables the config editor, and forces hash_mismatch_panic to yes.
253
        - Linux boot protocol: Load and concatenate all modules on non-x86, not
254
          just the first.
255
        - ISO 9660: Handle Rock Ridge NM continuation entries.
256
257
    Bug fixes:
258
        - Use -malign-double for IA-32 UEFI builds to match UEFI specification
259
          struct alignment.
260
        - Fix unique sector pool being clobbered by find_unique_sectors().
261
        - Revert GOP workaround that called SetMode() on every handle to avoid
262
          clearing the screen where unnecessary/ugly.
263
        - Do not call ClearScreen() on EFI fallback terminal init for the same
264
          reason.
265
        - Miscellaneous fixes for low severity bugs found with static analysis.
266
267
    Miscellaneous:
268
        - Re-enable decompressor bounds checks, CRC32, and length validation.
269
        - Mix hardware entropy on non-x86 via RNDR instruction and EFI RNG
270
          protocol and add support for aarch64 hardware RNG.
271
        - Prefer 64-bit rdrand/rdseed on x86-64 over 32-bit. Fixes potential
272
          issues on certain unpatched Zen 5 systems.
273
274
2026-03-25  Mintsuki  <mintsuki@protonmail.com>
275
276
    *** Release 11.1.0 ***
277
278
    Noteworthy changes compared to the previous release, 11.0.0:
279
280
    New features:
281
        - Walk back previous breaking change where base revisions 0 through 3
282
          were dropped on x86.
283
        - Walk back previous breaking change where base revisions < 6 were
284
          dropped on loongarch64 and riscv64 (it remains in effect on aarch64).
285
286
    Miscellaneous:
287
        - Improve Limine protocol page tables layout to better coalesce
288
          contiguous 4KiB entries into 2MiB/1GiB pages.
289
290
2026-03-23  Mintsuki  <mintsuki@protonmail.com>
291
292
    *** Release 11.0.0 ***
293
294
    Noteworthy changes compared to the previous release, 10.8.5:
295
296
    Breaking changes:
297
        - Dropped support for base revisions 0, 1, 2, and 3 of the Limine boot
298
          protocol for x86.
299
        - Dropped support for all base revisions except 6 of the Limine boot
300
          protocol for aarch64, loongarch64, and riscv64.
301
302
    New features:
303
        - Implement support for base revision 6 of the Limine boot protocol
304
          (see specification for details).
305
        - Added support for multiprocessor startup for the loongarch64 version
306
          of the Limine boot protocol.
307
        - Add a new feature to the Limine boot protocol,
308
          `flanterm_fb_init_params`, that passes information to the booted
309
          executable about the text terminal, as used by the bootloader, in a
310
          Flanterm-compatible format.
311
        - Add a new boot protocol, "efi_boot_entry", which allows rebooting
312
          into other EFI boot menu entries by name.
313
        - Support using a formatted path as the value for the `default_entry`
314
          configuration option.
315
316
    Bug fixes:
317
        - Miscellaneous fixes relating to the Linux boot protocol on non-x86
318
          ports.
319
        - Improve feature to remember last booted entry by internally using the
320
          same path format as `default_entry`.
321
322
    Miscellaneous:
323
        - LoongArch64 is no longer in an "experimental" state, but rather fully
324
          supported.
325
        - Updated the Flanterm library to 3.0.2.
326
327
2026-03-12  Mintsuki  <mintsuki@protonmail.com>
328
329
    *** Release 10.8.5 ***
330
331
    Noteworthy changes compared to the previous release, 10.8.4:
332
333
    Bug fixes:
334
        - Update the Flanterm library for a hotfix to a regression introduced
335
          in Flanterm 3.0.1 that would also cause misrenderings of the boot
336
          menu's text colour for selected entries.
337
338
2026-03-11  Mintsuki  <mintsuki@protonmail.com>
339
340
    *** Release 10.8.4 ***
341
342
    Noteworthy changes compared to the previous release, 10.8.3:
343
344
    Bug fixes:
345
        - Update the Flanterm library to 3.0.1 to fix a regression that would
346
          cause misrenderings of the boot menu's text colour for selected
347
          entries.
348
349
2026-03-07  Mintsuki  <mintsuki@protonmail.com>
350
351
    *** Release 10.8.3 ***
352
353
    Noteworthy changes compared to the previous release, 10.8.2:
354
355
    Bug fixes:
356
        - Preserve LAPIC register state across x2APIC-to-xAPIC transition.
357
        - SMP: Widen bsp_lapic_id to uint32_t to avoid x2APIC ID truncation.
358
        - Linux boot protocol: Validate RISC-V kernel header before trusting
359
          image_size for allocation.
360
        - Host tool: Replace GCC/Clang __builtin overflow checks with portable
361
          C99 helpers.
362
        - Host tool: Fix ENDSWAP width mismatch in GPT-to-MBR partition entry
363
          conversion on big-endian hosts.
364
        - BIOS HDD Stage 1: Fix 64-bit LBA calculation and carry propagation in
365
          disk read loop.
366
        - BIOS HDD Stage 1: Fix stack imbalance on int 13h/AH=48h failure.
367
        - Add NULL terminator check in config_get_entry header line scan.
368
        - Guard editor window_size decrement to prevent underflow on long line
369
          wrapping.
370
371
2026-02-26   Mintsuki  <mintsuki@protonmail.com>
372
373
    *** Release 10.8.2 ***
374
375
    Noteworthy changes compared to the previous release, 10.8.1:
376
377
    Bug fixes:
378
        - Revert broken/pointless legacy PIC reinitialisation logic on flush
379
          that accidentally made it into 10.8.1.
380
381
2026-02-26  Mintsuki  <mintsuki@protonmail.com>
382
383
    *** Release 10.8.1 ***
384
385
    Noteworthy changes compared to the previous release, 10.8.0:
386
387
    Bug fixes:
388
        - Fix VT-d disable order to TE, IRE, QIE.
389
        - Fix VT-d polling loop read order and remove polling timeout.
390
        - SMP: Add xAPIC ICR delivery status checks to INIT-SIPI-SIPI sequence.
391
        - Amend certain APIC-related issues of Limine boot protocol and
392
          implement the corrected behaviour.
393
394
2026-02-22  Mintsuki  <mintsuki@protonmail.com>
395
396
    *** Release 10.8.0 ***
397
398
    Noteworthy changes compared to the previous release, 10.7.0:
399
400
    New features:
401
        - Limine boot protocol: Implement base revision 5.
402
        - Limine boot protocol: Implement x86-64 Keep IOMMU feature.
403
404
    Bug fixes:
405
        - Fix font autoscaling not resetting per display in multi-display
406
          configurations.
407
        - Fix undefined behaviour in memmove() due to direct pointer
408
          comparisons.
409
        - Skip GOP and VBE modes with invalid pitch values.
410
        - GOP: Work around firmware reporting incorrect pitch via QueryMode()
411
          by fetching from gop->Mode->Info after SetMode().
412
        - GOP: Ensure SetMode() is called at least once per handle to work
413
          around firmware not initialising state without that.
414
        - Fall back to EFI/BIOS console instead of panicking on small
415
          terminals.
416
417
    Miscellaneous:
418
        - Disable Intel VT-d and AMD-Vi IOMMUs before kernel entry by default
419
          for the Limine, multiboot1, and multiboot2 protocols.
420
        - Try to gracefully disable x2APIC before handoff for the Limine
421
          (unless kernel asks for it), multiboot1, and multiboot2 protocols.
422
        - Replace cycle-based delay() with wall time calibrated stall().
423
        - Prefer physical memory allocations below 4 GiB on x86.
424
        - Align ACPI table memory map entries to page size where safe.
425
        - Undo several overzealous limits and bounds checks added in prior
426
          releases.
427
        - Updated limine-protocol subproject to latest revision.
428
429
2026-02-10  Mintsuki  <mintsuki@protonmail.com>
430
431
    *** Release 10.7.0 ***
432
433
    Noteworthy changes compared to the previous release, 10.6.6:
434
435
    New features:
436
        - Multiboot2: Implement relocatable preference=2 (prefer highest
437
          address).
438
        - Multiboot2: Accept LOAD_BASE_ADDR and NETWORK info request tags.
439
        - Multiboot2: Accept EFI system table and image handle info requests.
440
441
    Bug fixes:
442
        - Extensive hardening of the ELF and PE loaders with thorough bounds,
443
          overflow, and alignment validation.
444
        - Extensive hardening of the Multiboot and Multiboot2 protocol
445
          implementations with thorough validation of header fields, tag sizes,
446
          and relocation parameters.
447
        - Linux boot protocol: Honour kernel_alignment field from the x86 boot
448
          protocol header for kernel load address alignment, and init_size for
449
          allocation sizing. Use image_size from the kernel header for non-x86
450
          allocation.
451
        - Fix several bugs in the physical memory manager's overlap detection,
452
          sanitiser logic, and memory info reporting.
453
        - SMP: Fix x86 AP temp stack pointer to pass top of allocation instead
454
          of base. Fix several bugs in the AArch64 SMP trampoline and AP
455
          enumeration paths. Skip APs with unrecognised PSCI method instead of
456
          panicking.
457
        - Host tool: Fix signature search algorithm to correctly handle partial
458
          prefix overlaps. Bounds-check GPT partition entry offset arithmetic
459
          for overflow. Guard secondary GPT nuke against alternate_lba
460
          underflow.
461
        - ACPI: Fall back to RSDT when XSDT is above 4 GiB on 32-bit.
462
        - VMM: Preserve WC/FB cache attribute in x86 page table flags during
463
          page splits.
464
465
    Miscellaneous:
466
        - SMP: Send two SIPIs per Intel SDM recommendation for AP startup.
467
        - Use rdtime.d and CPUCFG for LoongArch64 performance timing.
468
        - Use rdtime and time_base_frequency for RISC-V performance timing.
469
        - Updated Flanterm subproject to latest revision.
470
        - Miscellaneous bug fixes and improvements.
471
472
2026-02-05  Mintsuki  <mintsuki@protonmail.com>
473
474
    *** Release 10.6.6 ***
475
476
    Noteworthy changes compared to the previous release, 10.6.5:
477
478
    Bug fixes:
479
        - Re-add a mistakenly removed check for EFI volume responsiveness. Lack
480
          of this check would indirectly cause hangs due to EFI volumes being
481
          indexed despite their non-responsiveness.
482
483
    Miscellaneous:
484
        - Replace suboptimal code to handle reads close to the end of a volume.
485
486
2026-02-04  Mintsuki  <mintsuki@protonmail.com>
487
488
    *** Release 10.6.5 ***
489
490
    Noteworthy changes compared to the previous release, 10.6.4:
491
492
    Bug fixes:
493
        - Work around PicoEFI structure definition issue related to padding
494
          that would cause volume_by_device_path() to always fail for
495
          non-optical media.
496
        - Fix issue that would cause unique sector detection on systems with 3+
497
          collisions to fail and misreport unique sectors.
498
        - Add extra layer of verification for unique sector matches to minimise
499
          the chance of volume mismatches.
500
501
    Miscellaneous:
502
        - RISC-V: Implement Flanterm refresh path for SoCs not exposing Zicbom
503
          in the device tree or ACPI (often the case with U-boot).
504
        - Use volume_by_device_path() as primary disk_volume_from_efi_handle()
505
          detection method.
506
        - Lazily discover unique sectors only when the fallback requiring this
507
          procedure is actually used.
508
509
2026-02-02  Mintsuki  <mintsuki@protonmail.com>
510
511
    *** Release 10.6.4 ***
512
513
    Noteworthy changes compared to the previous release, 10.6.3:
514
515
    Bug fixes:
516
        - Strip out all code relying on disk writes from the codebase. This
517
          gets rid of the (remote) possibility of disk corruption and the (even
518
          more remote) possibility of firmware/flash corruption. This also
519
          sorts out an issue on Apple Silicon where m1n1/U-boot appears to
520
          leave the NVMe controller in an inconsistent state after write
521
          operations are attempted.
522
523
2026-01-14  Mintsuki  <mintsuki@protonmail.com>
524
525
    *** Release 10.6.3 ***
526
527
    Noteworthy changes compared to the previous release, 10.6.2:
528
529
    Bug fixes:
530
        - Fix an issue with the `limine` host tool where the files read by or
531
          created by the `bios-install` command with the
532
          `--uninstall-data-file=` flag were prefixed by `=` due to an
533
          off-by-one error.
534
        - Fix an issue with the `limine` host tool where the `--quiet` and
535
          `--reset` flags could cause the next flag to be ignored due to an
536
          off-by-one error.
537
        - Fix an issue with the `limine` host tool that would allow a user to
538
          provide a GPT BIOS boot partition to the `bios-install` command that
539
          was 1 greater than the maximum number of partitions due to an
540
          off-by-one error.
541
        - Fix internal module path corruption in the Limine boot protocol code,
542
          caused by a static buffer reuse bug.
543
        - Add timeout for A20 address line initialisation in the keyboard
544
          controller code path. Lack of this could cause hangs on certain older
545
          "legacy-free" PCs.
546
        - Fix a couple of minor memory leaks.
547
        - Undo several overzealous "bug fixes" done since 10.5.0 for issues
548
          that were impossible or highly unlikely to trigger in practice.
549
        - Miscellaneous bug fixes.
550
551
2026-01-07  Mintsuki  <mintsuki@protonmail.com>
552
553
    *** Release 10.6.2 ***
554
555
    Noteworthy changes compared to the previous release, 10.6.1:
556
557
    Bug fixes:
558
        - Fix a bug where a buffer holding a configuration file option's value
559
          was erroneously overwritten. This affected x86 BIOS builds only, and
560
          it would be triggered if the `serial_baudrate` configuration file
561
          option was used.
562
563
2026-01-05  Mintsuki  <mintsuki@protonmail.com>
564
565
    *** Release 10.6.1 ***
566
567
    Noteworthy changes compared to the previous release, 10.6.0:
568
569
    Bug fixes:
570
        - Fix an issue where there were no bound checks when pressing the
571
          delete key in the menu entry editor, sometimes causing out-of-bounds
572
          accesses.
573
        - Add many checks for return values of disk-related functions that
574
          could fail.
575
        - Fix a typo in the physical memory manager code where a pointer was
576
          checked instead of the value it was pointing to. This could have in
577
          theory caused 0-length usable memory entries to appear in the memory
578
          map.
579
        - Add checks to avoid division by 0 if the user-specified baud rate is
580
          0.
581
        - Fix broken calculation in the fb_clear() function that caused severe
582
          out-of-bounds writes when the bits-per-pixel were not 32 or 16.
583
        - Fix potential unaligned memory accesses in the BLAKE2B code. This
584
          could have caused issues on RISC architectures like aarch64 or
585
          riscv64.
586
        - Fix missing continues in the riscv ISA string initialisation logic.
587
          This could have caused HARTs with invalid ISA strings to be used
588
          anyways instead of being ignored.
589
        - More minor bug fixes for bugs discovered during static analysis.
590
591
    Miscellaneous:
592
        - Use C versions of mem*() functions instead of assembly versions for
593
          x86 and x86-64.
594
595
2025-12-28  Mintsuki  <mintsuki@protonmail.com>
596
597
    *** Release 10.6.0 ***
598
599
    Noteworthy changes compared to the previous release, 10.5.1:
600
601
    New features:
602
        - ISO9660: Add support for large, multi-extent files.
603
604
    Bug fixes:
605
        - Unbreak BIOS booting from optical media with ISO9660 filesystems on
606
          many platforms including QEMU. This was a regression introduced in
607
          10.5.1.
608
        - Fix an issue with large (>4GiB) physical memory allocations on 32-bit
609
          platforms. Some values were truncated to size_t (aka uint32_t) in
610
          many instances causing bugs.
611
        - Fix a couple of memory leaks missed in 10.5.1.
612
        - Add safeguard against the font file being too small for the expected
613
          size. This avoids potential panics from the filesystem driver, and it
614
          instead just prints a warning and falls back to using the default
615
          font.
616
617
    Miscellaneous:
618
        - Update description of the `term_font_size` and `term_font_spacing`
619
          configuration options in CONFIG.md.
620
621
2025-12-26  Mintsuki  <mintsuki@protonmail.com>
622
623
    *** Release 10.5.1 ***
624
625
    Noteworthy changes compared to the previous release, 10.5.0:
626
627
    Bug fixes:
628
        - Many bug fixes throughout the codebase, mainly tackling hardening
629
          (especially of filesystem drivers). Most issues were caught with
630
          static analysis.
631
        - Fixage of some memory leaks.
632
        - Fixage of major issue that could have caused UEFI PXE to not work.
633
        - Multiboot1: fix issue that would cause the information buffer to be
634
          underallocated.
635
636
2025-12-11  Mintsuki  <mintsuki@protonmail.com>
637
638
    *** Release 10.5.0 ***
639
640
    Noteworthy changes compared to the previous release, 10.4.0:
641
642
    New features:
643
        - Add new `interface_help_colour` global configuration file option to
644
          allow changing the colour of "helper" messages in the interface.
645
        - Add new `interface_rotation` global configuration option to allow
646
          rotating the output interface be 0, 90, 180, or 270 degrees.
647
648
2025-11-30  Mintsuki  <mintsuki@protonmail.com>
649
650
    *** Release 10.4.0 ***
651
652
    Noteworthy changes compared to the previous release, 10.3.2:
653
654
    New features:
655
        - Add new configuration file option "global_dtb" to allow overriding
656
          the device tree used by Limine itself as well as for all boot entries
657
          (unless overridden by entry-local "dtb_path" option).
658
659
    Bug fixes:
660
        - Flush entire I-Cache if it is not PIPT on aarch64.
661
        - Fix use-after-free bug in riscv64 initialisation code related to
662
          device tree handling.
663
664
    Miscellaneous:
665
        - Framebuffer-related caching improvements for riscv64 and aarch64.
666
          This should fix a long standing issue where, on a lot of riscv64
667
          boards, the Limine interface would look mangled due to missing cache
668
          flushing.
669
        - Prioritise using ACPI for riscv64 initialisation code if available
670
          and if a DTB is not manually specified.
671
672
2025-11-23  Mintsuki  <mintsuki@protonmail.com>
673
674
    *** Release 10.3.2 ***
675
676
    Noteworthy changes compared to the previous release, 10.3.1:
677
678
    CI-related changes, otherwise, same as 10.3.1.
679
680
2025-11-23  Mintsuki  <mintsuki@protonmail.com>
681
682
    *** Release 10.3.1 ***
683
684
    Noteworthy changes compared to the previous release, 10.3.0:
685
686
    Bug fixes:
687
        - Fix wrong virtual address related constants, for the loongarch64
688
          port, that made Limine-protocol kernels fail to boot.
689
        - Fix issue that caused the MBR ID in the Limine boot protocol
690
          limine_file structure to always be 0.
691
692
2025-11-07  Mintsuki  <mintsuki@protonmail.com>
693
694
    *** Release 10.3.0 ***
695
696
    Noteworthy changes compared to the previous release, 10.2.1:
697
698
    **Special notes:**
699
        Despite there being breaking changes in this release, no major version
700
        bump is done; this is because the changes are minor enough, there are
701
        no big new features, and version 10.x was not released long enough ago.
702
        This is technically in violation of Semantic Versioning, but considered
703
        to be an acceptable exception.
704
705
    Breaking changes:
706
        - Change default paths and default path ordering for configuration file
707
          search. Mainly, search first for a configuration file in the same
708
          directory as the EFI application file of Limine, on EFI ports.
709
        - Change default path ordering for stage 3 file search on BIOS ports.
710
        - No longer install the limine.h header file on the host.
711
        - No longer install PROTOCOL.md (Limine Boot Protocol specification) on
712
          the host.
713
714
    Bug fixes:
715
        - Fix an issue where code assumed that the RSDT address in the RSDP was
716
          always non-NULL, which could cause crashes or hangs when using base
717
          revision 4 of the Limine Boot Protocol.
718
719
2025-10-29  Mintsuki  <mintsuki@protonmail.com>
720
721
    *** Release 10.2.1 ***
722
723
    Noteworthy changes compared to the previous release, 10.2.0:
724
725
    Bug fixes:
726
        - Add workaround for skipping SPI flash devices exposed as EFI volumes.
727
          This fixes the hanging issues on many ARM laptops, without breaking
728
          U-Boot unlike the previous workaround.
729
730
2025-10-26  Mintsuki  <mintsuki@protonmail.com>
731
732
    *** Release 10.2.0 ***
733
734
    Noteworthy changes compared to the previous release, 10.1.1:
735
736
    New features:
737
        - Implement base revision 4 of the Limine boot protocol as per
738
          documentation (read documentation for specific details).
739
740
    Bug fixes:
741
        - "Fix" multiboot1 framebuffer structure to match GRUB instead of the
742
          multiboot1 specification.
743
744
2025-10-13  Mintsuki  <mintsuki@protonmail.com>
745
746
    *** Release 10.1.1 ***
747
748
    Noteworthy changes compared to the previous release, 10.1.0:
749
750
    Bug fixes:
751
        - DTBs: Always reallocate DTBs to bootloader-reclaimable memory. This
752
          is to prevent pointers to EFI/reserved memory from being leaked to
753
          Limine protocol executables, which is against said protocol, which
754
          mandates that DTBs have to be in bootloader-reclaimable memory.
755
756
2025-10-05  Mintsuki  <mintsuki@protonmail.com>
757
758
    *** Release 10.1.0 ***
759
760
    Noteworthy changes compared to the previous release, 10.0.1:
761
762
    New features:
763
        - Expand safety checks of the `limine bios-install` command and replace
764
          the `--force-mbr` flag with just `--force`.
765
        - Add autodetection of the BIOS boot partition if no explicit partition
766
          index is passed to `limine bios-install`.
767
768
    Bug fixes:
769
        - Only use ASCII characters for terminal output when graphical output
770
          fails to initialise and the EFI standard output console is used
771
          instead.
772
773
    Miscellaneous:
774
        - Remove left-over logic that was meant to supplement the removed GPT
775
          embedding feature.
776
        - Remove workaround to allow building the RISC-V port with LLVM <=16.
777
        - Update a bunch of output messages from the `limine` host tool.
778
779
2025-09-21  Mintsuki  <mintsuki@protonmail.com>
780
781
    *** Release 10.0.1 ***
782
783
    Noteworthy changes compared to the previous release, 10.0.0:
784
785
    Bug fixes:
786
        - Fix a potential use-after-free issue when flushing interrupts on x86
787
          UEFI systems.
788
        - Prefer using the 32-bit Linux protocol unless it is strictly
789
          necessary to use the 64-bit protocol due to allocation constraints.
790
          This is due to reports of the 32-bit protocol being more reliable
791
          on certain rare systems where the 64-bit protocol crashes or hangs.
792
793
2025-09-15  Mintsuki  <mintsuki@protonmail.com>
794
795
    *** Release 10.0.0 ***
796
797
    Noteworthy changes compared to the previous release, 9.6.7:
798
799
    Breaking changes:
800
        - GPT embedding is no longer supported as a deployment method for
801
          GPT-with-BIOS configurations. The rationale for this being that it is
802
          far too fragile, especially with regards to growing or shrinking disk
803
          images, and it may cause certain machines to refuse to boot such
804
          setups as they are technically in violation of the GPT specification.
805
        - The default baud rate for serial I/O on BIOS systems is now 115200,
806
          instead of 9600.
807
        - BIOS (chainloading) boot menu entries are now hidden when booting in
808
          UEFI mode, and EFI (chainloading) entries are hidden when booting in
809
          BIOS mode.
810
        - For the Limine boot protocol, for relocatable executables, KASLR now
811
          defaults to being disabled. The rationale for this being that KASLR
812
          is a somewhat niche and fairly bypassable security technique, which
813
          can cause headaches for kernels not wanting to support it, and make
814
          troubleshooting harder.
815
        - For the Limine boot protocol, for PE format kernels, do not discard
816
          discardable sections, as code put to a discardable section like INIT
817
          might be intended to only be discarded after early kernel init, not
818
          before the kernel is even loaded.
819
820
2025-09-13  Mintsuki  <mintsuki@protonmail.com>
821
822
    *** Release 9.6.7 ***
823
824
    Noteworthy changes compared to the previous release, 9.6.6:
825
826
    Bug fixes:
827
        - Relax EFI handle validation before running fallback volume detection.
828
          This further addresses issues caused by 9.5.4.
829
830
2025-09-06  Mintsuki  <mintsuki@protonmail.com>
831
832
    *** Release 9.6.6 ***
833
834
    Noteworthy changes compared to the previous release, 9.6.5:
835
836
    Bug fixes:
837
        - Fix regression introduced by 9.5.4 that caused Limine to fail to boot
838
          with U-Boot.
839
840
2025-08-30  Mintsuki  <mintsuki@protonmail.com>
841
842
    *** Release 9.6.3 through 9.6.5 ***
843
844
    Noteworthy changes compared to the previous release, 9.6.2:
845
846
    These are special hotfix releases attempting to address issues with the
847
    Forgejo release workflow after the migration to Codeberg.
848
849
    Other than that, they have no differences compared to 9.6.2.
850
851
2025-08-30  Mintsuki  <mintsuki@protonmail.com>
852
853
    *** Release 9.6.2 ***
854
855
    Noteworthy changes compared to the previous release, 9.6.1:
856
857
    Miscellaneous:
858
        - The Limine project has moved its home to Codeberg.
859
        - Nyu-EFI was rebranded to PicoEFI.
860
        - Minor build system improvements and subproject bumps.
861
862
2025-08-16  Mintsuki  <mintsuki@protonmail.com>
863
864
    *** Release 9.6.1 ***
865
866
    Noteworthy changes compared to the previous release, 9.6.0:
867
868
    Bug fixes:
869
        - EFI chainloading: Make EFI device path of loaded image relative to
870
          the loaded image device handle. This now complies with the EFI
871
          specification, and, amongst others, it fixes chainloading Shim.
872
873
    Miscellaneous:
874
        - Miscellaneous build system changes and improvements.
875
        - Do not disable linker relaxations for LoongArch64.
876
        - `limine` host tool: Add check to ensure that a provided GPT BIOS
877
          partition is at least 32KiB in size.
878
879
2025-08-07  Mintsuki  <mintsuki@protonmail.com>
880
881
    *** Release 9.6.0 ***
882
883
    Noteworthy changes compared to the previous release, 9.5.4:
884
885
    Miscellaneous:
886
        - Get rid of the fragile and messy "freestanding-toolchain" build
887
          helper tool. This allows for a simpler and more predictable way of
888
          selecting the target toolchain components via ./configure.
889
890
2025-08-06  Mintsuki  <mintsuki@protonmail.com>
891
892
    *** Release 9.5.4 ***
893
894
    Noteworthy changes compared to the previous release, 9.5.3:
895
896
    Bug fixes:
897
        - Exclude non-PCI devices from the volume discovery process on UEFI.
898
          This is because on (especially, but not limited to) Snapdragon X
899
          systems, firmware/flash devices, which are non-PCI, are exposed as
900
          block I/O volumes too. This skips them, which makes the bootloader
901
          more reliable and avoids long hangs at boot.
902
        - Miscellaneous changes and fixes to the fallback volume discovery
903
          path, to increase reliability and reduce the chance of accidental
904
          damage or data loss. See GitHub issue #525.
905
        - Minor assembly improvement that fixed Limine not building with old
906
          NASM.
907
908
2025-08-04  Mintsuki  <mintsuki@protonmail.com>
909
910
    *** Release 9.5.3 ***
911
912
    Noteworthy changes compared to the previous release, 9.5.2:
913
914
    Bug fixes:
915
        - Miscellaneous build system fixes, mainly to sort out possible issues
916
          introduced by 9.5.2.
917
918
2025-08-01  Mintsuki  <mintsuki@protonmail.com>
919
920
    *** Release 9.5.2 ***
921
922
    Noteworthy changes compared to the previous release, 9.5.1:
923
924
    Bug fixes:
925
        - Revert change that moved to `nm` from `objdump` for generating the
926
          symbol table, as that broke section-specific symbol dumps and caused
927
          BIOS stage 2 to be bloated with the full symbol table.
928
929
    Miscellaneous:
930
        - Miscellaneous build system updates and improvements.
931
932
2025-07-29  Mintsuki  <mintsuki@protonmail.com>
933
934
    *** Release 9.5.1 ***
935
936
    Noteworthy changes compared to the previous release, 9.5.0:
937
938
    Bug fixes:
939
        - Unbreak build using ld.gold as linker.
940
941
    Miscellaneous:
942
        - Miscellaneous build system updates and improvements.
943
944
2025-07-14  Mintsuki  <mintsuki@protonmail.com>
945
946
    *** Release 9.5.0 ***
947
948
    Noteworthy changes compared to the previous release, 9.4.0:
949
950
    New features:
951
        - protocols/efi: Hybridise loading mechanism with old memory-device
952
          based approach. This may work around the redundant requirement that
953
          EFI applications be signed, and it may fix certain issues created
954
          when the chainload mechanism was changed in 9.0.1.
955
956
    Bug fixes:
957
        - `limine` host tool: Fix some mismatched printf format specifiers.
958
959
    Miscellaneous:
960
        - Miscellaneous build system updates and improvements.
961
        - Many dependencies had their commits bumped, some new dependencies
962
          were added (limine-protocol), some were changed (libfdt moved to a
963
          different repository that only includes BSD-2-Clause licensable
964
          code).
965
966
2025-07-10  Mintsuki  <mintsuki@protonmail.com>
967
968
    *** Release 9.4.0 ***
969
970
    Noteworthy changes compared to the previous release, 9.3.4:
971
972
    New features:
973
        - BLI: Implement `LoaderTimeInitUSec` and `LoaderTimeExecUSec`.
974
          These are variables used by `systemd-analyze` and are useful for boot
975
          performance metrics.
976
        - Limine boot protocol: Add bootloader performance feature.
977
          This feature provides the same information as the new Boot Loader
978
          Interface variables, but encoded in a nicer way for Limine protocol
979
          executables.
980
981
    Miscellaneous:
982
        - Use `nm` instead of `objdump` for generating the symbol table, which
983
          results in a better, more consistent output, especially for non-x86
984
          architectures.
985
        - Miscellaneous build system updates and improvements.
986
987
2025-06-21  Mintsuki  <mintsuki@protonmail.com>
988
989
    *** Release 9.3.4 ***
990
991
    Noteworthy changes compared to the previous release, 9.3.3:
992
993
    Bug fixes:
994
        - ELF: Make an optimisation related to skipping scanning of .bss
995
          regions for finding of structures in the loaded image (for Limine
996
          protocol structures or otherwise) less overeager as that could break
997
          in certain cases.
998
        - SMP: On x86, ensure that the value of IA32_APIC_BASE is the same on
999
          the APs as it is on the BSP.
1000
        - PMM: Mark EfiLoader{Code,Data} regions as bootloader reclaimable
1001
          rather than reserved memory, as for certain protocols, like the
1002
          Limine boot protocol, reserved memory is unmapped at runtime, while
1003
          these regions may contain hot data that is still needed, like Limine
1004
          bootloader memory stacks.
1005
1006
2025-05-27  Mintsuki  <mintsuki@protonmail.com>
1007
1008
    *** Release 9.3.3 ***
1009
1010
    Noteworthy changes compared to the previous release, 9.3.2:
1011
1012
    Bug fixes:
1013
        - Reinstate the limit for scanned drives to 0xf0. This is due to a
1014
          report of int 13h hangs when used on drives >=0xf0.
1015
1016
2025-05-19  Mintsuki  <mintsuki@protonmail.com>
1017
1018
    *** Release 9.3.2 ***
1019
1020
    Noteworthy changes compared to the previous release, 9.3.1:
1021
1022
    Bug fixes:
1023
        - PMM: Mark EfiBootServices{Code,Data} memory regions as bootloader
1024
          reclaimable instead of usable free memory as apparently the ACPI
1025
          and UEFI specifications make no guarantees about useful structures
1026
          being left in these areas after leaving boot services (namely BGRT
1027
          and ESRT).
1028
1029
2025-05-15  Mintsuki  <mintsuki@protonmail.com>
1030
1031
    *** Release 9.3.1 ***
1032
1033
    Noteworthy changes compared to the previous release, 9.3.0:
1034
1035
    Bug fixes:
1036
        - Remove .git directory mistakenly left over inside release tarballs.
1037
        - Fix bug that would lead to panics when booting Linux protocol kernels
1038
          without modules on x86.
1039
1040
2025-05-07  Mintsuki  <mintsuki@protonmail.com>
1041
1042
    *** Release 9.3.0 ***
1043
1044
    Noteworthy changes compared to the previous release, 9.2.3:
1045
1046
    New features:
1047
        - Add optional support for the 64-bit x86-64 boot protocol for Linux.
1048
          This is supported on the UEFI/x86-64 port of Limine, and it is
1049
          preferred over the 32-bit boot protocol if supported by the given
1050
          kernel. This helps with loading larger modules on certain systems
1051
          with low amounts of low memory which would otherwise panic.
1052
1053
    Bug fixes:
1054
        - Fix away some ungraceful handling of out-of-memory situations when
1055
          loading files using the Linux boot protocol. Make into panics instead
1056
          of crashes or hangs.
1057
1058
    Miscellaneous:
1059
        - Improve performance and memory usage of loading modules for the Linux
1060
          boot protocol.
1061
1062
2025-04-12  Mintsuki  <mintsuki@protonmail.com>
1063
1064
    *** Release 9.2.3 ***
1065
1066
    Noteworthy changes compared to the previous release, 9.2.2:
1067
1068
    Bug fixes:
1069
        - Fix issues introduced by the stb_image fix introduced in 9.2.1 which
1070
          could cause hangs or crashes when certain wallpaper images are used.
1071
1072
    Miscellaneous:
1073
        - Update cc-runtime to new, integer-only, packed version.
1074
1075
2025-03-31  Mintsuki  <mintsuki@protonmail.com>
1076
1077
    *** Release 9.2.2 ***
1078
1079
    Noteworthy changes compared to the previous release, 9.2.1:
1080
1081
    Bug fixes:
1082
        - Two quick bug fixes and workarounds in order to make multiboot2 more
1083
          resilient when booting specific kernels such as Xen.
1084
        - Avoid mistakenly allocating more memory than necessary when creating
1085
          the volume index.
1086
1087
2025-03-25  Mintsuki  <mintsuki@protonmail.com>
1088
1089
    *** Release 9.2.1 ***
1090
1091
    Noteworthy changes compared to the previous release, 9.2.0:
1092
1093
    Bug fixes:
1094
        - Fix potential buffer overflow bug with our stb_image support code.
1095
1096
    Miscellaneous:
1097
        - Dynamically allocate volume index instead of relying on a hard coded
1098
          limit and a fixed allocation. This fixes potential panics or failure
1099
          to access volumes on systems with a lot of drives/partitions.
1100
        - Limine boot protocol/ELF: Print the name of unresolved symbols on
1101
          panic.
1102
1103
2025-03-16  Mintsuki  <mintsuki@protonmail.com>
1104
1105
    *** Release 9.2.0 ***
1106
1107
    Noteworthy changes compared to the previous release, 9.1.3:
1108
1109
    New features:
1110
        - Introduce initial support for the Boot Loader Interface
1111
          specification.
1112
        - Add /EFI/limine/limine.conf to the paths tried for config file when
1113
          using EFI.
1114
1115
    Miscellaneous:
1116
        - Do not try config path /EFI/BOOT/limine.conf unless booted using EFI.
1117
1118
2025-03-13  Mintsuki  <mintsuki@protonmail.com>
1119
1120
    *** Release 9.1.3 ***
1121
1122
    Noteworthy changes compared to the previous release, 9.1.2:
1123
1124
    Bug fixes:
1125
        - Loongarch64: Fix alignment of TLB-refill handler.
1126
1127
    Miscellaneous:
1128
        - Many fixes and improvements to documentation, installed or otherwise,
1129
          including further licensing clarifications.
1130
1131
2025-03-11  Mintsuki  <mintsuki@protonmail.com>
1132
1133
    *** Release 9.1.2 ***
1134
1135
    Noteworthy changes compared to the previous release, 9.1.1:
1136
1137
    This release does not change anything code-wise, but rather it focuses on
1138
    sorting out the licensing mess of Nyu-EFI, by updating it to the latest
1139
    revision which tackles this problem, and furthermore it improves the
1140
    COPYING file to be more explicit about submodules and their licensing.
1141
1142
2025-03-10  Mintsuki  <mintsuki@protonmail.com>
1143
1144
    *** Release 9.1.1 ***
1145
1146
    Noteworthy changes compared to the previous release, 9.1.0:
1147
1148
    Bug fixes:
1149
        - Do not use ConOut for serial output exclusively unless serial is
1150
          verified to be present to the best of our abilities. This fixes an
1151
          issue where if `serial=yes` is used on some machines (including
1152
          several Apple Mac models) a black screen will be shown instead of the
1153
          Limine menu.
1154
1155
    Miscellaneous:
1156
        - Begin signing tarballs and (most) commits.
1157
1158
2025-03-07  Mintsuki  <mintsuki@protonmail.com>
1159
1160
    *** Release 9.1.0 ***
1161
1162
    Noteworthy changes compared to the previous release, 9.0.1:
1163
1164
    New features:
1165
        - `limine` host tool: When using the `bios-install` command on an
1166
          ISOHYBRID with a GPT, automatically convert it to MBR, if possible
1167
          and unless explicitly disabled, in order to enhance compatibility of
1168
          said ISOHYBRIDs with many systems (of note, Lenovo Thinkpads).
1169
1170
2025-02-25  Mintsuki  <mintsuki@protonmail.com>
1171
1172
    *** Release 9.0.1 ***
1173
1174
    Noteworthy changes compared to the previous release, 9.0.0:
1175
1176
    Miscellaneous:
1177
        - EFI chainload: Replace old chainload method with one that is more
1178
          friendly to other EFI bootloaders such as rEFInd.
1179
        - Limine boot protocol/PE: Map previously unmapped PE image headers.
1180
1181
2025-02-17  Mintsuki  <mintsuki@protonmail.com>
1182
1183
    *** Release 9.0.0 ***
1184
1185
    Noteworthy changes compared to the previous release, 8.7.0:
1186
1187
    Breaking changes:
1188
        - Support for the ext2/3/4 filesystems has been once again dropped due
1189
          to lack of maintenance and to avoid extra potential attack surface
1190
          during Secure Boot Limine usage.
1191
        - Drop support for the legacy config format (limine.cfg) and only keep
1192
          around the new one (limine.conf) introduced with Limine 8.x.
1193
        - Drop support for the (barely worked and seldom used) `chainload_next`
1194
          protocol.
1195
1196
    New features:
1197
        - Limine boot protocol: Introduce API revision 3, for the `limine.h`
1198
          file with several renamed identifiers for better clarity.
1199
        - Limine boot protocol: Specify and implement a new, convenience,
1200
          "Executable Command Line feature".
1201
        - Limine boot protocol: Use monitor/mwait CPU instructions, when
1202
          available, to reduce CPU usage and increase performance during
1203
          multiprocessor initialisation.
1204
        - Add preferred aliases for BIOS and EFI chainload (namely `bios` and
1205
          `efi`) protocol names for the `protocol` config option.
1206
1207
    Bug fixes:
1208
        - EFI (chainload) boot protocol: Fix `path` option alias not working.
1209
1210
    Miscellaneous:
1211
        - Update Flanterm submodule to latest.
1212
1213
2025-01-10  Mintsuki  <mintsuki@protonmail.com>
1214
1215
    *** Release 8.7.0 ***
1216
1217
    Noteworthy changes compared to the previous release, 8.6.1:
1218
1219
    New features:
1220
        - Limine boot protocol: Add support for PE executables.
1221
        - Linux boot protocol: Enable support for Loongarch64.
1222
        - Add support for selecting a random wallpaper every boot if multiple
1223
          are provided.
1224
        - Add `path` aliases for `kernel_path` and `image_path` for the Linux
1225
          and EFI Chainloading protocols respectively.
1226
1227
    Miscellaneous:
1228
        - Submodule version/commit bumps.
1229
1230
2024-12-26  Mintsuki  <mintsuki@protonmail.com>
1231
1232
    *** Release 8.6.1 ***
1233
1234
    Noteworthy changes compared to the previous release, 8.6.0:
1235
1236
    Bug fixes:
1237
        - Propagate EFI PXE device handle properly when chainloading.
1238
        - Ensure that, when specifying a `dtb_path`, extra space is properly
1239
          allocated just as is done for EFI-provided DTBs.
1240
1241
    Miscellaneous:
1242
        - Linux on RISCs: General code clean up; pass EFI memory map and initrd
1243
          information as EFI configuration tables alongside already passed DTB
1244
          parameters for the same, in preparation for loongarch64 support.
1245
1246
2024-12-05  Mintsuki  <mintsuki@protonmail.com>
1247
1248
    *** Release 8.6.0 ***
1249
1250
    Noteworthy changes compared to the previous release, 8.5.0:
1251
1252
    New features:
1253
        - Limine boot protocol: Specify and implement new "RISC-V BSP Hart ID"
1254
          feature.
1255
        - Limine boot protocol: Add a new "SBI" firmware type to the firmware
1256
          type feature
1257
        - Limine boot protocol: Add a new API revision 2 to the limine.h header
1258
          file. This replaces many mentions of 'kernel' with a more neutral
1259
          'executable' instead.
1260
        - Config: add 'path' alias for 'kernel_path' for the Limine and
1261
          multiboot1 and 2 protocols.
1262
1263
2024-11-30  Mintsuki  <mintsuki@protonmail.com>
1264
1265
    *** Release 8.5.0 ***
1266
1267
    Noteworthy changes compared to the previous release, 8.4.1:
1268
1269
    New features:
1270
        - Limine boot protocol: Introduce limine.h API revisions to avoid API
1271
          breaks.
1272
1273
    Bug fixes:
1274
        - Limine boot protocol: Amend base revision 3 to keep EFI memmap
1275
          pointer as virtual. Making it physical made no sense and is
1276
          henceforth considered a bug.
1277
1278
    Miscellaneous:
1279
        - Limine boot protocol: Rename SMP feature to MP feature for limine.h
1280
          API revision 1+.
1281
        - Limine boot protocol: Make some types that were void pointers into
1282
          uint64_t's to better represent their physical nature; limine.h API
1283
          revision 1+.
1284
1285
2024-11-25  Mintsuki  <mintsuki@protonmail.com>
1286
1287
    *** Release 8.4.1 ***
1288
1289
    Noteworthy changes compared to the previous release, 8.4.0:
1290
1291
    Miscellaneous:
1292
        - Limine boot protocol: Ensure machines with pre-enabled x2APIC are
1293
          properly supported.
1294
        - Reuse a viable framebuffer for UEFI fallback terminal output (like on
1295
          panics) if boot services have been exited instead of bailing out.
1296
        - Miscellaneous build system updates.
1297
1298
2024-11-08  Mintsuki  <mintsuki@protonmail.com>
1299
1300
    *** Release 8.4.0 ***
1301
1302
    Noteworthy changes compared to the previous release, 8.3.2:
1303
1304
    New features:
1305
        - Support passing Limine its configuration via SMBIOS tables.
1306
1307
    Miscellaneous:
1308
        - Update cc-runtime to latest; use non-packed version.
1309
1310
2024-10-31  Mintsuki  <mintsuki@protonmail.com>
1311
1312
    *** Release 8.3.2 ***
1313
1314
    Noteworthy changes compared to the previous release, 8.3.1:
1315
1316
    Miscellaneous:
1317
        - Limine boot protocol: Amend base revision 3 to mandate reporting base
1318
          revision used to kernels.
1319
1320
2024-10-28  Mintsuki  <mintsuki@protonmail.com>
1321
1322
    *** Release 8.3.1 ***
1323
1324
    Noteworthy changes compared to the previous release, 8.3.0:
1325
1326
    Bug fixes:
1327
        - Limine boot protocol: Revert broken optimisation.
1328
1329
2024-10-28  Mintsuki  <mintsuki@protonmail.com>
1330
1331
    *** Release 8.3.0 ***
1332
1333
    Noteworthy changes compared to the previous release, 8.2.0:
1334
1335
    New features:
1336
        - Limine boot protocol: Specify and implement base revision 3. See the
1337
          specification for further info.
1338
        - Add a new `FW_TYPE` built-in config macro.
1339
1340
    Miscellaneous:
1341
        - Bump Flanterm revision to a6f6edd6631c01caab932a59dce97bbd5f0c72c8.
1342
        - Limine boot protocol: Misc optimisations to page tables usage.
1343
1344
2024-10-23  Mintsuki  <mintsuki@protonmail.com>
1345
1346
    *** Release 8.2.0 ***
1347
1348
    Noteworthy changes compared to the previous release, 8.1.2:
1349
1350
    New features:
1351
        - Add device tree blob override configuration options for the Limine
1352
          and Linux boot protocols.
1353
        - Limine boot protocol: Filter `memory@...` nodes out of device trees.
1354
1355
    Miscellaneous:
1356
        - Documentation: USAGE.md: Update `xorriso` command to produce
1357
          ISOHYBRIDs with Joliet info and an HFS+ filesystem for broader
1358
          compatibility.
1359
        - Increase the size of the `limine-cd-uefi.bin` image to 5760 sectors;
1360
          this allows more and/or larger EFI executables to fit (like for
1361
          example those generated when compiling with -O0).
1362
        - Bump cc-runtime revision to d5425655388977fa12ff9b903e554a20b20c426e.
1363
1364
2024-10-15  Mintsuki  <mintsuki@protonmail.com>
1365
1366
    *** Release 8.1.2 ***
1367
1368
    Noteworthy changes compared to the previous release, 8.1.1:
1369
1370
    Bug fixes:
1371
        - Add missing register saves and restores around call from assembly to
1372
          C code for the x86-64 UEFI port. This bug could have caused crashes
1373
          with certain compiler optimisation levels (like -O0).
1374
        - Adjust size of reserved area of VBE mode info struct to be the right
1375
          size. This bug could have caused crashes with certain compiler
1376
          optimisation levels (like -O0).
1377
        - Ignore UEFI memory map entries of length 0. This fixes crashes that
1378
          could have happened on quirky UEFI firmwares passing such entries.
1379
1380
2024-10-12  Mintsuki  <mintsuki@protonmail.com>
1381
1382
    *** Release 8.1.1 ***
1383
1384
    Noteworthy changes compared to the previous release, 8.1.0:
1385
1386
    Bug fixes:
1387
        - Limine boot protocol: Do not hard depend on the CPU supporting the
1388
          Page Attribute Table (PAT) *for SMP processors as well*.
1389
1390
2024-10-12  Mintsuki  <mintsuki@protonmail.com>
1391
1392
    *** Release 8.1.0 ***
1393
1394
    Noteworthy changes compared to the previous release, 8.0.14:
1395
1396
    Bug fixes:
1397
        - Limine boot protocol: Do not hard depend on the CPU supporting the
1398
          Page Attribute Table (PAT).
1399
1400
    New features:
1401
        - Limine boot protocol: Add a `randomise_hhdm_base` config file option.
1402
1403
    Miscellaneous:
1404
        - Update libfdt (from dtc) to 1.7.1.
1405
1406
2024-09-29  Mintsuki  <mintsuki@protonmail.com>
1407
1408
    *** Release 8.0.14 ***
1409
1410
    Noteworthy changes compared to the previous release, 8.0.13:
1411
1412
    Miscellaneous:
1413
        - Limine boot protocol: Increase maximum memory map entry count from
1414
          256 to 1024 as it would otherwise cause issues on certain systems.
1415
1416
2024-09-18  Mintsuki  <mintsuki@protonmail.com>
1417
1418
    *** Release 8.0.13 ***
1419
1420
    Noteworthy changes compared to the previous release, 8.0.12:
1421
1422
    Bug fixes:
1423
        - multiboot2: Fix handling of relocatable kernels.
1424
1425
2024-09-15  Mintsuki  <mintsuki@protonmail.com>
1426
1427
    *** Release 8.0.12 ***
1428
1429
    Noteworthy changes compared to the previous release, 8.0.11:
1430
1431
    Bug fixes:
1432
        - Fix a build system problem that could cause configure failures if
1433
          STRIP variable set to an absolute path.
1434
1435
    Miscellaneous:
1436
        - Updates for "freestanding-headers" being rebranded to
1437
          "freestnd-c-hdrs-0bsd".
1438
        - Updates for "limine-efi" being rebranded to "nyu-efi".
1439
1440
2024-09-10  Mintsuki  <mintsuki@protonmail.com>
1441
1442
    *** Release 8.0.11 ***
1443
1444
    Noteworthy changes compared to the previous release, 8.0.10:
1445
1446
    Miscellaneous:
1447
        - Replace "freestnd-c-hdrs" back with "freestanding-headers" due to
1448
          GPLv3 with Runtime Exceptions licensing concerns and size.
1449
1450
2024-09-09  Mintsuki  <mintsuki@protonmail.com>
1451
1452
    *** Release 8.0.10 ***
1453
1454
    Noteworthy changes compared to the previous release, 8.0.9:
1455
1456
    Bug fixes:
1457
        - Fix bug where contents of loaded EFI image size variable could be off
1458
          significantly compared to actual size when compiled with GCC, causing
1459
          many issues.
1460
        - Fix memory manager bug introduced in 2021 during optimisation work.
1461
1462
    Miscellaneous:
1463
        - Replace "freestanding-headers" with GCC-provided "freestnd-c-hdrs".
1464
1465
2024-09-04  Mintsuki  <mintsuki@protonmail.com>
1466
1467
    *** Release 8.0.9 ***
1468
1469
    Noteworthy changes compared to the previous release, 8.0.8:
1470
1471
    Bug fixes:
1472
        - Fix an issue that could cause Limine to not boot on UEFI systems with
1473
          too many memory map entries.
1474
1475
2024-09-03  Mintsuki  <mintsuki@protonmail.com>
1476
1477
    *** Release 8.0.8 ***
1478
1479
    Noteworthy changes compared to the previous release, 8.0.7:
1480
1481
    Bug fixes:
1482
        - Work around makefile issues that caused GNU make versions 4.0 and 4.1
1483
          as well as version 3.80 to fail to build Limine.
1484
1485
2024-09-02  Mintsuki  <mintsuki@protonmail.com>
1486
1487
    *** Release 8.0.7 ***
1488
1489
    Noteworthy changes compared to the previous release, 8.0.6:
1490
1491
    Miscellaneous:
1492
        - Remove GNU make version check as we now support building on older
1493
          make versions.
1494
        - Miscellaneous build system improvements.
1495
1496
2024-08-25  Mintsuki  <mintsuki@protonmail.com>
1497
1498
    *** Release 8.0.6 ***
1499
1500
    Noteworthy changes compared to the previous release, 8.0.5:
1501
1502
    Bug fixes:
1503
        - Fix issue with makefiles that would cause, among others, issues with
1504
          job control on older GNU make versions.
1505
1506
    Miscellaneous:
1507
        - Update limine-efi dependency to latest.
1508
        - Minor build system improvements.
1509
1510
2024-08-12  Mintsuki  <mintsuki@protonmail.com>
1511
1512
    *** Release 8.0.5 ***
1513
1514
    Noteworthy changes compared to the previous release, 8.0.4:
1515
1516
    Bug fixes:
1517
        - Limine boot protocol: Obtain LAPIC ID from LAPIC instead of CPUID.
1518
          This fixes crashes on some odd machines whose firmware remaps the
1519
          BSP's LAPIC ID from the default one.
1520
1521
2024-08-10  Mintsuki  <mintsuki@protonmail.com>
1522
1523
    *** Release 8.0.4 ***
1524
1525
    Noteworthy changes compared to the previous release, 8.0.3:
1526
1527
    Bug fixes:
1528
        - Limine boot protocol: Fix off-by-1 error in HHDM MAXPHYADDR bounds
1529
          check.
1530
1531
    Miscellaneous:
1532
        - Updated cc-runtime dependency to latest, packed version.
1533
1534
2024-08-09  Mintsuki  <mintsuki@protonmail.com>
1535
1536
    *** Release 8.0.3 ***
1537
1538
    Noteworthy changes compared to the previous release, 8.0.2:
1539
1540
    Bug fixes:
1541
        - AArch64, riscv64: SMP: Fix BSP potentially timing out while waiting
1542
          for APs due to missing delay.
1543
1544
2024-08-08  Mintsuki  <mintsuki@protonmail.com>
1545
1546
    *** Release 8.0.2 ***
1547
1548
    Noteworthy changes compared to the previous release, 8.0.1:
1549
1550
    Bug fixes:
1551
        - Menu: Miscellaneous cosmetic fixes.
1552
        - Editor: Fix input and displaying of tab characters.
1553
1554
    Miscellaneous:
1555
        - Config: Accept tab characters as whitespace after option colon.
1556
1557
2024-08-05  Mintsuki  <mintsuki@protonmail.com>
1558
1559
    *** Release 8.0.1 ***
1560
1561
    Noteworthy changes compared to the previous release, 8.0.0:
1562
1563
    Bug fixes:
1564
        - Assortment of menu fixes to issues that could cause things not to
1565
          render as they should.
1566
1567
    Miscellaneous:
1568
        - Documentation fixes for 8.x.
1569
1570
2024-08-02  Mintsuki  <mintsuki@protonmail.com>
1571
1572
    *** Release 8.0.0 ***
1573
1574
    Noteworthy changes compared to the previous release, 7.13.3:
1575
1576
    New features:
1577
        - Add loongarch64 support.
1578
1579
    Bug fixes:
1580
        - Limine boot protocol: Ensure higher half direct map size does not
1581
          exceed MAXPHYADDR on x86.
1582
1583
    Miscellaneous:
1584
        - Extensive changes to the config syntax. (See CONFIG.md).
1585
        - Rename term_wallpaper, term_wallpaper_style, and term_backdrop config
1586
          options to remove the term_ prefix.
1587
        - Removed support for GZ-compressed files (and internal Limine
1588
          protocol modules).
1589
1590
2024-08-02  Mintsuki  <mintsuki@protonmail.com>
1591
1592
    *** Release 7.13.3 ***
1593
1594
    Noteworthy changes compared to the previous release, 7.13.2:
1595
1596
    Bug fixes:
1597
        - Limine boot protocol: Fix broken comparison that could cause an HHDM
1598
          too large to not be properly detected.
1599
        - Limine boot protocol: aarch64: Fix incorrect macro value that would
1600
          cause the size of the higher half to be incorrectly detected as half.
1601
1602
    Miscellaneous:
1603
        - Remove Nix flake stuff from repository/tarball.
1604
1605
2024-07-30  Mintsuki  <mintsuki@protonmail.com>
1606
1607
    *** Release 7.13.2 ***
1608
1609
    Noteworthy changes compared to the previous release, 7.13.1:
1610
1611
    Bug fixes:
1612
        - Limine boot protocol: Fix a bug introduced in 7.13.0 that made
1613
          compressed modules not work on IA-32 ports.
1614
1615
2024-07-29  Mintsuki  <mintsuki@protonmail.com>
1616
1617
    *** Release 7.13.1 ***
1618
1619
    Noteworthy changes compared to the previous release, 7.13.0:
1620
1621
    Bug fixes:
1622
        - Limine boot protocol: Fix a bug introduced in 7.13.0 that made the
1623
          protocol unusable with the BIOS port when loading any modules, when
1624
          Limine was linked using ld.bfd.
1625
1626
2024-07-29  Mintsuki  <mintsuki@protonmail.com>
1627
1628
    *** Release 7.13.0 ***
1629
1630
    Noteworthy changes compared to the previous release, 7.12.1:
1631
1632
    New features:
1633
        - Limine boot protocol: Allow above-4GiB load of modules on IA-32
1634
          ports.
1635
1636
    Miscellaneous:
1637
        - Build system improvements.
1638
1639
2024-07-27  Mintsuki  <mintsuki@protonmail.com>
1640
1641
    *** Release 7.12.1 ***
1642
1643
    Noteworthy changes compared to the previous release, 7.12.0:
1644
1645
    Miscellaneous:
1646
        - Limine boot protocol: limit the HHDM size to half of the higher half
1647
          in all conditions; limit HHDM KASLR wiggle room to a quarter rather
1648
          than half of the higher half.
1649
        - Build system improvements.
1650
1651
2024-07-21  Mintsuki  <mintsuki@protonmail.com>
1652
1653
    *** Release 7.12.0 ***
1654
1655
    Noteworthy changes compared to the previous release, 7.11.0:
1656
1657
    New features:
1658
        - Reinstate support for ext2/3/4, albeit in an unsupported and
1659
          unmaintained state, at least for the time being.
1660
        - Menu: Add vertical bars around entry title in entry editor.
1661
        - Menu: Add clearer indications of what is wrong when config invalid or
1662
          missing.
1663
1664
    Bug fixes:
1665
        - Terminal: Fix long standing wallpaper drawing related bug that under
1666
          certain circumstances could cause memory corruption.
1667
        - Miscellaneous VBE related bug fixes.
1668
        - Miscellaneous A20 line related improvements/fixes.
1669
1670
    Miscellaneous:
1671
        - Limine boot protocol: perform appropriate checks to ensure that the
1672
          higher half direct map fits in the higher half; enforce paging modes
1673
          as needed.
1674
        - Limine boot protocol: aarch64: Specify that the granule size for both
1675
          TTBR0_EL1 and TTBR1_EL1 is 4KiB.
1676
        - Limine boot protocol: aarch64: Specify the values of TCR_EL1.T0SZ and
1677
          TCR_EL1.T1SZ depending on the paging mode used.
1678
        - Limine boot protocol: aarch64: Specify the condition of TTBR0_EL1 and
1679
          TTBR1_EL1 at entry.
1680
1681
2024-07-18  Mintsuki  <mintsuki@protonmail.com>
1682
1683
    *** Release 7.11.0 ***
1684
1685
    Noteworthy changes compared to the previous release, 7.10.3:
1686
1687
    New features:
1688
        - Limine boot protocol: Specify and implement "firmware type" feature.
1689
        - Limine boot protocol: Specify and implement revision 1 "paging mode"
1690
          request extension.
1691
1692
2024-07-16  Mintsuki  <mintsuki@protonmail.com>
1693
1694
    *** Release 7.10.3 ***
1695
1696
    Noteworthy changes compared to the previous release, 7.10.2:
1697
1698
    Bug fixes:
1699
        - Menu: Fix high menu entry count support that was previously broken in
1700
          a regression.
1701
        - Linux boot protocol: Install "memory reservation" EFI configuration
1702
          table on aarch64/riscv64.
1703
1704
    Miscellaneous:
1705
        - Miscellaneous improvements and optimisations of code introduced in
1706
          version 7.10.2.
1707
1708
2024-07-14  Mintsuki  <mintsuki@protonmail.com>
1709
1710
    *** Release 7.10.2 ***
1711
1712
    Noteworthy changes compared to the previous release, 7.10.1:
1713
1714
    Bug fixes:
1715
        - Fix a long standing issue with volume detection on UEFI.
1716
        - Fix issue returning to editor after a panic when coming from a blank
1717
          entry without a valid config.
1718
        - Add missing "loading" prints when booting Linux on non-x86.
1719
1720
2024-07-12  Mintsuki  <mintsuki@protonmail.com>
1721
1722
    *** Release 7.10.1 ***
1723
1724
    Noteworthy changes compared to the previous release, 7.10.0:
1725
1726
    Bug fixes:
1727
        - DTB: Never pass UEFI DTB buffer directly; fix misuse of libfdt API.
1728
1729
2024-07-12  Mintsuki  <mintsuki@protonmail.com>
1730
1731
    *** Release 7.10.0 ***
1732
1733
    Noteworthy changes compared to the previous release, 7.9.2:
1734
1735
    New features:
1736
        - SMP: Support SMP on AArch64 without ACPI.
1737
1738
    Bug fixes:
1739
        - SMP: Do not allocate a useless stack for the BSP.
1740
        - `limine`: Protect against overwriting MBR partitions beginning at
1741
          exceedingly low sector values (outside de facto specification).
1742
1743
    Miscellaneous:
1744
        - Limine boot protocol: Do not pass responses if RSDP or SMBIOS not
1745
          available instead of returning responses with NULL pointers.
1746
        - Limine boot protocol: Do not pass a framebuffer response if no
1747
          framebuffers are available.
1748
1749
2024-07-06  Mintsuki  <mintsuki@protonmail.com>
1750
1751
    *** Release 7.9.2 ***
1752
1753
    Noteworthy changes compared to the previous release, 7.9.1:
1754
1755
    Bug fixes:
1756
        - Limine boot protocol: Return NULL response instead of a response with
1757
          erroneous CPU count of 0 for SMP on x86-64, if x2APIC support not
1758
          enabled and missing xAPIC fallback.
1759
        - Limine boot protocol: Do not ignore MAX_PAGING_MODE config setting if
1760
          paging mode request missing from loaded kernel.
1761
1762
    Miscellaneous:
1763
        - Limine boot protocol/ELF: Apply a slide of 0xffffffff80000000 minus
1764
          the ELF-reported base load address for relocatable kernels that have
1765
          lower half load addresses, instead of always applying a slide of
1766
          0xffffffff80000000.
1767
1768
2024-06-29  Mintsuki  <mintsuki@protonmail.com>
1769
1770
    *** Release 7.9.1 ***
1771
1772
    Noteworthy changes compared to the previous release, 7.9.0:
1773
1774
    Bug fixes:
1775
        - `limine`: Revert change that marked protective MBR wrapper partition
1776
          as active on GPT.
1777
1778
2024-06-28  Mintsuki  <mintsuki@protonmail.com>
1779
1780
    *** Release 7.9.0 ***
1781
1782
    Noteworthy changes compared to the previous release, 7.8.0:
1783
1784
    New features:
1785
        - Linux boot protocol: Add support on aarch64 and riscv64.
1786
1787
    Bug fixes:
1788
        - multiboot1/2: Relax ELF file type requirements (mainly for multiboot2
1789
          relocatable kernels).
1790
        - UEFI: Fix bug that caused delete key to behave as if it was backspace
1791
          even when the SERIAL config option was not "yes".
1792
1793
    Miscellaneous:
1794
        - Limine boot protocol/ELF: Do not consider ELFs relocatable unless the
1795
          ELF file type is ET_DYN.
1796
        - Some dead code removal.
1797
1798
2024-06-24  Mintsuki  <mintsuki@protonmail.com>
1799
1800
    *** Release 7.8.0 ***
1801
1802
    Noteworthy changes compared to the previous release, 7.7.2:
1803
1804
    New features:
1805
        - Return to booted edited entry on panic.
1806
1807
    Bug fixes:
1808
        - `limine`: Mark protective MBR wrapper partition as active on GPT.
1809
1810
    Miscellaneous:
1811
        - UEFI: Allocate most memory as EfiLoaderCode instead of EfiLoaderData.
1812
        - Smaller fixes and improvements.
1813
1814
2024-06-09  Mintsuki  <mintsuki@protonmail.com>
1815
1816
    *** Release 7.7.2 ***
1817
1818
    Noteworthy changes compared to the previous release, 7.7.1:
1819
1820
    Bug fixes:
1821
        - Limine boot protocol/ELF: Ignore PT_LOAD segments with 0 memory size.
1822
        - Limine boot protocol/ELF: Panic on non-weak unresolved symbols.
1823
        - Limine boot protocol/ELF: Do not sanity check DT_RELAENT size for non
1824
          DT_RELA relocations. This is because DT_RELAENT may not be present.
1825
        - multiboot 1 and 2 protocols: Reject relocatable ELFs.
1826
1827
2024-06-06  Mintsuki  <mintsuki@protonmail.com>
1828
1829
    *** Release 7.7.1 ***
1830
1831
    Noteworthy changes compared to the previous release, 7.7.0:
1832
1833
    Bug fixes:
1834
        - Limine boot protocol/ELF: Stop parsing PT_DYNAMIC segment once
1835
          DT_NULL is reached.
1836
1837
2024-06-04  Mintsuki  <mintsuki@protonmail.com>
1838
1839
    *** Release 7.7.0 ***
1840
1841
    Noteworthy changes compared to the previous release, 7.6.0:
1842
1843
    New features:
1844
        - Limine boot protocol/ELF: Add support for GLOB_DAT, JUMP_SLOT, 64,
1845
          and NONE relocation types.
1846
        - Limine boot protocol/ELF: Add RELR (packed relative relocations)
1847
          support.
1848
1849
    Bug fixes:
1850
        - Limine boot protocol/ELF: Reject ELFs that depend on external
1851
          dynamically linked libraries.
1852
1853
    Miscellaneous:
1854
        - Bring back .xz compressed release tarball.
1855
1856
2024-06-01  Mintsuki  <mintsuki@protonmail.com>
1857
1858
    *** Release 7.6.0 ***
1859
1860
    Noteworthy changes compared to the previous release, 7.5.3:
1861
1862
    New features:
1863
        - RISC-V: Add support for RISC-V systems without ACPI (using DTBs).
1864
1865
2024-05-24  Mintsuki  <mintsuki@protonmail.com>
1866
1867
    *** Release 7.5.3 ***
1868
1869
    Noteworthy changes compared to the previous release, 7.5.2:
1870
1871
    Bug fixes:
1872
        - Multiboot 2 protocol: Fix an issue where the 32-bit EFI Image Handle
1873
          tag would be generated under 64-bit EFI and vice versa.
1874
        - Do not set VirtualStart to PhysicalStart when generating the EFI
1875
          memory map; set it to 0 instead.
1876
        - Do not perform additional checks when loading relocatable ELF files
1877
          after verifying that they are of type ET_DYN and have a PT_DYNAMIC
1878
          segment. This ensures that certain relocatable ELF files that were
1879
          previously misidentified as non-relocatable are recognised as such.
1880
1881
2024-05-22  Mintsuki  <mintsuki@protonmail.com>
1882
1883
    *** Release 7.5.2 ***
1884
1885
    Noteworthy changes compared to the previous release, 7.5.1:
1886
1887
    Bug fixes:
1888
        - Fix missing checks in the FAT filesystem driver that could cause
1889
          divide-by-0 exceptions when parsing malformed/corrupted filesystems.
1890
        - Limine boot protocol: Do not reject relocatable kernels with ELF PHDR
1891
          load addresses at or around 0, instead slide them all the way to the
1892
          topmost 2GiB (0xffffffff80000000). This allows setting a base load
1893
          address of 0 in LD BFD/LLD linker scripts which makes LD BFD (the
1894
          default GNU LD) actually emit an ELF with ET_DYN type.
1895
1896
2024-05-08  Mintsuki  <mintsuki@protonmail.com>
1897
1898
    *** Release 7.5.1 ***
1899
1900
    Noteworthy changes compared to the previous release, 7.5.0:
1901
1902
    Bug fixes:
1903
        - Workarounds for issues related to drive iteration on BIOS. Discovered
1904
          on an HP Pavilion dv6-3152er.
1905
1906
2024-05-03  Mintsuki  <mintsuki@protonmail.com>
1907
1908
    *** Release 7.5.0 ***
1909
1910
    Noteworthy changes compared to the previous release, 7.4.1:
1911
1912
    New features:
1913
        - Limine boot protocol: Add support for requests start marker, to
1914
          complement the previously called delimiter, now renamed to "end
1915
          marker".
1916
        - Limine boot protocol: Add base revision 2. The sole difference
1917
          compared to base revision 1 being that it mandates bootloaders to
1918
          support request delimiters.
1919
1920
    Bug fixes:
1921
        - Fix an issue regarding commit date parsing in the bootstrap script.
1922
1923
    Miscellaneous:
1924
        - General documentation updates and improvements; split USAGE.md from
1925
          README.md and install the former only.
1926
1927
2024-04-29  Mintsuki  <mintsuki@protonmail.com>
1928
1929
    *** Release 7.4.1 ***
1930
1931
    Noteworthy changes compared to the previous release, 7.4.0:
1932
1933
    Miscellaneous:
1934
        - Bump max volume limit for UEFI from 64 to 256.
1935
        - Improve how ISA name and firmware type is reported as part of the
1936
          default branding.
1937
1938
2024-04-20  Mintsuki  <mintsuki@protonmail.com>
1939
1940
    *** Release 7.4.0 ***
1941
1942
    Noteworthy changes compared to the previous release, 7.3.1:
1943
1944
    New features:
1945
        - ISA name and firmware type is now printed as part of the default
1946
          bootloader branding.
1947
        - Add 'B' key shortcut to menu to open up a blank entry.
1948
1949
    Bug fixes:
1950
        - Fix missing NULL pointer check in configuration related function.
1951
1952
    Miscellaneous:
1953
        - Console has been removed.
1954
1955
2024-04-11  Mintsuki  <mintsuki@protonmail.com>
1956
1957
    *** Release 7.3.1 ***
1958
1959
    Noteworthy changes compared to the previous release, 7.3.0:
1960
1961
    Bug fixes:
1962
        - Fix a minor issue with scrolling when using the EFI console fallback.
1963
1964
    Miscellaneous:
1965
        - Bump the Flanterm revision to current latest.
1966
        - Some dead code removal.
1967
1968
2024-03-31  Mintsuki  <mintsuki@protonmail.com>
1969
1970
    *** Release 7.3.0 ***
1971
1972
    Noteworthy changes compared to the previous release, 7.2.1:
1973
1974
    New features:
1975
        - Limine boot protocol: Add a `MAX_PAGING_MODE` configuration option
1976
          to override kernel/bootloader selected paging mode.
1977
1978
    Bug fixes:
1979
        - Fix a couple of minor bugs with the 4GiB workaround introduced in
1980
          version 7.2.1.
1981
1982
    Miscellaneous:
1983
        - No longer produce xz compressed release tarballs. Add bzip2, lzip,
1984
          and zstd as alternatives in its place.
1985
1986
2024-03-28  Mintsuki  <mintsuki@protonmail.com>
1987
1988
    *** Release 7.2.1 ***
1989
1990
    Noteworthy changes compared to the previous release, 7.2.0:
1991
1992
    Bug fixes:
1993
        - Implement workaround to allow Limine loaded above 4GiB by UEFI on
1994
          x86-64 to work in some configurations, instead of panicking.
1995
1996
2024-03-24  Mintsuki  <mintsuki@protonmail.com>
1997
1998
    *** Release 7.2.0 ***
1999
2000
    Noteworthy changes compared to the previous release, 7.1.0:
2001
2002
    New features:
2003
        - Add support for remembering the last booted entry on UEFI by means
2004
          of the `REMEMBER_LAST_ENTRY` config option.
2005
2006
2024-03-19  Mintsuki  <mintsuki@protonmail.com>
2007
2008
    *** Release 7.1.0 ***
2009
2010
    Noteworthy changes compared to the previous release, 7.0.5:
2011
2012
    New features:
2013
        - Limine boot protocol: Add support for requests delimiter.
2014
2015
    Bug fixes:
2016
        - Fixed a potential security vulnerability in the ISO9660 driver.
2017
2018
2024-02-15  Mintsuki  <mintsuki@protonmail.com>
2019
2020
    *** Release 7.0.5 ***
2021
2022
    Noteworthy changes compared to the previous release, 7.0.4:
2023
2024
    Bug fixes:
2025
        - Build system related fixes and improvements. This fixes an issue that
2026
          caused Limine 7.0.4 to fail building on Busybox systems.
2027
2028
2024-02-14  Mintsuki  <mintsuki@protonmail.com>
2029
2030
    *** Release 7.0.4 ***
2031
2032
    Noteworthy changes compared to the previous release, 7.0.3:
2033
2034
    Bug fixes:
2035
        - Minor build system related fixes and improvements.
2036
2037
    Miscellaneous:
2038
        - Significantly improve reproducibility of builds.
2039
2040
2024-02-08  Mintsuki  <mintsuki@protonmail.com>
2041
2042
    *** Release 7.0.3 ***
2043
2044
    Noteworthy changes compared to the previous release, 7.0.2:
2045
2046
    Bug fixes:
2047
        - multiboot2 protocol: Do not panic if there is a ENTRY_ADDRESS_EFI64
2048
          tag, but there is a valid alternative entry point. This further aligns
2049
          our behaviour with GRUB2.
2050
2051
    Miscellaneous:
2052
        - Terminal: Significantly improve serial and fallback UEFI console's
2053
          rendition (especially colour palettes).
2054
        - Serial: Add a baud rate config setting for Limine's BIOS version.
2055
2056
2024-01-26  Mintsuki  <mintsuki@protonmail.com>
2057
2058
    *** Release 7.0.2 ***
2059
2060
    Noteworthy changes compared to the previous release, 7.0.1:
2061
2062
    Bug fixes:
2063
        - Fix a cosmetic bug in the menu where, when the editor was disabled,
2064
          the controls showed "ENTER Expand" even for boot entries instead of
2065
          only for menu directories.
2066
2067
    Miscellaneous:
2068
        - Exclusively use git for obtaining dependencies in "bootstrap" script.
2069
2070
2024-01-22  Mintsuki  <mintsuki@protonmail.com>
2071
2072
    *** Release 7.0.1 ***
2073
2074
    Noteworthy changes compared to the previous release, 7.0.0:
2075
2076
    Bug fixes:
2077
        - Fix ARM64/aarch64 spinup code to properly support Apple Silicon
2078
          chips.
2079
        - Prevent users from building Limine with a GNU Make version older than
2080
          4.2, as that is not supported, by gracefully erroring out with a
2081
          useful error message.
2082
        - Avoid usage of reserved C identifiers in certain cases.
2083
2084
    Miscellaneous:
2085
        - Drop usage of "libgcc-binaries" for "cc-runtime". This finally makes
2086
          us able to ship Limine tarballs without included binary blobs, and
2087
          should improve compatibility with more obscure toolchain set ups.
2088
2089
2024-01-14  Mintsuki  <mintsuki@protonmail.com>
2090
2091
    *** Release 7.0.0 ***
2092
2093
    Noteworthy changes compared to the previous release, 6.20240107.0:
2094
2095
    Bug fixes:
2096
        - Minor fix of newline handling when reading user input lines.
2097
2098
    Miscellaneous:
2099
        - Bump major version to 7. Note: There is no breaking change in 7.x
2100
          compared to 6.x; the major version bump is done due to a change in
2101
          the versioning scheme used by Limine (move to proper Semantic
2102
          Versioning).
2103
        - Fix versions of external dependencies in "bootstrap" script.
2104
2105
2024-01-07  Mintsuki  <mintsuki@protonmail.com>
2106
2107
    *** Release 6.20240107.0 ***
2108
2109
    Noteworthy changes compared to the previous release, 6.20231227.0:
2110
2111
    New features:
2112
        - Limine boot protocol: Add support for compressed internal modules.
2113
2114
    Miscellaneous:
2115
        - Improve error reporting from host "limine" executable.
2116
        - Track "master" branch of stb_image upstream.
2117
2118
2023-12-27  Mintsuki  <mintsuki@protonmail.com>
2119
2120
    *** Release 6.20231227.0 ***
2121
2122
    Noteworthy changes compared to the previous release, 6.20231226.0:
2123
2124
    Bug fixes:
2125
        - Actually regenerate build system with GNU Autoconf 2.72 instead of
2126
          GNU Autoconf 2.71.
2127
2128
2023-12-26  Mintsuki  <mintsuki@protonmail.com>
2129
2130
    *** Release 6.20231226.0 ***
2131
2132
    Noteworthy changes compared to the previous release, 6.20231216.0:
2133
2134
    New features:
2135
        - Ignore trailing whitespace in Limine config file.
2136
2137
    Miscellaneous:
2138
        - Regenerate build system with GNU Autoconf 2.72.
2139
        - Minor build system adjustments.
2140
2141
2023-12-16  Mintsuki  <mintsuki@protonmail.com>
2142
2143
    *** Release 6.20231216.0 ***
2144
2145
    Noteworthy changes compared to the previous release, 6.20231210.0:
2146
2147
    New features:
2148
        - Added a `--print-datadir` switch to the `limine` program in order
2149
          to print the directory where Limine files are stored when installed
2150
          on a host distro.
2151
2152
    Miscellaneous:
2153
        - General improvements to the `--help` texts for the `limine` program.
2154
2155
2023-12-10  Mintsuki  <mintsuki@protonmail.com>
2156
2157
    *** Release 6.20231210.0 ***
2158
2159
    This is the first release in the 6.x series.
2160
2161
    Breaking changes compared to the 5.x series:
2162
2163
    - Support for the unmaintained ext2/3/4 filesystems dropped in compliance
2164
      with the Limine bootloader design philosophy.
2165
    - Chainloading protocol split into 2 protocols: EFI chainloading and BIOS
2166
      chainloading.
2167
2168
2023-12-07  Mintsuki  <mintsuki@protonmail.com>
2169
2170
    *** Release 5.20231207.1 ***
2171
2172
    Noteworthy changes compared to the previous release, 5.20231207.0:
2173
2174
    Bug fixes:
2175
        - multiboot2/elf: Fix issue where ELF vaddrs were taken into account
2176
          instead of paddrs when loading executables.
2177
        - Fix implementation of a function that detects whether a given memory
2178
          range is physical RAM.
2179
2180
2023-12-07  Mintsuki  <mintsuki@protonmail.com>
2181
2182
    *** Release 5.20231207.0 ***
2183
2184
    Noteworthy changes compared to the previous release, 5.20231124.0:
2185
2186
    New features:
2187
        - multiboot2 protocol: Add support for relocatable header tag.
2188
        - multiboot2 protocol: Add support for console flags header tag.
2189
        - Limine protocol: Add support for EFI memory map feature.
2190
2191
    Miscellaneous:
2192
        - Improve error reporting from host "limine" executable.
2193
        - Do not ignore errors from mtools when building limine-uefi-cd.bin.
2194
2195
2023-11-24  Mintsuki  <mintsuki@protonmail.com>
2196
2197
    *** Release 5.20231124.0 ***
2198
2199
    Compared to previous release, 5.20231121.0:
2200
2201
    New features:
2202
        - Add support for rebooting to UEFI firmware setup.
2203
2204
    Bug fixes:
2205
        - Fix SMP (multiprocessor) initialisation regression on aarch64.
2206
2207
    Miscellaneous:
2208
        - Move to new, handwritten ChangeLog from autogenerated one.
tab: 248 wrap: offon