Hi,
it looks as if I might have to jump in and hold a 30 minute speech about LinuxBIOS at a conference here in Stockholm since the original speaker can't make it. I have about a week to prepare. *panics*
The information I have about this so far is:
Target audience: Hardware designers, driver programmers, kernel programmers but also people interested in faster startup times in their embedded systems.
(possible) things to talk about:
- What is a BIOS and especially, LinuxBIOS?
- What are the main benefits in using LinuxBIOS?
- What chipsets are supported by LinuxBIOS today?
- How does the Linux boot system work?
- How does a common x86-based board work?
- How does the initialization sequence work.
- What are the steps involved in creating a LinuxBIOS for this board?
Points that I do need help with are:
- What is a BIOS and especially, LinuxBIOS?
I think I need a short introduction to LinuxBIOS and also a short history of where it came from.
- What are the main benefits in using LinuxBIOS?
Maybe the rationale behind writing LinuxBIOS at all.
- What are the pros and cons with LinuxBIOS?
Pros:
Faster bootup. Tiny code. Tailored to the hardware. Written in C and uses 32 bit mode. Less buggy. Portable (in theory) across architectures so that x86 and Alpha can boot the same way.
Cons:
Not as flexible as a normal BIOS. Requires hardware and chipset documentation, it's hard to keep up with the hardware development.. Hard to handle PCI cards with expansion ROMs on them that expect a standard PC BIOS.
- What chipsets are supported by LinuxBIOS today?
Is there a list of supported chipsets?
- How does the Linux boot system work?
- How does a common x86-based board work?
- How does the initialization sequence work.
These I think I have a rather good handle on.
- What are the steps involved in creating a LinuxBIOS for this
board?
I can take the SC2200 port I did as an example here.
By the way, one thing I'm not sure about, what is actually stored in the LinuxBIOS table? As far as I can tell right now the only thing there is the amount of memory in the system and the kernel command line. Is there anything else? (The PIRQ table is stored in the BIOS image itself if I understand correctly).
Is there anything else missing from the list that I should talk about?
Any help would be appreciated.
/Christer
Greetings,
Also add more reliable boot. Regular BIOS has a nasty habit of stopping at press (whatever) to continue at the first sign of trouble.
No royalties Now that all in one boards are getting so cheap, the royalty for BIOS is becoming significant
G'day, sjames
On Thu, 5 Sep 2002, Christer Weinigel wrote:
I think I need a short introduction to LinuxBIOS and also a short history of where it came from.
history: I started this project at LANL three years ago this month. The original purpose was to make clusters easier to manage. Clusters take 1 FTE per 128 nodes to manage at minimum, and that was no longer workable ca. 1999, as we envisioned clusters of 256 or 1024 or more nodes. At the same time, existing BIOSes were too stupid to be useful, and took a lot of effort to keep running -- I once had to do the "magic key" sequence to get 128 nodes to boot from CDROM. Remy Evard at Argonne got to move a keyboard and cart around to over 256 nodes to do a bios upgrade -- twice. Systems with existing BIOSes could not be used to build manageable clusters.
It seemed to me that with the demise of ISA and other old PC junk, and the common use of self-describing hardware, we could build an open-source BIOS. My hope was that we could further use Linux as the bootstrap and second half of the BIOS. There were thus two key questions to ask: could Linux boot Linux, and could we write an open source BIOS? If both these questions could be answered "yes", then an open-source BIOS was practical.
I spent the next few months figuring out if Linux could boot Linux. I had a fair number of core folks tell me this was impossible, but we did it anyway, and other folks have come along since and written much better systems that do the same thing (see kexec and two kernel monte and bootimg).
Once we knew linux could boot linux, it was time to check out open source bioses. James Hendrix and Dale Webster found OpenBIOS and over winter break showed that our L440GX+ boards could be booted with OpenBIOS -- from a floppy, under DOS.
The next few months were consumed with me trying to figure out how to get flash written on the 440GX, and then trying to figure out why DRAM did not work.
Sometime that spring SiS joined the effort. The first "multi-user login" message on the web page is "New as of 5/5/00: First login, 9:15 AM MST".
Also that Spring we moved the code base to FreeBIOS as it had more C and less assembly.
Ca. 5/10/00 the NPS tried to burn Los Alamos down so we took a short break.
From that point on, more and more people have joined the effort, and at
this point LLNL and linuxnetworx are building a 1000+ node linux cluster using linuxbios machines.
- What are the main benefits in using LinuxBIOS?
maintainable clusters maintainable systems fast boot (matters to some people) better control of the system LinuxBIOS in many cases does a better job of chipset config
Not as flexible as a normal BIOS.
well, not really true in all cases. Check out the cwlinux offering, where flash boots into busybox linux. NO BIOS is that flexible!
Requires hardware and chipset documentation, it's hard to keep up with the hardware development..
true for now, although at least two motherboard vendors are plannning to support linuxbios.
Hard to handle PCI cards with expansion ROMs on them that expect a standard PC BIOS.
partially true, but getting better.
- What chipsets are supported by LinuxBIOS today?
Is there a list of supported chipsets?
ls src/*bridge*/*/*
ron
On Thu, 2002-09-05 at 16:01, Christer Weinigel wrote:
Cons:
Not as flexible as a normal BIOS.
I know what you mean ;-), but I don't think this is quite the right thing to say... as a key point of LinuxBIOS is its flexibility...
... If you want to be able to boot without a VGA card.. ... If you want to be able to preserve kernel state information over reboots etc.
....LinuxBIOS is flexible from the developer's standpoint...
However, LinuxBIOS is immature - it doesn't support as much hardware/boot devices as a "traditional" BIOS. So, given an inflexible feature set (boot typically from any local device via a local VGA screen/keyboard to run your mainstream desktop operating system) a traditional BIOS is quite flexible about what hardware you can boot from and what motherboards it supports....
..Anyway, I think linuxBIOS is "flexible" compared with a traditional BIOS, but has, currently, less support for the available hardware i.e immature.
Hope that helps!
Ian.
Hi,
Even I am planning to give a speech on LinuxBIOS. I found that some of the recent mail on this thread is useful for my preparation. Also when I was reading the HOWTO documents, I found that we need to burn Linux Kernel image along with the linuxbios image on DOC chip. If that is the case, Is there is any way to support for other Operating system (or) other flavor of unix system to use LinuxBIOS? What are the standard interface / Supports we expect from those operating system?
PLEASE IGNORE THE ATTACHEMENT....
Thanks, Siva.s
-----Original Message----- From: linuxbios-admin@clustermatic.org [mailto:linuxbios-admin@clustermatic.org] On Behalf Of Ian Castle Sent: Friday, September 06, 2002 1:21 AM To: Christer Weinigel Cc: linuxbios@clustermatic.org Subject: Re: Need help with LinuxBIOS speech
On Thu, 2002-09-05 at 16:01, Christer Weinigel wrote:
Cons:
Not as flexible as a normal BIOS.
I know what you mean ;-), but I don't think this is quite the right thing to say... as a key point of LinuxBIOS is its flexibility...
... If you want to be able to boot without a VGA card.. ... If you want to be able to preserve kernel state information over reboots etc.
....LinuxBIOS is flexible from the developer's standpoint...
However, LinuxBIOS is immature - it doesn't support as much hardware/boot devices as a "traditional" BIOS. So, given an inflexible feature set (boot typically from any local device via a local VGA screen/keyboard to run your mainstream desktop operating system) a traditional BIOS is quite flexible about what hardware you can boot from and what motherboards it supports....
..Anyway, I think linuxBIOS is "flexible" compared with a traditional BIOS, but has, currently, less support for the available hardware i.e immature.
Hope that helps!
Ian.
_______________________________________________ Linuxbios mailing list Linuxbios@clustermatic.org http://www.clustermatic.org/mailman/listinfo/linuxbios
We have burned both 9load and plan9 here.
The key thing is that we need to get other OSes to use the linuxbios tables, and to start doing their own IRQ setup -- plan 9 is deficient in this respect.
ro
I am working to load linuxbios on the Via EPIA Mini-ITX motherboard. It has the Via vt8601a northbridge and the vt8231 southbridge.
If anyone else is working on this (or has already done it) I would like to share code/information. I have some questions I hope someone knows the answer to.
Has the vt8231 code in Linuxbios ever been used (southbridge.c)? It appears to make calls to "intel_conf_read_byte" that do not link, although they appear to be standard PCI config calls that could easily be replaced with the code in the 82c686. Does anyone know if the vt8231 is approximately the 82C686 + Ethernet (rhine 86c100a)? The ISA bridge (func 0) and power mgmnt (func 4) device ids do not match, however.
The brief datasheet for the 82C686 is on the Via web site but I cannot find it for the vt8231. Anyone have a copy or know where I can get one? Is Via helpful in providing data for the linuxbios project? Fortunately they do provide the datasheet for the vt8601a northbridge with all the vga registers detailed, although it was not on the usual datasheet page.
Thanks in advance for any information anyone can provide.
-Steve
On Sat, 14 Sep 2002, Steve M. Gehlbach wrote:
Has the vt8231 code in Linuxbios ever been used (southbridge.c)?
A very long time ago it did work. But then the 82c686 came along and we moved to that.
I have had all these chips working at one point, but the 8601 was really tough to get totally working, so we decided to let it alone until there was more interest. I am glad to see your interest.
There were some bad bugs in the 8601 which I hope are fixed.
ron
A very long time ago it did work. But then the 82c686 came along and we moved to that.
I thought that was the case. The 82c686 has the appearance of "improved" code from the 8231. Yet the 8231 seems to be a more inclusive chipset (ie, includes the network) than the 82c686 so I thought this was odd. Usually chips evolve to more functionality, not less. Of course, I am partly guessing, since I can't seem to find even a marketing thumbnail of the 8231 features on the Via web site. Via suffers from marketing name diarrhea for chipset collections, in my view.
It's interesting that in the Walmart $199 computer, Gigabyte uses the 82c686 and a Realtek lan chip instead of the 8231.
-Steve
On Sun, 15 Sep 2002, Steve M. Gehlbach wrote:
I thought that was the case. The 82c686 has the appearance of "improved" code from the 8231. Yet the 8231 seems to be a more inclusive chipset (ie, includes the network) than the 82c686 so I thought this was odd. Usually chips evolve to more functionality, not less. Of course, I am partly guessing, since I can't seem to find even a marketing thumbnail of the 8231 features on the Via web site. Via suffers from marketing name diarrhea for chipset collections, in my view.
I think the chipset is older. Possibly the 686 + realtek was cheaper than the 8231.
ron
"SIVAKUMAR SUBRAMANI" sivakumar.subramani@wipro.com writes:
Hi,
Even I am planning to give a speech on LinuxBIOS. I found that some of the recent mail on this thread is useful for my preparation. Also when I was reading the HOWTO documents, I found that we need to burn Linux Kernel image along with the linuxbios image on DOC chip. If that is the case, Is there is any way to support for other Operating system (or) other flavor of unix system to use LinuxBIOS? What are the standard interface / Supports we expect from those operating system?
Knowing what the architecture is might help here.
Essentially LinuxBIOS is split into 2 pieces. 1) LinuxBIOS 2) A bootloader.
The core of LinuxBIOS just initializes and sets up hardwre. The hardware setup is communicated to everything else through the LinuxBIOS table which is loaded at a fixed location early in ram. After that the bootloader is loaded.
Currently the bootloader can be the final Linux kernel to run. A linux kernel for booting linux from linux or etherboot. (And not the code copied from etherbooot in the LinuxBIOS source tree).
The bootloader is formatted as a static ELF executable. And is loaded normally from a rom chip.
The bootloaders that LinuxBIOS has are not limited to static ELF executables but that is pretty much the one common type they will all accept. Grumble about beoboot Grumble.
So any operating system that can be formated as a static ELF executable, and can be trained to read the LinuxBIOS table instead of making BIOS calls can be used with LinuxBIOS.
Eric
On 15 Sep 2002, Eric W. Biederman wrote:
Currently the bootloader can be the final Linux kernel to run. A linux kernel for booting linux from linux or etherboot. (And not the code copied from etherbooot in the LinuxBIOS source tree).
let's not forget 9load, a truly neat bootloader from the Plan 9 guys.
ron