https://www.coreboot.org/api.php?action=feedcontributions&user=Mrtadis&feedformat=atomcoreboot - User contributions [en]2024-03-28T17:12:33ZUser contributionsMediaWiki 1.40.0https://www.coreboot.org/index.php?title=Developer_Manual/Tools/Dual_Flash&diff=10854Developer Manual/Tools/Dual Flash2011-07-01T16:09:03Z<p>Mrtadis: </p>
<hr />
<div>You may do it yourself. That's a great tool getting away from bricks :)<br />
== Dual Parallel Flash ==<br />
<gallery widths="400px" heights="300px" perrow="2"><br />
File:Dual_parallel_flash.jpg|Dual flash "pie". One for keeping working firmware image. Flash chips are selectable by a tumbler switch<br />
File:Pie2.jpg|Detailed "pie" structure. In a yellow ellipse you can see blue lines, that shows how to bend pins<br />
File:Pie1.jpg|VCC is connected to pull-up resistors<br />
File:Pull-ups.jpg|Resistors are about 100 k&Omega;. Please note that green and red wires are also connected to their corresponding flash chip's chip select signal<br />
File:Dual_par_flash_in_board.jpg|On board with less sockets, so there is enough space to insert PCI cards<br />
</gallery><br />
<br />
<br />
<br />
== Dual SPI Flash ==<br />
This one might need to make a small PCB<br />
<gallery widths="400px" heights="300px" perrow="2"><br />
File:Dual_spi_flash4.jpg|On top is DIP flash<br />
File:Dual_spi_flash3.jpg|SOIC flash, also some extension for fitting to board<br />
File:Dual_spi_flash2.jpg|On [[ASRock_E350M1|ASRock E350M1]]<br />
File:Dual_spi_flash.jpg|On [[ASRock_E350M1|ASRock E350M1]]<br />
</gallery></div>Mrtadishttps://www.coreboot.org/index.php?title=File:Dual_spi_flash4.jpg&diff=10853File:Dual spi flash4.jpg2011-07-01T15:44:15Z<p>Mrtadis: </p>
<hr />
<div></div>Mrtadishttps://www.coreboot.org/index.php?title=File:Dual_spi_flash3.jpg&diff=10852File:Dual spi flash3.jpg2011-07-01T15:43:54Z<p>Mrtadis: </p>
<hr />
<div></div>Mrtadishttps://www.coreboot.org/index.php?title=File:Dual_spi_flash2.jpg&diff=10851File:Dual spi flash2.jpg2011-07-01T15:43:29Z<p>Mrtadis: </p>
<hr />
<div></div>Mrtadishttps://www.coreboot.org/index.php?title=File:Dual_spi_flash.jpg&diff=10850File:Dual spi flash.jpg2011-07-01T15:43:11Z<p>Mrtadis: </p>
<hr />
<div></div>Mrtadishttps://www.coreboot.org/index.php?title=File:Dual_par_flash_in_board.jpg&diff=10849File:Dual par flash in board.jpg2011-07-01T15:19:14Z<p>Mrtadis: </p>
<hr />
<div></div>Mrtadishttps://www.coreboot.org/index.php?title=Developer_Manual&diff=10791Developer Manual2011-06-06T17:49:50Z<p>Mrtadis: fix typo</p>
<hr />
<div></div>Mrtadishttps://www.coreboot.org/index.php?title=Developer_Manual/Tools&diff=10758Developer Manual/Tools2011-05-18T22:23:49Z<p>Mrtadis: </p>
<hr />
<div></div>Mrtadishttps://www.coreboot.org/index.php?title=Developer_Manual/Tools/Dual_Flash&diff=10757Developer Manual/Tools/Dual Flash2011-05-18T22:10:24Z<p>Mrtadis: /* Dual Parallel Flash */</p>
<hr />
<div>== Dual Parallel Flash ==<br />
You may do it yourself. That's a great tool getting away from bricks :)<br />
[[File:Dual_parallel_flash.jpg|400px|thumb|left|Dual flash "pie". One for keeping working firmware image. Flash chips are selectable by a tumbler switch]]<br />
[[File:Pie2.jpg|400px|thumb|left|Detailed "pie" structure. In a yellow ellipse you can see blue lines, that shows how to bend pins]]<br />
[[File:Pie1.jpg|300px|thumb|left|VCC is connected to pull-up resistors]]<br />
[[File:Pull-ups.jpg|300px|thumb|left|Resistors are about 100 k?. Please note that green and red wires are also connected to their corresponding flash chip's chip select signal]]</div>Mrtadishttps://www.coreboot.org/index.php?title=Developer_Manual/Tools/Dual_Flash&diff=10756Developer Manual/Tools/Dual Flash2011-05-18T22:07:23Z<p>Mrtadis: Created page with "== Dual Parallel Flash == [[File:Dual_parallel_flash.jpg|400px|thumb|left|Dual flash "pie". One for keeping working firmware image. Flash chips are selectable by a tumbler switc..."</p>
<hr />
<div>== Dual Parallel Flash ==<br />
[[File:Dual_parallel_flash.jpg|400px|thumb|left|Dual flash "pie". One for keeping working firmware image. Flash chips are selectable by a tumbler switch]]<br />
[[File:Pie2.jpg|400px|thumb|left|Detailed "pie" structure. In a yellow ellipse you can see blue lines, that shows how to bend pins]]<br />
[[File:Pie1.jpg|300px|thumb|left|VCC is connected to pull-up resistors]]<br />
[[File:Pull-ups.jpg|300px|thumb|left|Resistors are about 100 k?. Please note that green and red wires are also connected to their corresponding flash chip's chip select signal]]</div>Mrtadishttps://www.coreboot.org/index.php?title=File:Pull-ups.jpg&diff=10755File:Pull-ups.jpg2011-05-18T21:52:09Z<p>Mrtadis: Pull-ups are connected like that. Please note that green and red wires are also connected to their corresponding flash chip's chip select signal.</p>
<hr />
<div>Pull-ups are connected like that. Please note that green and red wires are also connected to their corresponding flash chip's chip select signal.</div>Mrtadishttps://www.coreboot.org/index.php?title=File:Pie2.jpg&diff=10754File:Pie2.jpg2011-05-18T21:50:34Z<p>Mrtadis: Detailed "pie" structure. In a yellow ellipse you can see blue lines, that shows how to bend pins.</p>
<hr />
<div>Detailed "pie" structure. In a yellow ellipse you can see blue lines, that shows how to bend pins.</div>Mrtadishttps://www.coreboot.org/index.php?title=File:Pie1.jpg&diff=10753File:Pie1.jpg2011-05-18T21:48:06Z<p>Mrtadis: VCC is connected to pull-up resistors</p>
<hr />
<div>VCC is connected to pull-up resistors</div>Mrtadishttps://www.coreboot.org/index.php?title=File:Dual_parallel_flash.jpg&diff=10752File:Dual parallel flash.jpg2011-05-18T21:45:28Z<p>Mrtadis: Dual flash. One for keeping working firmware image.</p>
<hr />
<div>Dual flash. One for keeping working firmware image.</div>Mrtadishttps://www.coreboot.org/index.php?title=User:Mrtadis&diff=10686User:Mrtadis2011-04-03T21:47:25Z<p>Mrtadis: Created page with "I'm seeking to become a GSoC student :)"</p>
<hr />
<div>I'm seeking to become a GSoC student :)</div>Mrtadishttps://www.coreboot.org/index.php?title=FILO&diff=10685FILO2011-04-03T21:45:38Z<p>Mrtadis: /* Installation */ renamed to "Building", removed duplicate lines and added a build script</p>
<hr />
<div>[[Image:Qemu filo.png|thumb|right|FILO trying to load menu.lst.]]<br />
[[Image:Qemu filo prompt.png|thumb|right|FILO prompt.]]<br />
<br />
'''FILO''' is a bootloader which loads boot images from a local filesystem,<br />
without help from legacy BIOS services.<br />
<br />
Expected usage is to flash it into the BIOS ROM together with coreboot.<br />
<br />
== Download FILO ==<br />
<br />
Download the latest version of FILO from Subversion with<br />
<br />
$ svn co svn://coreboot.org/filo/trunk/filo<br />
<br />
Alternatively you may still download the obsolete filo 0.5.6 release at<br />
<br />
$ svn co svn://coreboot.org/filo/branches/filo-0.5<br />
<br />
You can also browse the source code online at<br />
http://tracker.coreboot.org/trac/filo/browser/trunk<br />
<br />
== Features ==<br />
<br />
* Supported boot devices: IDE hard disk, SATA hard disk, CD-ROM, and system memory (ROM)<br />
* Supported filesystems: ext2, fat, jfs, minix, reiserfs, xfs, and iso9660<br />
* Supported image formats: ELF and [b]zImage (a.k.a. /vmlinuz)<br />
* Supports boot disk image of El Torito bootable CD-ROM. "hdc1" means the boot disk image of the CD-ROM at hdc.<br />
* Supports loading image from raw device with user-specified offset<br />
* Console on VGA + keyboard, serial port, or both<br />
* Line editing with ^H, ^W and ^U keys to type arbitrary filename to boot<br />
* Full support for the ELF Boot Proposal (where is it btw, Eric)<br />
* Auxiliary tool to compute checksum of ELF boot images<br />
* Full 32-bit code, no BIOS calls<br />
* uses [[libpayload]]<br />
<br />
== Requirements ==<br />
<br />
Only the x86 (x64) architecture is currently supported. Some efforts have <br />
been made to get FILO running on PPC. Contact the [[Mailinglist|coreboot mailinglist]]<br />
for more information.<br />
<br />
Recent version of GNU toolchain is required to build. <br />
<br />
We have tested with Debian/woody (gcc 2.95.4, binutils 2.12.90.0.1,<br />
make 3.79.1), Debian/sid (gcc 3.3.2, binutils 2.14.90.0.6,<br />
make 3.80) and different versions of SUSE Linux from 9.0 to 11.0.<br />
<br />
FILO will use the coreboot crossgcc if you have it built and it can be found.<br />
<br />
FILO uses coreboot's '''libpayload'''. It is easiest to locate and build FILO in the '''coreboot/payloads''' directory.<br />
<br />
== Building on 64-bit OS specifics ==<br />
<br />
If you will be building FILO on AMD64 platform for Debian install the '''gcc-multilib''' package.<br />
<br />
x64/AMD64 machines work fine when compiling FILO in 32-bit mode.<br />
(coreboot uses 32-bit mode and Linux kernel does the transition to 64-bit mode)<br />
<br />
== Preparation ==<br />
<br />
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<br />
<br />
export LIBCONFIG_PATH := $(src)/../libpayload<br />
<br />
to match the location of the libpayload directory on your system:<br />
<br />
export LIBCONFIG_PATH := /home/YOUR_USER_NAME/PATH_TO_COREBOOT/payloads/libpayload <br />
<br />
== Configuration ==<br />
<br />
Configure FILO (and libpayload) using the Kconfig interface:<br />
<br />
$ make menuconfig<br />
<br />
This will run menuconfig twice -- the first time for libpayload, the second time for FILO.<br />
<br />
== Building ==<br />
<br />
Then running make will build filo.elf, the ELF boot image of FILO.<br />
$ make<br />
<br />
If you are compiling on an AMD64 platform and compiler complains, instead of "make" you need to write<br />
<br />
$ make CC="gcc -m32" LD="ld -b elf32-i386" HOSTCC="gcc" AS="as --32"<br />
<br />
Use '''build/filo.elf''' as your payload of coreboot, or a boot image for<br />
[[Etherboot]].<br />
<br />
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:<br />
$ ./build.sh<br />
<br />
Here is the short listing how to build FILO from svn<br />
cd coreboot/payloads<br />
svn co svn://coreboot.org/filo/trunk/filo<br />
cd filo<br />
make config<br />
make<br />
<br />
== Credits ==<br />
<br />
* This software was originally developed by SONE Takeshi <ts1@tsn.or.jp><br />
* It has been significantly enhanced and is now maintained by [mailto:stepan@coresystems.de Stefan Reinauer].<br />
* It uses libpayload from Uwe Hermann and Jordan Crouse<br />
<br />
== Troubleshooting ==<br />
<br />
If you experience trouble compiling or using FILO, please report with a build log or detailed error description to the [[Mailinglist|coreboot mailing list]].<br />
<br />
== Notes ==<br />
<br />
=== CD-ROM Booting ===<br />
<br />
To boot a CD-ROM or DVD you only need to specify the drive '''without a partition number'''. For example to boot to the primary drive on the secondary IDE channel you would use '''hdc''' and not '''hdc1''' in FILO.<br />
<br />
=== Grub-like Interface ===<br />
If you are using FILO with '''CONFIG_USE_GRUB''', and want to boot to your Linux install disk you have to do a mixture of GRUB and FILO commands.<br />
<br />
Like GRUB you have to append a kernel (and parameters), then an initrd, and give a boot command.<br />
Like FILO you have to give absolute paths.<br />
<br />
Example to boot to a GeeXboX install CD-ROM:<br />
filo> kernel hdc:/GEEXBOX/boot/vmlinuz root=/dev/ram0 rw init=linuxrc boot=cdrom installator<br />
Press <ENTER><br />
filo> initrd hdc:/GEEXBOX/boot/initrd.gz<br />
Press <ENTER><br />
filo> boot<br />
Press <ENTER><br />
<br />
Your system will now boot right into the Linux install.<br />
<br />
=== NVRAM Parsing ===<br />
<br />
FILO parses the following NVRAM variables:<br />
<br />
* '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.<br />
Example how to set:<br />
nvramtool -w "boot_devices=hda1:/boot/filo;hdc:"</div>Mrtadishttps://www.coreboot.org/index.php?title=FILO&diff=10684FILO2011-04-03T21:21:21Z<p>Mrtadis: Making all clear</p>
<hr />
<div>[[Image:Qemu filo.png|thumb|right|FILO trying to load menu.lst.]]<br />
[[Image:Qemu filo prompt.png|thumb|right|FILO prompt.]]<br />
<br />
'''FILO''' is a bootloader which loads boot images from a local filesystem,<br />
without help from legacy BIOS services.<br />
<br />
Expected usage is to flash it into the BIOS ROM together with coreboot.<br />
<br />
== Download FILO ==<br />
<br />
Download the latest version of FILO from Subversion with<br />
<br />
$ svn co svn://coreboot.org/filo/trunk/filo<br />
<br />
Alternatively you may still download the obsolete filo 0.5.6 release at<br />
<br />
$ svn co svn://coreboot.org/filo/branches/filo-0.5<br />
<br />
You can also browse the source code online at<br />
http://tracker.coreboot.org/trac/filo/browser/trunk<br />
<br />
== Features ==<br />
<br />
* Supported boot devices: IDE hard disk, SATA hard disk, CD-ROM, and system memory (ROM)<br />
* Supported filesystems: ext2, fat, jfs, minix, reiserfs, xfs, and iso9660<br />
* Supported image formats: ELF and [b]zImage (a.k.a. /vmlinuz)<br />
* Supports boot disk image of El Torito bootable CD-ROM. "hdc1" means the boot disk image of the CD-ROM at hdc.<br />
* Supports loading image from raw device with user-specified offset<br />
* Console on VGA + keyboard, serial port, or both<br />
* Line editing with ^H, ^W and ^U keys to type arbitrary filename to boot<br />
* Full support for the ELF Boot Proposal (where is it btw, Eric)<br />
* Auxiliary tool to compute checksum of ELF boot images<br />
* Full 32-bit code, no BIOS calls<br />
* uses [[libpayload]]<br />
<br />
== Requirements ==<br />
<br />
Only the x86 (x64) architecture is currently supported. Some efforts have <br />
been made to get FILO running on PPC. Contact the [[Mailinglist|coreboot mailinglist]]<br />
for more information.<br />
<br />
Recent version of GNU toolchain is required to build. <br />
<br />
We have tested with Debian/woody (gcc 2.95.4, binutils 2.12.90.0.1,<br />
make 3.79.1), Debian/sid (gcc 3.3.2, binutils 2.14.90.0.6,<br />
make 3.80) and different versions of SUSE Linux from 9.0 to 11.0.<br />
<br />
FILO will use the coreboot crossgcc if you have it built and it can be found.<br />
<br />
FILO uses coreboot's '''libpayload'''. It is easiest to locate and build FILO in the '''coreboot/payloads''' directory.<br />
<br />
== Building on 64-bit OS specifics ==<br />
<br />
If you will be building FILO on AMD64 platform for Debian install the '''gcc-multilib''' package.<br />
<br />
x64/AMD64 machines work fine when compiling FILO in 32-bit mode.<br />
(coreboot uses 32-bit mode and Linux kernel does the transition to 64-bit mode)<br />
<br />
== Preparation ==<br />
<br />
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<br />
<br />
export LIBCONFIG_PATH := $(src)/../libpayload<br />
<br />
to match the location of the libpayload directory on your system:<br />
<br />
export LIBCONFIG_PATH := /home/YOUR_USER_NAME/PATH_TO_COREBOOT/payloads/libpayload <br />
<br />
== Configuration ==<br />
<br />
Configure FILO (and libpayload) using the Kconfig interface:<br />
<br />
$ make menuconfig<br />
<br />
This will run menuconfig twice -- the first time for libpayload, the second time for FILO.<br />
<br />
== Installation ==<br />
<br />
Then running make again will build filo.elf, the ELF boot image of FILO.<br />
$ make<br />
<br />
If you are compiling on an AMD64 platform, instead of "make" you need to write<br />
<br />
$ make CC="gcc -m32" LD="ld -b elf32-i386" HOSTCC="gcc" AS="as --32"<br />
<br />
Use build/filo.elf as your payload of coreboot, or a boot image for<br />
[[Etherboot]].<br />
<br />
If you are compiling on an AMD64 platform, do <br />
$ make CC="gcc -m32" LD="ld -b elf32-i386" HOSTCC="gcc" AS="as --32"<br />
<br />
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:<br />
$ ./build.sh<br />
<br />
== Credits ==<br />
<br />
* This software was originally developed by SONE Takeshi <ts1@tsn.or.jp><br />
* It has been significantly enhanced and is now maintained by [mailto:stepan@coresystems.de Stefan Reinauer].<br />
* It uses libpayload from Uwe Hermann and Jordan Crouse<br />
<br />
== Troubleshooting ==<br />
<br />
If you experience trouble compiling or using FILO, please report with a build log or detailed error description to the [[Mailinglist|coreboot mailing list]].<br />
<br />
== Notes ==<br />
<br />
=== CD-ROM Booting ===<br />
<br />
To boot a CD-ROM or DVD you only need to specify the drive '''without a partition number'''. For example to boot to the primary drive on the secondary IDE channel you would use '''hdc''' and not '''hdc1''' in FILO.<br />
<br />
=== Grub-like Interface ===<br />
If you are using FILO with '''CONFIG_USE_GRUB''', and want to boot to your Linux install disk you have to do a mixture of GRUB and FILO commands.<br />
<br />
Like GRUB you have to append a kernel (and parameters), then an initrd, and give a boot command.<br />
Like FILO you have to give absolute paths.<br />
<br />
Example to boot to a GeeXboX install CD-ROM:<br />
filo> kernel hdc:/GEEXBOX/boot/vmlinuz root=/dev/ram0 rw init=linuxrc boot=cdrom installator<br />
Press <ENTER><br />
filo> initrd hdc:/GEEXBOX/boot/initrd.gz<br />
Press <ENTER><br />
filo> boot<br />
Press <ENTER><br />
<br />
Your system will now boot right into the Linux install.<br />
<br />
=== NVRAM Parsing ===<br />
<br />
FILO parses the following NVRAM variables:<br />
<br />
* '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.<br />
Example how to set:<br />
nvramtool -w "boot_devices=hda1:/boot/filo;hdc:"</div>Mrtadis