main
pantonshire 1 year ago
parent 89e2cef4fa
commit 5c9987e99b

@ -0,0 +1,22 @@
## Overview
Currently we boot from BIOS on a GPT-partitioned disk.
`boot0.s` is the first-stage bootloader. It lives in the MBR bootstrap field, and must therefore
fit into 440 bytes. Its tasks are:
- [x] Set up a stack etc.
- [x] Get the boot drive geometry
- [x] Load and parse the GPT
- [x] Find the partition of the second stage
- [x] Load and jump to the first sector of the second stage
`boot1.s` is the second-stage bootloader. Its tasks are:
- [x] Load its own sectors not loaded by the first stage
- [ ] Enable A20
- [ ] Detect available memory
- [ ] Enter unreal mode
- [ ] Read the kernel ELF from disk (don't have to parse the ELF just yet)
- [ ] Get all the useful information we can from the BIOS before we leave unreal mode
- [ ] Enter long mode (possibly via protected mode?)
- [ ] Load the kernel ELF
- [ ] Initialise stack etc. for the kernel
- [ ] Jump to kernel
Loading…
Cancel
Save