limine/ChangeLog

559 lines
18 KiB
Plaintext

2024-07-21 mintsuki <mintsuki@protonmail.com>
*** Release 7.12.0 ***
Noteworthy changes compared to the previous release, 7.11.0:
New features:
- Reinstate support for ext2/3/4, albeit in an unsupported and
unmaintained state, at least for the time being.
- Menu: Add vertical bars around entry title in entry editor.
- Menu: Add clearer indications of what is wrong when config invalid or
missing.
Bug fixes:
- Terminal: Fix long standing wallpaper drawing related bug that under
certain circumstances could cause memory corruption.
- Miscellaneous VBE related bug fixes.
- Miscellaneous A20 line related improvements/fixes.
Miscellaneous:
- Limine boot protocol: perform appropriate checks to ensure that the
higher half direct map fits in the higher half; enforce paging modes
as needed.
- Limine boot protocol: aarch64: Specify that the granule size for both
TTBR0_EL1 and TTBR1_EL1 is 4KiB.
- Limine boot protocol: aarch64: Specify the values of TCR_EL1.T0SZ and
TCR_EL1.T1SZ depending on the paging mode used.
- Limine boot protocol: aarch64: Specify the condition of TTBR0_EL1 and
TTBR1_EL1 at entry.
2024-07-18 mintsuki <mintsuki@protonmail.com>
*** Release 7.11.0 ***
Noteworthy changes compared to the previous release, 7.10.3:
New features:
- Limine boot protocol: Specify and implement "firmware type" feature.
- Limine boot protocol: Specify and implement revision 1 "paging mode"
request extension.
2024-07-16 mintsuki <mintsuki@protonmail.com>
*** Release 7.10.3 ***
Noteworthy changes compared to the previous release, 7.10.2:
Bug fixes:
- Menu: Fix high menu entry count support that was previously broken in
a regression.
- Linux boot protocol: Install "memory reservation" EFI configuration
table on aarch64/riscv64.
Miscellaneous:
- Miscellaneous improvements and optimisations of code introduced in
version 7.10.2.
2024-07-14 mintsuki <mintsuki@protonmail.com>
*** Release 7.10.2 ***
Noteworthy changes compared to the previous release, 7.10.1:
Bug fixes:
- Fix a long standing issue with volume detection on UEFI.
- Fix issue returning to editor after a panic when coming from a blank
entry without a valid config.
- Add missing "loading" prints when booting Linux on non-x86.
2024-07-12 mintsuki <mintsuki@protonmail.com>
*** Release 7.10.1 ***
Noteworthy changes compared to the previous release, 7.10.0:
Bug fixes:
- DTB: Never pass UEFI DTB buffer directly; fix misuse of libfdt API.
2024-07-12 mintsuki <mintsuki@protonmail.com>
*** Release 7.10.0 ***
Noteworthy changes compared to the previous release, 7.9.2:
New features:
- SMP: Support SMP on AArch64 without ACPI.
Bug fixes:
- SMP: Do not allocate a useless stack for the BSP.
- `limine`: Protect against overwriting MBR partitions beginning at
exceedingly low sector values (outside de facto specification).
Miscellaneous:
- Limine boot protocol: Do not pass responses if RSDP or SMBIOS not
available instead of returning responses with NULL pointers.
- Limine boot protocol: Do not pass a framebuffer response if no
framebuffers are available.
2024-07-06 mintsuki <mintsuki@protonmail.com>
*** Release 7.9.2 ***
Noteworthy changes compared to the previous release, 7.9.1:
Bug fixes:
- Limine boot protocol: Return NULL response instead of a response with
erroneous CPU count of 0 for SMP on x86-64, if x2APIC support not
enabled and missing xAPIC fallback.
- Limine boot protocol: Do not ignore MAX_PAGING_MODE config setting if
paging mode request missing from loaded kernel.
Miscellaneous:
- Limine boot protocol/ELF: Apply a slide of 0xffffffff80000000 minus
the ELF-reported base load address for relocatable kernels that have
lower half load addresses, instead of always applying a slide of
0xffffffff80000000.
2024-06-29 mintsuki <mintsuki@protonmail.com>
*** Release 7.9.1 ***
Noteworthy changes compared to the previous release, 7.9.0:
Bug fixes:
- `limine`: Revert change that marked protective MBR wrapper partition
as active on GPT.
2024-06-28 mintsuki <mintsuki@protonmail.com>
*** Release 7.9.0 ***
Noteworthy changes compared to the previous release, 7.8.0:
New features:
- Linux boot protocol: Add support on aarch64 and riscv64.
Bug fixes:
- multiboot1/2: Relax ELF file type requirements (mainly for multiboot2
relocatable kernels).
- UEFI: Fix bug that caused delete key to behave as if it was backspace
even when the SERIAL config option was not "yes".
Miscellaneous:
- Limine boot protocol/ELF: Do not consider ELFs relocatable unless the
ELF file type is ET_DYN.
- Some dead code removal.
2024-06-24 mintsuki <mintsuki@protonmail.com>
*** Release 7.8.0 ***
Noteworthy changes compared to the previous release, 7.7.2:
New features:
- Return to booted edited entry on panic.
Bug fixes:
- `limine`: Mark protective MBR wrapper partition as active on GPT.
Miscellaneous:
- UEFI: Allocate most memory as EfiLoaderCode instead of EfiLoaderData.
- Smaller fixes and improvements.
2024-06-09 mintsuki <mintsuki@protonmail.com>
*** Release 7.7.2 ***
Noteworthy changes compared to the previous release, 7.7.1:
Bug fixes:
- Limine boot protocol/ELF: Ignore PT_LOAD segments with 0 memory size.
- Limine boot protocol/ELF: Panic on non-weak unresolved symbols.
- Limine boot protocol/ELF: Do not sanity check DT_RELAENT size for non
DT_RELA relocations. This is because DT_RELAENT may not be present.
- multiboot 1 and 2 protocols: Reject relocatable ELFs.
2024-06-06 mintsuki <mintsuki@protonmail.com>
*** Release 7.7.1 ***
Noteworthy changes compared to the previous release, 7.7.0:
Bug fixes:
- Limine boot protocol/ELF: Stop parsing PT_DYNAMIC segment once
DT_NULL is reached.
2024-06-04 mintsuki <mintsuki@protonmail.com>
*** Release 7.7.0 ***
Noteworthy changes compared to the previous release, 7.6.0:
New features:
- Limine boot protocol/ELF: Add support for GLOB_DAT, JUMP_SLOT, 64,
and NONE relocation types.
- Limine boot protocol/ELF: Add RELR (packed relative relocations)
support.
Bug fixes:
- Limine boot protocol/ELF: Reject ELFs that depend on external
dynamically linked libraries.
Miscellaneous:
- Bring back .xz compressed release tarball.
2024-06-01 mintsuki <mintsuki@protonmail.com>
*** Release 7.6.0 ***
Noteworthy changes compared to the previous release, 7.5.3:
New features:
- RISC-V: Add support for RISC-V systems without ACPI (using DTBs).
2024-05-24 mintsuki <mintsuki@protonmail.com>
*** Release 7.5.3 ***
Noteworthy changes compared to the previous release, 7.5.2:
Bug fixes:
- Multiboot 2 protocol: Fix an issue where the 32-bit EFI Image Handle
tag would be generated under 64-bit EFI and vice versa.
- Do not set VirtualStart to PhysicalStart when generating the EFI
memory map; set it to 0 instead.
- Do not perform additional checks when loading relocatable ELF files
after verifying that they are of type ET_DYN and have a PT_DYNAMIC
segment. This ensures that certain relocatable ELF files that were
previously misidentified as non-relocatable are recognised as such.
2024-05-22 mintsuki <mintsuki@protonmail.com>
*** Release 7.5.2 ***
Noteworthy changes compared to the previous release, 7.5.1:
Bug fixes:
- Fix missing checks in the FAT filesystem driver that could cause
divide-by-0 exceptions when parsing malformed/corrupted filesystems.
- Limine boot protocol: Do not reject relocatable kernels with ELF PHDR
load addresses at or around 0, instead slide them all the way to the
topmost 2GiB (0xffffffff80000000). This allows setting a base load
address of 0 in LD BFD/LLD linker scripts which makes LD BFD (the
default GNU LD) actually emit an ELF with ET_DYN type.
2024-05-08 mintsuki <mintsuki@protonmail.com>
*** Release 7.5.1 ***
Noteworthy changes compared to the previous release, 7.5.0:
Bug fixes:
- Workarounds for issues related to drive iteration on BIOS. Discovered
on an HP Pavilion dv6-3152er.
2024-05-03 mintsuki <mintsuki@protonmail.com>
*** Release 7.5.0 ***
Noteworthy changes compared to the previous release, 7.4.1:
New features:
- Limine boot protocol: Add support for requests start marker, to
complement the previously called delimiter, now renamed to "end
marker".
- Limine boot protocol: Add base revision 2. The sole difference
compared to base revision 1 being that it mandates bootloaders to
support request delimiters.
Bug fixes:
- Fix an issue regarding commit date parsing in the bootstrap script.
Miscellaneous:
- General documentation updates and improvements; split USAGE.md from
README.md and install the former only.
2024-04-29 mintsuki <mintsuki@protonmail.com>
*** Release 7.4.1 ***
Noteworthy changes compared to the previous release, 7.4.0:
Miscellaneous:
- Bump max volume limit for UEFI from 64 to 256.
- Improve how ISA name and firmware type is reported as part of the
default branding.
2024-04-20 mintsuki <mintsuki@protonmail.com>
*** Release 7.4.0 ***
Noteworthy changes compared to the previous release, 7.3.1:
New features:
- ISA name and firmware type is now printed as part of the default
bootloader branding.
- Add 'B' key shortcut to menu to open up a blank entry.
Bug fixes:
- Fix missing NULL pointer check in configuration related function.
Miscellaneous:
- Console has been removed.
2024-04-11 mintsuki <mintsuki@protonmail.com>
*** Release 7.3.1 ***
Noteworthy changes compared to the previous release, 7.3.0:
Bug fixes:
- Fix a minor issue with scrolling when using the EFI console fallback.
Miscellaneous:
- Bump the Flanterm revision to current latest.
- Some dead code removal.
2024-03-31 mintsuki <mintsuki@protonmail.com>
*** Release 7.3.0 ***
Noteworthy changes compared to the previous release, 7.2.1:
New features:
- Limine boot protocol: Add a `MAX_PAGING_MODE` configuration option
to override kernel/bootloader selected paging mode.
Bug fixes:
- Fix a couple of minor bugs with the 4GiB workaround introduced in
version 7.2.1.
Miscellaneous:
- No longer produce xz compressed release tarballs. Add bzip2, lzip,
and zstd as alternatives in its place.
2024-03-28 mintsuki <mintsuki@protonmail.com>
*** Release 7.2.1 ***
Noteworthy changes compared to the previous release, 7.2.0:
Bug fixes:
- Implement workaround to allow Limine loaded above 4GiB by UEFI on
x86-64 to work in some configurations, instead of panicking.
2024-03-24 mintsuki <mintsuki@protonmail.com>
*** Release 7.2.0 ***
Noteworthy changes compared to the previous release, 7.1.0:
New features:
- Add support for remembering the last booted entry on UEFI by means
of the `REMEMBER_LAST_ENTRY` config option.
2024-03-19 mintsuki <mintsuki@protonmail.com>
*** Release 7.1.0 ***
Noteworthy changes compared to the previous release, 7.0.5:
New features:
- Limine boot protocol: Add support for requests delimiter.
Bug fixes:
- Fixed a potential security vulnerability in the ISO9660 driver.
2024-02-15 mintsuki <mintsuki@protonmail.com>
*** Release 7.0.5 ***
Noteworthy changes compared to the previous release, 7.0.4:
Bug fixes:
- Build system related fixes and improvements. This fixes an issue that
caused Limine 7.0.4 to fail building on Busybox systems.
2024-02-14 mintsuki <mintsuki@protonmail.com>
*** Release 7.0.4 ***
Noteworthy changes compared to the previous release, 7.0.3:
Bug fixes:
- Minor build system related fixes and improvements.
Miscellaneous:
- Significantly improve reproducibility of builds.
2024-02-08 mintsuki <mintsuki@protonmail.com>
*** Release 7.0.3 ***
Noteworthy changes compared to the previous release, 7.0.2:
Bug fixes:
- multiboot2 protocol: Do not panic if there is a ENTRY_ADDRESS_EFI64
tag, but there is a valid alternative entry point. This further aligns
our behaviour with GRUB2.
Miscellaneous:
- Terminal: Significantly improve serial and fallback UEFI console's
rendition (especially colour palettes).
- Serial: Add a baud rate config setting for Limine's BIOS version.
2024-01-26 mintsuki <mintsuki@protonmail.com>
*** Release 7.0.2 ***
Noteworthy changes compared to the previous release, 7.0.1:
Bug fixes:
- Fix a cosmetic bug in the menu where, when the editor was disabled,
the controls showed "ENTER Expand" even for boot entries instead of
only for menu directories.
Miscellaneous:
- Exclusively use git for obtaining dependencies in "bootstrap" script.
2024-01-22 mintsuki <mintsuki@protonmail.com>
*** Release 7.0.1 ***
Noteworthy changes compared to the previous release, 7.0.0:
Bug fixes:
- Fix ARM64/aarch64 spinup code to properly support Apple Silicon
chips.
- Prevent users from building Limine with a GNU Make version older than
4.2, as that is not supported, by gracefully erroring out with a
useful error message.
- Avoid usage of reserved C identifiers in certain cases.
Miscellaneous:
- Drop usage of "libgcc-binaries" for "cc-runtime". This finally makes
us able to ship Limine tarballs without included binary blobs, and
should improve compatibility with more obscure toolchain set ups.
2024-01-14 mintsuki <mintsuki@protonmail.com>
*** Release 7.0.0 ***
Noteworthy changes compared to the previous release, 6.20240107.0:
Bug fixes:
- Minor fix of newline handling when reading user input lines.
Miscellaneous:
- Bump major version to 7. Note: There is no breaking change in 7.x
compared to 6.x; the major version bump is done due to a change in
the versioning scheme used by Limine (move to proper Semantic
Versioning).
- Fix versions of external dependencies in "bootstrap" script.
2024-01-07 mintsuki <mintsuki@protonmail.com>
*** Release 6.20240107.0 ***
Noteworthy changes compared to the previous release, 6.20231227.0:
New features:
- Limine boot protocol: Add support for compressed internal modules.
Miscellaneous:
- Improve error reporting from host "limine" executable.
- Track "master" branch of stb_image upstream.
2023-12-27 mintsuki <mintsuki@protonmail.com>
*** Release 6.20231227.0 ***
Noteworthy changes compared to the previous release, 6.20231226.0:
Bug fixes:
- Actually regenerate build system with GNU Autoconf 2.72 instead of
GNU Autoconf 2.71.
2023-12-26 mintsuki <mintsuki@protonmail.com>
*** Release 6.20231226.0 ***
Noteworthy changes compared to the previous release, 6.20231216.0:
New features:
- Ignore trailing whitespace in Limine config file.
Miscellaneous:
- Regenerate build system with GNU Autoconf 2.72.
- Minor build system adjustments.
2023-12-16 mintsuki <mintsuki@protonmail.com>
*** Release 6.20231216.0 ***
Noteworthy changes compared to the previous release, 6.20231210.0:
New features:
- Added a `--print-datadir` switch to the `limine` program in order
to print the directory where Limine files are stored when installed
on a host distro.
Miscellaneous:
- General improvements to the `--help` texts for the `limine` program.
2023-12-10 mintsuki <mintsuki@protonmail.com>
*** Release 6.20231210.0 ***
This is the first release in the 6.x series.
Breaking changes compared to the 5.x series:
- Support for the unmaintained ext2/3/4 filesystems dropped in compliance
with the Limine bootloader design philosophy.
- Chainloading protocol split into 2 protocols: EFI chainloading and BIOS
chainloading.
2023-12-07 mintsuki <mintsuki@protonmail.com>
*** Release 5.20231207.1 ***
Noteworthy changes compared to the previous release, 5.20231207.0:
Bug fixes:
- multiboot2/elf: Fix issue where ELF vaddrs were taken into account
instead of paddrs when loading executables.
- Fix implementation of a function that detects whether a given memory
range is physical RAM.
2023-12-07 mintsuki <mintsuki@protonmail.com>
*** Release 5.20231207.0 ***
Noteworthy changes compared to the previous release, 5.20231124.0:
New features:
- multiboot2 protocol: Add support for relocatable header tag.
- multiboot2 protocol: Add support for console flags header tag.
- Limine protocol: Add support for EFI memory map feature.
Miscellaneous:
- Improve error reporting from host "limine" executable.
- Do not ignore errors from mtools when building limine-uefi-cd.bin.
2023-11-24 mintsuki <mintsuki@protonmail.com>
*** Release 5.20231124.0 ***
Compared to previous release, 5.20231121.0:
New features:
- Add support for rebooting to UEFI firmware setup.
Bug fixes:
- Fix SMP (multiprocessor) initialisation regression on aarch64.
Miscellaneous:
- Move to new, handwritten ChangeLog from autogenerated one.