PVR with LinuxBIOS. What board is recommended? Some questions
stuge-linuxbios at cdy.org
Mon Apr 26 19:37:01 CEST 2004
On Tue, Apr 27, 2004 at 12:02:23AM +0200, Jochen Roemling wrote:
> Brian Maly wrote:
> >you can do (1) kernel on DoC, use (2) FILO to boot a kernel off the HD,
> >or (3) etherboot to load the kernel from the network.
> Okay, this is still not quite understood:
Currently there are a number of options to the DiskOnChip.
LinuxBIOS in itself is quite small, in the tens of KBs.
LinuxBIOS initializes hardware and then hands over to a "payload".
LinuxBIOS and the payload both have to fit in the flash ROM on the
The payload needs to be in a specific format.
The payload can contain a kernel or a bootloader such as FILO or
Etherboot or even some other software, e.g. the baremetal toolkit even
if it hasn't been mentioned for a while.
Both FILO and Etherboot support loading a kernel from various media.
FILO is popular for loading a kernel from IDE media, ie. harddisk,
CD-ROM, CompactFlash-in-IDE-adapter, etc. Etherboot is the best
choice for loading the kernel from the network.
FILO and Etherboot are also quite small, also in the tens of KBs.
A kernel is the opposite - large. In order to use a kernel for payload
there has to be room in the flash memory part on the mainboard and
unfortunately this usually isn't the case. 2 Megabit parts are very
common these days and 2Mbit == 256Kbyte, so no kernel in there.
4 Megabit parts are becoming popular and with 512Kbyte of room a kernel
is feasible, but not really a full-blown one. Rather this would require
a "two kernel monte" where the first kernel loads a fuller-featured
kernel from somewhere. This required Eric Biederman's kexec() patch in
earlier 2.4, I'm not sure if kexec() is integrated in later 2.4 and 2.6.
The DOC was initially used as a trick to get more storage space from
the flash ROM - as you might have found, the DOC replaces the flash ROM
and allows windowed (aka paged) access to all of the DOC memory through
a small window. This works well, but the catch is that only 512 bytes
are available for the very first code to be executed when the CPU is
reset, and these 512 bytes of code have to initialize the system RAM.
This has proved to be difficult at best with current systems.
> And what about this Etherboot: Can I use some ordinary BootROM? I
> don't think so. This means, the code on the DoC simulates a BootROM
> and then does dhcp, tftp and the like? I gues I have to seek out for
> more documentation.
Etherboot was initially developed as a bootrom project targeted at
boot ROMs on networking cards. Etherboot has turned out to be very
usable for other purposes as well, such as LinuxBIOS. :)
> >Arima/hdama or most of the Tyan's. Tyan may give you a better selection
> >because more motherboards are supported. This assumes you want to dish
> >out some $$$ for an opteron.
> No, definitely not. I thought about a more consumer-like board with an
> Athlon or Celeron.
> SiS630 sounded like a good choise, but the only boards I could find was
> a Gigabyte GA-6SMZ7, which is nowhere in the stores. Same with the ASUS
> CUSI. And this EPIA pops up everywhere on PVR pages, but it has only 2
> PCI slots... very dificult to decide...
Check out the entire EPIA line, I think there are models that combine
passive cooling with TV-out, which is why it's popular for TV-things.
There has been success with video initialization of the VGA on EPIA
boards too, as I recall. However this was in the old "version 1" branch
and all current development efforts are going into the "version 2"
branch - each mainboard being moved over in turn. I believe the good
people at LANL are working on completing the EPIA support right now.
My humble suggestion would be to try to find a suitable EPIA board and
use LinuxBIOS with FILO as the payload, and use a CF+IDE-adapter for
kernel and system storage. I haven't done any work to support the
suggestion, but still it seems and feels like the shortest path to
your goal, especially since Ron+Ollie+Greg at LANL and others are
working on finalizing EPIA support in v2. :)
Hope this helps! (Oh, and feel free to edit this short writeup and put
it on the web somewhere to serve as some kind of status report..)
More information about the coreboot