* 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
* Ensure that the `dtb_ptr` is an HHDM address
* If DTB is not found, do not generate the response
Signed-off-by: Andy-Python-Programmer <andypythonappdeveloper@gmail.com>
* 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.
When I was reading this originally, I was a bit confused about what to set the revision numbers, as no "lowest version" was specified. I was only able to find this out by looking at the barebones example.
I think it might also be worth specifying revisions for each structure provided in the protocol specification, so that there is no confusion there.