summaryrefslogtreecommitdiffhomepage
path: root/docs/SPECIFICATION_FIRMWARE.md
blob: b0b40b4193242e87a17aa97eeb8dcc3c4d22d93a (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
29
30
31
32
33
34
35
36
37
38
39
==================================================================

                     Multi Platform Firmware

==================================================================

==================================================================
0. What we want:
==================================================================

- Optimized for each target.
- EPM/GPT compilant.
- AMD64, PowerPC, RISC-V, 64x0, 32x0 support.
- SMP support.

==================================================================
1. How we're going to do that:
==================================================================

- Abstract Memory and I/O. (pci-tree)
- Platform Independent Device Tree. (pci-tree)
- Common Starting point for each core (smp)

==================================================================
2. Executable Layout:
==================================================================

- 0x80000000/0x00FF/0x1000: Firmware Startup Code
- 0x90000000/0x7c00: Executable Information Header or equivalent.

==================================================================
3. Error Codes:
==================================================================

- CB0001: Not bootable to Stage2 (or bootloader).
- CB0003: Bad arch.
- CB0002: Context returned early.