Commit Graph

10 Commits

Author SHA1 Message Date
mintsuki 042a6e9554 misc: Backports from trunk 2023-09-16 15:12:14 -05:00
xvanc 90b82dc43f riscv/vmm: use Svpbmt extension when available 2023-09-16 11:28:15 -05:00
xvanc 030242d69a vmm/riscv: fix bug in `vmm_max_paging_mode()` 2023-08-03 20:12:51 -05:00
mintsuki 910a0d84a0 vmm: Fix page_sizes values and move declaration to top 2023-06-15 08:21:48 +02:00
xvanc 1f01ddfc6d
limine: scale the maximum KASLR offset based on the address space size 2023-06-04 13:50:26 -05: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 d3385da3e3 limine: Make NX feature not mandatory 2022-09-02 03:31:22 +02: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