X86 port v2 + many fixes#5
Merged
Merged
Conversation
iProgramMC
force-pushed
the
x86-port-v2
branch
from
October 15, 2025 18:37
df86ab4 to
6a96a73
Compare
…ry isn't aligned to a page boundary
iProgramMC
force-pushed
the
x86-port-v2
branch
from
October 15, 2025 18:54
6a96a73 to
b366a9a
Compare
* Fix some bugs.
* Ke: Making progress in the initialization process!
Still a massive WIP behind the scenes though.
… and the timer ticks
- The recursive mapping was accidentally placed at 511 instead of 1023 - The 0xC0000000-0xD0000000 mapping was initialized from a bad offset and those pages ended up being allocated by the PMM and then overwritten
…turns out non PO2 PFDBEs may cross page boundaries
Unfortunately, still not stable.
I think I will need to completely rewrite the pool allocator, since I found some major flaws in regards to locking and things like that.
…he HHDM. This is because these pool header slabs could be allocated at >256MB, at which point MmGetHHDMOffsetAddr() relies on the window system, so the addresses are never permanent, thus it starts crashing when the PMM starts giving out addresses bigger than 256 MB.
…is important. * Mm: Switch to MmGetPteLocation/MmGetPteLocationCheck. * Mm: Remove the `HPAGEMAP Mapping` parameter from several page table functions. * Mm: Actually allow MmMapIoSpace addresses to be freed properly using MmFreePoolBig. * Ke: Use a hardcoded PRCB list for non-SMP builds. * Ke(amd64): Make the boot page mapping have recursive page mappings setup. * Framebuffer: Use MmMapIoSpace for temporary mappings on 32-bit builds. * Halx86(amd64): Use MmMapIoSpace instead of doing it manually.
This allows the implementation to also work on 32-bit builds. It might be slightly slower than the old version, but if it works, it works. I will need to do more testing, though.
… are being missed. * Hal: Fix a typo in HalPicRegisterInterrupt * I8042prt: Get working * Ke: Fix a bug where the "more than 1 CPU" message is printed if you have one CPU
* User: Actually make sure to compile with the correct toolchain
* Ps: Fix a bug where BSS wasn't initialized to zero.
* Mm: Fix a bug with MmCopyIntoMdl which prevented the function from taking page faults on 32-bit * Libboron: Clear bss in loaded modules if it's part of the data phdr * Load all the userspace files now
* Mm(i386): Relocate second part of pool. * Mm(i386): Initialize page tables for pool to keep them shared across address spaces. * Mm(i386): Fix bug where MmProbeAddressSubEarlyReturn doesn't return properly. * Mm(i386): Rewrite unused page table freeing context. * Mm: Fix bug where MmCopyFromMdl wasn't using the correct pointer. * Mm: Fix bug where the VA offset was applied twice.
Owner
Author
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.