some work with PCI, updated my TODO
This commit is contained in:
47
TODO.md
47
TODO.md
@ -1,34 +1,39 @@
|
||||
## What do I need to do?
|
||||
|
||||
- Unit testing
|
||||
(https://wiki.osdev.org/Unit_Testing)
|
||||
(https://wiki.osdev.org/Troubleshooting#Showing_the_stack_content)
|
||||
lets implmeent some better testing functions aswell
|
||||
- Paging & virtual memory
|
||||
- Setup higher half kernel
|
||||
- Heap allocator (malloc)
|
||||
- after this, implment some data structures? cleanup queue?
|
||||
|
||||
After the above is done, i want to clean up the code and restructure some stuff
|
||||
clean up the headers so that we're not exposing kernel functions to the entire c library
|
||||
and also only make required functions be exposed to the header
|
||||
|
||||
Drivers:
|
||||
|
||||
PIC - Done
|
||||
PIT - Done
|
||||
- Need sleep and timers implemented, ACPI can help with this
|
||||
- Lets also maybe set up a hardware abstraction for timing interfaces?
|
||||
|
||||
ACPI (use ACPICA?)
|
||||
PCI, PCIE (i think qemue and bochs dont have legacy PCI, so lets try for PCIE)
|
||||
PS/2 controller
|
||||
-> need to setup some timing device, probably PIT DONE!
|
||||
-> might need to do a PCI controller first, so that i can discover the controllers, to be enabled
|
||||
-> need to setup the USB controller first, so i can disable Legacy USB bios shit
|
||||
-> need to configure ACPI so i can actually detect for the PS/2 controller
|
||||
-> then we can start configuring the PS/2
|
||||
|
||||
-> to properly send data to PS/2 controllers, we need some sort of timing interface,
|
||||
this way we can timeout if we're being hanged on sending commands to a ps/2 device
|
||||
|
||||
|
||||
|
||||
|
||||
PIT timer, or some sort of timer interface
|
||||
|
||||
perhaps maybe some more things off of the PIC? im not sure
|
||||
|
||||
really after that I want to do more to work towards userspace, so that I can start creating things
|
||||
|
||||
scheduler?
|
||||
multi processing? threads?
|
||||
etc
|
||||
Proper KEYB driver
|
||||
|
||||
From here, determine whats needed next for pushing into userspace.
|
||||
Ideally I would like a shell, and then create some essential userspace posix tools (gnutils?)
|
||||
|
||||
POSIX compliant?
|
||||
|
||||
### Features I want
|
||||
|
||||
- A kernel bus
|
||||
- some kind of driver where I can send messages that can eventually be accessed globally by other drives / applications
|
||||
- modularity in terms of drivers:
|
||||
- I want drivers to be optional and to not limit functionality
|
||||
- perhaps this means providing every thing as a hardware abstraction layer, so that when its absent we can have some sort of virtual replacement
|
||||
|
Reference in New Issue
Block a user