Refactor MMU for multi-paging support and add 5-Level paging #16

Open
harraiken wants to merge 35 commits from harraiken_mm into master

35 Commits

Author SHA1 Message Date
a84ef21571
Adjust LA57 base addresses to prevent overflow
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 27s
Builds / ExectOS (i686, debug) (push) Successful in 25s
Builds / ExectOS (amd64, release) (push) Successful in 45s
Builds / ExectOS (i686, release) (push) Successful in 43s
2025-08-21 01:42:36 +02:00
1ef2560ef6
Enable LA57 by invoking the trampoline code
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 31s
Builds / ExectOS (i686, release) (push) Successful in 29s
Builds / ExectOS (i686, debug) (push) Successful in 45s
Builds / ExectOS (amd64, debug) (push) Successful in 47s
2025-08-21 00:14:49 +02:00
d1b14fccdd
Resolve build issues caused by the last commit
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 28s
Builds / ExectOS (i686, release) (push) Successful in 26s
Builds / ExectOS (i686, debug) (push) Successful in 43s
Builds / ExectOS (amd64, debug) (push) Successful in 46s
2025-08-20 21:08:43 +02:00
88b3a57962
Allow specifying an allocation type when allocating pages
Some checks failed
Builds / ExectOS (i686, debug) (push) Failing after 19s
Builds / ExectOS (amd64, debug) (push) Failing after 21s
Builds / ExectOS (amd64, release) (push) Failing after 33s
Builds / ExectOS (i686, release) (push) Failing after 31s
2025-08-20 20:59:31 +02:00
9f6121e9b2
Map the physical page for trampoline code
All checks were successful
Builds / ExectOS (i686, release) (push) Successful in 26s
Builds / ExectOS (amd64, release) (push) Successful in 28s
Builds / ExectOS (i686, debug) (push) Successful in 44s
Builds / ExectOS (amd64, debug) (push) Successful in 45s
2025-08-20 20:37:55 +02:00
4a7ea6009d
Expose ArEnableExtendedPhysicalAddressing function in XTDK
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 28s
Builds / ExectOS (i686, debug) (push) Successful in 28s
Builds / ExectOS (i686, release) (push) Successful in 45s
Builds / ExectOS (amd64, release) (push) Successful in 48s
2025-08-20 20:23:44 +02:00
c4a7df6f38
Extract trampoline code into a separate file
All checks were successful
Builds / ExectOS (i686, debug) (push) Successful in 20s
Builds / ExectOS (i686, release) (push) Successful in 24s
Builds / ExectOS (amd64, debug) (push) Successful in 46s
Builds / ExectOS (amd64, release) (push) Successful in 45s
2025-08-20 20:20:35 +02:00
2468d80078
Add trampoline to enable 5-level paging
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 24s
Builds / ExectOS (i686, debug) (push) Successful in 24s
Builds / ExectOS (amd64, debug) (push) Successful in 44s
Builds / ExectOS (i686, release) (push) Successful in 40s
2025-08-20 00:20:10 +02:00
ebae8c655c
Expand CR4, MSR, and EFER register definitions
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 24s
Builds / ExectOS (i686, debug) (push) Successful in 25s
Builds / ExectOS (amd64, release) (push) Successful in 42s
Builds / ExectOS (i686, release) (push) Successful in 41s
2025-08-19 23:59:58 +02:00
1a0bc7f65f
Update and correct CR4 bit definitions
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 34s
Builds / ExectOS (i686, release) (push) Successful in 41s
Builds / ExectOS (i686, debug) (push) Successful in 32s
Builds / ExectOS (amd64, debug) (push) Successful in 43s
2025-08-19 21:45:13 +02:00
91a5db2ee4
Implement PML5 support in XtpMapHardwareMemoryPool
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 29s
Builds / ExectOS (i686, debug) (push) Successful in 27s
Builds / ExectOS (i686, release) (push) Successful in 39s
Builds / ExectOS (amd64, debug) (push) Successful in 43s
2025-08-18 12:13:48 +02:00
b639bf3077
Implement PML5 self-mapping
All checks were successful
Builds / ExectOS (i686, release) (push) Successful in 27s
Builds / ExectOS (amd64, release) (push) Successful in 29s
Builds / ExectOS (i686, debug) (push) Successful in 41s
Builds / ExectOS (amd64, debug) (push) Successful in 43s
2025-08-18 11:59:05 +02:00
c409400cbf
Correct VA masking in AMD64 page mapping functions
All checks were successful
Builds / ExectOS (i686, release) (push) Successful in 26s
Builds / ExectOS (amd64, release) (push) Successful in 27s
Builds / ExectOS (amd64, debug) (push) Successful in 42s
Builds / ExectOS (i686, debug) (push) Successful in 40s
2025-08-18 01:07:28 +02:00
d602038858
Temporarily disable LA57 paging
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 24s
Builds / ExectOS (i686, debug) (push) Successful in 24s
Builds / ExectOS (amd64, release) (push) Successful in 42s
Builds / ExectOS (i686, release) (push) Successful in 38s
2025-08-18 00:10:32 +02:00
017b8603d5
Align parameters in PTE manipulation functions
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 23s
Builds / ExectOS (i686, debug) (push) Successful in 25s
Builds / ExectOS (amd64, release) (push) Successful in 40s
Builds / ExectOS (i686, release) (push) Successful in 40s
2025-08-17 21:55:21 +02:00
a9dd1eaacd
Implement MmpSetPteCaching function for AMD64 architecture
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 26s
Builds / ExectOS (i686, release) (push) Successful in 25s
Builds / ExectOS (amd64, debug) (push) Successful in 42s
Builds / ExectOS (i686, debug) (push) Successful in 40s
2025-08-17 21:51:43 +02:00
f30d3df5b3
Implement PTE manipulation functions for AMD64 architecture
Some checks failed
Builds / ExectOS (amd64, debug) (push) Failing after 18s
Builds / ExectOS (i686, debug) (push) Successful in 22s
Builds / ExectOS (amd64, release) (push) Failing after 34s
Builds / ExectOS (i686, release) (push) Successful in 31s
2025-08-17 21:48:28 +02:00
c3ece4f317
Fix type usage in XtpMapHardwareMemoryPool
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 22s
Builds / ExectOS (i686, release) (push) Successful in 25s
Builds / ExectOS (i686, debug) (push) Successful in 40s
Builds / ExectOS (amd64, release) (push) Successful in 42s
2025-08-17 00:51:26 +02:00
1e11acee72
Refactor hardware memory mapping to use page map routine callbacks
Some checks failed
Builds / ExectOS (i686, release) (push) Failing after 21s
Builds / ExectOS (i686, debug) (push) Failing after 23s
Builds / ExectOS (amd64, debug) (push) Successful in 41s
Builds / ExectOS (amd64, release) (push) Successful in 39s
2025-08-17 00:47:56 +02:00
57193eecc0
Implement PML2/PML3 page table routines
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in 21s
Builds / ExectOS (i686, release) (push) Failing after 19s
Builds / ExectOS (amd64, release) (push) Successful in 34s
Builds / ExectOS (i686, debug) (push) Failing after 32s
2025-08-17 00:45:12 +02:00
720d525b95
Assign page map routines
Some checks failed
Builds / ExectOS (i686, release) (push) Failing after 21s
Builds / ExectOS (i686, debug) (push) Failing after 21s
Builds / ExectOS (amd64, debug) (push) Successful in 38s
Builds / ExectOS (amd64, release) (push) Successful in 37s
2025-08-17 00:29:28 +02:00
f77f2bbf92
Introduce architecture-specific page map routines
Some checks failed
Builds / ExectOS (i686, release) (push) Failing after 23s
Builds / ExectOS (amd64, debug) (push) Successful in 27s
Builds / ExectOS (i686, debug) (push) Failing after 31s
Builds / ExectOS (amd64, release) (push) Successful in 33s
2025-08-17 00:23:19 +02:00
0ed59f223c
Relocate page mapping helpers and add PML5 support
Some checks failed
Builds / ExectOS (i686, release) (push) Failing after 23s
Builds / ExectOS (amd64, release) (push) Successful in 26s
Builds / ExectOS (amd64, debug) (push) Successful in 37s
Builds / ExectOS (i686, debug) (push) Failing after 35s
2025-08-16 21:07:54 +02:00
de2973ac42
Implement page map info initialization
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in 24s
Builds / ExectOS (i686, debug) (push) Failing after 21s
Builds / ExectOS (amd64, release) (push) Successful in 35s
Builds / ExectOS (i686, release) (push) Failing after 33s
2025-08-16 20:28:05 +02:00
8491e5fed1
Remove PageMapLevel from the loader information block
Some checks failed
Builds / ExectOS (i686, release) (push) Failing after 24s
Builds / ExectOS (amd64, release) (push) Successful in 26s
Builds / ExectOS (amd64, debug) (push) Successful in 36s
Builds / ExectOS (i686, debug) (push) Failing after 34s
2025-08-16 20:18:34 +02:00
6a330e38f2
Consolidate paging-related globals into MmpPageMapInfo
Some checks failed
Builds / ExectOS (amd64, release) (push) Successful in 25s
Builds / ExectOS (i686, release) (push) Failing after 21s
Builds / ExectOS (i686, debug) (push) Failing after 35s
Builds / ExectOS (amd64, debug) (push) Successful in 38s
2025-08-16 20:14:18 +02:00
1dcd3fceed
Define page map information structure for both supported architectures
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in 25s
Builds / ExectOS (i686, release) (push) Failing after 33s
Builds / ExectOS (i686, debug) (push) Failing after 23s
Builds / ExectOS (amd64, release) (push) Successful in 34s
2025-08-16 20:08:12 +02:00
5768d4bba6
Prepare for architecture-specific paging initialization
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in 22s
Builds / ExectOS (i686, release) (push) Failing after 21s
Builds / ExectOS (amd64, release) (push) Successful in 35s
Builds / ExectOS (i686, debug) (push) Failing after 33s
2025-08-16 19:58:00 +02:00
f85fe31b38
Adapt i686 memory mapping to new PML3 types
Some checks failed
Builds / ExectOS (i686, debug) (push) Failing after 19s
Builds / ExectOS (amd64, debug) (push) Successful in 22s
Builds / ExectOS (amd64, release) (push) Successful in 37s
Builds / ExectOS (i686, release) (push) Failing after 35s
2025-08-16 00:36:20 +02:00
22f81a106b
Update forward declarations for PML2/PML3 types
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in 21s
Builds / ExectOS (i686, debug) (push) Failing after 20s
Builds / ExectOS (i686, release) (push) Failing after 34s
Builds / ExectOS (amd64, release) (push) Successful in 36s
2025-08-16 00:33:18 +02:00
7e08dc286e
Separate types for legacy (PML2) and PAE (PML3) paging
Some checks failed
Builds / ExectOS (i686, debug) (push) Failing after 20s
Builds / ExectOS (amd64, debug) (push) Successful in 22s
Builds / ExectOS (amd64, release) (push) Successful in 36s
Builds / ExectOS (i686, release) (push) Failing after 32s
2025-08-16 00:29:20 +02:00
3ca6d04f6b
Add definitions for 5-level paging and refactor constants
All checks were successful
Builds / ExectOS (i686, debug) (push) Successful in 25s
Builds / ExectOS (amd64, debug) (push) Successful in 28s
Builds / ExectOS (i686, release) (push) Successful in 37s
Builds / ExectOS (amd64, release) (push) Successful in 42s
2025-08-16 00:22:21 +02:00
e57985da8d
Rename MM_LA57_SHIFT to MM_P5I_SHIFT for consistency
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 31s
Builds / ExectOS (i686, debug) (push) Successful in 30s
Builds / ExectOS (amd64, debug) (push) Successful in 42s
Builds / ExectOS (i686, release) (push) Successful in 40s
2025-08-15 20:49:25 +02:00
8a23cc444f
Merge branch 'master' into harraiken_mm
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 22s
Builds / ExectOS (i686, debug) (push) Successful in 23s
Builds / ExectOS (i686, release) (push) Successful in 40s
Builds / ExectOS (amd64, release) (push) Successful in 42s
2025-08-15 11:30:48 +02:00
e8771dfc5b
Use __asm__ to comply with disabled GNU extensions
All checks were successful
Builds / ExectOS (i686, debug) (push) Successful in 27s
Builds / ExectOS (amd64, release) (push) Successful in 28s
Builds / ExectOS (i686, release) (push) Successful in 39s
Builds / ExectOS (amd64, debug) (push) Successful in 43s
2025-08-15 00:32:56 +02:00