Commit Graph

112 Commits

Author SHA1 Message Date
Kacper Słomiński
dc68fcaff7 limine: Use a higher-half pointer for the stack on AArch64 2023-07-26 17:05:33 -05:00
mintsuki
9333f1ca8b limine/elf: Optimise not to scan .bss for requests 2023-07-08 23:44:50 +02:00
mintsuki
7882d89b4e limine: Drop 5-level paging request support 2023-06-20 16:10:08 +02:00
mintsuki
1ad6d6013e limine: Drop terminal request support 2023-06-20 15:58:52 +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
b66184cfbd limine: Clarify ambiguity with response revision and internal modules 2023-03-30 03:51:59 +02:00
mintsuki
012605adf9 limine: Fix issue with internal modules and kernels in root dir 2023-03-30 02:43:52 +02:00
mintsuki
01eeeb6e1d term: Drop in_bootloader for new Flanterm 2023-03-30 01:23:55 +02:00
mintsuki
779571339e misc: Updates for Flanterm rebrand 2023-03-29 22:43:06 +02:00
mintsuki
a2dd3449a8 limine: Fix framebuffer pointer in terminal struct being invalid without a framebuffer request 2023-03-29 11:04:53 +02:00
mintsuki
42027470c7 limine: Fix bug where internal modules are parsed with revision < 1 2023-03-25 00:59:26 +01:00
mintsuki
d0ee1e7d65 limine: Support relative-to-kernel paths for internal modules 2023-03-24 18:24:27 +01:00
mintsuki
698ca1a665 limine: Honour LIMINE_INTERNAL_MODULE_REQUIRED flag 2023-03-24 10:18:18 +01:00
mintsuki
830251e68e limine: Load internal modules before config modules 2023-03-24 09:07:40 +01:00
mintsuki
d4334699e3 limine: Implement internal modules concept 2023-03-24 01:02:31 +01:00
mintsuki
a7721872dd term: Expose support for out-of-band output control 2023-01-20 20:14:38 +01:00
mintsuki
28dd8a1062 file: Fix several bugs to do with handling of path field 2023-01-20 17:27:41 +01:00
Kacper Słomiński
04d22b1e52 limine: Fix caching mode detection for multiple framebuffers on AArch64 2022-11-23 01:03:06 +01:00
mintsuki
d39baeaa80 video: Initial support for multiple framebuffers 2022-11-18 23:59:31 +01:00
mintsuki
e0aec79cb6 limine: Add support for framebuffer modes listing 2022-10-14 05:19:13 +02:00
mintsuki
4ba1b2fd9d limine/smp: Fix stack offset accidentally added twice 2022-10-06 18:39:55 +02:00
mintsuki
fb994e61c6 limine: Fix NULL term dereference bug if gterm_init fails 2022-10-06 05:41:21 +02:00
mintsuki
ec9d384bf2 limine: Do not panic if failing to set up terminal or framebuffer 2022-10-05 14:32:54 +02:00
mintsuki
6cbb9c4577 limine: Fix bug where NULL term was accessed. Fixes #227 2022-10-05 14:32:54 +02:00
mintsuki
ffa6d4e0c7 limine: Reimplement proper callback functionality 2022-10-04 21:53:19 +02:00
mintsuki
d3c8a66918 term: Misc fixes and improvements 2022-10-04 08:21:59 +02:00
mintsuki
b34954bb43 term: Misc fixes and improvements 2022-10-04 07:24:42 +02:00
mintsuki
8849d08eeb term: Tidy up gterm wrapper code 2022-10-04 01:37:19 +02:00
mintsuki
4d855fc17e term: Move to use external, portable terminal 2022-10-04 00:58:00 +02:00
mintsuki
e466501f92 pmm: Misc bug fixes in pmm 2022-09-28 01:16:39 +02:00
mintsuki
a6189abdc1 misc: Fix bugs introduced in 3181293a 2022-09-20 09:54:35 +02:00
mintsuki
7f14f2f0d0 misc: Improve printing effectively on panics and errors 2022-09-17 10:40:14 +02:00
mintsuki
0f04f6860a smp: Remove hacks needed for stivale 2022-09-14 14:54:55 +02:00
mint
c1e98f26c9
Merge pull request #216 from czapek1337/blake2b
Implement blake2b hash function and checksum validation
2022-09-13 09:30:45 +02:00
czapek1337
71eb143611
print: Specifier for printing URIs 2022-09-12 14:10:36 +02:00
mint
f8d714317b
Merge pull request #217 from Andy-Python-Programmer/trunk
DTB: ensure the `dtb_ptr` is an HHDM address
2022-09-12 09:27:18 +02:00
Andy-Python-Programmer
528be7230f
DTB: ensure the dtb_ptr is an HHDM address
* 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>
2022-09-12 17:25:35 +10:00
mintsuki
3452e492bb elf: General refactor 2022-09-11 10:05:45 +02:00
mintsuki
5e06a79fdc limine: Do not set NX bit in page tables if NX not available 2022-09-02 03:41:25 +02:00
mintsuki
d3385da3e3 limine: Make NX feature not mandatory 2022-09-02 03:31:22 +02:00
mintsuki
c44f514738 misc: Rename UEFI and BIOS define macros 2022-09-02 02:29:12 +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
fb2a6e1f29 limine: Remove stray external symbol declaration 2022-08-14 15:31:53 +02:00
mintsuki
997c787c16 term/limine: Allow overriding terminal config in entry 2022-08-14 15:09:57 +02:00
mintsuki
7ade45b230 misc: struct e820_entry_t -> struct memmap_entry 2022-08-13 19:54:49 +02:00
mintsuki
c43acd445f limine: Drop legacy framebuffer and terminal requests 2022-07-29 00:53:59 +02:00
mintsuki
2a448febb3 protos: Move 'loading kernel' prints where they belong 2022-07-13 08:34:30 +02:00
mintsuki
e5e125887b protos: Remove pointless returns added for autodetection 2022-07-13 07:40:53 +02:00