summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBradley Morgan <brads@mainlining.org>2026-10-03 13:46:22 +0000
committerBradley Morgan <brads@mainlining.org>2026-10-03 13:46:22 +0000
commit364109a099a368876910ce15fe3140a5519f125e (patch)
treef5ca7b38a643db5a7f8b9c23f15d2b254d68531c
tashaboot: repo skeleton with scope statement
State plainly what tashaboot is and is not before any code lands. Payload slot bootloader, boot ROM untouched, read in an afternoon as the hard requirement.
-rw-r--r--README.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..34fdf32
--- /dev/null
+++ b/README.md
@@ -0,0 +1,28 @@
+# tashaboot
+
+Small multi stage bootloader for powerpc and arm64. The goal is a
+bootloader you can read in an afternoon. Every knob is a #define in one
+obvious place, each board is a board.h, and the flasher takes an
+editable boot.conf.
+
+Scope, plainly: tashaboot lives in the loaded payload slot, the one
+device firmware hands off to. On qcom that is the ABL / BOOT partition
+slot, on open firmware boxes it is whatever that stage loads. It loads
+a kernel, or chainloads another bootloader, lk2nd style. The boot ROM
+is upstream of all of that, it decides whether tashaboot ever runs, and
+tashaboot does not touch it.
+
+Targets:
+- powerpc: qemu pseries and the OSUOSL LPAR it runs on
+- arm64: qemu virt first, real boards after
+
+Design rules:
+- small enough to read in one sitting, no mini libc, no driver zoo
+- board.h per board, one config header per arch
+- boot.conf parsed at flash time, not boot time
+- fail loud: if a load fails you see it on the console, not a hang
+
+Status: skeleton. No code yet. C base first (OSU senior project
+candidate), asm and bringup after.
+
+License: GPL-2.0