From 13000d6f44d66da795e92e4b2ddc37ce879bf275 Mon Sep 17 00:00:00 2001 From: Brett Weiland Date: Fri, 19 Mar 2021 12:04:09 -0500 Subject: modified: README.md --- README.md | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'README.md') diff --git a/README.md b/README.md index 969b48b..34cd96c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,49 @@ # IndigoOS -mod testing \ No newline at end of file +This project is in it's infancy. There's a lot to clean up (bootloader), and this is for my own entertainment. I'll likely be working on it on and off, and only updating the branch after major steps forward. + +##Questions and answers +### Why are you already parsing APCI tables? +When I first started this project, it was intended to be a bare metal mandelbrotset, then an operating system. This way I could set up an enviornment and become comftorable with the x86 architecture. I was going to have a pretty simple multi-core SMP setup to acheive a higher speed. However, as I worked more and more, I realized that this plan was counter productive. The main reason for this is that I'd be doing a lot of "static" work (for lack of a better word). It would be too hard to modify an existing project into an operating system, due to all the code I'd need to discard. + +### Will you support UEFI? +Maybe some day. What I have so far of the bootloader was a lot of work, so I need to take a break on it for now. + +##Cleaning list +- [] clean RSDP v1 vs v2+ ugly unison code +- [] clean static paging code if possible +- [] fallback to best compatable video mode if not found +- [] find out when and why checksum of binary vs debug binary stripped is occationally diffrent (maybe linker script?) + + +##debugging +- [x] get debugging into into a seperate elf for GDB +- [] md5sum of striped binary is the same as one built without debugging info +_Almost_ always, there was one time when it wasn't. Can't seem to reproduce. Check linker sizes. + +##bootloader +- [x] make USB bootable as floppy +- [] make USB bootable as harddisk +- [x] detect native resolution +- [x] set VESA video to native resolution +- [] fallback to best compatable video mode if not found +- [x] record video mode info for kernel +- [x] setup temporary page tabels +- [x] get memory map +- [x] load sectors into 0x100000 +- [x] boot into kernel long mode + +##kernel (listed in order of dependency) +###ACPI +- [x] find, check, and parse RSDP +- [x] find, check, and parse RSDT or XSDT +- [x] static page mapping +- [] remap paging to higher/more available physical address +- [] remap kernel to higher virtual address +- [] re-create page tables to accomidate amount of ram in system without becoming too big +- [] dynamic page allocation + +###multicpu +- [] boot cpus +- [] parse MDST + -- cgit v1.2.3