been made to get FILO running on PPC. Contact the [[Mailinglist|coreboot mailinglist]]

been made to get FILO running on PPC. Contact the [[Mailinglist|coreboot mailinglist]]

for more information.

for more information.

−

−

x64/AMD 64 machines work fine when compiling FILO in 32-bit mode.

−

(coreboot uses 32-bit mode and Linux kernel does the transition to 64-bit mode)

Recent version of GNU toolchain is required to build.

Recent version of GNU toolchain is required to build.

Line 49:

Line 42:

make 3.80) and different versions of SUSE Linux from 9.0 to 11.0.

make 3.80) and different versions of SUSE Linux from 9.0 to 11.0.

−

On AMD64 for Debian install the gcc-multilib package.

+

FILO will use the coreboot crossgcc if you have it built and it can be found.

+

+

FILO uses coreboot's '''libpayload'''. It is easiest to locate and build FILO in the '''coreboot/payloads''' directory.

−

FILO will use the coreboot crossgcc if you have it built and it can be found.

+

== Building on 64-bit OS specifics ==

+

+

If you will be building FILO on AMD64 platform for Debian install the '''gcc-multilib''' package.

+

+

x64/AMD64 machines work fine when compiling FILO in 32-bit mode.

+

(coreboot uses 32-bit mode and Linux kernel does the transition to 64-bit mode)

== Preparation ==

== Preparation ==

−

You need to compile libpayload (included in coreboot)

+

Before you can build FILO, you have to build libpayload. If your filo directory is located inside the coreboot/payloads directory, you don't have to do anything special. If for some reason you want to compile FILO of the coreboot/payloads directory, you will need to tell the makefile where libpayload is. Open filo/Makefile in your favorite text editor and change this line

−

$ cd ../coreboot/payloads/libpayload

+

export LIBCONFIG_PATH := $(src)/../libpayload

−

$ make defconfig

−

$ make

−

$ make DESTDIR=../../../filo/build install

−

$ cd ../../../filo

−

If you are compiling on an AMD64 platform, instead of "make" you need to write

This will run menuconfig twice -- the first time for libpayload, the second time for FILO.

−

Then running make again will build filo.elf, the ELF boot image of FILO.

+

+

== Building ==

+

+

Then running make will build filo.elf, the ELF boot image of FILO.

$ make

$ make

−

Use build/filo.elf as your payload of coreboot, or a boot image for

+

If you are compiling on an AMD64 platform and compiler complains, instead of "make" you need to write

−

[[Etherboot]].

−

If you are compiling on an AMD64 platform, do

$ make CC="gcc -m32" LD="ld -b elf32-i386" HOSTCC="gcc" AS="as --32"

$ make CC="gcc -m32" LD="ld -b elf32-i386" HOSTCC="gcc" AS="as --32"

+

+

Use '''build/filo.elf''' as your payload of coreboot, or a boot image for

+

[[Etherboot]].

Alternatively, you can build libpayload and FILO in one go using the build.sh script, with the drawback that you'll get the default options for both of them:

Alternatively, you can build libpayload and FILO in one go using the build.sh script, with the drawback that you'll get the default options for both of them:

$ ./build.sh

$ ./build.sh

+

+

Here is the short listing how to build FILO from git

+

cd coreboot/payloads

+

git clone http://review.coreboot.org/p/filo.git

+

cd filo

+

make config

+

make

== Credits ==

== Credits ==

Line 125:

Line 132:

Example how to set:

Example how to set:

nvramtool -w "boot_devices=hda1:/boot/filo;hdc:"

nvramtool -w "boot_devices=hda1:/boot/filo;hdc:"

+

+

= Contributing =

+

+

To be able to contribute you will need a Gerrit account. See [[Git]] on how to get one and how to push new code to the repository. The instructions there are valid also for FILO, just change '''coreboot''' to '''filo''' in ''directory'' names etc. (not hostnames).

Latest revision as of 13:44, 30 August 2013

FILO trying to load menu.lst.

FILO prompt.

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 coreboot.

Requirements

Only the x86 (x64) architecture is currently supported. Some efforts have
been made to get FILO running on PPC. Contact the coreboot mailinglist
for more information.

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 11.0.

FILO will use the coreboot crossgcc if you have it built and it can be found.

FILO uses coreboot's libpayload. It is easiest to locate and build FILO in the coreboot/payloads directory.

Building on 64-bit OS specifics

If you will be building FILO on AMD64 platform for Debian install the gcc-multilib package.

x64/AMD64 machines work fine when compiling FILO in 32-bit mode.
(coreboot uses 32-bit mode and Linux kernel does the transition to 64-bit mode)

Preparation

Before you can build FILO, you have to build libpayload. If your filo directory is located inside the coreboot/payloads directory, you don't have to do anything special. If for some reason you want to compile FILO of the coreboot/payloads directory, you will need to tell the makefile where libpayload is. Open filo/Makefile in your favorite text editor and change this line

NVRAM Parsing

'boot_devices' can contain a list of boot devices seperated by semicolons. FILO will try to load filo.lst / menu.lst from any of these devices.

Example how to set:

nvramtool -w "boot_devices=hda1:/boot/filo;hdc:"

Contributing

To be able to contribute you will need a Gerrit account. See Git on how to get one and how to push new code to the repository. The instructions there are valid also for FILO, just change coreboot to filo in directory names etc. (not hostnames).