FILO: Difference between revisions

From coreboot
Jump to navigation Jump to search
(Merge Filo on AMD64 into this page, it's too small for an extra page. Original content by User:Stepan.)
Line 4: Line 4:
Expected usage is to flash it into the BIOS ROM together with LinuxBIOS.
Expected usage is to flash it into the BIOS ROM together with LinuxBIOS.


=== Download FILO ===
== Download FILO ==


Download the latest version of FILO from Subversion with
Download the latest version of FILO from Subversion with
Line 13: Line 13:
http://openbios.org/viewvc/trunk/?root=FILO
http://openbios.org/viewvc/trunk/?root=FILO


=== Features ===
== Features ==


* Supported boot devices: IDE hard disk, SATA hard disk, CD-ROM, and system memory (ROM)
* Supported boot devices: IDE hard disk, SATA hard disk, CD-ROM, and system memory (ROM)
Line 26: Line 26:
* Full 32-bit code, no BIOS calls
* Full 32-bit code, no BIOS calls


=== Requirements ===  
== Requirements ==


Only i386 PC architecture is currently supported. Some efforts have  
Only i386 PC architecture is currently supported. Some efforts have  
Line 41: Line 41:
make 3.80) and different versions of SUSE Linux from 9.0 to 10.0.
make 3.80) and different versions of SUSE Linux from 9.0 to 10.0.


=== Install ===
== Install ==


First invocation of make creates the default Config file.
First invocation of make creates the default Config file.
Line 57: Line 57:
This feature is intended for testing or development purpose.
This feature is intended for testing or development purpose.


=== Credits ===
== Credits ==


This software was originally developed by SONE Takeshi <ts1@tsn.or.jp> and is now maintained by [mailto:stepan@coresystems.de Stefan Reinauer].
This software was originally developed by SONE Takeshi <ts1@tsn.or.jp> and is now maintained by [mailto:stepan@coresystems.de Stefan Reinauer].


=== Additional Information ===
== Additional Information ==


* [[Filo on AMD64]]
* [[Filo on the Arima Hdama]]
* [[Filo on the Arima Hdama]]
=== FILO on AMD64 ===
Installing LinuxBIOS + [[Filo]] (0.4.1) on an AMD64 box.
==== Configuration ====
#define AUTOBOOT_FILE "hda2:/boot/vmlinuz.lb root=/dev/hda2 \
                initrd=/boot/initrd.lb console=ttyS0,115200 console=tty0 video=atyfb:1024x768-16"
#define AUTOBOOT_DELAY 4
#define IDE_DISK 1
#define VGA_CONSOLE 1
#define PC_KEYBOARD 1
#define SERIAL_CONSOLE 1
#define SERIAL_IOBASE 0x3f8
#define SERIAL_SPEED 115200
#define FSYS_EXT2FS 1
#define FSYS_FAT 1
#define FSYS_JFS 1
#define FSYS_MINIX 1
#define FSYS_REISERFS 1
#define FSYS_XFS 1
#define FSYS_ISO9660 1
#define ELTORITO 1
#define SUPPORT_PCI 1
#define LINUX_LOADER 1
#define PCI_CONFIG_1 1
==== Installation ====
Installing SuSE 9.0 AMD64 on a Solo-System:
FILO version 0.4.1 (stepan@prokofjieff) Thu Oct 30 13:29:16 CET 2003
Press <Enter> for default boot, or <Esc> for boot prompt... 
boot: hdc:/boot/loader/linux initrd=/boot/loader/initrd console=ttyS0,115200n8

Revision as of 21:34, 12 October 2007

FILO is a bootloader which loads boot images from a local filesystem, without help from legacy BIOS services.

Expected usage is to flash it into the BIOS ROM together with LinuxBIOS.

Download FILO

Download the latest version of FILO from Subversion with

$ svn co svn://openbios.org/filo/trunk/filo-0.5

You can also browse the source code online at http://openbios.org/viewvc/trunk/?root=FILO

Features

  • Supported boot devices: IDE hard disk, SATA hard disk, CD-ROM, and system memory (ROM)
  • Supported filesystems: ext2, fat, jfs, minix, reiserfs, xfs, and iso9660
  • Supported image formats: ELF and [b]zImage (a.k.a. /vmlinuz)
  • Supports boot disk image of El Torito bootable CD-ROM. "hdc1" means the boot disk image of the CD-ROM at hdc.
  • Supports loading image from raw device with user-specified offset
  • Console on VGA + keyboard, serial port, or both
  • Line editing with ^H, ^W and ^U keys to type arbitrary filename to boot
  • 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

Requirements

Only i386 PC architecture is currently supported. Some efforts have been made to get FILO running on PPC. Contact the LinuxBIOS mailinglist for more information.

x86-64 (AMD 64) machines in 32-bit mode also work. (LinuxBIOS uses 32-bit mode and Linux kernel does the transition to 64-bit mode)

Recent version of GNU toolchain is required to build. We have tested with Debian/woody (gcc 2.95.4, binutils 2.12.90.0.1, make 3.79.1), Debian/sid (gcc 3.3.2, binutils 2.14.90.0.6, make 3.80) and different versions of SUSE Linux from 9.0 to 10.0.

Install

First invocation 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.

If you enable MULTIBOOT_IMAGE option in Config, you can also boot filo.elf from GNU GRUB or other Multiboot bootloader. This feature is intended for testing or development purpose.

Credits

This software was originally developed by SONE Takeshi <ts1@tsn.or.jp> and is now maintained by Stefan Reinauer.

Additional Information

FILO on AMD64

Installing LinuxBIOS + Filo (0.4.1) on an AMD64 box.

Configuration

#define AUTOBOOT_FILE "hda2:/boot/vmlinuz.lb root=/dev/hda2 \
                initrd=/boot/initrd.lb console=ttyS0,115200 console=tty0 video=atyfb:1024x768-16"
#define AUTOBOOT_DELAY 4
#define IDE_DISK 1
#define VGA_CONSOLE 1
#define PC_KEYBOARD 1
#define SERIAL_CONSOLE 1
#define SERIAL_IOBASE 0x3f8
#define SERIAL_SPEED 115200
#define FSYS_EXT2FS 1
#define FSYS_FAT 1
#define FSYS_JFS 1
#define FSYS_MINIX 1
#define FSYS_REISERFS 1
#define FSYS_XFS 1
#define FSYS_ISO9660 1
#define ELTORITO 1
#define SUPPORT_PCI 1
#define LINUX_LOADER 1
#define PCI_CONFIG_1 1

Installation

Installing SuSE 9.0 AMD64 on a Solo-System:

FILO version 0.4.1 (stepan@prokofjieff) Thu Oct 30 13:29:16 CET 2003
Press <Enter> for default boot, or <Esc> for boot prompt...  
boot: hdc:/boot/loader/linux initrd=/boot/loader/initrd console=ttyS0,115200n8