Skip to content

32-bit ARM port#8

Open
iProgramMC wants to merge 76 commits intomasterfrom
arm-port-new
Open

32-bit ARM port#8
iProgramMC wants to merge 76 commits intomasterfrom
arm-port-new

Conversation

@iProgramMC
Copy link
Owner

This PR will have a huge impact on this OS because ARM is a platform I've never written an OS for.

As of 8/2/2026, work is stalled because I need to also work on Charming, which is a bootloader designed for ARM devices.

Its source code is available here: https://github.com/iProgramMC/charming

It still doesn't compile. I'll need to work on it a little bit more
for it to compile.
* Mm: Add a platform function called MiFreePageMapping(HPAGEMAP).
* Mm: Add basic implementation of ARM page tables.
* Rtl: Add ARM ELF relocation types.
Now interrupt stacks are per-thread.  This isn't that great since
memory usage is increased but I honestly don't care at this point.
* ARM progress, now it actually runs but does tend to break
* Ke(armv6): Remove leftover debug print at boot.
I know there won't be any framebuffer but at least
we'll be on a more stable platform, and also closer
to the platform I actually want to target in 2026.
I'll pick this up later. Right now, I want to work on something else.
* Mm/Arm: Fix PTE NX bit being totally backwards
* Ldr: Remove some useless debug prints
* Ke/Arm: Cleanup
* Run script: Add info about it
* Ke/Arm: Disable running the rest of the kernel for now because I need to implement the rest of HAL
Now I see blue screen with text, but some things still don't work
Due to happenstance it happened to map to 0x8000000 (because 0x108000 << 12 = 0x08000000)
so I was really confused when I saw OpeniBoot code being executed...
But it sometimes crashes.

* Ke: Fix crash handler when Thread is null
they should be more correct now but they still crash for some reason
* Ke/Arm: Fix undefined instruction handler
Has helped me find one memory-related issue so far.
Although it still doesn't fully work sadly
This appears to have fixed the scheduler instability? I hope!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant