Commit Graph

42 Commits

Author SHA1 Message Date
mintsuki 6529246e84 misc: Remove unnecessary ifdefs added in previous commits 2023-10-06 12:19:45 -05:00
mintsuki b2becebbf9 misc: Only allocate memory and modules above 4GiB on 64-bit platforms 2023-10-06 12:19:45 -05:00
mintsuki b2da2d701e pmm: Allow allocations above 4GiB and use them in freadall() 2023-10-06 12:19:45 -05:00
mintsuki a6e115d486 misc: Backports from trunk 2023-09-16 16:53:40 -05:00
mintsuki 7305724b95 misc: Misc EFI linker script improvements and drop .sbat 2023-09-11 17:13:31 -05:00
Kacper Słomiński d7966d0bf4 limine: Adjust higher half offsets for AArch64 2023-07-26 17:02:47 -05:00
mintsuki cc387af31d pmm: Use fixed value of 1024 for recl entries count 2023-06-15 13:08:17 +02:00
mintsuki fe7910cadf pmm: Fix change-memmap-in-use bug 2023-06-15 13:08:17 +02:00
mintsuki 3b9d29385c vmm: Fix page_sizes values and move declaration to top 2023-06-15 10:46:30 +02:00
mintsuki aa926e7a6b limine: Backport paging mode request from trunk 2023-06-15 07:28:08 +02:00
mintsuki 23081f06d5 pmm: Work around potential memmap data race in EFI init_memmap() 2022-10-17 06:45:45 +02:00
mintsuki f3357648ab pmm: Fix AllocatePages() call to take pages count; remove useless alignment check 2022-10-17 06:45:45 +02:00
mintsuki 7d0ef9ef24 pmm: Avoid throwing away big memory ranges that fail to AllocatePages() indiscriminately 2022-10-17 06:45:45 +02:00
mintsuki fc6e44c82c pmm: Misc bug fixes in pmm 2022-09-28 02:10:08 +02:00
mintsuki 4b4f3c9d68 pmm: Obtain raw memmap from untouched_memmap rather than EFI memmap. Addresses #222 and https://forum.puppylinux.com/viewtopic.php?t=6881 2022-09-27 06:57:10 +02:00
mintsuki 165b4d8f7a pmm: Keep first page on sanitiser call in get_raw_memmap() 2022-09-27 06:57:10 +02:00
mintsuki 9203b9cea4 pmm: Backport some other stuff reverted in 4a4409e1 2022-09-27 06:57:10 +02:00
mintsuki abcbff6ec1 pmm: Backport fa6f6077 and 74a3a1c6 2022-09-27 06:57:10 +02:00
mintsuki c381963592 pmm: Undo most of what was done between 85603ec8 and 74a3a1c6 2022-09-24 04:35:52 +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 fb372e6db7 pmm: Make code to reserve page 0 uniform between BIOS and UEFI 2022-09-01 04:58:18 +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 7ade45b230 misc: struct e820_entry_t -> struct memmap_entry 2022-08-13 19:54:49 +02:00
mintsuki 71fd2d2516 pmm: Properly handle memory map entries that cross 4GiB on UEFI 2022-08-13 17:52:01 +02:00
mintsuki 74a3a1c6b6 pmm: General tyding up of pmm code (2) 2022-08-11 20:20:16 +02:00
mintsuki fa6f607769 pmm: General tyding up of pmm code 2022-08-11 09:41:07 +02:00
mintsuki 4b55b45382 pmm: Fix a handful of GCC warnings 2022-08-04 13:04:55 +02:00
mintsuki 0ef0c3adc5 linux, pmm: Get a boot with 32-bit UEFI. Addresses #185 2022-08-04 12:56:46 +02:00
mintsuki cd1107abe2 limine: Specify that memory between 0 and 0x1000 is never to be marked usable 2022-07-29 00:42:47 +02:00
mintsuki 0a2c2896b7 Revert "pmm: Fix issue with get_memmap() that could cause page table corruption"
This reverts commit 9c180b4008.
2022-07-26 20:02:57 +02:00
mintsuki fb5d903ccf pmm: Reclaim bootservices entries last and disallow allocations after 2022-07-26 19:55:18 +02:00
mintsuki 7bfa2cd775 pmm: Fix bugs introduced in 85603ec 2022-07-26 11:01:00 +02:00
mintsuki 85603ec8db pmm: Simplify handling EFI memory acquisition and release 2022-07-26 08:09:50 +02:00
mintsuki b92d48e44f multiboot(2): Initial support for arbitrary kernel load addresses 2022-06-27 10:55:57 +02:00
mintsuki 0836a62fbd pmm: Minor overhaul to try and fix #185 2022-06-26 04:23:13 +02:00
mintsuki 9c180b4008 pmm: Fix issue with get_memmap() that could cause page table corruption 2022-06-22 22:28:43 +02:00
mintsuki df7e43df7f efi: Adjust for new reduced-gnu-efi 2022-04-20 04:00:00 +02:00
mintsuki 1af09d0749 mm/efi: Fix issue where in-use bootloader memory may be erroneously allocated 2022-04-19 22:28:21 +02:00
mintsuki 1d2cb8e400 pmm: Fix alignment issue introduced in 3fe8217 2022-02-28 08:24:44 +01:00
mintsuki 400202d926 misc: stage23 -> common 2022-02-03 10:38:43 +01:00