From 5c9987e99b23b98b963ea8e1e1eee0adfb28423f Mon Sep 17 00:00:00 2001 From: pantonshire Date: Sat, 20 Jul 2024 07:40:44 +0100 Subject: [PATCH] readme --- readme.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 readme.md diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..f76904a --- /dev/null +++ b/readme.md @@ -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