summaryrefslogtreecommitdiff
path: root/documentation/memory.txt
diff options
context:
space:
mode:
authorBenji Dial <benji@benjidial.net>2024-01-13 16:43:49 -0500
committerBenji Dial <benji@benjidial.net>2024-01-13 16:43:49 -0500
commit4130562b1555cabe441efe9420cebe12e7ed8d39 (patch)
treebeaf0012373aab2c3a13fe0147a5cda4af28ef78 /documentation/memory.txt
parent882e74b2191c059a9226cbd8bcb51c97da36247c (diff)
downloadhilbert-os-4130562b1555cabe441efe9420cebe12e7ed8d39.tar.gz
application loading
Diffstat (limited to 'documentation/memory.txt')
-rw-r--r--documentation/memory.txt17
1 files changed, 12 insertions, 5 deletions
diff --git a/documentation/memory.txt b/documentation/memory.txt
index e820034..581bd71 100644
--- a/documentation/memory.txt
+++ b/documentation/memory.txt
@@ -1,7 +1,14 @@
only the first 32GiB of physical memory are considered. this can be changed
-with pram_pages in paging.cpp. as for virtual memory, the top 1GiB is reserved
-for the kernel. the top 1MiB of that is reserved for the kernel stack, with an
-unmapped guard page at the top and bottom of the kernel stack.
+with pram_pages in paging.cpp. vram layout is as follows:
-if any of these facts change, the linker script and paging code should be
-checked closely.
+0x0000.0000.0000 - 0x0000.001f.ffff: always unmapped
+0x0000.0020.0000 - 0x0000.3fbf.ffff: available to user process
+0x0000.3fc0.0000 - 0x0000.3fdf.ffff: always unmapped
+0x0000.3fe0.0000 - 0x0000.3fff.ffff: user stack
+0x0000.4000.0000 - 0xffff.bfff.ffff: always unmapped
+0xffff.c000.0000 - 0xffff.ffdf.ffff: available to kernel
+0xffff.ffe0.0000 - 0xffff.ffe0.0fff: always unmapped
+0xffff.ffe0.1000 - 0xffff.ffef.efff: interrupt stack
+0xffff.ffef.f000 - 0xffff.fff0.0fff: always unmapped
+0xffff.fff0.1000 - 0xffff.ffff.efff: syscall stack / kernel init stack
+0xffff.ffff.f000 - 0xffff.ffff.ffff: always unmapped