You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`__init_thread_start` till `__init_thread_end` identity-map (no code/data split yet?)
6
6
7
7
Steps:
8
+
-[ ] Move tests from kernel/tests to individual libs?
9
+
10
+
-[ ] Make some caps work - Untypeds, Domains, Buffers, what else?
11
+
-[ ] Test out syscalls from EL0
12
+
13
+
- START FILLING IN CAPS
14
+
-[ ] untypeds
15
+
-[ ] init_thread context and domain
16
+
17
+
---
18
+
19
+
# Completed
20
+
8
21
-[x] Buildable
9
22
-[x] build all shit together into a binary
10
23
-[x] make separate init_thread section and start booting from init_thread
@@ -21,18 +34,13 @@ Steps:
21
34
22
35
-[x] Generate complete memory map from DTB, print it out
23
36
24
-
-[ ] Make some caps work - Untypeds, Domains, Buffers, what else?
25
-
-[ ] Test out syscalls from EL0
26
-
27
37
-[x] Print kernel covered area
28
38
-[x] Print KERNEL_HIGH_BASE
29
39
-[x] Print kernel mappings size and attribs
30
40
-[x] Print init_thread covered area
31
41
-[x] Print init_thread mappings size
32
42
33
-
- START FILLING IN CAPS
34
-
-[ ] untypeds
35
-
-[ ] init_thread context and domain
43
+
36
44
37
45
Whatever kernel links must also be located in high-mem mapping, so we cannot share this code with init_thread at all!
38
46
This means it's probably sensible to build kernel as a separate ELF file linked entirely high, then merge it with the init_thread binary through specially-named sections; there should be no symbol resolution across two binaries, so the nucleus image is solely pulled via it's PHDRS (but we need to place the BSS which will be erased by the init_thread before turning the MMU on)
0 commit comments