Commit Graph

17 Commits

Author SHA1 Message Date
Mintsuki
65a4eaed9d sys/lapic: Skip MADT type 4 NMI entries for x2APIC UIDs above 0xfe 2026-04-20 18:02:57 +02:00
Mintsuki
947a9b2c3a sys/lapic, sys/smp: Validate MADT entry length against table boundary 2026-04-02 01:44:58 +02:00
Mintsuki
d7f0160ddc mm/pmm: Add ext_mem_alloc_counted(), use it everywhere for checked array allocations 2026-03-31 15:31:50 +02:00
Mintsuki
4f7aa2ed5d sys/lapic: Preserve LAPIC register state across x2APIC-to-xAPIC transition 2026-03-03 18:24:50 +01:00
Mintsuki
27b209aee8 sys/lapic: Preserve I/O APIC redirection entries when masking 2026-02-25 04:09:06 +01:00
Mintsuki
ab5936bd58 sys/lapic: Preserve LVT entries with SMI/INIT/reserved delivery modes 2026-02-25 04:09:06 +01:00
Mintsuki
b627a65d58 sys/smp: Add xAPIC ICR delivery status checks to INIT-SIPI-SIPI sequence 2026-02-25 04:09:05 +01:00
Mintsuki
3e9f531b95 sys/smp: Try to disable x2APIC when kernel does not support it 2026-02-20 21:58:07 +01:00
Mintsuki
1cec138d5c protos/limine: Implement base revision 5 2026-02-20 03:51:24 +01:00
Mintsuki
6ab2105194 sys/lapic: Validate MADT I/O APIC entry length 2026-02-09 13:02:38 +01:00
Mintsuki
5134bd97e5 madt: Add entry length validation to prevent infinite loop 2026-01-13 01:03:08 +01:00
Mintsuki
f3d037b921 smp: Fix MADT bounds check, PSCI NULL check, and AArch64 trampoline size 2026-01-12 01:46:18 +01:00
mintsuki
c1860c8d80 limine/ioapic: Change spec to avoid masking IOAPIC RTEs unless Fixed or Lowest Priority 2023-10-24 01:21:24 +02:00
xvanc
cdac49ebfb acpi: remove duplicate definition in sys/lapic.c 2023-09-16 11:28:15 -05:00
mintsuki
07080dcbc2 misc: blib.h -> misc.h 2022-08-26 23:44:47 +02:00
Kacper Słomiński
e1f6ac8860 Initial AArch64 port (#205)
* Initial aarch64 port

* Enable chainload on aarch64

No changes necessary since it's all UEFI anyway.

* Add specification for Limine protocol for aarch64

* PROTOCOL: Specify state of information in DT /chosen node

* common: Add spinup code for aarch64

* common: Port elf and term to aarch64

* common: Port vmm to aarch64

Also prepare to drop VMM_FLAG_PRESENT on x86.

* protos: Port limine boot protocol to aarch64

Also drop VMM_FLAG_PRESENT since we never unmap pages anyway.

* test: Add DTB request

* PROTOCOL: Port SMP request to aarch64

* cpu: Add cache maintenance functions for aarch64

* protos/limine, sys: Port SMP to aarch64

Also move common asm macros into a header file.

* test: Start up APs

* vmm: Unify get_next_level and implement large page splitting

* protos/limine: Map framebuffer using correct caching mode on AArch64

* CI: Fix GCC build for aarch64

* entry, menu: Replace uses of naked attribute with separate asm file

GCC does not understand the naked attribute on aarch64, and didn't
understand it for x86 in older versions.
2022-08-18 17:32:54 +02:00
mintsuki
400202d926 misc: stage23 -> common 2022-02-03 10:38:43 +01:00