summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2023-04-29 15:58:47 -0400
committerTest_User <hax@andrewyu.org>2023-04-29 15:58:47 -0400
commitc06c80180c4d2c4c1077eec38d86ae76b90e45b9 (patch)
tree0e4b52b59063ec6473849b0ca166f7ff8c7b43a6
parent9e1d7b0c4561ebf7acf8af8005e14bb3f11ec0ec (diff)
downloadspecification-c06c80180c4d2c4c1077eec38d86ae76b90e45b9.tar.gz
specification-c06c80180c4d2c4c1077eec38d86ae76b90e45b9.zip
Define booting (mostly), fix reference in OFR
-rw-r--r--cpu/boot/data.txt4
-rw-r--r--cpu/boot/interrupts.txt3
-rw-r--r--cpu/boot/notes.txt1
-rw-r--r--cpu/boot/registers.txt9
-rw-r--r--cpu/boot/segments.txt9
-rw-r--r--cpu/registers/config.txt2
6 files changed, 27 insertions, 1 deletions
diff --git a/cpu/boot/data.txt b/cpu/boot/data.txt
new file mode 100644
index 0000000..e120a42
--- /dev/null
+++ b/cpu/boot/data.txt
@@ -0,0 +1,4 @@
+TODO: define values here
+The first <n> bytes of the drive selected for booting are loaded to RAM starting at address 0
+
+TODO: memory map? Maybe just communicate with ram/memory controller for that though
diff --git a/cpu/boot/interrupts.txt b/cpu/boot/interrupts.txt
new file mode 100644
index 0000000..8ff956b
--- /dev/null
+++ b/cpu/boot/interrupts.txt
@@ -0,0 +1,3 @@
+Hardware interrupts are disabled
+
+Exceptions are not handled
diff --git a/cpu/boot/notes.txt b/cpu/boot/notes.txt
new file mode 100644
index 0000000..cc29b64
--- /dev/null
+++ b/cpu/boot/notes.txt
@@ -0,0 +1 @@
+Anything neither defined here nor defined to have a fixed value may be set to anything upon booting
diff --git a/cpu/boot/registers.txt b/cpu/boot/registers.txt
new file mode 100644
index 0000000..6618bba
--- /dev/null
+++ b/cpu/boot/registers.txt
@@ -0,0 +1,9 @@
+SS0 is set to 0
+
+IP is set to 0
+
+R0 is set to the boot drive's ID
+
+OFR is set to all 0s
+
+PR is set to all 1s
diff --git a/cpu/boot/segments.txt b/cpu/boot/segments.txt
new file mode 100644
index 0000000..4abdbaf
--- /dev/null
+++ b/cpu/boot/segments.txt
@@ -0,0 +1,9 @@
+Segment 0:
+ Set to the entire addressable space
+ Allows read+write+execute
+ Allows usage with any PR value
+ Base address is set to 0
+
+TODO: specify where in RAM this gdt is
+
+No other segments are in use
diff --git a/cpu/registers/config.txt b/cpu/registers/config.txt
index d252765..9ae7bbb 100644
--- a/cpu/registers/config.txt
+++ b/cpu/registers/config.txt
@@ -41,7 +41,7 @@ FR (Feature Register)
OFR (Optional Feature Register)
Consists of various bit flags for different features that can be enabled/disabled at runtime
- See features/all.txt for a full list
+ See features/optional.txt for a full list
On read:
Lists features that can be enabled/disabled