Hello, I would like to make a suggestion. I am a newbie to the LinuxBios world. I love what I have seen so far. I am ok at C, know a little assembly, and would love to contribute to the LinuxBios community. But I am not sure how to get started. I have read just about everything I can get my hands on, but how do I go about developing a new bios for a board? In the FAQ's it talks about some things I would need to get started but where do I go from there. I have datasheets and all kinds of output from linux (dmidecode, lspci, etc.), POST card. Now what? Do I just use the code from another board and alter it to my liking? I don't want to sound negative or upset anyone but I think alot more people would get involved if there was more developer (src) documentation. So, I am going to try to document my journey from point A to B. So the next person that comes along won't be as stumped?? Make sense or is it just me? Can someone tell me where I need to go from here?
Thanks - Joe
joe@smittys.pointclark.net wrote:
Hello, I would like to make a suggestion. I am a newbie to the LinuxBios world. I love what I have seen so far. I am ok at C, know a little assembly, and would love to contribute to the LinuxBios community. But I am not sure how to get started. I have read just about everything I can get my hands on, but how do I go about developing a new bios for a board? In the FAQ's it talks about some things I would need to get started but where do I go from there. I have datasheets and all kinds of output from linux (dmidecode, lspci, etc.), POST card. Now what? Do I just use the code from another board and alter it to my liking? I don't want to sound negative or upset anyone but I think alot more people would get involved if there was more developer (src) documentation. So, I am going to try to document my journey from point A to B. So the next person that comes along won't be as stumped?? Make sense or is it just me? Can someone tell me where I need to go from here?
Thanks - Joe
My 2 cents, for what they're worth: grab something similar to what you're looking at's source code, and the docs for it if you can, and learn how it works (if you have a system you can play with it on also, it's that much better). Then try to do the same thing, with your chips. There are a few to avoid, such as (for the moment) i440bx, but most of the chipsets do work. If you want an SDRAM northbridge that works and you can get docs for, look at the via vt8601, and grab the docs from here: http://rom.by/doki/VIA/8601A_Apollo_PLE133.rar. Either that, or the intel e7501 has some very clean and well documented code, but you'd have to find the docs on it (afaik, that's what uwe based his raminit.c on for 440bx).
The docs on LBv2 are very sparse (this is a known issue), so that's really the only way to go, even most of the build docs are for LBv1 (or freebios, even). LBv3 hopefully won't have these issues, so it should make things easier on everyone and hopefully get some more developers who know what they're doing (unlike me :-p) on board. Oh yeah, and welcome to the list!
-Corey
On Wed, Feb 28, 2007 at 09:48:12PM -0500, joe@smittys.pointclark.net wrote:
Hello, I would like to make a suggestion. I am a newbie to the LinuxBios world. I love what I have seen so far. I am ok at C, know a little assembly, and would love to contribute to the LinuxBios community. But I am not sure how to get started. I have read just about everything I can get my hands on, but how do I go about developing a new bios for a board? In the FAQ's it talks about some things I would need to get started but where do I go from there. I have datasheets and all kinds of output from linux (dmidecode, lspci, etc.), POST card. Now what?
First thing is always to get your Super I/O working. Without that you won't have serial output, which makes debugging almost impossible.
Do I just use the code from another board and alter it to my liking?
If one which is similar to yours is supported, then yes, that's a good idea.
I don't want to sound negative or upset anyone but I think alot more people would get involved if there was more developer (src) documentation.
I agree. We need lots more documentation.
Uwe.
Ok, My SuperIO chip is a SMSC LPC47M192. Looks like I will be able to use one of the other SMSC LPC47*** configs for a template. Once I get it setup how do I test it without everything else (nothbridge, southbridge, etc)??
Thanks - Joe
Quoting Uwe Hermann uwe@hermann-uwe.de:
On Wed, Feb 28, 2007 at 09:48:12PM -0500, joe@smittys.pointclark.net wrote:
Hello, I would like to make a suggestion. I am a newbie to the LinuxBios world. I love what I have seen so far. I am ok at C, know a little assembly, and would love to contribute to the LinuxBios community. But I am not sure how to get started. I have read just about everything I can get my hands on, but how do I go about developing a new bios for a board? In the FAQ's it talks about some things I would need to get started but where do I go from there. I have datasheets and all kinds of output from linux (dmidecode, lspci, etc.), POST card. Now what?
First thing is always to get your Super I/O working. Without that you won't have serial output, which makes debugging almost impossible.
Do I just use the code from another board and alter it to my liking?
If one which is similar to yours is supported, then yes, that's a good idea.
I don't want to sound negative or upset anyone but I think alot more people would get involved if there was more developer (src) documentation.
I agree. We need lots more documentation.
Uwe.
http://www.hermann-uwe.de | http://www.holsham-traders.de http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
On Thu, Mar 01, 2007 at 07:23:15PM -0500, joe@smittys.pointclark.net wrote:
Ok, My SuperIO chip is a SMSC LPC47M192. Looks like I will be able to use one of the other SMSC LPC47*** configs for a template.
Yep. Please use the lpc47b272 as a basis, that one already has proper license headers.
Once I get it setup how do I test it without everything else (nothbridge, southbridge, etc)??
Use a mainboard target which is similar to yours, then edit src/mainboard/foo/bar/auto.c and replace the Super I/O used there with yours.
Then, in the main() function of auto.c (somewhere after the console_init() call) you can use
print_debug("Hello world\n");
to test whether you get serial output. You won't get any further as long as northbridge/southbridge aren't set up, but you can take care about that later...
Building your target is roughly this:
cd targets ./buildtarget VENDOR/MAINBOARD cd VENDOR/MAINBOARD/MAINBOARD make
The resulting linuxbios.rom is your image you can flash.
You might need to edit ROM_SIZE in VENDOR/MAINBOARD/Config.lb to adapt it to your BIOS-chip size.
HTH, Uwe.
The best way to help might be to help write up documentation. Most people who do far out programming don't like to do documentation. Lack of documentation slows down second wavers like you and me. If you really want to know linuxbios I would suggest you help write some good documentation. You would be helping everyone, even those who started the project..
Steve
joe@smittys.pointclark.net wrote: Hello, I would love to contribute to the LinuxBios community. But