Hi, I wrote a bootloader, available here: http://te.to/~ts1/filo/ and here the README:
This is FILO, a bootloader which loads boot images from local filesystem, without help from legacy BIOS services.
Expected usage is to be burned into the BIOS ROM together with LinuxBIOS.
FEATURES
- Console on VGA + keyboard, serial port, or both - Line editing with ^H, ^W and ^U keys to type arbitrary filename to boot - Improved IDE driver derived from Etherboot 5.1 - Support for filesystems: ext2, fat, jfs, minix, reiserfs, and xfs - Full support for the ELF Boot Proposal (where is it btw, Eric?) - Auxiliary tool to compute checksum of ELF boot images - Full 32-bit code, no BIOS calls
REQUIREMENT
Only i386 PC architecture is currently supported.
Recent version of GNU toolchain is required to build. I have tested with Debian/woody (gcc 2.95.4, binutils 2.12.90.0.1, make 3.79.1) and Debian/sid (gcc 3.3.2, binutils 2.14.90.0.5, make 3.80).
INSTALL
First invokation of make creates the default Config file. $ make Edit this file as you like. It's fairly straightforward (I hope). $ vi Config Then running make again will build filo.elf, the ELF boot image of FILO. $ make
Use filo.elf as your payload of LinuxBIOS, or a boot image for Etherboot.
USING
At "boot:" prompt, type the name of your boot image in the form: devicename:filename (eg. hda1:/boot/kernel.elf).
FILO supports only IDE hard disk (or compatible) for now. The devicename for IDE disk is same as in Linux (eg. hda1 means the first partition of master device on primary controller).
FILO can boot any bootable ELF images, which include Linux converted by mkelfImage, Etherboot .elf and .zelf, Memtest86, FILO itself, etc.
If AUTOBOOT_FILE is set in Config, FILO tries to boot this file first, and falls back to boot: prompt if it fails. If AUTOBOOT_DELAY is also set, FILO waits specified time in seconds for a key hit before booting AUTOBOOT_FILE. Otherwise it tries to boot AUTOBOOT_FILE immediately unless a key stroke is waiting.
BUG REPORTING
If you have trouble, set DEBUG_ALL in Config and send its console output to me at ts1@tsn.or.jp.
ACKNOWLEDGEMENT
I have taken pieces of code and learned concepts from various standalone programs including GNU GRUB, Etherboot, polled IDE patch by Adam Agnew, Memtest86, LinuxBIOS, and Linux. I must say thanks to all the developers of these wonderful software, especially to Eric Biederman for his great development work in this area.
LICENSE
Copyright (C) 2003 by SONE Takeshi ts1@tsn.or.jp and others. This program is licensed under the terms of GNU General Public License. See the COPYING file for details.