Commit Graph

109 Commits

Author SHA1 Message Date
Mintsuki
b43094de96 sys/smp: Reject address_cells == 0 in AArch64 DTB SMP enumeration 2026-02-10 11:10:02 +01:00
Mintsuki
890c1aa18f sys/smp: Free buffer and return NULL on zero APs in AArch64 ACPI path 2026-02-10 11:10:02 +01:00
Mintsuki
00a542f0c6 misc: Fix wrong format specifiers for 64-bit arguments in print calls 2026-02-10 11:10:02 +01:00
Mintsuki
ebde1ee086 sys/smp: Send two SIPIs per Intel SDM recommendation for AP startup 2026-02-10 11:10:02 +01:00
Mintsuki
567a03ecbc mm/vmm: Use firmware-reported MMU type instead of satp probe on RISC-V 2026-02-10 11:10:02 +01:00
Mintsuki
5aeaa2a2be sys/smp: Revert AArch64 trampoline allocation to smp_trampoline_size 2026-02-10 11:10:02 +01:00
Mintsuki
da98c40f18 sys/smp: Fix mismatched adrp/add label in AArch64 SMP trampoline EL2 path 2026-02-10 11:10:02 +01:00
Mintsuki
9ff880b13e sys/cpu: Fix 32-bit multiplication overflow in tsc_freq_arch 2026-02-10 10:58:04 +01:00
Mintsuki
42cd5249b8 sys/smp: Skip AP with unrecognised PSCI method instead of panicking 2026-02-10 10:58:04 +01:00
Mintsuki
6a2d7ddfcf sys/lapic: Validate MADT I/O APIC entry length 2026-02-10 10:58:04 +01:00
Mintsuki
667199b97d sys/cpu: Fix AArch64 cache line size calculation to use 4 << field 2026-02-10 10:58:03 +01:00
Mintsuki
6088015eb3 sys/cpu_riscv: Skip re-init when config unchanged to prevent FDT use-after-free 2026-02-10 10:58:03 +01:00
Mintsuki
f279a4411a sys/smp: Pass top of temp stack allocation instead of base 2026-02-10 10:58:03 +01:00
Mintsuki
970709b2c7 a20: Add timeout for keyboard controller polling loops 2026-01-14 18:40:49 +01:00
Mintsuki
66dacaae9c madt: Add entry length validation to prevent infinite loop 2026-01-14 18:40:49 +01:00
Mintsuki
81624fce25 smp: Add MADT GIC entry size validation on AArch64 2026-01-14 18:40:49 +01:00
Mintsuki
ba2b3194e9 cpu_riscv: Add complete bounds validation for RHCT ISA string and MMU nodes 2026-01-14 18:40:49 +01:00
Mintsuki
aef2a4b9fd smp: Validate MADT entry size before accessing type-specific fields 2026-01-14 18:40:49 +01:00
Mintsuki
69a4e0180d cpu_riscv: Add bounds checks for RHCT table parsing 2026-01-14 18:40:49 +01:00
Mintsuki
3aacef11ce smp: Add bounds checks for FADT length and device tree properties 2026-01-14 18:40:49 +01:00
Mintsuki
76941506a8 smp: Fix MADT bounds check, PSCI NULL check, and AArch64 trampoline size 2026-01-14 18:40:49 +01:00
Mintsuki
67ccf78bd6 sys/smp: Prevent infinite loop on zero-length MADT entry 2026-01-05 05:44:08 +01:00
Mintsuki
1cbc9f7a8d sys/cpu_riscv: Add missing continue after invalid ISA string check 2026-01-05 05:44:08 +01:00
Mintsuki
06d0a77964 sys/exceptions: Add bounds check for exception number 2026-01-04 18:31:09 +01:00
Mintsuki
1e43c13bb2 riscv: Simplify logic of code added in 051bb27ed0 2025-11-30 01:13:02 +01:00
Mintsuki
051bb27ed0 riscv: Prioritise CPU init with ACPI unless DTB manually overridden 2025-11-30 00:56:07 +01:00
Kacper Słomiński
02f1a8f539 sys/cpu: Flush entire I-Cache if it's not PIPT on aarch64
AArch64 permits the I-Cache be either PIPT or VIPT. In the latter
case, flush by VA might leave aliases at other VAs in the cache. I
don't expect there to be any since we're using an identity mapping at
this point, but this doesn't hurt.
2025-11-29 17:21:49 +01:00
Mintsuki
7d90dcb97a riscv: Fix use-after-free bug related to DTB initialisation 2025-11-29 15:37:22 +01:00
Mintsuki
5460569106 riscv: Do an early RISC-V init to allow checking ISA features early 2025-11-29 09:51:56 +01:00
Mintsuki
8620b970e9 misc: Prevent some memory leaks after get_device_tree_blob(..., 0) made to allocate 2025-10-13 12:22:55 +02:00
Mintsuki
b3f0233219 Revert "sys/idt: init_flush_irqs(), init_idt() -> idt_init()"
This reverts commit c0386d4d94.
2025-09-21 21:19:08 +02:00
Mintsuki
6ea8323cd9 Revert "sys/idt: init_idt() -> idt_init_bios()"
This reverts commit d316b17e24.
2025-09-21 21:18:12 +02:00
Mintsuki
03298ffe14 Revert "sys/idt: Relatively minor code cleanup and removal of repetitions"
This reverts commit 30c5a373ae.
2025-09-21 21:17:33 +02:00
Mintsuki
773bd3e93f Revert "mm/pmm: Add validation of allocated memory viability on x86_64/UEFI"
This reverts commit 5f6b2faf26.
2025-09-21 21:17:12 +02:00
Mintsuki
5ee65db085 Revert "misc: Gate sys/idt.h as a whole behind x86 check"
This reverts commit 312b8e20a3.
2025-09-21 21:16:49 +02:00
Mintsuki
312b8e20a3 misc: Gate sys/idt.h as a whole behind x86 check 2025-09-21 09:24:40 +02:00
Mintsuki
5f6b2faf26 mm/pmm: Add validation of allocated memory viability on x86_64/UEFI 2025-09-21 09:16:24 +02:00
Mintsuki
30c5a373ae sys/idt: Relatively minor code cleanup and removal of repetitions 2025-09-21 04:43:14 +02:00
Mintsuki
d316b17e24 sys/idt: init_idt() -> idt_init_bios() 2025-09-21 03:32:07 +02:00
Mintsuki
c0386d4d94 sys/idt: init_flush_irqs(), init_idt() -> idt_init() 2025-09-21 00:23:51 +02:00
Mintsuki
b491fc5cc4 sys/idt: Fix dummy_idt use-after-free bug 2025-09-21 00:17:42 +02:00
Mintsuki
4ce8126ded sys/smp: x86: Remove useless instruction size specifier that broke old nasm
Fixes #524
2025-08-05 14:48:58 +02:00
Mintsuki
996a0c1801 misc: Move to using separate libfdt repository 2025-07-12 12:08:05 +02:00
sanana
c411051252 lib/bli: Implement LoaderTimeInitUSec and LoaderTimeExecUSec
These are variables used by `systemd-analyze` and is useful for boot performance
metrics.
2025-07-03 11:02:54 +03:00
sanana
957661c7ea sys/cpu: Implement TSC frequency calibration
`tsc_freq_arch` is the architecture-specific function to get the frequency of
rdtsc. If that fails (e.g. on an x86_64 machine without CPUID leaf 0x15) then
the TSC is calibrated with EFI Boot Services' `Stall`.
2025-06-29 15:11:14 +03:00
Mintsuki
294c55f87c smp: For x86, ensure that the value of IA32_APIC_BASE is the same for APs as for BSP 2025-06-20 07:12:38 +02: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
Kacper Słomiński
945c43de0d lib: Move DTB_PATH handling logic into common code 2024-12-24 17:10:47 +01:00
mintsuki
0ba9919ed3 protos/limine: Rename SMP feature to MP feature 2024-11-30 02:19:31 +01:00
mintsuki
21056a3211 sys/smp: Ensure machines with pre-enabled x2APIC are properly supported 2024-11-25 12:58:48 +01:00