Document TODO steps

This commit is contained in:
Berkus Decker 2021-02-21 00:38:47 +02:00
parent bd4015679c
commit 9b5d7b14d3
1 changed files with 48 additions and 0 deletions

View File

@ -9,3 +9,51 @@ a specific-size page.
----
For more information please re-read.
----
# Plan
1. MMU tables - because we need separate memspaces for kernel and userspace
1a. Allocate initial page tables
1b. Map over available RAM sensibly
1c. Create kernel's own mapping (TTBR_EL1)
# What does the kernel MMU code support?
* mapping
* unmapping
* switching per-process mappings (virtspaces)
* virt2phys resolution
* direct phys access for kernel (TTBR_EL1 mapping to physmem)
* initial kernel memory allocation: for mapping tables and capnodes, for initial thread TCB and stacks
# public api:
ARMMU invocations:
on page directory cap
cache maintenance (clean/invalidate/unify)
on page table cap
map
unmap
on small frame/frame caps
map
remap
unmap
cache maintenance (clean/invalidate/unify)
get address
on asid control cap
on asid pool cap
# Minimum Required Functionality (build from this)
* resolve VA to PA - resolving lets kernel access mapped process memory.
(start from the process' virtspace root - Page Directory)
* flush page, pd, pt, virtspace - will be important for thread switching