summaryrefslogtreecommitdiff
path: root/README.md
blob: 34fdf326a59ecb503bbf3cef4530224159ac99bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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