candiedoperation / tacos

🌮 tacOS is a hobby OS kernel with documentation. It's 64-Bit (x86), created from scratch with documentation for aspiring OS developers.
GNU General Public License v3.0
0 stars 1 forks source link

[APIC Driver] Kernel Crashes with Memory > 1024M #2

Closed candiedoperation closed 3 weeks ago

candiedoperation commented 2 months ago

Issue Description

On APIC Initialization, Kernel Crashes when the available memory is above 1024M

Troubleshooting

Memory < 1024M Debugging Memory > 1024M Debugging
image image
candiedoperation commented 2 months ago

Commit 3759444 prevents a triple fault by reorganizing fault code to occur after interrupts are completely initialized. Though this prevents the triple fault, the PAGE FAULT exception persists.

candiedoperation commented 3 weeks ago

That took a long time! The troubleshooting steps above make sense. The Page Table setup and identity mapping stuff in commit 3759444 were really preliminary and allowed virtual memory access only up-to 1024M. However, all IO/APIC addresses are way above that range.

Commit 9aa791d fixes this issue as it introduces a bootstrap memory manager (bootmem.cpp) and a WIP physical and virtual memory manager. Closing this issue finally (after two months) 🥳