Commit Graph

926 Commits

Author SHA1 Message Date
Mintsuki
9ee0e8d4e4 stb_image: Fix potential null deref in stbi_realloc() 2025-04-12 21:04:10 +02:00
Mintsuki
08ed65f63e stb_image: Fix calculation of old size in stbi_realloc() 2025-04-12 20:18:48 +02:00
Mintsuki
cb463226b9 misc: Update to latest, packed, cc-runtime 2025-04-06 22:38:15 +02:00
Mintsuki
f35cd2c172 menu: Hide BIOS chainloading entries on UEFI and vice-versa. Fixes #484 2025-03-31 08:24:40 +02:00
Mintsuki
80912a3d1f protos/multiboot2: Ignore top-down relocation hint as we do not properly support it 2025-03-31 02:33:54 +02:00
Mintsuki
c8cdc9e051 protos/multiboot2: Panic if EFI64 entry is required, else ignore it 2025-03-31 02:32:19 +02:00
Mintsuki
73d03e7149 disk: Avoid mistakingly allocating more memory than necessary
What should've been a sizeof(void *) had been a sizeof(struct volume) for the longest time
2025-03-25 23:18:20 +01:00
Mintsuki
002bd363b4 misc: Fix potential buffer overflow bug with our stb_image support code 2025-03-25 22:33:30 +01:00
Mintsuki
3ef6bb6764 disk: Handle dynamically allocating volume index. Fixes #481 2025-03-25 21:54:08 +01:00
Mintsuki
06e7b78e33 pmm: Handle freeing and allocating fresh ptrs via realloc() 2025-03-25 21:52:27 +01:00
Mintsuki
e4d1f3e706 pmm: Implement pmm_realloc() 2025-03-25 21:39:54 +01:00
Mintsuki
3e9f2e030d lib: Add MIN and MAX macros 2025-03-25 21:39:16 +01:00
Marvin Friedrich
76446d0c28 lib/elf: Print name of unresolved symbol on panic 2025-03-19 11:44:51 +01:00
Mintsuki
f362e6bb5a config: Slight change to the config file search semantics for EFI 2025-03-16 09:43:18 +01:00
sanana
196e07ab05 bli: Implement initial Boot Loader Interface support
This patch makes Limine advertise its branding and the ESP partition GUID to
systemd over the Boot Loader Interface specification. There's more to the Boot
Loader Interface than these variables, but this acts as an initial
implementation. See #473.

BLI variables are initialised for all protocols, not just Linux. While currently
only systemd makes use of it, this allows future Limine protocol kernels (or
their userspace) to discover the ESP.
2025-03-15 16:23:43 +03:00
Mintsuki
97db4ca4ca build: Drop -0bsd suffix from in-tree copy of freestnd-c-hdrs-0bsd 2025-03-13 04:18:36 +01:00
Mintsuki
365415baa7 loongarch64: Fix alignment of TLB-refill handler address
Co-authored-by: Mikhail Kovalev <mkm12342001@gmail.com>
2025-03-13 02:42:29 +01:00
mintsuki
852f4a0665 misc: Fix a variable shadowing in is_efi_serial_present() 2025-03-09 23:49:21 +01:00
mintsuki
2d404d6fc1 misc: Do not attempt to use serial if not detected on EFI
This addresses an issue reported on Macs that lack a serial port and also lack a working ConOut screen console, resulting in nothing but a blank screen instead of the menu
2025-03-09 23:42:43 +01:00
mintsuki
c0924e6cf1 protos/chainload: Get rid of unnecessary function splits 2025-02-25 19:47:32 +01:00
mintsuki
71014d8f24 protos/chainload: Use updated protocol names in messages 2025-02-25 19:44:46 +01:00
mintsuki
50c01f010d protos/efi: Do not use EFI allocator uselessly and fix use-after-free 2025-02-25 19:25:46 +01:00
mintsuki
3e899468de protos/efi: Comment out unused debug function devpath_print() to avoid warning 2025-02-25 19:06:39 +01:00
mintsuki
84981d6ca6 protos/efi: Rework entire chainloading procedure to fix issues caused by the old method
This should fix rEFInd and potentially more EFI applications previously misbehaving.
2025-02-25 19:02:01 +01:00
Qwinci
30a3928e58 lib/pe: Map image headers 2025-02-19 10:36:18 +02:00
mintsuki
99738edd07 protos/limine: Specify and implement executable command line feature 2025-02-17 02:14:59 +01:00
mintsuki
278881c72f protos/limine: Rename 'boot time' feature to 'date at boot' for APIv3 2025-02-16 02:58:39 +01:00
mintsuki
eaca4391d3 protos/efi: Fix 'path' option alias not working. Closes #458 2025-02-15 20:57:29 +01:00
mintsuki
e2cda1d821 protos/chainload_next: Drop protocol 2025-02-15 14:26:35 +01:00
mintsuki
6858bbf41c protos/limine: Introduce API revision 3; rename cmdline to string in file struct 2025-02-15 14:22:06 +01:00
mintsuki
0b41786e9d config: Add aliases for BIOS and EFI chainload protocol options 2025-02-11 22:26:22 +01:00
mintsuki
db8f63bdfd config: Drop support for legacy config format 2025-02-10 13:31:18 +01:00
mintsuki
281972e90c Reapply "fs: Drop ext2/3/4 support"
This reverts commit a79ac43e99.
2025-02-08 08:58:59 +01:00
mintsuki
906b714c99 sys/smp: Use monitor/mwait when available instead of plain pause for spin-loops 2025-02-08 08:53:15 +01:00
mintsuki
c9cc7bbb66 protos: Make 'path' option standard to pick executable to boot for all protos 2025-01-10 13:53:12 +01:00
mintsuki
96a703141e Revert "protos: Keep linux protocol disabled on loong64 as it is not confirmed working"
This reverts commit c73505f13b.
2025-01-10 13:35:38 +01:00
czapek
8b01ea3430 lib: Add support for loading PE images (#442)
* lib: Add support for loading PE images

* lib/pe: Use standard integer types

* lib/pe: Fix section alignment

* lib/pe: Properly iterate base relocation blocks

* lib/pe: Add missing machine types

* protos/limine: Add kernel format detection logic

* lib/pe: Fix integer to pointer conversion errors

* lib/elf: Add previously removed check

* lib/pe: Fix base relocation block iteration code

* lib/pe: Add missing machine types to pe_bits
2025-01-08 00:35:15 +01:00
dean
e8be325253 lib/term: fix potential issue with modulo 2025-01-05 21:07:42 +11:00
dean
e7a681591c lib/term: support for randomly selected wallpaper 2025-01-05 20:23:52 +11:00
mintsuki
c73505f13b protos: Keep linux protocol disabled on loong64 as it is not confirmed working 2024-12-26 07:16:44 +01:00
mintsuki
512da261c3 misc: Simplifications after 945c43de0 and e721cecc2 2024-12-25 18:44:10 +01:00
Kacper Słomiński
945c43de0d lib: Move DTB_PATH handling logic into common code 2024-12-24 17:10:47 +01:00
Kacper Słomiński
e721cecc25 protos/linux_risc: Don't call get_device_tree_blob if using one from a file 2024-12-24 15:56:57 +01:00
mintsuki
deefcb622d protos/linux_risc: Fix EFI memmap configuration table preparation 2024-12-24 13:32:17 +01:00
mintsuki
2e088856a8 Merge pull request #440 from no92/pxe-efi-device-handle
Pass UEFI device handle on PXE boots
2024-12-23 03:54:07 +01:00
no92
ac3c4ac3b0 pxe: pass EFI device handle 2024-12-22 14:53:24 +01:00
Yao Zi
240ecc29e9 protos/linux_risc: add loongarch64 support
LoongArch kernels have more address space requirements than aarch64/
riscv64. All params (commandline, initrd, etc.) should be passed
as EFI configuration tables.

This has been tested on qemu with ACPI on. DTB support isn't tested and
isn't really matter, either. Most LoongArch devices come with an
ACPI-compatible firmware.

Signed-off-by: Yao Zi <ziyao@disroot.org>
2024-12-20 20:51:26 +00:00
Yao Zi
3f57bb5a2c protos/linux_risc: pass memory map and initrd by EFI configuration table
Newer Linux kernel supports passing boot params without a devicetree. In
this case, the bootloader should register a Linux-specific EFI
configuration table, which contains memory mapping information or initrd
address.

This is the only option on some new platforms like LoongArch, and is
necessary to allow booting Linux kernel without a DTB on aarch64/riscv64.

Signed-off-by: Yao Zi <ziyao@disroot.org>
2024-12-20 20:51:23 +00:00
Yao Zi
f24e866c02 protos/linux_risc: clean up
Split architecture-dependent code and dtb-specific operations into
different functions to keep condition compilation in the leaf and
prepare for support of ACPi-only systems.

Signed-off-by: Yao Zi <ziyao@disroot.org>
2024-12-19 17:36:15 +00:00
mintsuki
da43c70a2d protos: Reduce or remove mentions of 'kernel' where unnecessary
This also introduces limine.h API revision 2
2024-12-05 09:31:59 +01:00