Commit Graph

63 Commits

Author SHA1 Message Date
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
mintsuki
3e71596bdb protos/limine: Check for PAT availability in SMP trampoline as well 2024-10-12 17:15:04 +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
mintsuki
21d3d7f3f2 sys/smp: Obtain LAPIC ID from LAPIC instead of CPUID 2024-08-11 19:32:22 +02:00
mintsuki
6eecac7049 riscv64: Use rdcycle instead of rdtime for rdtsc(); add delay to SMP startup like 530e28e846 2024-08-09 14:45:21 +02:00
Kacper Słomiński
530e28e846 smp: Fix BSP timing out while waiting for APs on AArch64
When running with KVM, the BSP seems to time out while waiting for APs
to come up, which leads to the OS only being told about 1 AP, and
all the APs using the same info struct and stack pointer.
2024-08-09 08:21:15 +02:00
Keegan Saunders
d9a2fb95a9 Add LoongArch support 2024-07-31 23:05:27 -04:00
mintsuki
cdeb745b66 build: Restore WERROR_FLAG to nasm calls, add NASMFLAGS_FOR_TARGET 2024-07-25 09:45:40 +02:00
mintsuki
63427dca3b bios/a20: Add support for fast A20 method. May fix #386 2024-07-20 19:42:58 +02:00
mintsuki
b3385b8027 bios/a20: Improve a20_check(). Could fix #386 2024-07-20 19:30:06 +02:00
Kacper Słomiński
8de8ee1573 sys/smp: Add support for SMP on non-ACPI AArch64 systems 2024-07-12 05:03:54 +02:00
Kacper Słomiński
fd2ad70604 PROTOCOL: Get rid of unreliable gic_iface_no field on AArch64 2024-07-12 04:58:30 +02:00
mintsuki
9b2ae5be47 smp: Return NULL instead of 0 CPU count if no processors were started 2024-07-01 00:21:24 +02:00
mintsuki
68ad2db755 dtb: Fix bugs introduced in cc05481b89 2024-06-28 01:01:21 +02:00
mintsuki
45e036275a dtb: Optionally reallocate and expand DTB memory as needed 2024-06-28 00:43:27 +02:00
xvanc
65e2c1b4d8 riscv: add support for device tree 2024-05-30 10:53:21 -05:00
mintsuki
4e4105782e misc: No more non-static inline functions in headers 2024-04-10 20:16:37 +02:00
cospplredman
ba5c0004e6 fixed header guard names
made them more standard compliant
2024-03-20 03:06:55 +01:00
48cf
6374a0027b smp/aarch64: Fix trampoline alignment and allocation size 2023-11-24 03:15:33 +01:00
mintsuki
54f3118f4c sys/smp: Synchronise AP MTRRs with the BSP 2023-11-14 08:32:48 +01:00
mintsuki
2c8c0c3deb Revert "misc: Converge with 5.x"
This reverts commit f9682543fd.
2023-11-03 06:24:58 +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
mintsuki
a55f68b3bd smp: riscv64: Replace .insn directive with .4byte 2023-09-28 06:56:28 -05:00
mintsuki
a83dafe6f4 misc: Add section .note.GNU-stack to assembly files 2023-09-28 06:56:28 -05:00
mintsuki
87a88bf565 smp: Remove dead 32-bit trampoline code 2023-09-23 17:37:38 -05:00
mintsuki
042a6e9554 misc: Backports from trunk 2023-09-16 15:12:14 -05:00
mintsuki
5f7bcc0b1d riscv: Fix cherry-picking issue introduced in e3d65aa628 2023-09-16 11:35:43 -05:00
xvanc
f4bfe1289a riscv: skip rv{32,64} prefix when parsing extensions from isa strings 2023-09-16 11:28:15 -05:00
xvanc
cdac49ebfb acpi: remove duplicate definition in sys/lapic.c 2023-09-16 11:28:15 -05:00
xvanc
90b82dc43f riscv/vmm: use Svpbmt extension when available 2023-09-16 11:28:15 -05:00
xvanc
e3d65aa628 riscv: refactor smp init 2023-09-16 11:28:15 -05:00
xvanc
f33732a2e5 riscv: implement feature dectection 2023-09-16 11:21:17 -05:00
xvanc
2200161e7d acpi: move acpi structure defs to lib/acpi.h 2023-09-16 11:21:17 -05:00
mintsuki
e6a67c80a6 x86/gdt: Mark accessed flag in descriptors 2023-09-09 10:08:44 -05:00
Kacper Słomiński
50dab6c2f1 smp: aarch64: Don't needlessly invalidate the data cache
Also get rid of the function to do clean + invalidate as not to be
tempted by it.
2023-08-18 13:38:14 -05:00
Kacper Słomiński
ba5d63b82a elf: aarch64: Don't needlessly invalidate the data cache
Cleaning the data cache to PoC without invalidating it is enough when
invalidating the instruction cache to PoU.
2023-08-18 13:37:55 -05:00
mintsuki
9a074530a9 exceptions: Change naming of exceptions in panic message 2023-08-18 13:36:58 -05:00
mintsuki
50b8ab2c26 rv64: Misc relaxation related fixes 2023-08-01 05:32:05 -05:00
mintsuki
2ac43a320f asm: Add missing section directives 2023-06-20 13:24:49 +02:00
xvanc
9274ee656e Initial riscv64 port (#274)
* initial riscv64 port

* enable Paging Mode feature for all architectures

* riscv: add missing protocol docs

* riscv: fix tests

* docs: clarify `LIMINE_PAGING_MODE_DEFAULT` macro

* build: fix whitespace in common/GNUmakefile

* riscv: default to Sv48 paging when supported

* vmm: make `VMM_MAX_LEVEL` 1-indexed

* limine: do not call `reported_addr()` before finaling paging mode

smp/riscv: do not overwrite the argument passed to APs

* limine/riscv: update default paging mode in limine.h

* test/riscv: pad OVMF.fd when downloading it
2023-06-04 01:36:06 +02:00
mintsuki
1258f01bc2 Revert "smp/x86: Free up trampoline memory after use"
This reverts commit ae771dd8a1.
2022-11-02 15:28:07 +01:00
mintsuki
ae771dd8a1 smp/x86: Free up trampoline memory after use 2022-10-29 16:17:57 +02:00
mintsuki
26f6ac3bb2 smp: Fix indentation 2022-09-18 11:30:21 +02:00
mintsuki
2b71eaedb6 smp: Fix aarch64 issue introduced in 0f04f686 2022-09-14 15:39:52 +02:00
mintsuki
0f04f6860a smp: Remove hacks needed for stivale 2022-09-14 14:54:55 +02:00
mintsuki
c44f514738 misc: Rename UEFI and BIOS define macros 2022-09-02 02:29:12 +02:00
mintsuki
c528068ac7 misc: Fix improper panic() calls 2022-08-28 20:16:27 +02:00