我最近开始开发自己的操作系统。我正在跟踪jsandler18 18的,并在允许它在raspberry pi 4上运行时进行更改。遗憾的是,jsandler18在完成虚拟内存页面之前就停止了对教程的更新。我阅读了其他一些资料,发现了一个小问题: ARM l1地址转换表将计算机内存分成1MB块。这里的问题是它只允许最多4096个条目,或者4GB的虚拟内存。
有什么方法可以用ARM MMU翻译超过4GB的虚拟内存吗?
Cortex-A35处理器,AArch64模式。在设置内存管理单元和GIC之前,我尝试从EL3转到非安全EL1: mov x0, SCR_EL3.RES1 or SCR_EL3.NS; for testing only str w11, [x10, 0] ;切换到安全EL1 (未设置SCR_EL3.NS