Commit Graph

40 Commits

Author SHA1 Message Date
Mintsuki
34b5380d0b protos/linux_risc: Fix use-after-free of module handle in verbose print 2026-04-04 15:34:07 +02:00
Mintsuki
18e3547432 protos/linux_risc: Use overflow-checked add for kernel allocation size 2026-04-04 15:34:07 +02:00
Mintsuki
8118e60ddb protos/linux_risc: Load and concatenate all modules, not just the first 2026-04-02 01:44:58 +02:00
Mintsuki
eb071a0121 misc: Add overflow checking to ALIGN_UP and DIV_ROUNDUP macros 2026-04-02 01:44:58 +02:00
Mintsuki
b29b11ce6d Reapply "lib/fb: Add preserve_screen option to skip fb_clear on init"
This reverts commit 12841527e9.
2026-03-30 19:44:19 +02:00
Mintsuki
12841527e9 Revert "lib/fb: Add preserve_screen option to skip fb_clear on init"
This reverts commit 2e2fc63628.
2026-03-30 09:16:32 +02:00
Mintsuki
2e2fc63628 lib/fb: Add preserve_screen option to skip fb_clear on init 2026-03-23 08:34:14 +01:00
Mintsuki
398c14cc00 protos/linux_risc: Disable MMU before aarch64 kernel entry 2026-03-15 03:49:03 +01:00
Mintsuki
21e15f3791 protos/linux_risc: Clean caches before aarch64 kernel entry 2026-03-15 03:49:03 +01:00
Mintsuki
31202dc374 protos/linux_risc: Disable MMU and flush caches before RISC-V kernel entry 2026-03-15 03:49:03 +01:00
Mintsuki
2820acf9b7 protos/linux_risc: Respect text_offset when loading kernel 2026-03-15 03:49:03 +01:00
Mintsuki
aa7f2871fe protos/linux_risc: Validate kernel header before trusting image_size for allocation 2026-03-06 13:11:53 +01:00
Mintsuki
f1167da7a9 misc: Fix wrong format specifiers for 64-bit arguments in print calls 2026-02-09 13:02:39 +01:00
Mintsuki
f954307987 protos/linux_risc: Allocate EFI config tables as EfiLoaderData instead of EfiLoaderCode 2026-02-09 13:02:39 +01:00
Mintsuki
93f54bbc45 protos/linux_risc: Fix wrong format specifiers for 64-bit arguments in print calls 2026-02-09 13:02:39 +01:00
Mintsuki
c03be0ba4b protos/linux_risc: Use image_size from kernel header for allocation 2026-02-09 13:02:38 +01:00
Mintsuki
e04194d3ad protos/linux: linux_direct_load() -> linux_load() 2025-09-21 21:22:12 +02:00
Mintsuki
13ccc30b23 protos/linux: linux_load() -> linux_direct_load()
Additionally make some functions static and rename linux.c -> linux_x86.c
2025-09-19 22:26:35 +02:00
Mintsuki
996a0c1801 misc: Move to using separate libfdt repository 2025-07-12 12:08:05 +02:00
mintsuki
c9cc7bbb66 protos: Make 'path' option standard to pick executable to boot for all protos 2025-01-10 13:53:12 +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
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
Marvin Friedrich
6d2995a3f1 protos/linux: Add device tree blob override config option (#420)
* protos/linux: Add device tree blob override config option

* protos/linux: Remove unnecessary UEFI check
2024-10-18 21:21:34 +02:00
mintsuki
0c2f0ddebe build: Remove custom __riscv64 define in favour of built-in __riscv define
We do not support non-64-bit RISC-V anyways
2024-08-11 20:25:01 +02:00
Kacper Słomiński
bb9ffd74d2 protos/linux_risc: Fix warning in table installation code 2024-07-15 01:34:04 +02:00
Kacper Słomiński
9faa0e0f0f protos/linux_risc: Install memory reservation configuration table
This gets rid of some warnings when booting Linux on systems with a GIC v3
interrupt controller.
2024-07-15 01:21:35 +02:00
mintsuki
582a86a7ef protos/linux_risc: Minor code reshuffling to get initramfs loading print to show 2024-07-14 09:32:58 +02:00
mintsuki
f0d64f30a9 protos/linux_risc: Add missing loading prints 2024-07-14 09:19:32 +02:00
Kacper Słomiński
7473bb3f8e protos/linux_risc: Document need for the linux,uefi-secure-boot property 2024-06-28 06:09:54 +02:00
Kacper Słomiński
ee5096ed84 protos/linux_risc: Tell Linux about the framebuffer 2024-06-28 04:14:31 +02:00
mintsuki
45e036275a dtb: Optionally reallocate and expand DTB memory as needed 2024-06-28 00:43:27 +02:00
Kacper Słomiński
aed3b3348e protos/linux_risc: Properly fill VirtualStart in memory map
This lets Linux use UEFI runtime services.
2024-06-16 20:46:23 +02:00
mintsuki
9fb6423002 protos/linux: riscv64: Fix protocol version check 2024-06-16 07:40:50 +02:00
mintsuki
2541760b98 protos/linux: Rename files to avoid unnecessary diffs (1) 2024-06-15 21:30:06 +02:00
mintsuki
440ba05e08 protos/linux: Rename files (2) 2024-06-12 02:07:39 +02:00
mintsuki
56b7a32dfc protos/linux: Rename files (1) 2024-06-12 02:07:12 +02:00