Partially to get people talking about what we should support, I would like to propose a possible code layout. A fairly simple method of sorting the source code that should be fairly extensible.
memory/ <- how to setup cache, memory timing, etc... Bus/ PCI/ ISA/ AGP/ <- How to access and set up those buses USB/ etc... Drives/ <- for our purposes, anything that can boot Floppy/ IDE/ SCSI/ Interface/ <- The front-end Input/ <- Where do we get input from, and how Output/ <- Where do we send output, and how Common/ <- Whatever code that is common misc/ <- Anything else
For example, my computer would be built with something like
memory/Intel/82437FX Bus/PCI/Intel/82437X BUS/ISA/Intel/PIIX Drives/Floppy/Std_Floppy Drives/IDE/PIIX Drives/SCSI/NCR53c8xx Interface/Power_CLI Interface/Input/Keyboard Interface/Output/VGA_text misc/std_timer
The Interface/Power_CLI would be something like the Sun-bootloader, or the Alpha console. Other possibilities would be a standard (like in most PCs), or maybe a PC96 compliant one, if that applies.
Notice that you can easily change to a serial boot if desired, and I think this sort of division allows for quite a bit of flexibility. Configuration scripts can hide much of the actual details (for example, I would just select the Intel 430fx chipset, which would set up the Memory, PCI, ISA, and all that).
Comments?
-- Chris Arguin | "While I'm still confused and uncertain, it's on a Chris.Arguin@unh.edu | much higher plane... at least I know I'm bewildered | about the really fundamental and important facts of | the universe." - Equal Rites, Terry Pratchett
--- OpenBIOS -- http://www.linkscape.net/openbios/ openbios-request@linkscape.net Body: un/subscribe Problems? dcinege@psychosis.com