"Stawnyczy, Evan" wrote:
I've been on this OpenBIOS newsletter for almost 2 months... i'ven't seen much traffic. However, I would _LOVE_ to contribute, so, can someone tell me what is required, or in which way i can contribute?
Building OpenBIOS is quite easy, all you really need above a standard Linux development system is 'nasm', which you can get from http://www.web-sites.co.uk/nasm/
Since the wishlist on the Web site is so long as to be unusable, here is a short list of important tasks, and how you can contribute:
*** Implement BIOS interrupts.
MS-DOS, LILO, and many other operating systems and programs use BIOS calls to communicate with the low-level hardware in a standard way. OpenBIOS needs the most popular BIOS calls implemented, so that DOS and others can allocate memory, read/write to the drives, and similar things.
At present there is no BIOS interrupt processing in OpenBIOS. So tasks include (a) add the necessary hooks for BIOS interrupt processing, and (b) implenting each BIOS call one-by-one.
Interested programmers should implement just one or two BIOS calls, then send me a patch. That way we can make the BIOS interrupt framework public, so that many others can work individually implementing various BIOS calls.
*** Support motherboard chipsets
Beginners come here! This is one of the easier OpenBIOS tasks, and also one of the most important.
Every motherboard has a core chipset which controls major functions like talking to peripherals, RAM sizing, power management, and similar tasks. And each chipset is slightly different from one another in the methods by which these tasks are accomplished.
If you want to contribute to OpenBIOS, the best thing you can do is get the hardware datasheet for your motherboard -- it lists all the motherboard registers -- and add bootstrap support for your chipset.
This task requires that you know a _little_ assembly language, enough at least to look at the existing OpenBIOS chipset code and copy from there.
Steps to support a motherboard chipset the easy way: * Figure out how your motherboard does RAM detection * Go through your motherboard datasheet, and write down a good, conservative (ie. SLOW) value for each register * Write this list of registers into an assembly language data table * Write code which runs through this table, writing each register value to the motherboard chipset registers
Note that Intel and many other motherboard chipset vendors make their databooks (specs) publicly available on the Web.
*** Support BIOS extensions
A third important task is supporting key BIOS extensions, such as the PCI BIOS.
This task is similar to the BIOS interrupt task above.