summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md48
1 files changed, 47 insertions, 1 deletions
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
+