<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.coreboot.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.coreboot.org/api.php?action=feedcontributions&amp;user=Quux&amp;feedformat=atom</id>
		<title>coreboot - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.coreboot.org/api.php?action=feedcontributions&amp;user=Quux&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Special:Contributions/Quux"/>
		<updated>2013-05-19T21:27:42Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.5</generator>

	<entry>
		<id>http://www.coreboot.org/Build_HOWTO</id>
		<title>Build HOWTO</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Build_HOWTO"/>
				<updated>2010-12-05T20:54:14Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Building coreboot */  bin to upload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Coreboot menuconfig.png|thumb|right|'''make menuconfig''' in coreboot]]&lt;br /&gt;
&lt;br /&gt;
This page describes how you can build a coreboot image for your specific mainboard using the '''kconfig''' system (a.k.a. '''make menuconfig''').&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* gcc / g++&lt;br /&gt;
* make&lt;br /&gt;
* ncurses-dev (for '''make menuconfig''')&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
* doxygen (for generating/viewing documentation)&lt;br /&gt;
* iasl (for targets with ACPI support)&lt;br /&gt;
* gdb (for better debugging facilities on some targets)&lt;br /&gt;
* flex and bison (for regenerating parsers)&lt;br /&gt;
&lt;br /&gt;
== Building a payload ==&lt;br /&gt;
&lt;br /&gt;
First you need to download the source code for the [[Payloads|payload]] of your choice and build it.&lt;br /&gt;
&lt;br /&gt;
Instructions for building the various payloads are not covered on this page, please see [[Payloads]] and the wiki page for the respective payload for details.&lt;br /&gt;
&lt;br /&gt;
The result of this step should be an ELF file (e.g. filo.elf, or coreinfo.elf) which you can use with coreboot (see below).&lt;br /&gt;
&lt;br /&gt;
== Building coreboot ==&lt;br /&gt;
&lt;br /&gt;
First, get the latest coreboot subversion version:&lt;br /&gt;
&lt;br /&gt;
 $ '''svn co svn://coreboot.org/coreboot/trunk coreboot'''&lt;br /&gt;
 $ '''cd coreboot'''&lt;br /&gt;
&lt;br /&gt;
In the coreboot directory you can configure the build-time options of coreboot:&lt;br /&gt;
&lt;br /&gt;
 $ '''make menuconfig'''&lt;br /&gt;
&lt;br /&gt;
In that menu (which may look familiar, as other projects such as the Linux kernel or busybox use the same system), select at least the following options:&lt;br /&gt;
&lt;br /&gt;
* Enter the '''Mainboard''' menu.&lt;br /&gt;
** In '''Mainboard vendor''' select the vendor of your board.&lt;br /&gt;
** In '''Mainboard model''' select your exact mainboard name.&lt;br /&gt;
** In '''ROM chip size''' select the exact size of the flash ROM chip you want to flash the coreboot image on.&lt;br /&gt;
* Enter the '''Payload''' menu.&lt;br /&gt;
** Set the '''Add a payload''' option to '''An ELF executable payload'''.&lt;br /&gt;
** Then, specify the file name and path to your payload file (which you built before).&lt;br /&gt;
&lt;br /&gt;
That's the bare minimum. Feel free to adjust the other settings to your needs (see [[Coreboot Options]] for the full list), then exit menuconfig and build the coreboot image:&lt;br /&gt;
&lt;br /&gt;
 $ '''make'''&lt;br /&gt;
&lt;br /&gt;
The file  '''build/coreboot.rom''' is your final coreboot image you can flash onto a ROM chip. A ready-made binary A8NE.ROM tested and ready to 'flashrom' into your standard 512MB eeprom will be made available anytime soon now. Just download the binary, flash it &amp;amp; enjoy!&lt;br /&gt;
&lt;br /&gt;
== Flashing coreboot ==&lt;br /&gt;
&lt;br /&gt;
You can flash the coreboot image on a flash ROM chip using either an external EEPROM-programmer or a mainboard using the [http://www.flashrom.org flashrom] user-space utility.&lt;br /&gt;
&lt;br /&gt;
== Manipulating coreboot images with cbfstool ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2010-12-02T08:11:05Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Which board do you have? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Which board do you have? ==&lt;br /&gt;
&lt;br /&gt;
The '''GIGABYTE GA-M57SLI-S4''' seems to exist in 4 versions as of 2007/05. &lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mainboard photo on the backside of the GA-M57SLI-S4 box shows a ROM socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with PLCC32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SOIC (SPI). All 4 have unpopulated secondary pads. For the PLCC32 versions, the procedure outlined below can be used to add a ROM socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the GA-M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the GA-M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
recent legacy BIOS variants are (for fallback purposes):&lt;br /&gt;
&lt;br /&gt;
* F15E for  GA-M57SLI- S4  (rev. 1.0)    non AM3,   plcc (fifth variant: socketed plcc, maybe on early sample board only)&lt;br /&gt;
* F15E for  GA-M57SLI- S4  (rev. 1.1)    non AM3,   plcc (not flashable with legacy tool here (no 'chipset support')&lt;br /&gt;
* FHL  for  GA-M57SLI- S4  (rev. 2.0)    AM3 ready, soic&lt;br /&gt;
* FJD  for  GA-M57SLI-DS4  (rev. 2.0)    AM3 ready, soic&lt;br /&gt;
&lt;br /&gt;
F15E is binary identical for hw rev. 1.0 and 1.1. So there are 3 variants of legacy BIOSes, if you count -DS4 as the &amp;quot;fourth&amp;quot; M57 board and not as a separate board form the -S4.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = OK&lt;br /&gt;
|CPU_virt_status = OK&lt;br /&gt;
|CPU_virt_comments = tested with the kvm package of ubuntu 7.04&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = N/A&lt;br /&gt;
|RAM_DDR2_status = OK&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = OK&lt;br /&gt;
|RAM_dualchannel_comments = According to memtest86+ it works.&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested with an CF-IDE adapter without DMA support. Booting with coreboot is no problem. Booting with propritary BIOS didn't work.&lt;br /&gt;
|CDROM_DVD_status = OK&lt;br /&gt;
|SATA_status = OK&lt;br /&gt;
|SATA_comments = A FILO patch is needed (see below) as coreboot is too fast and the disks have not spun up yet when coreboot is done.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: mounting USB storage devices and accessing files on them. USB MIDI-keyboard works, too (keyboard == the music instrument, in this case).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = OK&lt;br /&gt;
|Onboard_audio_comments = Use '''modprobe snd-hda-intel''' (Alsa).&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = OK&lt;br /&gt;
|Onboard_firewire_comments = Confirmed working as of r3023 - a firewire disk is detected and works fine.&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
|Onboard_SCSI_status = N/A&lt;br /&gt;
&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|Mini_PCI_cards_status = N/A&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIX_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = OK&lt;br /&gt;
|PCIE_x1_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = N/A&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = OK&lt;br /&gt;
|PCIE_x16_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|Floppy_comments = Should work, but '''***needs testing***'''.&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM1_comments = Serial console for coreboot and Linux is fully operational.&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Works with a parallel port printer. (Needs coreboot v2 &amp;gt;= r4396.)&lt;br /&gt;
|PS2_keyboard_status = OK&lt;br /&gt;
|PS2_keyboard_comments = Works on Seabios without problems.&lt;br /&gt;
|PS2_mouse_status = OK&lt;br /&gt;
|Game_port_status = N/A&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|Speaker_comments = Works with '''beep''' (use '''modprobe pcspkr''').&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Sensors and fans work, see [http://coreboot.org/pipermail/coreboot/2007-April/020307.html instructions]. Some sensor readouts are off, and the pwm polarity seems to be inverted, but fan speed can be set.&lt;br /&gt;
|Watchdog_status = OK&lt;br /&gt;
|Watchdog_comments = modprobe it87_wdt&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|SMBus_status = OK&lt;br /&gt;
|CPUfreq_status = OK&lt;br /&gt;
|CPUfreq_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = OK&lt;br /&gt;
|ACPI_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = OK&lt;br /&gt;
|Poweroff_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = HD-LED works. Power-LED untested.&lt;br /&gt;
|HPET_status = OK&lt;br /&gt;
|HPET_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = Untested&lt;br /&gt;
|WakeOnKeyboard_status =Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Use revision 3088 or higher. [[Flashrom]] now works on both the PLCC and SOIC/SPI versions of the board.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Developer Manual/Tools#Top_Hat_Flash|Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the GA-M57SLI-S4, but might work with other chips (FWH). This means a hardware hack is necessary to prevent accidental bricking of the board.&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' boot parameter with most old kernels (legacy BIOS v. F12 is better).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: red&amp;quot;&amp;gt;If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PLCC32 hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working coreboot chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers: [http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS].&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
=== SOIC hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have an SOIC revision, you can add a second SOIC chip in the unpopulated position, and use a switch to toggle between both chips. &lt;br /&gt;
&lt;br /&gt;
The most recent instructions by Peter Stuge can be found here [http://stuge.se/m57sli/]. This is the recommended modification. Peter's company also sells pre-modified boards if you don't want to do the soldering, contact peter at stuge dot se for more information. Also, you may watch Peter's video lecture on coreboot available at youtube asf. for recent info.&lt;br /&gt;
&lt;br /&gt;
Older instructions can be found here [http://coreboot.org/pipermail/coreboot/2007-September/024474.html here], and here are [http://stuge.se/lb/m57sli/ some photos]. These instructions have been [http://www.coreboot.org/pipermail/coreboot/2007-October/025906.html confirmed to work].&lt;br /&gt;
&lt;br /&gt;
It's also possible to put a SOIC socket on the second pad, as [http://www.coreboot.org/pipermail/coreboot/2008-January/028949.html documented by Harald Gutmann], with pictures [http://img141.imageshack.us/img141/8866/dscf1791ob2.jpg here] and [http://img104.imageshack.us/img104/2579/dscf1792nn2.jpg here].&lt;br /&gt;
&lt;br /&gt;
Here's are a few pictures of a completed modification using the older instructions:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:M57sli-spi-mod-dscn2921-1024x768.jpg|thumb|SOIC/SPI mod on m57sli]]&lt;br /&gt;
| [[Image:Spi-socket-dscn2913-1024x768.jpg|thumb|SOIC/SPI socket with chip, pre installation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Flashrom ===&lt;br /&gt;
&lt;br /&gt;
==== PLCC32 chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works fine both under the proprietary BIOS and coreboot. Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
==== SPI chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works well on the SOIC version of the board and can detect various SPI chips, including the factory soldered MX25L4005.&lt;br /&gt;
&lt;br /&gt;
With the SPI versions of the motherboard one has to explicitly give the board name when calling flashrom because it is unable to determine the board type yet.&lt;br /&gt;
&lt;br /&gt;
Reading and writing to the MX25L4005 SPI chip work flawlessly under the proprietary BIOS as well as coreboot. Remember to erase the chip before you re-write it, as described in [[#Burning coreboot|Burning coreboot]].&lt;br /&gt;
&lt;br /&gt;
== Payload ==&lt;br /&gt;
&lt;br /&gt;
Coreboot requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
Another possible payload is 'linux-as-a-bootloader' (LAB). You will need a 1MB ROM chip (the GA-M57SLI-S4 comes with a 512KB ROM chip) for this payload. It consists of a (stripped down) kernel + busybox, which can then be used to kexec a kernel from disk. If your disks are playing up, you will still have a busybox environment on boot, which could be useful for debugging.&lt;br /&gt;
&lt;br /&gt;
== Buildrom vs. manual build ==&lt;br /&gt;
&lt;br /&gt;
You can build a coreboot image with a kconfig-style configuration tool ([[buildrom]]) if you want to use FILO or LAB. This is by far the easiest way to build a ROM image. Continue to the [[#Buildrom|Buildrom section]].&lt;br /&gt;
&lt;br /&gt;
If you want another payload or would like to get closer to the metal, you can use the manual build method outlined below under [[#Manual build|Manual build]].&lt;br /&gt;
&lt;br /&gt;
== Buildrom ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.&lt;br /&gt;
&lt;br /&gt;
Check out buildrom:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://coreboot.org/buildrom&lt;br /&gt;
&lt;br /&gt;
Now configure buildrom:&lt;br /&gt;
&lt;br /&gt;
  cd buildrom/buildrom-devel&lt;br /&gt;
  make menuconfig&lt;br /&gt;
&lt;br /&gt;
Configure to your liking. If you use the LAB payload, make sure to exclude the kexec binary and boot menu from the initramfs, otherwise your image will be too big. Please note that currently only the FILO and LAB payloads have been tested. The other payloads likely require some more work before they will be useable. Patches are welcome, of course.&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all goes well, you should now have a ROM image file &lt;br /&gt;
&lt;br /&gt;
  deploy/gigabyte-m57sli.rom&lt;br /&gt;
&lt;br /&gt;
If you are building a FILO payload, it will be exactly 512KB in size. If you are building an LAB payload, the image will be 1MB.&lt;br /&gt;
&lt;br /&gt;
=== FILO payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the LAB payload.&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
=== LAB payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the FILO payload.&lt;br /&gt;
&lt;br /&gt;
The LAB payload expects a file /lab.conf on /dev/sda1 with contents like this:&lt;br /&gt;
&lt;br /&gt;
  CMDLINE=&amp;quot;root=/dev/sda1 ro console=tty0 console=ttyS0,115200&amp;quot;&lt;br /&gt;
  KERNEL=&amp;quot;/vmlinuz-2.6.22.1&amp;quot;&lt;br /&gt;
  INITRD=&amp;quot;&amp;quot;&lt;br /&gt;
  VT=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is the kernel that you will be running after boot. It will be kexec'ed by the kernel that is burned into your ROM chip.&lt;br /&gt;
&lt;br /&gt;
You will also need a statically linked copy of kexec, which the LAB payload expects to reside at &lt;br /&gt;
&lt;br /&gt;
  /kexec on /dev/sda1&lt;br /&gt;
&lt;br /&gt;
If you are on Ubuntu, you can easily recompile your kexec package to be statically linked by following these instructions:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/src&lt;br /&gt;
  apt-get source kexec-tools&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now edit kexec-tools-1.101-kdump10/kexec-tools-1.101/kexec/Makefile, change line 53 to&lt;br /&gt;
  &lt;br /&gt;
  $(CC) $(LDFLAGS) $(KCFLAGS) -o $@ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)&lt;br /&gt;
&lt;br /&gt;
(you're adding the LDFLAGS variable)&lt;br /&gt;
&lt;br /&gt;
  cd kexec-tools-1.101-kdump10 &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -b&lt;br /&gt;
  cd ..&lt;br /&gt;
  dpkg -i kexec-tools_1.101-kdump10-2ubuntu2_i386.deb&lt;br /&gt;
&lt;br /&gt;
Adjust the package name as necessary for your distribution. &lt;br /&gt;
&lt;br /&gt;
If you want to build the latest kexec from Debian Sid, you're going to need to be a little more careful. Set -static:&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then build the package&lt;br /&gt;
&lt;br /&gt;
  apt-get source kexec-tools -b&lt;br /&gt;
&lt;br /&gt;
This will fail more or less like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $ gcc -static -lz   -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec- elf-boot.o kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a&lt;br /&gt;
kexec/kexec.o: In function `slurp_decompress_file':&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:503: undefined reference to `gzopen'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:519: undefined reference to `gzread'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:533: undefined reference to `gzclose'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:524: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:535: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:505: undefined reference to `gzerror'&lt;br /&gt;
collect2: ld returned 1 exit status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is that the -lz really needs to go at the end of the gcc command line - otherwise it gets filtered out by gcc. When it encounters -lz, it has not yet seen any need for the libz library so it automatically removes it. Manually running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc -static -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o &lt;br /&gt;
  kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec-elf-boot.o &lt;br /&gt;
  kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o &lt;br /&gt;
  kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o &lt;br /&gt;
  kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o &lt;br /&gt;
  kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a -lz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixes the problem and gives you a static copy of kexec in build/sbin/kexec.&lt;br /&gt;
&lt;br /&gt;
You can tell if your copy of kexec is statically linked by running 'file' on it:&lt;br /&gt;
&lt;br /&gt;
  file /sbin/kexec &lt;br /&gt;
&lt;br /&gt;
If all is well, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
  /sbin/kexec: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, for GNU/Linux 2.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
The binary will also be considerably larger than its dynamically linked cousin.&lt;br /&gt;
&lt;br /&gt;
Note that you '''must''' build a 32-bit version of kexec, because buildrom puts a 32 bit kernel into the ROM image. A 32-bit kexec can kexec into a 64 bit kernel, so if your system is 64 bit this will work just fine.&lt;br /&gt;
&lt;br /&gt;
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.&lt;br /&gt;
&lt;br /&gt;
== Manual build ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you used buildrom; in that case jump to [[#Burning coreboot|Burning coreboot]] below.&lt;br /&gt;
&lt;br /&gt;
=== Building the payload ===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build coreboot as explained below, because it gets included in the coreboot ROM image.&lt;br /&gt;
&lt;br /&gt;
=== Your menu.lst entry ===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
Also, the GA-M57SLI-S4 will not boot unless you add '''acpi_use_timer_override''' as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: '''apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1'''.&lt;br /&gt;
&lt;br /&gt;
=== Current status of the coreboot v2 tree ===&lt;br /&gt;
&lt;br /&gt;
Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Building coreboot ===&lt;br /&gt;
&lt;br /&gt;
See the [[Build HOWTO]] for information on how to build coreboot for this board.&lt;br /&gt;
&lt;br /&gt;
== Burning coreboot ==&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the coreboot v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
- with PLCC32 chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
- with SPI chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -E                   # erase flash first&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -w -v linuxbios.rom  # burn &amp;amp; verify coreboot&lt;br /&gt;
&lt;br /&gt;
(that's assuming the image is called linuxbios.rom; if you used buildrom it would be called gigabyte-m57sli.rom and live in the 'deploy' subdirectory).&lt;br /&gt;
&lt;br /&gt;
'''IF YOU ARE USING REVISION 3087 or older: note'''': You should upgrade to 3088 or higher. In prior releases, on the revision v2.0 of the motherboard there was an issue with the decoding of the I/O addresses into the LPC bridge of the MCP55 southbridge. It occurred only after booting with coreboot (the factory BIOS didn't have this issue). It prevented flashrom to access correctly the SPI interface of the ITE IT8716F chip, thus no reflashing was possible after a first burn of coreboot (without modchip). This issue was fixed and a full coreboot patch is on the tracks. There is also a workaround for the actual release of coreboot: before using flashrom after booting with coreboot, execute the commands:&lt;br /&gt;
&lt;br /&gt;
  setpci -s 00:01.0 a0.l=70000001&lt;br /&gt;
  setpci -s 00:01.0 b0.l=085f0800&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* As of &amp;gt;=r4362 all PCI and PCI-E slots should be initialized correct and work fine. For hardware rev.1 it would be nice to get further test results.&lt;br /&gt;
* There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
:to your &amp;quot;Device&amp;quot; section. '''Update (14.9.2009)''': Is this a v1 specific problem? Is this problem maybe fixed with the IRQ-Fix patch?&lt;br /&gt;
&lt;br /&gt;
If you can help out with these issues, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2010-12-02T08:02:40Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Which board do you have? */  4 versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Which board do you have? ==&lt;br /&gt;
&lt;br /&gt;
The '''GIGABYTE GA-M57SLI-S4''' seems to exist in 4 versions as of 2007/05. &lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mainboard photo on the backside of the GA-M57SLI-S4 box shows a ROM socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with PLCC32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SOIC (SPI). All 4 have unpopulated secondary pads. For the PLCC32 versions, the procedure outlined below can be used to add a ROM socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the GA-M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the GA-M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
recent legacy BIOS variants are (for fallback purposes):&lt;br /&gt;
&lt;br /&gt;
* F15E for  GA-M57SLI- S4  (rev. 1.0)    non AM3,   plcc (fifth variant: socketed plcc, maybe on early sample board only)&lt;br /&gt;
* F15E for  GA-M57SLI- S4  (rev. 1.1)    non AM3,   plcc (not flashable with legacy tool here (no 'chipset support')&lt;br /&gt;
* FHL  for  GA-M57SLI- S4  (rev. 2.0)    AM3 ready, soic&lt;br /&gt;
* FJD  for  GA-M57SLI-DS4  (rev. 2.0)    AM3 ready, soic&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = OK&lt;br /&gt;
|CPU_virt_status = OK&lt;br /&gt;
|CPU_virt_comments = tested with the kvm package of ubuntu 7.04&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = N/A&lt;br /&gt;
|RAM_DDR2_status = OK&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = OK&lt;br /&gt;
|RAM_dualchannel_comments = According to memtest86+ it works.&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested with an CF-IDE adapter without DMA support. Booting with coreboot is no problem. Booting with propritary BIOS didn't work.&lt;br /&gt;
|CDROM_DVD_status = OK&lt;br /&gt;
|SATA_status = OK&lt;br /&gt;
|SATA_comments = A FILO patch is needed (see below) as coreboot is too fast and the disks have not spun up yet when coreboot is done.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: mounting USB storage devices and accessing files on them. USB MIDI-keyboard works, too (keyboard == the music instrument, in this case).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = OK&lt;br /&gt;
|Onboard_audio_comments = Use '''modprobe snd-hda-intel''' (Alsa).&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = OK&lt;br /&gt;
|Onboard_firewire_comments = Confirmed working as of r3023 - a firewire disk is detected and works fine.&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
|Onboard_SCSI_status = N/A&lt;br /&gt;
&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|Mini_PCI_cards_status = N/A&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIX_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = OK&lt;br /&gt;
|PCIE_x1_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = N/A&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = OK&lt;br /&gt;
|PCIE_x16_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|Floppy_comments = Should work, but '''***needs testing***'''.&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM1_comments = Serial console for coreboot and Linux is fully operational.&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Works with a parallel port printer. (Needs coreboot v2 &amp;gt;= r4396.)&lt;br /&gt;
|PS2_keyboard_status = OK&lt;br /&gt;
|PS2_keyboard_comments = Works on Seabios without problems.&lt;br /&gt;
|PS2_mouse_status = OK&lt;br /&gt;
|Game_port_status = N/A&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|Speaker_comments = Works with '''beep''' (use '''modprobe pcspkr''').&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Sensors and fans work, see [http://coreboot.org/pipermail/coreboot/2007-April/020307.html instructions]. Some sensor readouts are off, and the pwm polarity seems to be inverted, but fan speed can be set.&lt;br /&gt;
|Watchdog_status = OK&lt;br /&gt;
|Watchdog_comments = modprobe it87_wdt&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|SMBus_status = OK&lt;br /&gt;
|CPUfreq_status = OK&lt;br /&gt;
|CPUfreq_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = OK&lt;br /&gt;
|ACPI_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = OK&lt;br /&gt;
|Poweroff_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = HD-LED works. Power-LED untested.&lt;br /&gt;
|HPET_status = OK&lt;br /&gt;
|HPET_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = Untested&lt;br /&gt;
|WakeOnKeyboard_status =Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Use revision 3088 or higher. [[Flashrom]] now works on both the PLCC and SOIC/SPI versions of the board.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Developer Manual/Tools#Top_Hat_Flash|Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the GA-M57SLI-S4, but might work with other chips (FWH). This means a hardware hack is necessary to prevent accidental bricking of the board.&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' boot parameter with most old kernels (legacy BIOS v. F12 is better).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: red&amp;quot;&amp;gt;If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PLCC32 hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working coreboot chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers: [http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS].&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
=== SOIC hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have an SOIC revision, you can add a second SOIC chip in the unpopulated position, and use a switch to toggle between both chips. &lt;br /&gt;
&lt;br /&gt;
The most recent instructions by Peter Stuge can be found here [http://stuge.se/m57sli/]. This is the recommended modification. Peter's company also sells pre-modified boards if you don't want to do the soldering, contact peter at stuge dot se for more information. Also, you may watch Peter's video lecture on coreboot available at youtube asf. for recent info.&lt;br /&gt;
&lt;br /&gt;
Older instructions can be found here [http://coreboot.org/pipermail/coreboot/2007-September/024474.html here], and here are [http://stuge.se/lb/m57sli/ some photos]. These instructions have been [http://www.coreboot.org/pipermail/coreboot/2007-October/025906.html confirmed to work].&lt;br /&gt;
&lt;br /&gt;
It's also possible to put a SOIC socket on the second pad, as [http://www.coreboot.org/pipermail/coreboot/2008-January/028949.html documented by Harald Gutmann], with pictures [http://img141.imageshack.us/img141/8866/dscf1791ob2.jpg here] and [http://img104.imageshack.us/img104/2579/dscf1792nn2.jpg here].&lt;br /&gt;
&lt;br /&gt;
Here's are a few pictures of a completed modification using the older instructions:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:M57sli-spi-mod-dscn2921-1024x768.jpg|thumb|SOIC/SPI mod on m57sli]]&lt;br /&gt;
| [[Image:Spi-socket-dscn2913-1024x768.jpg|thumb|SOIC/SPI socket with chip, pre installation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Flashrom ===&lt;br /&gt;
&lt;br /&gt;
==== PLCC32 chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works fine both under the proprietary BIOS and coreboot. Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
==== SPI chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works well on the SOIC version of the board and can detect various SPI chips, including the factory soldered MX25L4005.&lt;br /&gt;
&lt;br /&gt;
With the SPI versions of the motherboard one has to explicitly give the board name when calling flashrom because it is unable to determine the board type yet.&lt;br /&gt;
&lt;br /&gt;
Reading and writing to the MX25L4005 SPI chip work flawlessly under the proprietary BIOS as well as coreboot. Remember to erase the chip before you re-write it, as described in [[#Burning coreboot|Burning coreboot]].&lt;br /&gt;
&lt;br /&gt;
== Payload ==&lt;br /&gt;
&lt;br /&gt;
Coreboot requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
Another possible payload is 'linux-as-a-bootloader' (LAB). You will need a 1MB ROM chip (the GA-M57SLI-S4 comes with a 512KB ROM chip) for this payload. It consists of a (stripped down) kernel + busybox, which can then be used to kexec a kernel from disk. If your disks are playing up, you will still have a busybox environment on boot, which could be useful for debugging.&lt;br /&gt;
&lt;br /&gt;
== Buildrom vs. manual build ==&lt;br /&gt;
&lt;br /&gt;
You can build a coreboot image with a kconfig-style configuration tool ([[buildrom]]) if you want to use FILO or LAB. This is by far the easiest way to build a ROM image. Continue to the [[#Buildrom|Buildrom section]].&lt;br /&gt;
&lt;br /&gt;
If you want another payload or would like to get closer to the metal, you can use the manual build method outlined below under [[#Manual build|Manual build]].&lt;br /&gt;
&lt;br /&gt;
== Buildrom ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.&lt;br /&gt;
&lt;br /&gt;
Check out buildrom:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://coreboot.org/buildrom&lt;br /&gt;
&lt;br /&gt;
Now configure buildrom:&lt;br /&gt;
&lt;br /&gt;
  cd buildrom/buildrom-devel&lt;br /&gt;
  make menuconfig&lt;br /&gt;
&lt;br /&gt;
Configure to your liking. If you use the LAB payload, make sure to exclude the kexec binary and boot menu from the initramfs, otherwise your image will be too big. Please note that currently only the FILO and LAB payloads have been tested. The other payloads likely require some more work before they will be useable. Patches are welcome, of course.&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all goes well, you should now have a ROM image file &lt;br /&gt;
&lt;br /&gt;
  deploy/gigabyte-m57sli.rom&lt;br /&gt;
&lt;br /&gt;
If you are building a FILO payload, it will be exactly 512KB in size. If you are building an LAB payload, the image will be 1MB.&lt;br /&gt;
&lt;br /&gt;
=== FILO payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the LAB payload.&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
=== LAB payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the FILO payload.&lt;br /&gt;
&lt;br /&gt;
The LAB payload expects a file /lab.conf on /dev/sda1 with contents like this:&lt;br /&gt;
&lt;br /&gt;
  CMDLINE=&amp;quot;root=/dev/sda1 ro console=tty0 console=ttyS0,115200&amp;quot;&lt;br /&gt;
  KERNEL=&amp;quot;/vmlinuz-2.6.22.1&amp;quot;&lt;br /&gt;
  INITRD=&amp;quot;&amp;quot;&lt;br /&gt;
  VT=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is the kernel that you will be running after boot. It will be kexec'ed by the kernel that is burned into your ROM chip.&lt;br /&gt;
&lt;br /&gt;
You will also need a statically linked copy of kexec, which the LAB payload expects to reside at &lt;br /&gt;
&lt;br /&gt;
  /kexec on /dev/sda1&lt;br /&gt;
&lt;br /&gt;
If you are on Ubuntu, you can easily recompile your kexec package to be statically linked by following these instructions:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/src&lt;br /&gt;
  apt-get source kexec-tools&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now edit kexec-tools-1.101-kdump10/kexec-tools-1.101/kexec/Makefile, change line 53 to&lt;br /&gt;
  &lt;br /&gt;
  $(CC) $(LDFLAGS) $(KCFLAGS) -o $@ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)&lt;br /&gt;
&lt;br /&gt;
(you're adding the LDFLAGS variable)&lt;br /&gt;
&lt;br /&gt;
  cd kexec-tools-1.101-kdump10 &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -b&lt;br /&gt;
  cd ..&lt;br /&gt;
  dpkg -i kexec-tools_1.101-kdump10-2ubuntu2_i386.deb&lt;br /&gt;
&lt;br /&gt;
Adjust the package name as necessary for your distribution. &lt;br /&gt;
&lt;br /&gt;
If you want to build the latest kexec from Debian Sid, you're going to need to be a little more careful. Set -static:&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then build the package&lt;br /&gt;
&lt;br /&gt;
  apt-get source kexec-tools -b&lt;br /&gt;
&lt;br /&gt;
This will fail more or less like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $ gcc -static -lz   -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec- elf-boot.o kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a&lt;br /&gt;
kexec/kexec.o: In function `slurp_decompress_file':&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:503: undefined reference to `gzopen'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:519: undefined reference to `gzread'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:533: undefined reference to `gzclose'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:524: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:535: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:505: undefined reference to `gzerror'&lt;br /&gt;
collect2: ld returned 1 exit status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is that the -lz really needs to go at the end of the gcc command line - otherwise it gets filtered out by gcc. When it encounters -lz, it has not yet seen any need for the libz library so it automatically removes it. Manually running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc -static -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o &lt;br /&gt;
  kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec-elf-boot.o &lt;br /&gt;
  kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o &lt;br /&gt;
  kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o &lt;br /&gt;
  kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o &lt;br /&gt;
  kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a -lz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixes the problem and gives you a static copy of kexec in build/sbin/kexec.&lt;br /&gt;
&lt;br /&gt;
You can tell if your copy of kexec is statically linked by running 'file' on it:&lt;br /&gt;
&lt;br /&gt;
  file /sbin/kexec &lt;br /&gt;
&lt;br /&gt;
If all is well, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
  /sbin/kexec: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, for GNU/Linux 2.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
The binary will also be considerably larger than its dynamically linked cousin.&lt;br /&gt;
&lt;br /&gt;
Note that you '''must''' build a 32-bit version of kexec, because buildrom puts a 32 bit kernel into the ROM image. A 32-bit kexec can kexec into a 64 bit kernel, so if your system is 64 bit this will work just fine.&lt;br /&gt;
&lt;br /&gt;
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.&lt;br /&gt;
&lt;br /&gt;
== Manual build ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you used buildrom; in that case jump to [[#Burning coreboot|Burning coreboot]] below.&lt;br /&gt;
&lt;br /&gt;
=== Building the payload ===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build coreboot as explained below, because it gets included in the coreboot ROM image.&lt;br /&gt;
&lt;br /&gt;
=== Your menu.lst entry ===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
Also, the GA-M57SLI-S4 will not boot unless you add '''acpi_use_timer_override''' as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: '''apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1'''.&lt;br /&gt;
&lt;br /&gt;
=== Current status of the coreboot v2 tree ===&lt;br /&gt;
&lt;br /&gt;
Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Building coreboot ===&lt;br /&gt;
&lt;br /&gt;
See the [[Build HOWTO]] for information on how to build coreboot for this board.&lt;br /&gt;
&lt;br /&gt;
== Burning coreboot ==&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the coreboot v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
- with PLCC32 chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
- with SPI chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -E                   # erase flash first&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -w -v linuxbios.rom  # burn &amp;amp; verify coreboot&lt;br /&gt;
&lt;br /&gt;
(that's assuming the image is called linuxbios.rom; if you used buildrom it would be called gigabyte-m57sli.rom and live in the 'deploy' subdirectory).&lt;br /&gt;
&lt;br /&gt;
'''IF YOU ARE USING REVISION 3087 or older: note'''': You should upgrade to 3088 or higher. In prior releases, on the revision v2.0 of the motherboard there was an issue with the decoding of the I/O addresses into the LPC bridge of the MCP55 southbridge. It occurred only after booting with coreboot (the factory BIOS didn't have this issue). It prevented flashrom to access correctly the SPI interface of the ITE IT8716F chip, thus no reflashing was possible after a first burn of coreboot (without modchip). This issue was fixed and a full coreboot patch is on the tracks. There is also a workaround for the actual release of coreboot: before using flashrom after booting with coreboot, execute the commands:&lt;br /&gt;
&lt;br /&gt;
  setpci -s 00:01.0 a0.l=70000001&lt;br /&gt;
  setpci -s 00:01.0 b0.l=085f0800&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* As of &amp;gt;=r4362 all PCI and PCI-E slots should be initialized correct and work fine. For hardware rev.1 it would be nice to get further test results.&lt;br /&gt;
* There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
:to your &amp;quot;Device&amp;quot; section. '''Update (14.9.2009)''': Is this a v1 specific problem? Is this problem maybe fixed with the IRQ-Fix patch?&lt;br /&gt;
&lt;br /&gt;
If you can help out with these issues, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2010-12-02T07:58:18Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Which board do you have? */  4 versions BIOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Which board do you have? ==&lt;br /&gt;
&lt;br /&gt;
The '''GIGABYTE GA-M57SLI-S4''' seems to exist in 4 versions as of 2007/05. &lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mainboard photo on the backside of the GA-M57SLI-S4 box shows a ROM socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with PLCC32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SOIC (SPI). All 4 have unpopulated secondary pads. For the PLCC32 versions, the procedure outlined below can be used to add a ROM socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the GA-M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the GA-M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
recent legacy BIOS variants are (for fallback purposes):&lt;br /&gt;
&lt;br /&gt;
F15E  GA-M57SLI- S4  (rev. 1.0)    non AM3   plcc (fifth variant: socketed plcc, maybe on early sample board only)&lt;br /&gt;
F15E  GA-M57SLI- S4  (rev. 1.1)    non AM3   plcc (not flashable with legacy tool here (no 'chipset support')&lt;br /&gt;
FHL   GA-M57SLI- S4  (rev. 2.0)    AM3 ready soic&lt;br /&gt;
FJD   GA-M57SLI-DS4  (rev. 2.0)    AM3 ready soic&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = OK&lt;br /&gt;
|CPU_virt_status = OK&lt;br /&gt;
|CPU_virt_comments = tested with the kvm package of ubuntu 7.04&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = N/A&lt;br /&gt;
|RAM_DDR2_status = OK&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = OK&lt;br /&gt;
|RAM_dualchannel_comments = According to memtest86+ it works.&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested with an CF-IDE adapter without DMA support. Booting with coreboot is no problem. Booting with propritary BIOS didn't work.&lt;br /&gt;
|CDROM_DVD_status = OK&lt;br /&gt;
|SATA_status = OK&lt;br /&gt;
|SATA_comments = A FILO patch is needed (see below) as coreboot is too fast and the disks have not spun up yet when coreboot is done.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: mounting USB storage devices and accessing files on them. USB MIDI-keyboard works, too (keyboard == the music instrument, in this case).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = OK&lt;br /&gt;
|Onboard_audio_comments = Use '''modprobe snd-hda-intel''' (Alsa).&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = OK&lt;br /&gt;
|Onboard_firewire_comments = Confirmed working as of r3023 - a firewire disk is detected and works fine.&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
|Onboard_SCSI_status = N/A&lt;br /&gt;
&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|Mini_PCI_cards_status = N/A&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIX_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = OK&lt;br /&gt;
|PCIE_x1_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = N/A&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = OK&lt;br /&gt;
|PCIE_x16_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|Floppy_comments = Should work, but '''***needs testing***'''.&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM1_comments = Serial console for coreboot and Linux is fully operational.&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Works with a parallel port printer. (Needs coreboot v2 &amp;gt;= r4396.)&lt;br /&gt;
|PS2_keyboard_status = OK&lt;br /&gt;
|PS2_keyboard_comments = Works on Seabios without problems.&lt;br /&gt;
|PS2_mouse_status = OK&lt;br /&gt;
|Game_port_status = N/A&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|Speaker_comments = Works with '''beep''' (use '''modprobe pcspkr''').&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Sensors and fans work, see [http://coreboot.org/pipermail/coreboot/2007-April/020307.html instructions]. Some sensor readouts are off, and the pwm polarity seems to be inverted, but fan speed can be set.&lt;br /&gt;
|Watchdog_status = OK&lt;br /&gt;
|Watchdog_comments = modprobe it87_wdt&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|SMBus_status = OK&lt;br /&gt;
|CPUfreq_status = OK&lt;br /&gt;
|CPUfreq_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = OK&lt;br /&gt;
|ACPI_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = OK&lt;br /&gt;
|Poweroff_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = HD-LED works. Power-LED untested.&lt;br /&gt;
|HPET_status = OK&lt;br /&gt;
|HPET_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = Untested&lt;br /&gt;
|WakeOnKeyboard_status =Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Use revision 3088 or higher. [[Flashrom]] now works on both the PLCC and SOIC/SPI versions of the board.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Developer Manual/Tools#Top_Hat_Flash|Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the GA-M57SLI-S4, but might work with other chips (FWH). This means a hardware hack is necessary to prevent accidental bricking of the board.&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' boot parameter with most old kernels (legacy BIOS v. F12 is better).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: red&amp;quot;&amp;gt;If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PLCC32 hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working coreboot chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers: [http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS].&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
=== SOIC hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have an SOIC revision, you can add a second SOIC chip in the unpopulated position, and use a switch to toggle between both chips. &lt;br /&gt;
&lt;br /&gt;
The most recent instructions by Peter Stuge can be found here [http://stuge.se/m57sli/]. This is the recommended modification. Peter's company also sells pre-modified boards if you don't want to do the soldering, contact peter at stuge dot se for more information. Also, you may watch Peter's video lecture on coreboot available at youtube asf. for recent info.&lt;br /&gt;
&lt;br /&gt;
Older instructions can be found here [http://coreboot.org/pipermail/coreboot/2007-September/024474.html here], and here are [http://stuge.se/lb/m57sli/ some photos]. These instructions have been [http://www.coreboot.org/pipermail/coreboot/2007-October/025906.html confirmed to work].&lt;br /&gt;
&lt;br /&gt;
It's also possible to put a SOIC socket on the second pad, as [http://www.coreboot.org/pipermail/coreboot/2008-January/028949.html documented by Harald Gutmann], with pictures [http://img141.imageshack.us/img141/8866/dscf1791ob2.jpg here] and [http://img104.imageshack.us/img104/2579/dscf1792nn2.jpg here].&lt;br /&gt;
&lt;br /&gt;
Here's are a few pictures of a completed modification using the older instructions:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:M57sli-spi-mod-dscn2921-1024x768.jpg|thumb|SOIC/SPI mod on m57sli]]&lt;br /&gt;
| [[Image:Spi-socket-dscn2913-1024x768.jpg|thumb|SOIC/SPI socket with chip, pre installation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Flashrom ===&lt;br /&gt;
&lt;br /&gt;
==== PLCC32 chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works fine both under the proprietary BIOS and coreboot. Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
==== SPI chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works well on the SOIC version of the board and can detect various SPI chips, including the factory soldered MX25L4005.&lt;br /&gt;
&lt;br /&gt;
With the SPI versions of the motherboard one has to explicitly give the board name when calling flashrom because it is unable to determine the board type yet.&lt;br /&gt;
&lt;br /&gt;
Reading and writing to the MX25L4005 SPI chip work flawlessly under the proprietary BIOS as well as coreboot. Remember to erase the chip before you re-write it, as described in [[#Burning coreboot|Burning coreboot]].&lt;br /&gt;
&lt;br /&gt;
== Payload ==&lt;br /&gt;
&lt;br /&gt;
Coreboot requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
Another possible payload is 'linux-as-a-bootloader' (LAB). You will need a 1MB ROM chip (the GA-M57SLI-S4 comes with a 512KB ROM chip) for this payload. It consists of a (stripped down) kernel + busybox, which can then be used to kexec a kernel from disk. If your disks are playing up, you will still have a busybox environment on boot, which could be useful for debugging.&lt;br /&gt;
&lt;br /&gt;
== Buildrom vs. manual build ==&lt;br /&gt;
&lt;br /&gt;
You can build a coreboot image with a kconfig-style configuration tool ([[buildrom]]) if you want to use FILO or LAB. This is by far the easiest way to build a ROM image. Continue to the [[#Buildrom|Buildrom section]].&lt;br /&gt;
&lt;br /&gt;
If you want another payload or would like to get closer to the metal, you can use the manual build method outlined below under [[#Manual build|Manual build]].&lt;br /&gt;
&lt;br /&gt;
== Buildrom ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.&lt;br /&gt;
&lt;br /&gt;
Check out buildrom:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://coreboot.org/buildrom&lt;br /&gt;
&lt;br /&gt;
Now configure buildrom:&lt;br /&gt;
&lt;br /&gt;
  cd buildrom/buildrom-devel&lt;br /&gt;
  make menuconfig&lt;br /&gt;
&lt;br /&gt;
Configure to your liking. If you use the LAB payload, make sure to exclude the kexec binary and boot menu from the initramfs, otherwise your image will be too big. Please note that currently only the FILO and LAB payloads have been tested. The other payloads likely require some more work before they will be useable. Patches are welcome, of course.&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all goes well, you should now have a ROM image file &lt;br /&gt;
&lt;br /&gt;
  deploy/gigabyte-m57sli.rom&lt;br /&gt;
&lt;br /&gt;
If you are building a FILO payload, it will be exactly 512KB in size. If you are building an LAB payload, the image will be 1MB.&lt;br /&gt;
&lt;br /&gt;
=== FILO payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the LAB payload.&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
=== LAB payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the FILO payload.&lt;br /&gt;
&lt;br /&gt;
The LAB payload expects a file /lab.conf on /dev/sda1 with contents like this:&lt;br /&gt;
&lt;br /&gt;
  CMDLINE=&amp;quot;root=/dev/sda1 ro console=tty0 console=ttyS0,115200&amp;quot;&lt;br /&gt;
  KERNEL=&amp;quot;/vmlinuz-2.6.22.1&amp;quot;&lt;br /&gt;
  INITRD=&amp;quot;&amp;quot;&lt;br /&gt;
  VT=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is the kernel that you will be running after boot. It will be kexec'ed by the kernel that is burned into your ROM chip.&lt;br /&gt;
&lt;br /&gt;
You will also need a statically linked copy of kexec, which the LAB payload expects to reside at &lt;br /&gt;
&lt;br /&gt;
  /kexec on /dev/sda1&lt;br /&gt;
&lt;br /&gt;
If you are on Ubuntu, you can easily recompile your kexec package to be statically linked by following these instructions:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/src&lt;br /&gt;
  apt-get source kexec-tools&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now edit kexec-tools-1.101-kdump10/kexec-tools-1.101/kexec/Makefile, change line 53 to&lt;br /&gt;
  &lt;br /&gt;
  $(CC) $(LDFLAGS) $(KCFLAGS) -o $@ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)&lt;br /&gt;
&lt;br /&gt;
(you're adding the LDFLAGS variable)&lt;br /&gt;
&lt;br /&gt;
  cd kexec-tools-1.101-kdump10 &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -b&lt;br /&gt;
  cd ..&lt;br /&gt;
  dpkg -i kexec-tools_1.101-kdump10-2ubuntu2_i386.deb&lt;br /&gt;
&lt;br /&gt;
Adjust the package name as necessary for your distribution. &lt;br /&gt;
&lt;br /&gt;
If you want to build the latest kexec from Debian Sid, you're going to need to be a little more careful. Set -static:&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then build the package&lt;br /&gt;
&lt;br /&gt;
  apt-get source kexec-tools -b&lt;br /&gt;
&lt;br /&gt;
This will fail more or less like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $ gcc -static -lz   -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec- elf-boot.o kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a&lt;br /&gt;
kexec/kexec.o: In function `slurp_decompress_file':&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:503: undefined reference to `gzopen'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:519: undefined reference to `gzread'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:533: undefined reference to `gzclose'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:524: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:535: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:505: undefined reference to `gzerror'&lt;br /&gt;
collect2: ld returned 1 exit status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is that the -lz really needs to go at the end of the gcc command line - otherwise it gets filtered out by gcc. When it encounters -lz, it has not yet seen any need for the libz library so it automatically removes it. Manually running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc -static -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o &lt;br /&gt;
  kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec-elf-boot.o &lt;br /&gt;
  kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o &lt;br /&gt;
  kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o &lt;br /&gt;
  kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o &lt;br /&gt;
  kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a -lz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixes the problem and gives you a static copy of kexec in build/sbin/kexec.&lt;br /&gt;
&lt;br /&gt;
You can tell if your copy of kexec is statically linked by running 'file' on it:&lt;br /&gt;
&lt;br /&gt;
  file /sbin/kexec &lt;br /&gt;
&lt;br /&gt;
If all is well, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
  /sbin/kexec: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, for GNU/Linux 2.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
The binary will also be considerably larger than its dynamically linked cousin.&lt;br /&gt;
&lt;br /&gt;
Note that you '''must''' build a 32-bit version of kexec, because buildrom puts a 32 bit kernel into the ROM image. A 32-bit kexec can kexec into a 64 bit kernel, so if your system is 64 bit this will work just fine.&lt;br /&gt;
&lt;br /&gt;
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.&lt;br /&gt;
&lt;br /&gt;
== Manual build ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you used buildrom; in that case jump to [[#Burning coreboot|Burning coreboot]] below.&lt;br /&gt;
&lt;br /&gt;
=== Building the payload ===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build coreboot as explained below, because it gets included in the coreboot ROM image.&lt;br /&gt;
&lt;br /&gt;
=== Your menu.lst entry ===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
Also, the GA-M57SLI-S4 will not boot unless you add '''acpi_use_timer_override''' as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: '''apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1'''.&lt;br /&gt;
&lt;br /&gt;
=== Current status of the coreboot v2 tree ===&lt;br /&gt;
&lt;br /&gt;
Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Building coreboot ===&lt;br /&gt;
&lt;br /&gt;
See the [[Build HOWTO]] for information on how to build coreboot for this board.&lt;br /&gt;
&lt;br /&gt;
== Burning coreboot ==&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the coreboot v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
- with PLCC32 chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
- with SPI chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -E                   # erase flash first&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -w -v linuxbios.rom  # burn &amp;amp; verify coreboot&lt;br /&gt;
&lt;br /&gt;
(that's assuming the image is called linuxbios.rom; if you used buildrom it would be called gigabyte-m57sli.rom and live in the 'deploy' subdirectory).&lt;br /&gt;
&lt;br /&gt;
'''IF YOU ARE USING REVISION 3087 or older: note'''': You should upgrade to 3088 or higher. In prior releases, on the revision v2.0 of the motherboard there was an issue with the decoding of the I/O addresses into the LPC bridge of the MCP55 southbridge. It occurred only after booting with coreboot (the factory BIOS didn't have this issue). It prevented flashrom to access correctly the SPI interface of the ITE IT8716F chip, thus no reflashing was possible after a first burn of coreboot (without modchip). This issue was fixed and a full coreboot patch is on the tracks. There is also a workaround for the actual release of coreboot: before using flashrom after booting with coreboot, execute the commands:&lt;br /&gt;
&lt;br /&gt;
  setpci -s 00:01.0 a0.l=70000001&lt;br /&gt;
  setpci -s 00:01.0 b0.l=085f0800&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* As of &amp;gt;=r4362 all PCI and PCI-E slots should be initialized correct and work fine. For hardware rev.1 it would be nice to get further test results.&lt;br /&gt;
* There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
:to your &amp;quot;Device&amp;quot; section. '''Update (14.9.2009)''': Is this a v1 specific problem? Is this problem maybe fixed with the IRQ-Fix patch?&lt;br /&gt;
&lt;br /&gt;
If you can help out with these issues, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Developer_Manual/Tools</id>
		<title>Developer Manual/Tools</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Developer_Manual/Tools"/>
				<updated>2010-12-02T07:15:20Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* External EPROM/Flash programmer that can program the flash chip on your motherboard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before starting to work on coreboot support for a new mainboard and/or chipset you'll want a few development tools (both hardware and software). Not all of them are strictly required, a lot depends on your specific task and needs.&lt;br /&gt;
&lt;br /&gt;
=== Basic requirements ===&lt;br /&gt;
&lt;br /&gt;
* A mainboard you want to port coreboot to.&lt;br /&gt;
* Datasheets&lt;br /&gt;
* A Linux/UNIX machine for development purposes&lt;br /&gt;
** The coreboot build environment is not well-supported on Windows. It may be possible to do it under cygwin but nobody has tried.&lt;br /&gt;
		&lt;br /&gt;
It's also handy to have one/some/all of the following:&lt;br /&gt;
	&lt;br /&gt;
=== Artecgroup programmable LPC dongle ===&lt;br /&gt;
&lt;br /&gt;
The [[Artecgroup programmable LPC dongle]] (Now called FlexyICE) is a ROM emulator and debugging tool.&lt;br /&gt;
See [http://www.artecgroup.com/products/hardware-products/programmable-lpc-dongle.html] and [http://www.opencores.org/projects.cgi/web/usb_dongle_fpga/overview].&lt;br /&gt;
&lt;br /&gt;
=== PC Engines lpc1A ===&lt;br /&gt;
&lt;br /&gt;
[http://pcengines.ch/lpc1a.htm This board] is most useful if you are working on machines from the ALIX family, but could also be useful if you can expose an LPC header on another board.&lt;br /&gt;
&lt;br /&gt;
=== External EPROM/Flash programmer that can program the flash chip on your motherboard ===&lt;br /&gt;
&lt;br /&gt;
External programmers are not always necessary. Use your mainboard as a programmer instead. Boot up with a known-good image, then unplug the (DIP32, PLCC32, or DIP8) ROM chip while powered on. Reflash that secondary piece and try a reboot. Many boards allow for more than one type of flash to be programmed, but clearly are less versatile than real programmers.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mcumall.com/ Willem Universal EPROM Programmer]: DOS, Windows software, work has started on Linux drivers, quite many types of EEPROM asf. ~ €35&lt;br /&gt;
* [http://www.loet.de/flasher_en.html IDE adapter for PLCC32 &amp;amp; DIP32 sockets]: Has Linux 2.4 &amp;amp; 2.6 drivers $/€ ~48 (kit €33) free manual with schematics &amp;amp; component list downloadable (component cost approx. €5)&lt;br /&gt;
* [http://www.conitec.net/english/software.htm GALEP-4]: Has [http://www.conitec.net/hardware/down/galep-linux-alpha1.html beta Linux drivers] ~$300. See [[Galep IV]] for a description on how to get the more modern Windows software working in Linux with '''wine'''.&lt;br /&gt;
* use a RTL8139 NIC (PCI network card) with 32 pin socket and the appropriate ZIF socket adapter with flashrom. this is a low cost approach. Check, whether flashrom will recognize your flash part in this scenario.&lt;br /&gt;
&lt;br /&gt;
=== BIOS Savior ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bios savior.jpg|thumb|right|An installed BIOS Savior.]]&lt;br /&gt;
&lt;br /&gt;
The '''BIOS Savior''' is a tool that plugs into and replaces the original mainboard Flash device. The BIOS Savior has its own Flash device and a socket for the original mainboard Flash device (PLCC or DIP versions are available). It features a switch to allow the developer to choose between which Flash device is accessed by the mainboard during read and write cycles.&lt;br /&gt;
&lt;br /&gt;
This device helps to minimize the amount of hot swapping required and reduces mechanical and electrical stress on the BIOS chips.&lt;br /&gt;
&lt;br /&gt;
The BIOS Savior is available from:&lt;br /&gt;
* http://www.ioss.com.tw/web/English/RD1BIOSSavior.html&lt;br /&gt;
&lt;br /&gt;
=== Top Hat Flash ===&lt;br /&gt;
&lt;br /&gt;
A similar function is achieved by the '''Top Hat Flash''' which comes at no extra cost with many Elitegroup, and some GIGABYTE and Albatron mainboards like ECS KN3 SLI2 Extreme.&lt;br /&gt;
&lt;br /&gt;
As you can guess from the photo to the side, it is two plcc sockets soldered together. The upper one carries a spare BIOS chip as a fallback / failsafe secondary bootable BIOS. By means of some 'obscure' cicuitry, the additional, secondary chip is being booted from, if you manually press / stick the TOP HAT FLASH onto your primary BIOS chip on the mainboard. Sadly, this simple technique does not seem to work with other boards right away.&lt;br /&gt;
&lt;br /&gt;
After bootup, it can manually be lifted off the original BIOS chip, so the original BIOS can be reflashed after a failure. The '''RST#''' pin is wired to '''OE#''' on the spare chip, otherwise it's wired 1:1. Top Hat Flash is equipped with a Winbond W39V040AP FWH. It may rely on particular circuitry on the mainboard to operate.&lt;br /&gt;
&lt;br /&gt;
[[Image:Top_hat_flash.JPG|thumb|right|Top Hat Flash, PCB side to flip over soldered-on PLCC.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Chip removal tools ===&lt;br /&gt;
&lt;br /&gt;
If you're hot-swapping your BIOS chips (i.e., removing the chip while your computer is running, then inserting another one) you'll usually need some tools.&lt;br /&gt;
&lt;br /&gt;
There are different tools for DIP and PLCC chips (see photos). You can find them in most electronics stores, usually. Both types cost roughly 5-10 Euros.&lt;br /&gt;
&lt;br /&gt;
Another very nifty idea is [http://www.linuxbios.org/pipermail/linuxbios/2007-April/019809.html clipping off the needle point of normal office push pins], and then attaching them to (PLCC) ROM chips with super glue. That makes it pretty easy to insert and remove the ROM chips without extra tools.&lt;br /&gt;
&lt;br /&gt;
Since after bootup, flash mem is not accessed anymore, you can even hot plug (plug in and out '''while PC powered on''') push pin flashes. This way you save an external EEPROM programmer and mimic the procedure of top hat flash. Make sure you do not short circuit anything, though.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Plcc tool.jpg|PLCC32 BIOS removal tool.&lt;br /&gt;
Image:Dip tool.jpg|DIP32 BIOS removal tool.&lt;br /&gt;
Image:Pushpin roms 1.jpg|Push pins with cut off needles, attached to ROM chips with super glue.&lt;br /&gt;
Image:Pushpin roms 2.jpg|More push pins on ROM chips.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== POST card ===&lt;br /&gt;
&lt;br /&gt;
A POST card will save your life: it's the only output device (beside beeper) you have during the boot process. The term POST means '''Power On Self Test''' and comes from the original IBM specifications for the BIOS. Port 80 is a pre-defined I/O port to which programs can output a byte. The POST card displays the byte in hex on its 2 digit display. We use a lot of POST codes in coreboot, so if you can tell us the POST code you see, we will have some idea of what happened. &lt;br /&gt;
&lt;br /&gt;
If your coreboot machine is working properly, you will see it count up from 0xd0 to 0xd9 (while it is gunzipping the kernel) and then display 0x98 (Linux idle loop). There are POST cards with ISA bus, PCI bus, USB und parallel port connectors (the latter for laptops).&lt;br /&gt;
&lt;br /&gt;
Often they carry status LEDs for ISA/PCI signals such as: IRDY, BIOS-access, FRAME, OSC, PCI-CLK, RESET, 12V, -12V, 5V, -5V, 3.3V. Some cards were known to not function because the mainboard switches off the CLK on their slot after non-standard registration on PCI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Post card1.jpg|BIOS POST card for PCI.&lt;br /&gt;
Image:Post card2.jpg|BIOS POST card for PCI and ISA.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PCI POST cards can be found in various places.&lt;br /&gt;
&lt;br /&gt;
See also [[FAQ#How_can_I_write_to_port_0x80_from_userspace.3F|How can I write to port 0x80 from userspace]].&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tpcip.html&lt;br /&gt;
* http://www.elstonsystems.com/prod/pc_analyzer.html&lt;br /&gt;
* http://shopv2.elstonsystems.com/product_info.php/products_id/57&lt;br /&gt;
* http://www.uxd.com/trio.html&lt;br /&gt;
* http://www.soyousa.com/products/proddesc.php?id=261&lt;br /&gt;
&lt;br /&gt;
=== Null-modem cable ===&lt;br /&gt;
&lt;br /&gt;
A so-called '''null-modem cable''' is used for transmitting the output from a serial coreboot (or GRUB- or Linux-) console to another computer where a terminal program (such as minicom) can be used to display/save the messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Null modem cable.jpg|A null-modem cable.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compact Flash IDE adaptor ===&lt;br /&gt;
&lt;br /&gt;
Solid state disks (e.g. CompactFlash cards) save time during the repeated boot process compared with regular hard disks.&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tcfdp.html&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_ide2cf.php&lt;br /&gt;
* http://www.mini-box.com/s.nl/sc.8/category.14/.f&lt;br /&gt;
* http://www.acscontrol.com/Index_ACS.asp?Page=/Pages/Products/CompactFlash/IDE_To_CF_Adapter.htm&lt;br /&gt;
* http://www.pcengines.ch/cflash.htm&lt;br /&gt;
* http://www.psism.com/adcf.htm&lt;br /&gt;
* http://www.hsc-us.com/industrial/adapter/ATP.html (2xCF, one with hotswap!)&lt;br /&gt;
* http://www.mesanet.com/ (Choose DISK EMULATORS then CFADPTHD in the menu. 2xCF)&lt;br /&gt;
&lt;br /&gt;
=== Oscilloscope ===&lt;br /&gt;
&lt;br /&gt;
For hardware debugging purposes when it goes down the most atomic details. Consider '''logic analyzers''' as alternative.&lt;br /&gt;
&lt;br /&gt;
=== In Circuit Emulator hardware debugger ===&lt;br /&gt;
&lt;br /&gt;
Allows very time-saving burn/debug cycles with added tracing capabilities but somewhat costly.&lt;br /&gt;
&lt;br /&gt;
=== coreboot SDK ===&lt;br /&gt;
&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_sdk.php&lt;br /&gt;
&lt;br /&gt;
=== In Circuit chip programmer ===&lt;br /&gt;
&lt;br /&gt;
Should allow you to program your BIOS even if it is soldered to the motherboard.&lt;br /&gt;
&lt;br /&gt;
* http://www.xeltek.com/pages.php?pageid=8&lt;br /&gt;
&lt;br /&gt;
=== EPROM emulators ===&lt;br /&gt;
&lt;br /&gt;
These hardware devices pretend to be an EEPROM chip.&lt;br /&gt;
&lt;br /&gt;
* http://www.tech-tools.com/romtools.htm&lt;br /&gt;
* http://xtronics.com/memory/pktROM.htm&lt;br /&gt;
* http://www.tribalmicro.com/multirom/&lt;br /&gt;
* http://www.linuxselfhelp.com/HOWTO/Diskless-HOWTO-10.html (a larger list -- outdated)&lt;br /&gt;
&lt;br /&gt;
=== USB debug devices ===&lt;br /&gt;
&lt;br /&gt;
[[Image:PLX_NET20DC.jpg|thumb|right|PLX NET20DC USB Debug Device.]]&lt;br /&gt;
&lt;br /&gt;
An alternative to a serial console may be a USB debug device. They are not so common, yet. Their advantage is higher speed than a serial console. One might hook an FPGA to it for profiling purposes or some automated checks. Accessing a USB debug device from within BIOS is not different than other USB devices, and is part of the USB standard.&lt;br /&gt;
&lt;br /&gt;
See also [[EHCI Debug Port]].&lt;br /&gt;
&lt;br /&gt;
== Serial console software ==&lt;br /&gt;
&lt;br /&gt;
=== minicom ===&lt;br /&gt;
&lt;br /&gt;
Minicom is not just a serial terminal. It was written long before the internet existed and electronic communication was only possible with a modem to a mailbox-computer. Minicom is written with the ncurses library and provides its magic via a text interface. Other than logging, it provides z-modem up- and download-capability. &lt;br /&gt;
&lt;br /&gt;
=== CuteCom ===&lt;br /&gt;
&lt;br /&gt;
This is an easy to use serial-terminal-program which is even able to write all communication into a log-file. It needs a computer with installed Qt-libs.&lt;br /&gt;
&lt;br /&gt;
[[Image:CuteCom.png|thumb|left]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Developer_Manual/Tools</id>
		<title>Developer Manual/Tools</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Developer_Manual/Tools"/>
				<updated>2010-12-02T07:14:54Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* External EPROM/Flash programmer that can program the flash chip on your motherboard */  RTL8139 32 pin plus ZIF socket adapter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before starting to work on coreboot support for a new mainboard and/or chipset you'll want a few development tools (both hardware and software). Not all of them are strictly required, a lot depends on your specific task and needs.&lt;br /&gt;
&lt;br /&gt;
=== Basic requirements ===&lt;br /&gt;
&lt;br /&gt;
* A mainboard you want to port coreboot to.&lt;br /&gt;
* Datasheets&lt;br /&gt;
* A Linux/UNIX machine for development purposes&lt;br /&gt;
** The coreboot build environment is not well-supported on Windows. It may be possible to do it under cygwin but nobody has tried.&lt;br /&gt;
		&lt;br /&gt;
It's also handy to have one/some/all of the following:&lt;br /&gt;
	&lt;br /&gt;
=== Artecgroup programmable LPC dongle ===&lt;br /&gt;
&lt;br /&gt;
The [[Artecgroup programmable LPC dongle]] (Now called FlexyICE) is a ROM emulator and debugging tool.&lt;br /&gt;
See [http://www.artecgroup.com/products/hardware-products/programmable-lpc-dongle.html] and [http://www.opencores.org/projects.cgi/web/usb_dongle_fpga/overview].&lt;br /&gt;
&lt;br /&gt;
=== PC Engines lpc1A ===&lt;br /&gt;
&lt;br /&gt;
[http://pcengines.ch/lpc1a.htm This board] is most useful if you are working on machines from the ALIX family, but could also be useful if you can expose an LPC header on another board.&lt;br /&gt;
&lt;br /&gt;
=== External EPROM/Flash programmer that can program the flash chip on your motherboard ===&lt;br /&gt;
&lt;br /&gt;
External programmers are not always necessary. Use your mainboard as a programmer instead. Boot up with a known-good image, then unplug the (DIP32, PLCC32, or DIP8) ROM chip while powered on. Reflash that secondary piece and try a reboot. Many boards allow for more than one type of flash to be programmed, but clearly are less versatile than real programmers.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mcumall.com/ Willem Universal EPROM Programmer]: DOS, Windows software, work has started on Linux drivers, quite many types of EEPROM asf. ~ €35&lt;br /&gt;
* [http://www.loet.de/flasher_en.html IDE adapter for PLCC32 &amp;amp; DIP32 sockets]: Has Linux 2.4 &amp;amp; 2.6 drivers $/€ ~48 (kit €33) free manual with schematics &amp;amp; component list downloadable (component cost approx. €5)&lt;br /&gt;
* [http://www.conitec.net/english/software.htm GALEP-4]: Has [http://www.conitec.net/hardware/down/galep-linux-alpha1.html beta Linux drivers] ~$300. See [[Galep IV]] for a description on how to get the more modern Windows software working in Linux with '''wine'''.&lt;br /&gt;
* use a RTL8139 with 32 pin socket and the appropriate ZIF socket adapter with flashrom. this is a low cost approach. Check, whether flashrom will recognize your flash part in this scenario.&lt;br /&gt;
&lt;br /&gt;
=== BIOS Savior ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bios savior.jpg|thumb|right|An installed BIOS Savior.]]&lt;br /&gt;
&lt;br /&gt;
The '''BIOS Savior''' is a tool that plugs into and replaces the original mainboard Flash device. The BIOS Savior has its own Flash device and a socket for the original mainboard Flash device (PLCC or DIP versions are available). It features a switch to allow the developer to choose between which Flash device is accessed by the mainboard during read and write cycles.&lt;br /&gt;
&lt;br /&gt;
This device helps to minimize the amount of hot swapping required and reduces mechanical and electrical stress on the BIOS chips.&lt;br /&gt;
&lt;br /&gt;
The BIOS Savior is available from:&lt;br /&gt;
* http://www.ioss.com.tw/web/English/RD1BIOSSavior.html&lt;br /&gt;
&lt;br /&gt;
=== Top Hat Flash ===&lt;br /&gt;
&lt;br /&gt;
A similar function is achieved by the '''Top Hat Flash''' which comes at no extra cost with many Elitegroup, and some GIGABYTE and Albatron mainboards like ECS KN3 SLI2 Extreme.&lt;br /&gt;
&lt;br /&gt;
As you can guess from the photo to the side, it is two plcc sockets soldered together. The upper one carries a spare BIOS chip as a fallback / failsafe secondary bootable BIOS. By means of some 'obscure' cicuitry, the additional, secondary chip is being booted from, if you manually press / stick the TOP HAT FLASH onto your primary BIOS chip on the mainboard. Sadly, this simple technique does not seem to work with other boards right away.&lt;br /&gt;
&lt;br /&gt;
After bootup, it can manually be lifted off the original BIOS chip, so the original BIOS can be reflashed after a failure. The '''RST#''' pin is wired to '''OE#''' on the spare chip, otherwise it's wired 1:1. Top Hat Flash is equipped with a Winbond W39V040AP FWH. It may rely on particular circuitry on the mainboard to operate.&lt;br /&gt;
&lt;br /&gt;
[[Image:Top_hat_flash.JPG|thumb|right|Top Hat Flash, PCB side to flip over soldered-on PLCC.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Chip removal tools ===&lt;br /&gt;
&lt;br /&gt;
If you're hot-swapping your BIOS chips (i.e., removing the chip while your computer is running, then inserting another one) you'll usually need some tools.&lt;br /&gt;
&lt;br /&gt;
There are different tools for DIP and PLCC chips (see photos). You can find them in most electronics stores, usually. Both types cost roughly 5-10 Euros.&lt;br /&gt;
&lt;br /&gt;
Another very nifty idea is [http://www.linuxbios.org/pipermail/linuxbios/2007-April/019809.html clipping off the needle point of normal office push pins], and then attaching them to (PLCC) ROM chips with super glue. That makes it pretty easy to insert and remove the ROM chips without extra tools.&lt;br /&gt;
&lt;br /&gt;
Since after bootup, flash mem is not accessed anymore, you can even hot plug (plug in and out '''while PC powered on''') push pin flashes. This way you save an external EEPROM programmer and mimic the procedure of top hat flash. Make sure you do not short circuit anything, though.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Plcc tool.jpg|PLCC32 BIOS removal tool.&lt;br /&gt;
Image:Dip tool.jpg|DIP32 BIOS removal tool.&lt;br /&gt;
Image:Pushpin roms 1.jpg|Push pins with cut off needles, attached to ROM chips with super glue.&lt;br /&gt;
Image:Pushpin roms 2.jpg|More push pins on ROM chips.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== POST card ===&lt;br /&gt;
&lt;br /&gt;
A POST card will save your life: it's the only output device (beside beeper) you have during the boot process. The term POST means '''Power On Self Test''' and comes from the original IBM specifications for the BIOS. Port 80 is a pre-defined I/O port to which programs can output a byte. The POST card displays the byte in hex on its 2 digit display. We use a lot of POST codes in coreboot, so if you can tell us the POST code you see, we will have some idea of what happened. &lt;br /&gt;
&lt;br /&gt;
If your coreboot machine is working properly, you will see it count up from 0xd0 to 0xd9 (while it is gunzipping the kernel) and then display 0x98 (Linux idle loop). There are POST cards with ISA bus, PCI bus, USB und parallel port connectors (the latter for laptops).&lt;br /&gt;
&lt;br /&gt;
Often they carry status LEDs for ISA/PCI signals such as: IRDY, BIOS-access, FRAME, OSC, PCI-CLK, RESET, 12V, -12V, 5V, -5V, 3.3V. Some cards were known to not function because the mainboard switches off the CLK on their slot after non-standard registration on PCI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Post card1.jpg|BIOS POST card for PCI.&lt;br /&gt;
Image:Post card2.jpg|BIOS POST card for PCI and ISA.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PCI POST cards can be found in various places.&lt;br /&gt;
&lt;br /&gt;
See also [[FAQ#How_can_I_write_to_port_0x80_from_userspace.3F|How can I write to port 0x80 from userspace]].&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tpcip.html&lt;br /&gt;
* http://www.elstonsystems.com/prod/pc_analyzer.html&lt;br /&gt;
* http://shopv2.elstonsystems.com/product_info.php/products_id/57&lt;br /&gt;
* http://www.uxd.com/trio.html&lt;br /&gt;
* http://www.soyousa.com/products/proddesc.php?id=261&lt;br /&gt;
&lt;br /&gt;
=== Null-modem cable ===&lt;br /&gt;
&lt;br /&gt;
A so-called '''null-modem cable''' is used for transmitting the output from a serial coreboot (or GRUB- or Linux-) console to another computer where a terminal program (such as minicom) can be used to display/save the messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Null modem cable.jpg|A null-modem cable.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compact Flash IDE adaptor ===&lt;br /&gt;
&lt;br /&gt;
Solid state disks (e.g. CompactFlash cards) save time during the repeated boot process compared with regular hard disks.&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tcfdp.html&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_ide2cf.php&lt;br /&gt;
* http://www.mini-box.com/s.nl/sc.8/category.14/.f&lt;br /&gt;
* http://www.acscontrol.com/Index_ACS.asp?Page=/Pages/Products/CompactFlash/IDE_To_CF_Adapter.htm&lt;br /&gt;
* http://www.pcengines.ch/cflash.htm&lt;br /&gt;
* http://www.psism.com/adcf.htm&lt;br /&gt;
* http://www.hsc-us.com/industrial/adapter/ATP.html (2xCF, one with hotswap!)&lt;br /&gt;
* http://www.mesanet.com/ (Choose DISK EMULATORS then CFADPTHD in the menu. 2xCF)&lt;br /&gt;
&lt;br /&gt;
=== Oscilloscope ===&lt;br /&gt;
&lt;br /&gt;
For hardware debugging purposes when it goes down the most atomic details. Consider '''logic analyzers''' as alternative.&lt;br /&gt;
&lt;br /&gt;
=== In Circuit Emulator hardware debugger ===&lt;br /&gt;
&lt;br /&gt;
Allows very time-saving burn/debug cycles with added tracing capabilities but somewhat costly.&lt;br /&gt;
&lt;br /&gt;
=== coreboot SDK ===&lt;br /&gt;
&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_sdk.php&lt;br /&gt;
&lt;br /&gt;
=== In Circuit chip programmer ===&lt;br /&gt;
&lt;br /&gt;
Should allow you to program your BIOS even if it is soldered to the motherboard.&lt;br /&gt;
&lt;br /&gt;
* http://www.xeltek.com/pages.php?pageid=8&lt;br /&gt;
&lt;br /&gt;
=== EPROM emulators ===&lt;br /&gt;
&lt;br /&gt;
These hardware devices pretend to be an EEPROM chip.&lt;br /&gt;
&lt;br /&gt;
* http://www.tech-tools.com/romtools.htm&lt;br /&gt;
* http://xtronics.com/memory/pktROM.htm&lt;br /&gt;
* http://www.tribalmicro.com/multirom/&lt;br /&gt;
* http://www.linuxselfhelp.com/HOWTO/Diskless-HOWTO-10.html (a larger list -- outdated)&lt;br /&gt;
&lt;br /&gt;
=== USB debug devices ===&lt;br /&gt;
&lt;br /&gt;
[[Image:PLX_NET20DC.jpg|thumb|right|PLX NET20DC USB Debug Device.]]&lt;br /&gt;
&lt;br /&gt;
An alternative to a serial console may be a USB debug device. They are not so common, yet. Their advantage is higher speed than a serial console. One might hook an FPGA to it for profiling purposes or some automated checks. Accessing a USB debug device from within BIOS is not different than other USB devices, and is part of the USB standard.&lt;br /&gt;
&lt;br /&gt;
See also [[EHCI Debug Port]].&lt;br /&gt;
&lt;br /&gt;
== Serial console software ==&lt;br /&gt;
&lt;br /&gt;
=== minicom ===&lt;br /&gt;
&lt;br /&gt;
Minicom is not just a serial terminal. It was written long before the internet existed and electronic communication was only possible with a modem to a mailbox-computer. Minicom is written with the ncurses library and provides its magic via a text interface. Other than logging, it provides z-modem up- and download-capability. &lt;br /&gt;
&lt;br /&gt;
=== CuteCom ===&lt;br /&gt;
&lt;br /&gt;
This is an easy to use serial-terminal-program which is even able to write all communication into a log-file. It needs a computer with installed Qt-libs.&lt;br /&gt;
&lt;br /&gt;
[[Image:CuteCom.png|thumb|left]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:GIGABYTE_GA-M57SLI-S4</id>
		<title>Talk:GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:GIGABYTE_GA-M57SLI-S4"/>
				<updated>2010-12-02T07:03:19Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: legacy BIOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;swap #CE and #WP and thus route #CE through the #WP jumper with 8 pin SPI possible ?&lt;br /&gt;
--[[User:Quux|da Great QUUX]] 14:24, 28 April 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Alternatively, you might flip a standard plcc-32 socket over the mainboard-chip. then wire a secondary plcc-32 socket to it wired 1:1 - except you connect /reset and /oe on the replacment chip, while you route the /oe from the mainboard to an NC pin on the secondary chip. Take off (hot unplug) the socket after successful boot-up to reflash the original chip. (so called &amp;quot;top hat flash&amp;quot; method, use at own risk, no successful report on GA M57 yet)&lt;br /&gt;
&lt;br /&gt;
on GA M57SLI, is FWH mode used ? is it necessary to use different ID on ID-pins ?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''badly in need:''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* is it practical to upgrade the secondary pad with an 2 MBit flash part ?&lt;br /&gt;
&lt;br /&gt;
''2 MByte:'' the southbridge needs to decode the full 2Mbyte (these are 16Mbit parts) address range for it to be useful in practice. A lot of the SB parts I looked at, years ago, reserved the top 2M of the 2 GB space. so it is something we have to check.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://sites.google.com/site/pinczakko/pinczakko-s-guide-to-ami-bios-reverse-engineering-1 Salihun] on '''AWARD''' ('legacy') BIOS re-engineering. AWARD is inside many boards by Gigabyte like M57SLI.&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2010-12-02T06:57:57Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* SOIC hardware hack */  Stuge's video talk (FOSSDEM)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Which board do you have? ==&lt;br /&gt;
&lt;br /&gt;
The '''GIGABYTE GA-M57SLI-S4''' seems to exist in 4 versions as of 2007/05. The latest manufacturer BIOS update does not support all those hw versions, appearently there are certain hardware differences (no &amp;quot;chipset support&amp;quot; according to the 2010-dated flashing tool by Gigabyte).&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mainboard photo on the backside of the GA-M57SLI-S4 box shows a ROM socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with PLCC32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SOIC (SPI). All 4 have unpopulated secondary pads. For the PLCC32 versions, the procedure outlined below can be used to add a ROM socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the GA-M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the GA-M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = OK&lt;br /&gt;
|CPU_virt_status = OK&lt;br /&gt;
|CPU_virt_comments = tested with the kvm package of ubuntu 7.04&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = N/A&lt;br /&gt;
|RAM_DDR2_status = OK&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = OK&lt;br /&gt;
|RAM_dualchannel_comments = According to memtest86+ it works.&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested with an CF-IDE adapter without DMA support. Booting with coreboot is no problem. Booting with propritary BIOS didn't work.&lt;br /&gt;
|CDROM_DVD_status = OK&lt;br /&gt;
|SATA_status = OK&lt;br /&gt;
|SATA_comments = A FILO patch is needed (see below) as coreboot is too fast and the disks have not spun up yet when coreboot is done.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: mounting USB storage devices and accessing files on them. USB MIDI-keyboard works, too (keyboard == the music instrument, in this case).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = OK&lt;br /&gt;
|Onboard_audio_comments = Use '''modprobe snd-hda-intel''' (Alsa).&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = OK&lt;br /&gt;
|Onboard_firewire_comments = Confirmed working as of r3023 - a firewire disk is detected and works fine.&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
|Onboard_SCSI_status = N/A&lt;br /&gt;
&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|Mini_PCI_cards_status = N/A&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIX_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = OK&lt;br /&gt;
|PCIE_x1_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = N/A&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = OK&lt;br /&gt;
|PCIE_x16_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|Floppy_comments = Should work, but '''***needs testing***'''.&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM1_comments = Serial console for coreboot and Linux is fully operational.&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Works with a parallel port printer. (Needs coreboot v2 &amp;gt;= r4396.)&lt;br /&gt;
|PS2_keyboard_status = OK&lt;br /&gt;
|PS2_keyboard_comments = Works on Seabios without problems.&lt;br /&gt;
|PS2_mouse_status = OK&lt;br /&gt;
|Game_port_status = N/A&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|Speaker_comments = Works with '''beep''' (use '''modprobe pcspkr''').&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Sensors and fans work, see [http://coreboot.org/pipermail/coreboot/2007-April/020307.html instructions]. Some sensor readouts are off, and the pwm polarity seems to be inverted, but fan speed can be set.&lt;br /&gt;
|Watchdog_status = OK&lt;br /&gt;
|Watchdog_comments = modprobe it87_wdt&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|SMBus_status = OK&lt;br /&gt;
|CPUfreq_status = OK&lt;br /&gt;
|CPUfreq_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = OK&lt;br /&gt;
|ACPI_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = OK&lt;br /&gt;
|Poweroff_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = HD-LED works. Power-LED untested.&lt;br /&gt;
|HPET_status = OK&lt;br /&gt;
|HPET_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = Untested&lt;br /&gt;
|WakeOnKeyboard_status =Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Use revision 3088 or higher. [[Flashrom]] now works on both the PLCC and SOIC/SPI versions of the board.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Developer Manual/Tools#Top_Hat_Flash|Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the GA-M57SLI-S4, but might work with other chips (FWH). This means a hardware hack is necessary to prevent accidental bricking of the board.&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' boot parameter with most old kernels (legacy BIOS v. F12 is better).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: red&amp;quot;&amp;gt;If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PLCC32 hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working coreboot chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers: [http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS].&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
=== SOIC hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have an SOIC revision, you can add a second SOIC chip in the unpopulated position, and use a switch to toggle between both chips. &lt;br /&gt;
&lt;br /&gt;
The most recent instructions by Peter Stuge can be found here [http://stuge.se/m57sli/]. This is the recommended modification. Peter's company also sells pre-modified boards if you don't want to do the soldering, contact peter at stuge dot se for more information. Also, you may watch Peter's video lecture on coreboot available at youtube asf. for recent info.&lt;br /&gt;
&lt;br /&gt;
Older instructions can be found here [http://coreboot.org/pipermail/coreboot/2007-September/024474.html here], and here are [http://stuge.se/lb/m57sli/ some photos]. These instructions have been [http://www.coreboot.org/pipermail/coreboot/2007-October/025906.html confirmed to work].&lt;br /&gt;
&lt;br /&gt;
It's also possible to put a SOIC socket on the second pad, as [http://www.coreboot.org/pipermail/coreboot/2008-January/028949.html documented by Harald Gutmann], with pictures [http://img141.imageshack.us/img141/8866/dscf1791ob2.jpg here] and [http://img104.imageshack.us/img104/2579/dscf1792nn2.jpg here].&lt;br /&gt;
&lt;br /&gt;
Here's are a few pictures of a completed modification using the older instructions:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:M57sli-spi-mod-dscn2921-1024x768.jpg|thumb|SOIC/SPI mod on m57sli]]&lt;br /&gt;
| [[Image:Spi-socket-dscn2913-1024x768.jpg|thumb|SOIC/SPI socket with chip, pre installation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Flashrom ===&lt;br /&gt;
&lt;br /&gt;
==== PLCC32 chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works fine both under the proprietary BIOS and coreboot. Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
==== SPI chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works well on the SOIC version of the board and can detect various SPI chips, including the factory soldered MX25L4005.&lt;br /&gt;
&lt;br /&gt;
With the SPI versions of the motherboard one has to explicitly give the board name when calling flashrom because it is unable to determine the board type yet.&lt;br /&gt;
&lt;br /&gt;
Reading and writing to the MX25L4005 SPI chip work flawlessly under the proprietary BIOS as well as coreboot. Remember to erase the chip before you re-write it, as described in [[#Burning coreboot|Burning coreboot]].&lt;br /&gt;
&lt;br /&gt;
== Payload ==&lt;br /&gt;
&lt;br /&gt;
Coreboot requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
Another possible payload is 'linux-as-a-bootloader' (LAB). You will need a 1MB ROM chip (the GA-M57SLI-S4 comes with a 512KB ROM chip) for this payload. It consists of a (stripped down) kernel + busybox, which can then be used to kexec a kernel from disk. If your disks are playing up, you will still have a busybox environment on boot, which could be useful for debugging.&lt;br /&gt;
&lt;br /&gt;
== Buildrom vs. manual build ==&lt;br /&gt;
&lt;br /&gt;
You can build a coreboot image with a kconfig-style configuration tool ([[buildrom]]) if you want to use FILO or LAB. This is by far the easiest way to build a ROM image. Continue to the [[#Buildrom|Buildrom section]].&lt;br /&gt;
&lt;br /&gt;
If you want another payload or would like to get closer to the metal, you can use the manual build method outlined below under [[#Manual build|Manual build]].&lt;br /&gt;
&lt;br /&gt;
== Buildrom ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.&lt;br /&gt;
&lt;br /&gt;
Check out buildrom:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://coreboot.org/buildrom&lt;br /&gt;
&lt;br /&gt;
Now configure buildrom:&lt;br /&gt;
&lt;br /&gt;
  cd buildrom/buildrom-devel&lt;br /&gt;
  make menuconfig&lt;br /&gt;
&lt;br /&gt;
Configure to your liking. If you use the LAB payload, make sure to exclude the kexec binary and boot menu from the initramfs, otherwise your image will be too big. Please note that currently only the FILO and LAB payloads have been tested. The other payloads likely require some more work before they will be useable. Patches are welcome, of course.&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all goes well, you should now have a ROM image file &lt;br /&gt;
&lt;br /&gt;
  deploy/gigabyte-m57sli.rom&lt;br /&gt;
&lt;br /&gt;
If you are building a FILO payload, it will be exactly 512KB in size. If you are building an LAB payload, the image will be 1MB.&lt;br /&gt;
&lt;br /&gt;
=== FILO payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the LAB payload.&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
=== LAB payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the FILO payload.&lt;br /&gt;
&lt;br /&gt;
The LAB payload expects a file /lab.conf on /dev/sda1 with contents like this:&lt;br /&gt;
&lt;br /&gt;
  CMDLINE=&amp;quot;root=/dev/sda1 ro console=tty0 console=ttyS0,115200&amp;quot;&lt;br /&gt;
  KERNEL=&amp;quot;/vmlinuz-2.6.22.1&amp;quot;&lt;br /&gt;
  INITRD=&amp;quot;&amp;quot;&lt;br /&gt;
  VT=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is the kernel that you will be running after boot. It will be kexec'ed by the kernel that is burned into your ROM chip.&lt;br /&gt;
&lt;br /&gt;
You will also need a statically linked copy of kexec, which the LAB payload expects to reside at &lt;br /&gt;
&lt;br /&gt;
  /kexec on /dev/sda1&lt;br /&gt;
&lt;br /&gt;
If you are on Ubuntu, you can easily recompile your kexec package to be statically linked by following these instructions:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/src&lt;br /&gt;
  apt-get source kexec-tools&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now edit kexec-tools-1.101-kdump10/kexec-tools-1.101/kexec/Makefile, change line 53 to&lt;br /&gt;
  &lt;br /&gt;
  $(CC) $(LDFLAGS) $(KCFLAGS) -o $@ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)&lt;br /&gt;
&lt;br /&gt;
(you're adding the LDFLAGS variable)&lt;br /&gt;
&lt;br /&gt;
  cd kexec-tools-1.101-kdump10 &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -b&lt;br /&gt;
  cd ..&lt;br /&gt;
  dpkg -i kexec-tools_1.101-kdump10-2ubuntu2_i386.deb&lt;br /&gt;
&lt;br /&gt;
Adjust the package name as necessary for your distribution. &lt;br /&gt;
&lt;br /&gt;
If you want to build the latest kexec from Debian Sid, you're going to need to be a little more careful. Set -static:&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then build the package&lt;br /&gt;
&lt;br /&gt;
  apt-get source kexec-tools -b&lt;br /&gt;
&lt;br /&gt;
This will fail more or less like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $ gcc -static -lz   -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec- elf-boot.o kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a&lt;br /&gt;
kexec/kexec.o: In function `slurp_decompress_file':&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:503: undefined reference to `gzopen'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:519: undefined reference to `gzread'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:533: undefined reference to `gzclose'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:524: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:535: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:505: undefined reference to `gzerror'&lt;br /&gt;
collect2: ld returned 1 exit status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is that the -lz really needs to go at the end of the gcc command line - otherwise it gets filtered out by gcc. When it encounters -lz, it has not yet seen any need for the libz library so it automatically removes it. Manually running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc -static -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o &lt;br /&gt;
  kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec-elf-boot.o &lt;br /&gt;
  kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o &lt;br /&gt;
  kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o &lt;br /&gt;
  kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o &lt;br /&gt;
  kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a -lz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixes the problem and gives you a static copy of kexec in build/sbin/kexec.&lt;br /&gt;
&lt;br /&gt;
You can tell if your copy of kexec is statically linked by running 'file' on it:&lt;br /&gt;
&lt;br /&gt;
  file /sbin/kexec &lt;br /&gt;
&lt;br /&gt;
If all is well, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
  /sbin/kexec: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, for GNU/Linux 2.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
The binary will also be considerably larger than its dynamically linked cousin.&lt;br /&gt;
&lt;br /&gt;
Note that you '''must''' build a 32-bit version of kexec, because buildrom puts a 32 bit kernel into the ROM image. A 32-bit kexec can kexec into a 64 bit kernel, so if your system is 64 bit this will work just fine.&lt;br /&gt;
&lt;br /&gt;
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.&lt;br /&gt;
&lt;br /&gt;
== Manual build ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you used buildrom; in that case jump to [[#Burning coreboot|Burning coreboot]] below.&lt;br /&gt;
&lt;br /&gt;
=== Building the payload ===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build coreboot as explained below, because it gets included in the coreboot ROM image.&lt;br /&gt;
&lt;br /&gt;
=== Your menu.lst entry ===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
Also, the GA-M57SLI-S4 will not boot unless you add '''acpi_use_timer_override''' as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: '''apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1'''.&lt;br /&gt;
&lt;br /&gt;
=== Current status of the coreboot v2 tree ===&lt;br /&gt;
&lt;br /&gt;
Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Building coreboot ===&lt;br /&gt;
&lt;br /&gt;
See the [[Build HOWTO]] for information on how to build coreboot for this board.&lt;br /&gt;
&lt;br /&gt;
== Burning coreboot ==&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the coreboot v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
- with PLCC32 chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
- with SPI chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -E                   # erase flash first&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -w -v linuxbios.rom  # burn &amp;amp; verify coreboot&lt;br /&gt;
&lt;br /&gt;
(that's assuming the image is called linuxbios.rom; if you used buildrom it would be called gigabyte-m57sli.rom and live in the 'deploy' subdirectory).&lt;br /&gt;
&lt;br /&gt;
'''IF YOU ARE USING REVISION 3087 or older: note'''': You should upgrade to 3088 or higher. In prior releases, on the revision v2.0 of the motherboard there was an issue with the decoding of the I/O addresses into the LPC bridge of the MCP55 southbridge. It occurred only after booting with coreboot (the factory BIOS didn't have this issue). It prevented flashrom to access correctly the SPI interface of the ITE IT8716F chip, thus no reflashing was possible after a first burn of coreboot (without modchip). This issue was fixed and a full coreboot patch is on the tracks. There is also a workaround for the actual release of coreboot: before using flashrom after booting with coreboot, execute the commands:&lt;br /&gt;
&lt;br /&gt;
  setpci -s 00:01.0 a0.l=70000001&lt;br /&gt;
  setpci -s 00:01.0 b0.l=085f0800&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* As of &amp;gt;=r4362 all PCI and PCI-E slots should be initialized correct and work fine. For hardware rev.1 it would be nice to get further test results.&lt;br /&gt;
* There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
:to your &amp;quot;Device&amp;quot; section. '''Update (14.9.2009)''': Is this a v1 specific problem? Is this problem maybe fixed with the IRQ-Fix patch?&lt;br /&gt;
&lt;br /&gt;
If you can help out with these issues, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:Gigabyte_m57sli_Vendor_Cooperation_Score</id>
		<title>Talk:Gigabyte m57sli Vendor Cooperation Score</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:Gigabyte_m57sli_Vendor_Cooperation_Score"/>
				<updated>2010-12-02T06:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: award hacks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;remember, AWARD BIOS is quite hackable, still: [[http://sites.google.com/site/pinczakko/pinczakko-s-guide-to-ami-bios-reverse-engineering-1 Salihun]]&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2010-12-02T06:40:37Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Which board do you have? */  latest BIOS rev.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Which board do you have? ==&lt;br /&gt;
&lt;br /&gt;
The '''GIGABYTE GA-M57SLI-S4''' seems to exist in 4 versions as of 2007/05. The latest manufacturer BIOS update does not support all those hw versions, appearently there are certain hardware differences (no &amp;quot;chipset support&amp;quot; according to the 2010-dated flashing tool by Gigabyte).&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mainboard photo on the backside of the GA-M57SLI-S4 box shows a ROM socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with PLCC32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SOIC (SPI). All 4 have unpopulated secondary pads. For the PLCC32 versions, the procedure outlined below can be used to add a ROM socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the GA-M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the GA-M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = OK&lt;br /&gt;
|CPU_virt_status = OK&lt;br /&gt;
|CPU_virt_comments = tested with the kvm package of ubuntu 7.04&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = N/A&lt;br /&gt;
|RAM_DDR2_status = OK&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = OK&lt;br /&gt;
|RAM_dualchannel_comments = According to memtest86+ it works.&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested with an CF-IDE adapter without DMA support. Booting with coreboot is no problem. Booting with propritary BIOS didn't work.&lt;br /&gt;
|CDROM_DVD_status = OK&lt;br /&gt;
|SATA_status = OK&lt;br /&gt;
|SATA_comments = A FILO patch is needed (see below) as coreboot is too fast and the disks have not spun up yet when coreboot is done.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: mounting USB storage devices and accessing files on them. USB MIDI-keyboard works, too (keyboard == the music instrument, in this case).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = OK&lt;br /&gt;
|Onboard_audio_comments = Use '''modprobe snd-hda-intel''' (Alsa).&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = OK&lt;br /&gt;
|Onboard_firewire_comments = Confirmed working as of r3023 - a firewire disk is detected and works fine.&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
|Onboard_SCSI_status = N/A&lt;br /&gt;
&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|Mini_PCI_cards_status = N/A&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIX_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = OK&lt;br /&gt;
|PCIE_x1_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = N/A&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = OK&lt;br /&gt;
|PCIE_x16_comments = Works on hardware rev.2. Needs coreboot v2 &amp;gt;= r4362. Please do additional tests on hardware rev.1.&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|Floppy_comments = Should work, but '''***needs testing***'''.&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM1_comments = Serial console for coreboot and Linux is fully operational.&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Works with a parallel port printer. (Needs coreboot v2 &amp;gt;= r4396.)&lt;br /&gt;
|PS2_keyboard_status = OK&lt;br /&gt;
|PS2_keyboard_comments = Works on Seabios without problems.&lt;br /&gt;
|PS2_mouse_status = OK&lt;br /&gt;
|Game_port_status = N/A&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|Speaker_comments = Works with '''beep''' (use '''modprobe pcspkr''').&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Sensors and fans work, see [http://coreboot.org/pipermail/coreboot/2007-April/020307.html instructions]. Some sensor readouts are off, and the pwm polarity seems to be inverted, but fan speed can be set.&lt;br /&gt;
|Watchdog_status = OK&lt;br /&gt;
|Watchdog_comments = modprobe it87_wdt&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|SMBus_status = OK&lt;br /&gt;
|CPUfreq_status = OK&lt;br /&gt;
|CPUfreq_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = OK&lt;br /&gt;
|ACPI_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = OK&lt;br /&gt;
|Poweroff_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = HD-LED works. Power-LED untested.&lt;br /&gt;
|HPET_status = OK&lt;br /&gt;
|HPET_comments = Needs coreboot v2 &amp;gt;= r4364.&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = Untested&lt;br /&gt;
|WakeOnKeyboard_status =Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Use revision 3088 or higher. [[Flashrom]] now works on both the PLCC and SOIC/SPI versions of the board.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Developer Manual/Tools#Top_Hat_Flash|Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the GA-M57SLI-S4, but might work with other chips (FWH). This means a hardware hack is necessary to prevent accidental bricking of the board.&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' boot parameter with most old kernels (legacy BIOS v. F12 is better).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: red&amp;quot;&amp;gt;If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PLCC32 hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working coreboot chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers: [http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS].&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
=== SOIC hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have an SOIC revision, you can add a second SOIC chip in the unpopulated position, and use a switch to toggle between both chips. &lt;br /&gt;
&lt;br /&gt;
The most recent instructions by Peter Stuge can be found here [http://stuge.se/m57sli/]. This is the recommended modification. Peter's company also sells pre-modified boards if you don't want to do the soldering, contact peter at stuge dot se for more information.&lt;br /&gt;
&lt;br /&gt;
Older instructions can be found here [http://coreboot.org/pipermail/coreboot/2007-September/024474.html here], and here are [http://stuge.se/lb/m57sli/ some photos]. These instructions have been [http://www.coreboot.org/pipermail/coreboot/2007-October/025906.html confirmed to work].&lt;br /&gt;
&lt;br /&gt;
It's also possible to put a SOIC socket on the second pad, as [http://www.coreboot.org/pipermail/coreboot/2008-January/028949.html documented by Harald Gutmann], with pictures [http://img141.imageshack.us/img141/8866/dscf1791ob2.jpg here] and [http://img104.imageshack.us/img104/2579/dscf1792nn2.jpg here].&lt;br /&gt;
&lt;br /&gt;
Here's are a few pictures of a completed modification using the older instructions:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:M57sli-spi-mod-dscn2921-1024x768.jpg|thumb|SOIC/SPI mod on m57sli]]&lt;br /&gt;
| [[Image:Spi-socket-dscn2913-1024x768.jpg|thumb|SOIC/SPI socket with chip, pre installation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Flashrom ===&lt;br /&gt;
&lt;br /&gt;
==== PLCC32 chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works fine both under the proprietary BIOS and coreboot. Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
==== SPI chips ====&lt;br /&gt;
&lt;br /&gt;
Flashrom works well on the SOIC version of the board and can detect various SPI chips, including the factory soldered MX25L4005.&lt;br /&gt;
&lt;br /&gt;
With the SPI versions of the motherboard one has to explicitly give the board name when calling flashrom because it is unable to determine the board type yet.&lt;br /&gt;
&lt;br /&gt;
Reading and writing to the MX25L4005 SPI chip work flawlessly under the proprietary BIOS as well as coreboot. Remember to erase the chip before you re-write it, as described in [[#Burning coreboot|Burning coreboot]].&lt;br /&gt;
&lt;br /&gt;
== Payload ==&lt;br /&gt;
&lt;br /&gt;
Coreboot requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
Another possible payload is 'linux-as-a-bootloader' (LAB). You will need a 1MB ROM chip (the GA-M57SLI-S4 comes with a 512KB ROM chip) for this payload. It consists of a (stripped down) kernel + busybox, which can then be used to kexec a kernel from disk. If your disks are playing up, you will still have a busybox environment on boot, which could be useful for debugging.&lt;br /&gt;
&lt;br /&gt;
== Buildrom vs. manual build ==&lt;br /&gt;
&lt;br /&gt;
You can build a coreboot image with a kconfig-style configuration tool ([[buildrom]]) if you want to use FILO or LAB. This is by far the easiest way to build a ROM image. Continue to the [[#Buildrom|Buildrom section]].&lt;br /&gt;
&lt;br /&gt;
If you want another payload or would like to get closer to the metal, you can use the manual build method outlined below under [[#Manual build|Manual build]].&lt;br /&gt;
&lt;br /&gt;
== Buildrom ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.&lt;br /&gt;
&lt;br /&gt;
Check out buildrom:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://coreboot.org/buildrom&lt;br /&gt;
&lt;br /&gt;
Now configure buildrom:&lt;br /&gt;
&lt;br /&gt;
  cd buildrom/buildrom-devel&lt;br /&gt;
  make menuconfig&lt;br /&gt;
&lt;br /&gt;
Configure to your liking. If you use the LAB payload, make sure to exclude the kexec binary and boot menu from the initramfs, otherwise your image will be too big. Please note that currently only the FILO and LAB payloads have been tested. The other payloads likely require some more work before they will be useable. Patches are welcome, of course.&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all goes well, you should now have a ROM image file &lt;br /&gt;
&lt;br /&gt;
  deploy/gigabyte-m57sli.rom&lt;br /&gt;
&lt;br /&gt;
If you are building a FILO payload, it will be exactly 512KB in size. If you are building an LAB payload, the image will be 1MB.&lt;br /&gt;
&lt;br /&gt;
=== FILO payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the LAB payload.&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
=== LAB payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the FILO payload.&lt;br /&gt;
&lt;br /&gt;
The LAB payload expects a file /lab.conf on /dev/sda1 with contents like this:&lt;br /&gt;
&lt;br /&gt;
  CMDLINE=&amp;quot;root=/dev/sda1 ro console=tty0 console=ttyS0,115200&amp;quot;&lt;br /&gt;
  KERNEL=&amp;quot;/vmlinuz-2.6.22.1&amp;quot;&lt;br /&gt;
  INITRD=&amp;quot;&amp;quot;&lt;br /&gt;
  VT=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is the kernel that you will be running after boot. It will be kexec'ed by the kernel that is burned into your ROM chip.&lt;br /&gt;
&lt;br /&gt;
You will also need a statically linked copy of kexec, which the LAB payload expects to reside at &lt;br /&gt;
&lt;br /&gt;
  /kexec on /dev/sda1&lt;br /&gt;
&lt;br /&gt;
If you are on Ubuntu, you can easily recompile your kexec package to be statically linked by following these instructions:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/src&lt;br /&gt;
  apt-get source kexec-tools&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now edit kexec-tools-1.101-kdump10/kexec-tools-1.101/kexec/Makefile, change line 53 to&lt;br /&gt;
  &lt;br /&gt;
  $(CC) $(LDFLAGS) $(KCFLAGS) -o $@ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)&lt;br /&gt;
&lt;br /&gt;
(you're adding the LDFLAGS variable)&lt;br /&gt;
&lt;br /&gt;
  cd kexec-tools-1.101-kdump10 &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -b&lt;br /&gt;
  cd ..&lt;br /&gt;
  dpkg -i kexec-tools_1.101-kdump10-2ubuntu2_i386.deb&lt;br /&gt;
&lt;br /&gt;
Adjust the package name as necessary for your distribution. &lt;br /&gt;
&lt;br /&gt;
If you want to build the latest kexec from Debian Sid, you're going to need to be a little more careful. Set -static:&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then build the package&lt;br /&gt;
&lt;br /&gt;
  apt-get source kexec-tools -b&lt;br /&gt;
&lt;br /&gt;
This will fail more or less like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $ gcc -static -lz   -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec- elf-boot.o kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a&lt;br /&gt;
kexec/kexec.o: In function `slurp_decompress_file':&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:503: undefined reference to `gzopen'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:519: undefined reference to `gzread'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:533: undefined reference to `gzclose'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:524: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:535: undefined reference to `gzerror'&lt;br /&gt;
/usr/src/kexec-tools-20080324/kexec/kexec.c:505: undefined reference to `gzerror'&lt;br /&gt;
collect2: ld returned 1 exit status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The problem is that the -lz really needs to go at the end of the gcc command line - otherwise it gets filtered out by gcc. When it encounters -lz, it has not yet seen any need for the libz library so it automatically removes it. Manually running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc -static -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o &lt;br /&gt;
  kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec-elf-boot.o &lt;br /&gt;
  kexec/kexec-iomem.o kexec/crashdump.o kexec/crashdump-xen.o kexec/arch/i386/kexec-x86.o &lt;br /&gt;
  kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o &lt;br /&gt;
  kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o &lt;br /&gt;
  kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a -lz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixes the problem and gives you a static copy of kexec in build/sbin/kexec.&lt;br /&gt;
&lt;br /&gt;
You can tell if your copy of kexec is statically linked by running 'file' on it:&lt;br /&gt;
&lt;br /&gt;
  file /sbin/kexec &lt;br /&gt;
&lt;br /&gt;
If all is well, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
  /sbin/kexec: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, for GNU/Linux 2.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
The binary will also be considerably larger than its dynamically linked cousin.&lt;br /&gt;
&lt;br /&gt;
Note that you '''must''' build a 32-bit version of kexec, because buildrom puts a 32 bit kernel into the ROM image. A 32-bit kexec can kexec into a 64 bit kernel, so if your system is 64 bit this will work just fine.&lt;br /&gt;
&lt;br /&gt;
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.&lt;br /&gt;
&lt;br /&gt;
== Manual build ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you used buildrom; in that case jump to [[#Burning coreboot|Burning coreboot]] below.&lt;br /&gt;
&lt;br /&gt;
=== Building the payload ===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build coreboot as explained below, because it gets included in the coreboot ROM image.&lt;br /&gt;
&lt;br /&gt;
=== Your menu.lst entry ===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first SATA device as '''hd4'''.&lt;br /&gt;
&lt;br /&gt;
Also, the GA-M57SLI-S4 will not boot unless you add '''acpi_use_timer_override''' as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: '''apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1'''.&lt;br /&gt;
&lt;br /&gt;
=== Current status of the coreboot v2 tree ===&lt;br /&gt;
&lt;br /&gt;
Use revision 3088 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Building coreboot ===&lt;br /&gt;
&lt;br /&gt;
See the [[Build HOWTO]] for information on how to build coreboot for this board.&lt;br /&gt;
&lt;br /&gt;
== Burning coreboot ==&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the coreboot v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
- with PLCC32 chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
- with SPI chips :&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -E                   # erase flash first&lt;br /&gt;
  util/flashrom/flashrom -m gigabyte:m57sli -w -v linuxbios.rom  # burn &amp;amp; verify coreboot&lt;br /&gt;
&lt;br /&gt;
(that's assuming the image is called linuxbios.rom; if you used buildrom it would be called gigabyte-m57sli.rom and live in the 'deploy' subdirectory).&lt;br /&gt;
&lt;br /&gt;
'''IF YOU ARE USING REVISION 3087 or older: note'''': You should upgrade to 3088 or higher. In prior releases, on the revision v2.0 of the motherboard there was an issue with the decoding of the I/O addresses into the LPC bridge of the MCP55 southbridge. It occurred only after booting with coreboot (the factory BIOS didn't have this issue). It prevented flashrom to access correctly the SPI interface of the ITE IT8716F chip, thus no reflashing was possible after a first burn of coreboot (without modchip). This issue was fixed and a full coreboot patch is on the tracks. There is also a workaround for the actual release of coreboot: before using flashrom after booting with coreboot, execute the commands:&lt;br /&gt;
&lt;br /&gt;
  setpci -s 00:01.0 a0.l=70000001&lt;br /&gt;
  setpci -s 00:01.0 b0.l=085f0800&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* As of &amp;gt;=r4362 all PCI and PCI-E slots should be initialized correct and work fine. For hardware rev.1 it would be nice to get further test results.&lt;br /&gt;
* There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
:to your &amp;quot;Device&amp;quot; section. '''Update (14.9.2009)''': Is this a v1 specific problem? Is this problem maybe fixed with the IRQ-Fix patch?&lt;br /&gt;
&lt;br /&gt;
If you can help out with these issues, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Developer_Manual/Tools</id>
		<title>Developer Manual/Tools</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Developer_Manual/Tools"/>
				<updated>2010-12-02T06:35:38Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Top Hat Flash */  too bad it is not more common yet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before starting to work on coreboot support for a new mainboard and/or chipset you'll want a few development tools (both hardware and software). Not all of them are strictly required, a lot depends on your specific task and needs.&lt;br /&gt;
&lt;br /&gt;
=== Basic requirements ===&lt;br /&gt;
&lt;br /&gt;
* A mainboard you want to port coreboot to.&lt;br /&gt;
* Datasheets&lt;br /&gt;
* A Linux/UNIX machine for development purposes&lt;br /&gt;
** The coreboot build environment is not well-supported on Windows. It may be possible to do it under cygwin but nobody has tried.&lt;br /&gt;
		&lt;br /&gt;
It's also handy to have one/some/all of the following:&lt;br /&gt;
	&lt;br /&gt;
=== Artecgroup programmable LPC dongle ===&lt;br /&gt;
&lt;br /&gt;
The [[Artecgroup programmable LPC dongle]] (Now called FlexyICE) is a ROM emulator and debugging tool.&lt;br /&gt;
See [http://www.artecgroup.com/products/hardware-products/programmable-lpc-dongle.html] and [http://www.opencores.org/projects.cgi/web/usb_dongle_fpga/overview].&lt;br /&gt;
&lt;br /&gt;
=== PC Engines lpc1A ===&lt;br /&gt;
&lt;br /&gt;
[http://pcengines.ch/lpc1a.htm This board] is most useful if you are working on machines from the ALIX family, but could also be useful if you can expose an LPC header on another board.&lt;br /&gt;
&lt;br /&gt;
=== External EPROM/Flash programmer that can program the flash chip on your motherboard ===&lt;br /&gt;
&lt;br /&gt;
External programmers are not always necessary. Use your mainboard as a programmer instead. Boot up with a known-good image, then unplug the (DIP32, PLCC32, or DIP8) ROM chip while powered on. Reflash that secondary piece and try a reboot. Many boards allow for more than one type of flash to be programmed, but clearly are less versatile than real programmers.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mcumall.com/ Willem Universal EPROM Programmer]: DOS, Windows software, work has started on Linux drivers, quite many types of EEPROM asf. ~ €35&lt;br /&gt;
* [http://www.loet.de/flasher_en.html IDE adapter for PLCC32 &amp;amp; DIP32 sockets]: Has Linux 2.4 &amp;amp; 2.6 drivers $/€ ~48 (kit €33) free manual with schematics &amp;amp; component list downloadable (component cost approx. €5)&lt;br /&gt;
* [http://www.conitec.net/english/software.htm GALEP-4]: Has [http://www.conitec.net/hardware/down/galep-linux-alpha1.html beta Linux drivers] ~$300. See [[Galep IV]] for a description on how to get the more modern Windows software working in Linux with '''wine'''.&lt;br /&gt;
&lt;br /&gt;
=== BIOS Savior ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bios savior.jpg|thumb|right|An installed BIOS Savior.]]&lt;br /&gt;
&lt;br /&gt;
The '''BIOS Savior''' is a tool that plugs into and replaces the original mainboard Flash device. The BIOS Savior has its own Flash device and a socket for the original mainboard Flash device (PLCC or DIP versions are available). It features a switch to allow the developer to choose between which Flash device is accessed by the mainboard during read and write cycles.&lt;br /&gt;
&lt;br /&gt;
This device helps to minimize the amount of hot swapping required and reduces mechanical and electrical stress on the BIOS chips.&lt;br /&gt;
&lt;br /&gt;
The BIOS Savior is available from:&lt;br /&gt;
* http://www.ioss.com.tw/web/English/RD1BIOSSavior.html&lt;br /&gt;
&lt;br /&gt;
=== Top Hat Flash ===&lt;br /&gt;
&lt;br /&gt;
A similar function is achieved by the '''Top Hat Flash''' which comes at no extra cost with many Elitegroup, and some GIGABYTE and Albatron mainboards like ECS KN3 SLI2 Extreme.&lt;br /&gt;
&lt;br /&gt;
As you can guess from the photo to the side, it is two plcc sockets soldered together. The upper one carries a spare BIOS chip as a fallback / failsafe secondary bootable BIOS. By means of some 'obscure' cicuitry, the additional, secondary chip is being booted from, if you manually press / stick the TOP HAT FLASH onto your primary BIOS chip on the mainboard. Sadly, this simple technique does not seem to work with other boards right away.&lt;br /&gt;
&lt;br /&gt;
After bootup, it can manually be lifted off the original BIOS chip, so the original BIOS can be reflashed after a failure. The '''RST#''' pin is wired to '''OE#''' on the spare chip, otherwise it's wired 1:1. Top Hat Flash is equipped with a Winbond W39V040AP FWH. It may rely on particular circuitry on the mainboard to operate.&lt;br /&gt;
&lt;br /&gt;
[[Image:Top_hat_flash.JPG|thumb|right|Top Hat Flash, PCB side to flip over soldered-on PLCC.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Chip removal tools ===&lt;br /&gt;
&lt;br /&gt;
If you're hot-swapping your BIOS chips (i.e., removing the chip while your computer is running, then inserting another one) you'll usually need some tools.&lt;br /&gt;
&lt;br /&gt;
There are different tools for DIP and PLCC chips (see photos). You can find them in most electronics stores, usually. Both types cost roughly 5-10 Euros.&lt;br /&gt;
&lt;br /&gt;
Another very nifty idea is [http://www.linuxbios.org/pipermail/linuxbios/2007-April/019809.html clipping off the needle point of normal office push pins], and then attaching them to (PLCC) ROM chips with super glue. That makes it pretty easy to insert and remove the ROM chips without extra tools.&lt;br /&gt;
&lt;br /&gt;
Since after bootup, flash mem is not accessed anymore, you can even hot plug (plug in and out '''while PC powered on''') push pin flashes. This way you save an external EEPROM programmer and mimic the procedure of top hat flash. Make sure you do not short circuit anything, though.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Plcc tool.jpg|PLCC32 BIOS removal tool.&lt;br /&gt;
Image:Dip tool.jpg|DIP32 BIOS removal tool.&lt;br /&gt;
Image:Pushpin roms 1.jpg|Push pins with cut off needles, attached to ROM chips with super glue.&lt;br /&gt;
Image:Pushpin roms 2.jpg|More push pins on ROM chips.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== POST card ===&lt;br /&gt;
&lt;br /&gt;
A POST card will save your life: it's the only output device (beside beeper) you have during the boot process. The term POST means '''Power On Self Test''' and comes from the original IBM specifications for the BIOS. Port 80 is a pre-defined I/O port to which programs can output a byte. The POST card displays the byte in hex on its 2 digit display. We use a lot of POST codes in coreboot, so if you can tell us the POST code you see, we will have some idea of what happened. &lt;br /&gt;
&lt;br /&gt;
If your coreboot machine is working properly, you will see it count up from 0xd0 to 0xd9 (while it is gunzipping the kernel) and then display 0x98 (Linux idle loop). There are POST cards with ISA bus, PCI bus, USB und parallel port connectors (the latter for laptops).&lt;br /&gt;
&lt;br /&gt;
Often they carry status LEDs for ISA/PCI signals such as: IRDY, BIOS-access, FRAME, OSC, PCI-CLK, RESET, 12V, -12V, 5V, -5V, 3.3V. Some cards were known to not function because the mainboard switches off the CLK on their slot after non-standard registration on PCI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Post card1.jpg|BIOS POST card for PCI.&lt;br /&gt;
Image:Post card2.jpg|BIOS POST card for PCI and ISA.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PCI POST cards can be found in various places.&lt;br /&gt;
&lt;br /&gt;
See also [[FAQ#How_can_I_write_to_port_0x80_from_userspace.3F|How can I write to port 0x80 from userspace]].&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tpcip.html&lt;br /&gt;
* http://www.elstonsystems.com/prod/pc_analyzer.html&lt;br /&gt;
* http://shopv2.elstonsystems.com/product_info.php/products_id/57&lt;br /&gt;
* http://www.uxd.com/trio.html&lt;br /&gt;
* http://www.soyousa.com/products/proddesc.php?id=261&lt;br /&gt;
&lt;br /&gt;
=== Null-modem cable ===&lt;br /&gt;
&lt;br /&gt;
A so-called '''null-modem cable''' is used for transmitting the output from a serial coreboot (or GRUB- or Linux-) console to another computer where a terminal program (such as minicom) can be used to display/save the messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Null modem cable.jpg|A null-modem cable.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compact Flash IDE adaptor ===&lt;br /&gt;
&lt;br /&gt;
Solid state disks (e.g. CompactFlash cards) save time during the repeated boot process compared with regular hard disks.&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tcfdp.html&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_ide2cf.php&lt;br /&gt;
* http://www.mini-box.com/s.nl/sc.8/category.14/.f&lt;br /&gt;
* http://www.acscontrol.com/Index_ACS.asp?Page=/Pages/Products/CompactFlash/IDE_To_CF_Adapter.htm&lt;br /&gt;
* http://www.pcengines.ch/cflash.htm&lt;br /&gt;
* http://www.psism.com/adcf.htm&lt;br /&gt;
* http://www.hsc-us.com/industrial/adapter/ATP.html (2xCF, one with hotswap!)&lt;br /&gt;
* http://www.mesanet.com/ (Choose DISK EMULATORS then CFADPTHD in the menu. 2xCF)&lt;br /&gt;
&lt;br /&gt;
=== Oscilloscope ===&lt;br /&gt;
&lt;br /&gt;
For hardware debugging purposes when it goes down the most atomic details. Consider '''logic analyzers''' as alternative.&lt;br /&gt;
&lt;br /&gt;
=== In Circuit Emulator hardware debugger ===&lt;br /&gt;
&lt;br /&gt;
Allows very time-saving burn/debug cycles with added tracing capabilities but somewhat costly.&lt;br /&gt;
&lt;br /&gt;
=== coreboot SDK ===&lt;br /&gt;
&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_sdk.php&lt;br /&gt;
&lt;br /&gt;
=== In Circuit chip programmer ===&lt;br /&gt;
&lt;br /&gt;
Should allow you to program your BIOS even if it is soldered to the motherboard.&lt;br /&gt;
&lt;br /&gt;
* http://www.xeltek.com/pages.php?pageid=8&lt;br /&gt;
&lt;br /&gt;
=== EPROM emulators ===&lt;br /&gt;
&lt;br /&gt;
These hardware devices pretend to be an EEPROM chip.&lt;br /&gt;
&lt;br /&gt;
* http://www.tech-tools.com/romtools.htm&lt;br /&gt;
* http://xtronics.com/memory/pktROM.htm&lt;br /&gt;
* http://www.tribalmicro.com/multirom/&lt;br /&gt;
* http://www.linuxselfhelp.com/HOWTO/Diskless-HOWTO-10.html (a larger list -- outdated)&lt;br /&gt;
&lt;br /&gt;
=== USB debug devices ===&lt;br /&gt;
&lt;br /&gt;
[[Image:PLX_NET20DC.jpg|thumb|right|PLX NET20DC USB Debug Device.]]&lt;br /&gt;
&lt;br /&gt;
An alternative to a serial console may be a USB debug device. They are not so common, yet. Their advantage is higher speed than a serial console. One might hook an FPGA to it for profiling purposes or some automated checks. Accessing a USB debug device from within BIOS is not different than other USB devices, and is part of the USB standard.&lt;br /&gt;
&lt;br /&gt;
See also [[EHCI Debug Port]].&lt;br /&gt;
&lt;br /&gt;
== Serial console software ==&lt;br /&gt;
&lt;br /&gt;
=== minicom ===&lt;br /&gt;
&lt;br /&gt;
Minicom is not just a serial terminal. It was written long before the internet existed and electronic communication was only possible with a modem to a mailbox-computer. Minicom is written with the ncurses library and provides its magic via a text interface. Other than logging, it provides z-modem up- and download-capability. &lt;br /&gt;
&lt;br /&gt;
=== CuteCom ===&lt;br /&gt;
&lt;br /&gt;
This is an easy to use serial-terminal-program which is even able to write all communication into a log-file. It needs a computer with installed Qt-libs.&lt;br /&gt;
&lt;br /&gt;
[[Image:CuteCom.png|thumb|left]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:GIGABYTE_GA-M57SLI-S4</id>
		<title>Talk:GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:GIGABYTE_GA-M57SLI-S4"/>
				<updated>2010-12-02T06:26:16Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: BIOS reengineer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;swap #CE and #WP and thus route #CE through the #WP jumper with 8 pin SPI possible ?&lt;br /&gt;
--[[User:Quux|da Great QUUX]] 14:24, 28 April 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Alternatively, you might flip a standard plcc-32 socket over the mainboard-chip. then wire a secondary plcc-32 socket to it wired 1:1 - except you connect /reset and /oe on the replacment chip, while you route the /oe from the mainboard to an NC pin on the secondary chip. Take off (hot unplug) the socket after successful boot-up to reflash the original chip. (so called &amp;quot;top hat flash&amp;quot; method, use at own risk, no successful report on GA M57 yet)&lt;br /&gt;
&lt;br /&gt;
on GA M57SLI, is FWH mode used ? is it necessary to use different ID on ID-pins ?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''badly in need:''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* is it practical to upgrade the secondary pad with an 2 MBit flash part ?&lt;br /&gt;
&lt;br /&gt;
''2 MByte:'' the southbridge needs to decode the full 2Mbyte (these are 16Mbit parts) address range for it to be useful in practice. A lot of the SB parts I looked at, years ago, reserved the top 2M of the 2 GB space. so it is something we have to check.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://sites.google.com/site/pinczakko/pinczakko-s-guide-to-ami-bios-reverse-engineering-1 Salihun] on '''AWARD''' BIOS re-engineering. AWARD is inside many boards by Gigabyte like M57SLI.&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-19T03:45:26Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */ abuild issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
Enable Serial Console for debugging. It will come up at 115200,8n1 option SERIAL_CONSOLE&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal will show whether LB manages with your RAM. &lt;br /&gt;
&lt;br /&gt;
run targets/buildtarget&lt;br /&gt;
then run make in the A8N-E directory. you get a 512KB image.&lt;br /&gt;
abuild may come up with a 508KB image, which is not working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in bash you may type&lt;br /&gt;
svn co svn://linuxbios.org/buildrom&lt;br /&gt;
then type &amp;quot;make menuconfig&amp;quot; but the A8NE is not supported there yet.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* this tutorial is not as complete as the one for Gigabyte M57-SLI, so please look there for info on building the image.&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only : the blue DIMM_B1 socket should be populated only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2007-12-19T00:23:10Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Which board do you have? ==&lt;br /&gt;
&lt;br /&gt;
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mainboard photo on the backside of the GA-M57SLI-S4 box shows a ROM socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with PLCC32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SOIC (SPI). All 4 have unpopulated secondary pads. For the PLCC32 versions, the procedure outlined below can be used to add a ROM socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the GA-M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the GA-M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_L1_status = Untested&lt;br /&gt;
|CPU_L2_status = Untested&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = OK&lt;br /&gt;
|CPU_virt_status = Untested&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = N/A&lt;br /&gt;
|RAM_DDR2_status = OK&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = OK&lt;br /&gt;
|RAM_dualchannel_comments = According to memtest86+ it works.&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested with an CF-IDE adapter without DMA support. Booting with LinuxBIOS is no problem. Booting with propritary BIOS didn't work.&lt;br /&gt;
|CDROM_DVD_status = OK&lt;br /&gt;
|SATA_status = OK&lt;br /&gt;
|SATA_comments = A FILO patch is needed (see below) as LinuxBIOS is too fast and the disks have not spun up yet when LinuxBIOS is done.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: mounting USB storage devices and accessing files on them. USB MIDI-keyboard works, too (keyboard == the music instrument, in this case).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = OK&lt;br /&gt;
|Onboard_audio_comments = Use '''modprobe snd-hda-intel''' (Alsa).&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = Untested&lt;br /&gt;
|Onboard_firewire_comments = PCI 01:0a.0 (FireWire) shows up in lspci as of r2921, but needs testing.&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = WIP&lt;br /&gt;
|PCI_cards_comments = As of r2921 PCI 01:07.0 appears fully functional; PCI 01:08.0 (closer to the board edge) shows up in lspci, but no interrupts yet.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Unknown&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = N/A&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = OK&lt;br /&gt;
|PCIE_x16_comments = Graphics card works (but not with the propritary nVidia driver right now).&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = No&lt;br /&gt;
|Floppy_comments = Should work, but doesn't.&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM1_comments = Serial console for LinuxBIOS and Linux is fully operational.&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Doing '''modprobe parport parport_pc''' works, but no further tests were done.&lt;br /&gt;
|PS2_keyboard_status = OK&lt;br /&gt;
|PS2_keyboard_comments = Validated when booting with a PCIe VGA card under FILO and Linux; LinuxBIOS logs an error (&amp;quot;keyboard init failed&amp;quot;) but this is not critical.&lt;br /&gt;
|PS2_mouse_status = OK&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = Untested&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|Speaker_comments = Works with '''beep''' (use '''modprobe pcspkr''').&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Sensors and fans work, see [http://linuxbios.org/pipermail/linuxbios/2007-April/020230.html instructions]. Some sensor readouts are off, and the pwm polarity seems to be inverted, but fan speed can be set.&lt;br /&gt;
|Watchdog_status = Untested&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Won't work as long as there's no ACPI implementation for this board.&lt;br /&gt;
|Powersave_status = Untested&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = HD-LED works. Power-LED untested.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|RNG_status = Untested&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = Untested&lt;br /&gt;
|WakeOnKeyboard_status =Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = As of revision 2958, [[Flashrom]] now works under LinuxBIOS if you have a PLCC version of this board. Flashrom works fine under the proprietary BIOS. SPI flashing support is on its way, but not 100% there yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the GA-M57SLI-S4, but might work with other chips (FWH). This means a hardware hack is necessary to prevent accidental bricking of the board.&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' boot parameter with most old kernels (legacy BIOS v. F12 is better).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color: red&amp;quot;&amp;gt;If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PLCC32 hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working LinuxBIOS chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers: [http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS].&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
=== SOIC hardware hack ===&lt;br /&gt;
&lt;br /&gt;
If you have an SOIC revision, you can add a second SOIC chip in the unpopulated position, and use a switch to toggle between both chips. Instructions can be found here [http://linuxbios.org/pipermail/linuxbios/2007-September/024395.html here], and here are [http://stuge.se/lb/m57sli/ some photos]. These instructions have been [http://www.linuxbios.org/pipermail/linuxbios/2007-October/025827.html confirmed to work], with more photos [http://illmeyer.com/hg87/ here].&lt;br /&gt;
&lt;br /&gt;
=== Flashrom ===&lt;br /&gt;
&lt;br /&gt;
Flashrom works fine under the proprietary BIOS (PLCC32 version). There seem to be some issues under LinuxBIOS (PLCC32 version), see this  [http://tracker.linuxbios.org/trac/LinuxBIOS/ticket/87 this issue tracker ticket]. &lt;br /&gt;
&lt;br /&gt;
Flashrom does not yet work on the SOIC version of the board, but that is being worked on. It will detect the SOIC chip, but the read and write functions are not implemented yet (as of 2007-10-13).&lt;br /&gt;
&lt;br /&gt;
Flashrom can write the MX25L4005 SPI chip, but just under propritary bios.&lt;br /&gt;
&lt;br /&gt;
== Payload ==&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
Another possible payload is 'linux-as-a-bootloader' (LAB). You will need a 1MB ROM chip (the GA-M57SLI-S4 comes with a 512KB ROM chip) for this payload. It consists of a (stripped down) kernel + busybox, which can then be used to kexec a kernel from disk. If your disks are playing up, you will still have a busybox environment on boot, which could be useful for debugging.&lt;br /&gt;
&lt;br /&gt;
== Buildrom vs. manual build ==&lt;br /&gt;
&lt;br /&gt;
You can build a LinuxBIOS image with a kconfig-style configuration tool (buildrom) if you want to use FILO or LAB. This is by far the easiest way to build a ROM image. Continue to the [[#Buildrom|Buildrom section]].&lt;br /&gt;
&lt;br /&gt;
If you want another payload or would like to get closer to the metal, you can use the manual build method outlined below under [[#Manual build|Manual build]].&lt;br /&gt;
&lt;br /&gt;
== Buildrom ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.&lt;br /&gt;
&lt;br /&gt;
Check out buildrom:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://linuxbios.org/buildrom&lt;br /&gt;
&lt;br /&gt;
Now configure buildrom:&lt;br /&gt;
&lt;br /&gt;
  cd buildrom/buildrom-devel&lt;br /&gt;
  make menuconfig&lt;br /&gt;
&lt;br /&gt;
Configure to your liking. If you use the LAB payload, make sure to exclude the kexec binary and boot menu from the initramfs, otherwise your image will be too big. Please note that currently only the FILO and LAB payloads have been tested. The other payloads likely require some more work before they will be useable. Patches are welcome, of course.&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
If all goes well, you should now have a ROM image file &lt;br /&gt;
&lt;br /&gt;
  deploy/gigabyte-m57sli.rom&lt;br /&gt;
&lt;br /&gt;
If you are building a FILO payload, it will be exactly 512KB in size. If you are building an LAB payload, the image will be 1MB.&lt;br /&gt;
&lt;br /&gt;
=== FILO payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the LAB payload.&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
=== LAB payload ===&lt;br /&gt;
&lt;br /&gt;
Skip this section if you use the FILO payload.&lt;br /&gt;
&lt;br /&gt;
The LAB payload expects a file /lab.conf on /dev/sda1 with contents like this:&lt;br /&gt;
&lt;br /&gt;
  CMDLINE=&amp;quot;root=/dev/sda1 ro console=tty0 console=ttyS0,115200&amp;quot;&lt;br /&gt;
  KERNEL=&amp;quot;/vmlinuz-2.6.22.1&amp;quot;&lt;br /&gt;
  INITRD=&amp;quot;&amp;quot;&lt;br /&gt;
  VT=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is the kernel that you will be running after boot. It will be kexec'ed by the kernel that is burned into your ROM chip.&lt;br /&gt;
&lt;br /&gt;
You will also need a statically linked copy of kexec, which the LAB payload expects to reside at &lt;br /&gt;
&lt;br /&gt;
  /sbin/kexec&lt;br /&gt;
&lt;br /&gt;
If you are on a Debian-based system, you can easily recompile your kexec package to be statically linked by following these instructions:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/src&lt;br /&gt;
  apt-get source kexec-tools&lt;br /&gt;
  export LDFLAGS=&amp;quot;-static&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now edit kexec-tools-1.101-kdump10/kexec-tools-1.101/kexec/Makefile, change line 53 to&lt;br /&gt;
  &lt;br /&gt;
  $(CC) $(LDFLAGS) $(KCFLAGS) -o $@ $(KEXEC_OBJS) $(UTIL_LIB) $(LIBS)&lt;br /&gt;
&lt;br /&gt;
(you're adding the LDFLAGS variable)&lt;br /&gt;
&lt;br /&gt;
  cd kexec-tools-1.101-kdump10 &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -b&lt;br /&gt;
  cd ..&lt;br /&gt;
  dpkg -i kexec-tools_1.101-kdump10-2ubuntu2_i386.deb&lt;br /&gt;
&lt;br /&gt;
Adjust the package name as necessary for your distribution. You can tell if your copy of kexec is statically linked by running 'file' on it:&lt;br /&gt;
&lt;br /&gt;
  file /sbin/kexec &lt;br /&gt;
&lt;br /&gt;
If all is well, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
  /sbin/kexec: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, for GNU/Linux 2.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
The binary will also be considerably larger than its dynamically linked cousin.&lt;br /&gt;
&lt;br /&gt;
Note that you &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; build a 32-bit version of kexec, because buildrom puts a 32 bit kernel into the ROM image. A 32-bit kexec can kexec into a 64 bit kernel, so if your system is 64 bit this will work just fine.&lt;br /&gt;
&lt;br /&gt;
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.&lt;br /&gt;
&lt;br /&gt;
== Manual build ==&lt;br /&gt;
&lt;br /&gt;
Skip this section if you used buildrom; in that case jump to [[#Burning LinuxBIOS|Burning LinuxBIOS]] below.&lt;br /&gt;
&lt;br /&gt;
=== Building the payload ===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build LinuxBIOS as explained below, because it gets included in the LinuxBIOS ROM image.&lt;br /&gt;
&lt;br /&gt;
=== Your menu.lst entry ===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
Also, the GA-M57SLI-S4 will not boot unless you add acpi_use_timer_override as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1.&lt;br /&gt;
&lt;br /&gt;
=== Current status of the LinuxBIOSv2 tree ===&lt;br /&gt;
&lt;br /&gt;
Use revision 2619 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Building LinuxBIOS ===&lt;br /&gt;
&lt;br /&gt;
Make sure that the path to your payload is correct, by editing &lt;br /&gt;
&lt;br /&gt;
  targets/gigabyte/m57sli/Config.lb&lt;br /&gt;
&lt;br /&gt;
and updating all the lines that start with 'payload'. There are 2 occurrences, one for the normal image, and one for the fallback image.&lt;br /&gt;
&lt;br /&gt;
If you get compilation errors, you may need to disable the stack protector that is now enabled by default in the version of GCC shipped with some newer distros. See the [[stack protector]] page.&lt;br /&gt;
&lt;br /&gt;
Now build a target directory:&lt;br /&gt;
&lt;br /&gt;
  cd targets&lt;br /&gt;
  ./buildtarget gigabyte/m57sli&lt;br /&gt;
&lt;br /&gt;
Finally build the image:&lt;br /&gt;
&lt;br /&gt;
  cd gigabyte/m57sli/m57sli&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.&lt;br /&gt;
&lt;br /&gt;
== Burning LinuxBIOS ==&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the LinuxBIOS v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
(that's assuming the image is called linuxbios.rom; if you used buildrom it would be called gigabyte-m57sli.rom and live in the 'deploy' subdirectory).&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
* All PCI and PCI Express slots are now functional, but it seems like the PCI slot on the edge of the board and at least one of the PCI Express slots does not get interrupts yet. This is being investigated.&lt;br /&gt;
* There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
:to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with these issues, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-19T00:20:46Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Known issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
Enable Serial Console for debugging. It will come up at 115200,8n1 option SERIAL_CONSOLE&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal will show whether LB manages with your RAM. make sure that the fallback &amp;quot;ROM SECTION SIZE=0x40000&amp;quot; in case your image is only 508KB, caused by an original rom section size variable value of 0x3f000 . You need a 512KB size image.&lt;br /&gt;
If you are still unhappy, use this [[Image:Linuxbios_ASUS_A8N-E.rom.nonzip.zip binary]]  ROM image, which was tested OK in Dec-2007.&lt;br /&gt;
&lt;br /&gt;
in bash you may type&lt;br /&gt;
svn co svn://linuxbios.org/buildrom&lt;br /&gt;
then type &amp;quot;make menuconfig&amp;quot; but the A8NE is not supported there yet.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* this tutorial is not as complete as the one for Gigabyte M57-SLI, so please look there for info on building the image.&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only : the blue DIMM_B1 socket should be populated only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-19T00:17:25Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */ svn co svn://linuxbios.org/buildrom then type &amp;quot;make menuconfig&amp;quot; but the A8NE is not supported there yet.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
Enable Serial Console for debugging. It will come up at 115200,8n1 option SERIAL_CONSOLE&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal will show whether LB manages with your RAM. make sure that the fallback &amp;quot;ROM SECTION SIZE=0x40000&amp;quot; in case your image is only 508KB, caused by an original rom section size variable value of 0x3f000 . You need a 512KB size image.&lt;br /&gt;
If you are still unhappy, use this [[Image:Linuxbios_ASUS_A8N-E.rom.nonzip.zip binary]]  ROM image, which was tested OK in Dec-2007.&lt;br /&gt;
&lt;br /&gt;
in bash you may type&lt;br /&gt;
svn co svn://linuxbios.org/buildrom&lt;br /&gt;
then type &amp;quot;make menuconfig&amp;quot; but the A8NE is not supported there yet.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only : the blue DIMM_B1 socket should be populated only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-18T23:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
Enable Serial Console for debugging. It will come up at 115200,8n1 option SERIAL_CONSOLE&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal will show whether LB manages with your RAM. make sure that the fallback &amp;quot;ROM SECTION SIZE=0x40000&amp;quot; in case your image is only 508KB, caused by an original rom section size variable value of 0x3f000 . You need a 512KB size image.&lt;br /&gt;
If you are still unhappy, use this [[Image:Linuxbios_ASUS_A8N-E.rom.nonzip.zip binary]]  ROM image, which was tested OK in Dec-2007.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only : the blue DIMM_B1 socket should be populated only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-18T08:23:40Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */ binary img&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal with 115000 8n1 will show whether LB manages with your RAM. make sure that the fallback &amp;quot;ROM SECTION SIZE=0x40000&amp;quot; in case your image is only 508KB, caused by an original rom section size variable value of 0x3f000 . You need a 512KB size image.&lt;br /&gt;
If you are still unhappy, use this [[Image:Linuxbios_ASUS_A8N-E.rom.nonzip.zip binary]]  ROM image, which was tested OK in Dec-2007.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only : the blue DIMM_B1 socket should be populated only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-18T07:29:01Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Known issues */  populate 1 ram socket only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal with 115000 8n1 will show whether LB manages with your RAM. make sure that the fallback &amp;quot;ROM SECTION SIZE=0x40000&amp;quot; in case your image is only 508KB, caused by an original rom section size variable value of 0x3f000 . You need a 512KB size image.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only : the blue DIMM_B1 socket should be populated only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-18T07:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */  508 kb only : fallback rom section size  bug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal with 115000 8n1 will show whether LB manages with your RAM. make sure that the fallback &amp;quot;ROM SECTION SIZE=0x40000&amp;quot; in case your image is only 508KB, caused by an original rom section size variable value of 0x3f000 . You need a 512KB size image.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-18T06:38:14Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */   no visible POST codes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
The revisions 3000 and up work, but don't expect anything to see on the POST card. The serial Terminal with 115000 8n1 will show whether LB manages with your RAM and all.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-12-07T16:15:39Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */   &amp;quot;pre-programmed&amp;quot; might sound misleading as a prerequisite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Asus a8n e.jpg|right|thumb|ASUS A8N-E, rev. 2.00]]&lt;br /&gt;
&lt;br /&gt;
This HOWTO explains how to use LinuxBIOS on the '''[http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=171&amp;amp;l4=0&amp;amp;model=455&amp;amp;modelmenu=2 ASUS A8N-E]''' board.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
{{Status|&lt;br /&gt;
&lt;br /&gt;
|CPU_status = OK&lt;br /&gt;
|CPU_comments = Tested: AMD Athlon(tm) 64 Processor 3000+.&lt;br /&gt;
|CPU_L1_status = OK&lt;br /&gt;
|CPU_L1_comments = CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)&lt;br /&gt;
|CPU_L2_status = OK&lt;br /&gt;
|CPU_L2_comments = CPU: L2 Cache: 512K (64 bytes/line)&lt;br /&gt;
|CPU_L3_status = N/A&lt;br /&gt;
|CPU_multiple_status = N/A&lt;br /&gt;
|CPU_multicore_status = Untested&lt;br /&gt;
|CPU_virt_status = N/A&lt;br /&gt;
&lt;br /&gt;
|RAM_EDO_status = N/A&lt;br /&gt;
|RAM_SDRAM_status = N/A&lt;br /&gt;
|RAM_SODIMM_status = N/A&lt;br /&gt;
|RAM_DDR_status = OK&lt;br /&gt;
|RAM_DDR_comments = Tested with one DIMM in slot DIMM_B1 (see manual).&lt;br /&gt;
|RAM_DDR2_status = N/A&lt;br /&gt;
|RAM_DDR3_status = N/A&lt;br /&gt;
|RAM_dualchannel_status = Untested&lt;br /&gt;
|RAM_ecc_status = Untested&lt;br /&gt;
|RAM_ecc_comments = The board supports ECC according to the manual.&lt;br /&gt;
&lt;br /&gt;
|IDE_status = OK&lt;br /&gt;
|IDE_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|IDE_25_status = N/A&lt;br /&gt;
|IDE_CF_status = OK&lt;br /&gt;
|IDE_CF_comments = Tested: Primary IDE (master and slave) and secondary IDE (master and slave).&lt;br /&gt;
|CDROM_DVD_status = Untested&lt;br /&gt;
|SATA_status = WIP&lt;br /&gt;
|SATA_comments = Port 3 (''hde'' in FILO) and 4 (''hdg'' in FILO) on the board work fine. Port 1 and 2 don't seem to work, this is being investigated.&lt;br /&gt;
|USB_status = OK&lt;br /&gt;
|USB_comments = Tested: USB keyboard (on each of the 10 possible USB ports).&lt;br /&gt;
|Onboard_VGA_status = N/A&lt;br /&gt;
|Onboard_ethernet_status = OK&lt;br /&gt;
|Onboard_audio_status = Untested&lt;br /&gt;
|Onboard_modem_status = N/A&lt;br /&gt;
|Onboard_firewire_status = N/A&lt;br /&gt;
|Smartcard_status = N/A&lt;br /&gt;
|Onboard_CF_status = N/A&lt;br /&gt;
|Onboard_PCMCIA_status = N/A&lt;br /&gt;
&lt;br /&gt;
|ISA_cards_status = N/A&lt;br /&gt;
|AMR_cards_status = N/A&lt;br /&gt;
|PCI_cards_status = OK&lt;br /&gt;
|PCI_cards_comments = Tested: PCI VGA card in all three PCI slots.&lt;br /&gt;
|AGP_cards_status = N/A&lt;br /&gt;
|PCIE_x1_status = Untested&lt;br /&gt;
|PCIE_x2_status = N/A&lt;br /&gt;
|PCIE_x4_status = Untested&lt;br /&gt;
|PCIE_x8_status = N/A&lt;br /&gt;
|PCIE_x16_status = Untested&lt;br /&gt;
|PCIE_x32_status = N/A&lt;br /&gt;
|HTX_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Floppy_status = Untested&lt;br /&gt;
|COM1_status = OK&lt;br /&gt;
|COM2_status = N/A&lt;br /&gt;
|PP_status = OK&lt;br /&gt;
|PP_comments = Tested: '''modprobe ppdev''', further tests were not performed.&lt;br /&gt;
|PS2_keyboard_status = WIP&lt;br /&gt;
|PS2_keyboard_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|PS2_mouse_status = WIP&lt;br /&gt;
|PS2_mouse_comments = Doesn't seem to work yet, this is being investigated.&lt;br /&gt;
|Game_port_status = Untested&lt;br /&gt;
|IR_status = N/A&lt;br /&gt;
|Speaker_status = OK&lt;br /&gt;
|DiskOnChip_status = N/A&lt;br /&gt;
&lt;br /&gt;
|Sensors_status = OK&lt;br /&gt;
|Sensors_comments = Tested: '''sensors''' reports K8 core temp. (kernel module '''k8temp''') and various other values from the IT8712F Super I/O (kernel module '''it87''').&lt;br /&gt;
|Watchdog_status = N/A&lt;br /&gt;
|CAN_bus_status = N/A&lt;br /&gt;
|CPUfreq_status = No&lt;br /&gt;
|CPUfreq_comments = Needs (at least partial) ACPI support.&lt;br /&gt;
|Powersave_status = N/A&lt;br /&gt;
|ACPI_status = No&lt;br /&gt;
|ACPI_comments = There's no ACPI implementation for this board.&lt;br /&gt;
|Reboot_status = OK&lt;br /&gt;
|Poweroff_status = No&lt;br /&gt;
|LEDs_status = OK&lt;br /&gt;
|LEDs_comments = There's a green LED on the board which is enabled when the board is powered-on. Works out of the box, no special LinuxBIOS support required.&lt;br /&gt;
|HPET_status = Untested&lt;br /&gt;
|HPET_comments = Doesn't seem to be enabled right now, but [http://lkml.org/lkml/2007/10/19/226 the hardware seems to support it].&lt;br /&gt;
|RNG_status = N/A&lt;br /&gt;
|WakeOnModem_status = Untested&lt;br /&gt;
|WakeOnLAN_status = N/A&lt;br /&gt;
|WakeOnLAN_comments = The on-board ethernet device doesn't seem to support WOL (also not mentioned in the manual).&lt;br /&gt;
|WakeOnKeyboard_status = Untested&lt;br /&gt;
|WakeOnMouse_status = Untested&lt;br /&gt;
|Flashrom_status = OK&lt;br /&gt;
|Flashrom_comments = Works fine when booted with BIOS and also with LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Before you begin ==&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-E''' is an Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007; used items at eBay ~ €20-35). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8N-SLI Deluxe''', an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same PCB design with more solder pads populated (please confirm), and is also out of stock mostly.&lt;br /&gt;
&lt;br /&gt;
The '''ASUS A8NE-FM/S''' has initial support in the form of [http://www.linuxbios.org/pipermail/linuxbios/2007-July/023029.html a patch].&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external EPROM programmer, just a spare working 49LF004 chip. 8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
The PLCC32 BIOS chip is of type SST 49LF004B of which you need a spare programmed piece. You might reflash an empty or used one plugged into your A8N.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
* Single DIMM support only.&lt;br /&gt;
* The MAC address is stored in flash for almost all CK804/MCP55 boards. All of these boards flashed with LB probably have the same MAC address. See src/southbridge/nvidia/ck804/romstrap.inc and src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these boards, the MAC address is stored in a separate EEPROM, but you can't count on that.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FAQ"/>
				<updated>2007-12-07T16:07:01Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* External EPROM/Flash programmer that can program the flash on your motherboard */  external may not be necessary for starters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== What is LinuxBIOS ? ===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS is a Free Software project aimed at replacing the proprietary BIOS (firmware) you can find in most of today's computers.&lt;br /&gt;
&lt;br /&gt;
It performs just a little bit of hardware initialization and then executes a so-called [[Payloads|payload]].&lt;br /&gt;
&lt;br /&gt;
Some of the many possible payloads are: a [[Linux]] kernel, [[FILO]], [[GRUB2]], [http://www.openbios.org/ OpenBIOS], [http://www.openbios.org/Open_Firmware Open Firmware], [http://www.openbios.org/SmartFirmware SmartFirmware], [http://www.gnu.org/software/gnufi/ GNUFI] (UEFI), [[Etherboot]], [[ADLO]] (for booting [http://en.wikipedia.org/wiki/Windows_2000 Windows 2000] and [http://openbsd.org/ OpenBSD]), [[Plan 9]], or [[memtest86]].&lt;br /&gt;
&lt;br /&gt;
Our primary motivation for the project was maintenance of large clusters, but not surprisingly interest and contributions have come from people with varying backgrounds. Today LinuxBIOS can be used in a wide variety of scenarios, ranging from clusters, embedded systems, desktop PCs, servers and more.&lt;br /&gt;
&lt;br /&gt;
=== Why do we need LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
==== Why do we need LinuxBIOS for cluster maintainance? ====&lt;br /&gt;
&lt;br /&gt;
Current PCs used as cluster nodes depend on a vendor-supplied BIOS for booting. The BIOS in turn relies on inherently unreliable devices such as floppy disks and hard drives to boot the operating system. In addition, current BIOS software is unable to accommodate non-standard hardware making it difficult to support experimental work. The BIOS is slow and often erroneous and redundant and, most importantly, maintenance is a nightmare. Imagine walking around with a keyboard and monitor to every one of the 128 nodes in a cluster to change one BIOS setting. &lt;br /&gt;
&lt;br /&gt;
LinuxBIOS with Linux as a [[Payloads|payload]] (other payloads are possible!) gunzip's the Linux kernel straight out of NVRAM and essentially requires no moving parts other than the fan. It does a minimal amount of hardware initialization before jumping to the kernel start and lets Linux do the rest. As a result, it is much faster (current record 3 seconds), which has sparked interest in the consumer electronics community as well. Moreover, updates can be performed over the network. &lt;br /&gt;
&lt;br /&gt;
Using a real operating system to boot another operating system provides much greater flexibility than using a simple netboot program or the BIOS. Because Linux is the boot mechanism, it can boot over standard Ethernet or over other interconnects such as Myrinet, Quadrics, or SCI. It can use SSH connections to load the kernel, or it can use the InterMezzo caching file system or traditional NFS. Cluster nodes can be as simple as they need to be – perhaps as simple as a CPU and memory, no disk, no floppy, and no file system. The nodes will be much less autonomous thus making them easier to maintain.&lt;br /&gt;
&lt;br /&gt;
==== Why do we need LinuxBIOS for other purposes? ====&lt;br /&gt;
&lt;br /&gt;
Some aspects of DRM are not travelling well with the idea of a free computer system. As many computer magazines already pointed out, there may be future restrictions imposed by BIOSes, that a customer is little aware of before purchase and might not harmonize with the idea of freedom and/or security in some cases.&lt;br /&gt;
&lt;br /&gt;
=== Who is working on LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
The LinuxBIOS project was started in the winter of 1999 in the Advanced Computing Laboratory at Los Alamos National Laboratory (LANL) by [[User:Rminnich|Ron Minnich]]. Two undergraduate students, James Hendricks and Dale Webster spent their winter vacation putting together the proof of concept implementation. &lt;br /&gt;
&lt;br /&gt;
Since then, a [[Contributors|long list of people have contributed]] both in discussions and actual code. Please don't be shy and let us know if you are missing from the list. It's not a purposeful omission, just an unfortunate mistake.&lt;br /&gt;
&lt;br /&gt;
=== Who is funding LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
The LinuxBIOS project is funded by the Los Alamos Computer Science Institute and the Department of Energy's Office of Science.&lt;br /&gt;
&lt;br /&gt;
See also the [[Sponsors|list of LinuxBIOS sponsors]].&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
=== Will LinuxBIOS work on my machine? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Motherboards]] page for which mainboards are supported, and also the list of [[Supported Chipsets and Devices]]. See the [[Products]] page for a list of vendors selling products running LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
If the above sources don't help, please send the following to the [[Mailinglist|mailing list]]:&lt;br /&gt;
&lt;br /&gt;
* Step 1: A very brief description of your system: CPU, northbridge, southbridge, mainboard and optionally other important details.&lt;br /&gt;
* Step 2: Linux lspci output for your system, generated by booting Linux via the original BIOS and runnning lspci.&lt;br /&gt;
* Step 3: Super I/O chip on the mainboard (report the model numbers on the actual chip, for example &amp;quot;Winbond W83627HF&amp;quot;).&lt;br /&gt;
* Step 4: Type of BIOS device (see the question &amp;quot;How do I identify the BIOS chip on my mainboard?&amp;quot; below).&lt;br /&gt;
* Step 5: URL to the mainboard specifications page (optional).&lt;br /&gt;
* Step 6: Any other relevant information you can provide.&lt;br /&gt;
&lt;br /&gt;
If you can't do step 1 above, please describe (as best you can) the specific CPU chip and the chipset used on the mainboard.&lt;br /&gt;
&lt;br /&gt;
Usually in less than a day, someone will respond on the LinuxBIOS mailing list saying your mainboard is supported in the main LinuxBIOS source tree, it is currently in development, it is not yet supported or the manufacturer will not release information needed to provide LinuxBIOS support. In the latter case, please let the manufacturer know that you want LinuxBIOS support and his failure to release chipset information is making that very difficult.&lt;br /&gt;
&lt;br /&gt;
=== What commercial products use LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
See the [[products]] page.&lt;br /&gt;
&lt;br /&gt;
=== Which different operating systems will LinuxBIOS boot? ===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS should support almost any modern operating system '''which does not make [http://en.wikipedia.org/wiki/BIOS_interrupt_call BIOS calls]''':&lt;br /&gt;
&lt;br /&gt;
* Linux (of course)&lt;br /&gt;
* Plan 9&lt;br /&gt;
* Windows 2000 (via [[ADLO]])&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS does '''not''' support:&lt;br /&gt;
&lt;br /&gt;
* We have tested some of the BSD OSes and have seen, that FreeBSD for example makes BIOS calls, which is not supported by LinuxBIOS. Possibly with help of the tool ''ADLO'', it may be possible to boot FreeBSD like it is now, but the right thing to do, is to remove FreeBSD's dependence on BIOS calls.&lt;br /&gt;
* any DOS &lt;br /&gt;
* Windows versions older than Windows 2000 (they make BIOS calls) &amp;amp;mdash; (Does [[ADLO]] work with those versions?)&lt;br /&gt;
* [http://www.menuetos.net/ MenuetOS] (makes BIOS calls)&lt;br /&gt;
&lt;br /&gt;
It appears feasible, however, to introduce some &amp;quot;legacy support&amp;quot; to LinuxBIOS in the future to support OSes like the abovementioned.&lt;br /&gt;
&lt;br /&gt;
=== What chipsets and Super I/O devices are supported? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Chipsets and Devices]] page.&lt;br /&gt;
&lt;br /&gt;
=== Where is the mailing list archived? ===&lt;br /&gt;
&lt;br /&gt;
See [[Mailinglist]].&lt;br /&gt;
&lt;br /&gt;
=== Is there a LinuxBIOS IRC channel? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see [[IRC]].&lt;br /&gt;
&lt;br /&gt;
=== Where do I get the code? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Download LinuxBIOS|download page]].&lt;br /&gt;
&lt;br /&gt;
=== How do I build LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
See the [[documentation]].&lt;br /&gt;
&lt;br /&gt;
=== How can I help with LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
There are many ways how you can help us:&lt;br /&gt;
* Promote LinuxBIOS, tell all your friends about it, blog about it etc.&lt;br /&gt;
* Test LinuxBIOS, [http://tracker.linuxbios.org/trac/LinuxBIOS/newticket report] any bugs you find, or let us know about any suggestions for improvements you have.&lt;br /&gt;
* Help us to make the list of [[Supported Motherboards]] and the list of [[Supported Chipsets and Devices]] bigger by contributing code. Please also read the [[Development Guidelines]] in that case.&lt;br /&gt;
* If you have a mainboard with USB2 (EHCI-controller) you can look if it supports the ''[[EHCI_Debug_Port|Debug Port]]'' and mail the information to us, if it is not already there.&lt;br /&gt;
* If you are familiar with microcontroller development, you might be able to build a debugging tool for the [[EHCI_Debug_Port|Debug Port]]. If you are successful, we like to hear about it.&lt;br /&gt;
* Test, if QNX or Solaris are able to boot on a mainboard with LinuxBIOS.&lt;br /&gt;
* Have a look at the [http://tracker.linuxbios.org/trac/LinuxBIOS/report/1 list of open issues/bugs] and try to reproduce them or (preferrably) fix them.&lt;br /&gt;
* Contact [[User:Rminnich|Ron Minnich]] or [[User:Stepan|Stefan Reinauer]] for bigger projects related to LinuxBIOS.&lt;br /&gt;
* Contact us on the [[Mailinglist|mailing list]] if you have any further questions or suggestions.&lt;br /&gt;
&lt;br /&gt;
=== What do the abbreviations in this wiki stand for? ===&lt;br /&gt;
&lt;br /&gt;
See [[Glossary]].&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
=== Where can I buy BIOS chips (empty or pre-flashed)? ===&lt;br /&gt;
&lt;br /&gt;
When developing or simply trying out LinuxBIOS you always need a means to revert to your old BIOS in case something goes wrong. One way to do this is to get an extra BIOS chip (PLCC or DIP) and copy your original BIOS image onto that chip (using [[Flashrom]], for example). If you have a socketed BIOS (not soldered onto the mainboard), you can hot-swap the chips while your computer is running. &lt;br /&gt;
&lt;br /&gt;
You have several options to get spare BIOS chips:&lt;br /&gt;
* Most local or online electronics dealers carry some, for example:&lt;br /&gt;
** Germany:&lt;br /&gt;
*** http://www.bios-chip.de&lt;br /&gt;
*** http://www.bios-fix.de&lt;br /&gt;
*** http://www.bios-shop.com&lt;br /&gt;
*** http://www.bios-chips.com&lt;br /&gt;
*** http://www.conrad.de&lt;br /&gt;
*** http://www.endrich.com/de/site.php/47385 (it's unknown whether they ship small quantities)&lt;br /&gt;
** UK:&lt;br /&gt;
*** http://bios-repair.co.uk/&lt;br /&gt;
* You can search eBay for BIOS chips (either empty ones or pre-flashed ones).&lt;br /&gt;
* You can rip out chips from old/broken mainboards and re-use them (you can check flea markets, eBay, etc. for cheap and/or broken mainboards).&lt;br /&gt;
&lt;br /&gt;
=== What kind of hardware tools do I need? ===&lt;br /&gt;
&lt;br /&gt;
A motherboard (or mainboard as LinuxBIOS calls it) that has a supported chipset on it. Ok... well not exactly. As long as you have the documentation for the chipset/mainboard and it's free of any NDA issues you can use an unsupported chipset/mainboard, but you have a twisty road ahead of you.&lt;br /&gt;
	&lt;br /&gt;
And of course you need a Linux development machine. The LinuxBIOS build environment is not supported on Windows. It may be possible to do it under cygwin but nobody has tried.&lt;br /&gt;
		&lt;br /&gt;
It's also handy to have one/some/all of the following:&lt;br /&gt;
	&lt;br /&gt;
==== Flash-PLAICE  Programmer, Logic Analyzer and In-Circuit Emulator ====&lt;br /&gt;
&lt;br /&gt;
[http://flash-plaice.wikispaces.com Flash -PLAICE (In Development)] see also  [http://hardware.slashdot.org/article.pl?sid=07/05/01/0017244 /.slashdot ]&lt;br /&gt;
The PLAICE is a powerful in circuit development tool that combines the features of programming and emulating FLASH devices as well as high speed multi-channel logic analysis into one device.&lt;br /&gt;
&lt;br /&gt;
The FLASH BIOS emulator feature will help speed development of LinuxBIOS porting since the developer will no longer have to wait for either swapping FLASH devices or for lengthy FLASH programming cycles.&lt;br /&gt;
&lt;br /&gt;
The design will also perform as a multi-channel logic analyzer with a JAVA client.&lt;br /&gt;
&lt;br /&gt;
The PLAICE will make use of an adapter cable that will interface to the mainboard via the FLASH BIOS socket or onto the pins of a soldered in place FLASH device. It may also be used to program a FLASH device or emulate a FLASH device in circuit. Since the PLAICE attaches directly to the in-circuit FLASH device, the FLASH may be programmed without the need to reverse engineer any FLASH WRITE/ENABLE &amp;quot;security through obscurity&amp;quot; protection schemes incorporated into a mainboard.&lt;br /&gt;
&lt;br /&gt;
==== Artecgroup programmable LPC dongle ====&lt;br /&gt;
&lt;br /&gt;
[http://www.artecgroup.com/products/hardware-products/programmable-lpc-dongle.html] and [http://www.opencores.org/projects.cgi/web/usb_dongle_fpga/overview]&lt;br /&gt;
&lt;br /&gt;
==== External EPROM/Flash programmer that can program the flash on your motherboard ====&lt;br /&gt;
&lt;br /&gt;
external programmers are not always necessary. Use your mainboard as a programmer instead. Boot up with a known-good image, then unplug the plcc32 while powered on.&lt;br /&gt;
Reflash that secondary piece and try a reboot. Many boards allow for more than one type of flash to be programmed, but clearly are less versatile than real programmers.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mcumall.com/ Willem Universal EPROM Programmer] DOS,Windows software, work has started on Linux drivers, quite many types of eprom asf. ~ €35&lt;br /&gt;
* [http://www.loet.de/flasher_en.html IDE adapter for PLCC32 &amp;amp; DIP32 sockets] Has Linux 2.4 &amp;amp; 2.6 drivers $/€ ~48 (kit €33) free manual with schematics &amp;amp; component list downloadable (component cost approx. €5)&lt;br /&gt;
* [http://www.conitec.net/english/software.htm GALEP-4] Has [http://www.conitec.net/hardware/down/galep-linux-alpha1.html beta linux drivers] ~$300. See [[Galep IV]] for a description on how to get the more modern windows software working in Linux with wine&lt;br /&gt;
&lt;br /&gt;
==== Bios Savior ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Bios savior.jpg|thumb|right|An installed BIOS saviour.]]&lt;br /&gt;
&lt;br /&gt;
A tool that plugs into and replaces the original mainboard Flash device. The BIOS Savior has its own Flash device and a socket for the original mainboard Flash device. The Bios Savior features a switch to allow the developer to choose between which Flash device is accessed by the mainboard during read and write cycles.&lt;br /&gt;
&lt;br /&gt;
* http://www.ioss.com.tw/web/English/RD1BIOSSavior.html&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_lbmb.php&lt;br /&gt;
&lt;br /&gt;
==== Top Hat Flash ====&lt;br /&gt;
&lt;br /&gt;
A similar function is achieved by the &amp;quot;'''top hat flash'''&amp;quot; which comes at no extra cost with many Elitegroup, and some Gigabyte and Albatron mainboards like ECS KN3 SLI2 Extreme  with MCP55 southbridge (which is getting severely out of stock around central europe as of 8/2007 unfortunately). After bootup, it can manually be lifted off the original BIOS chip, so the original BIOS can be reflashed after a failure. /rst is wired to /oe on the spare chip otherwise 1:1. top hat flash is equipped with a Winbond W39V040AP  FWH. It may rely on particular circuitry on the mainboard to operate.&lt;br /&gt;
&lt;br /&gt;
[[Image:Top_hat_flash.JPG|thumb|right|Top Hat Flash, PCB side to flip over soldered-on PLCC.]]&lt;br /&gt;
&lt;br /&gt;
==== Chip removal tools ====&lt;br /&gt;
&lt;br /&gt;
If you're hot-swapping your BIOS chips (i.e., removing the chip while your computer is running, then inserting another one) you'll usually need some tools.&lt;br /&gt;
&lt;br /&gt;
There are different tools for DIP and PLCC chips (see photos). You can find them in most electronics stores, usually. Both types cost roughly 5-10 Euros.&lt;br /&gt;
&lt;br /&gt;
Another very nifty idea is [http://www.linuxbios.org/pipermail/linuxbios/2007-April/019809.html clipping off the needle point of normal office push pins], and then attaching them to (PLCC) ROM chips with super glue. That makes it pretty easy to insert and remove the ROM chips without extra tools.&lt;br /&gt;
&lt;br /&gt;
Since after bootup, flash mem is not accessed anymore, you can even hot plug (plug in and out '''while PC powered on''') push pin flashes. This way you save an external eprom programmer and mimic the procedure of top hat flash. Make sure you do not short circuit anything, though.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Plcc tool.jpg|PLCC BIOS removal tool.&lt;br /&gt;
Image:Dip tool.jpg|DIP BIOS removal tool.&lt;br /&gt;
Image:Pushpin roms 1.jpg|Push pins with cut off needles, attached to ROM chips with super glue.&lt;br /&gt;
Image:Pushpin roms 2.jpg|More push pins on ROM chips.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== POST card ====&lt;br /&gt;
&lt;br /&gt;
A POST card will save your life: it's the only output device (beside beeper) you have during the boot process. The term POST means Power On Self Test and comes from the original IBM specifications for the BIOS. Port 80 is a pre-defined port to which programs can output a byte. The POST card displays the byte in hex on its 2 digit display. We use a lot of POST codes in LinuxBIOS, so if you can tell us the POST code you see, we will have some idea of what happened. &lt;br /&gt;
&lt;br /&gt;
If your LinuxBIOS machine is working properly, you will see it count up from 0xd0 to 0xd9 (while it is gunzipping the kernel) and then display 0x98 (Linux idle loop). There are POST cards with ISA bus, PCI bus, USB und parallel port connectors (the latter for laptops).&lt;br /&gt;
&lt;br /&gt;
Often they carry status LEDs for ISA/PCI signals such as: IRDY, BIOS-access, FRAME, OSC, PCI-CLK, RESET, 12V, -12V, 5V, -5V, 3.3V. Some cards were known to not function because the mainboard switches off the CLK on their slot after non-standard registration on PCI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Post card1.jpg|BIOS POST card for PCI.&lt;br /&gt;
Image:Post card2.jpg|BIOS POST card for PCI and ISA.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PCI POST cards can be found in various places.&lt;br /&gt;
&lt;br /&gt;
See also [http://www.linuxbios.org/FAQ#How_can_I_write_to_port_0x80_from_userspace.3F How can I write to port 0x80 from userspace].&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tpcip.html&lt;br /&gt;
* http://www.elstonsystems.com/prod/pc_analyzer.html&lt;br /&gt;
* http://shopv2.elstonsystems.com/product_info.php/products_id/57&lt;br /&gt;
* http://www.uxd.com/trio.html&lt;br /&gt;
* http://www.soyousa.com/products/proddesc.php?id=261&lt;br /&gt;
&lt;br /&gt;
==== Null-modem cable ====&lt;br /&gt;
&lt;br /&gt;
A so-called null-modem cable is used for transmitting the output from a serial LinuxBIOS (or GRUB- or Linux-) console to another computer where a terminal program (such as [[minicom]]) can be used to display/save the messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Null modem cable.jpg|A null-modem cable.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compact Flash IDE adaptor ====&lt;br /&gt;
&lt;br /&gt;
solid state disk save time during the repeated boot process compared with regular hard disks.&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tcfdp.html&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_ide2cf.php&lt;br /&gt;
* http://www.mini-box.com/s.nl/sc.8/category.14/.f&lt;br /&gt;
* http://www.acscontrol.com/Index_ACS.asp?Page=/Pages/Products/CompactFlash/IDE_To_CF_Adapter.htm&lt;br /&gt;
* http://www.pcengines.ch/cflash.htm&lt;br /&gt;
* http://www.psism.com/adcf.htm&lt;br /&gt;
* http://www.hsc-us.com/industrial/adapter/ATP.html (2xCF, one with hotswap!)&lt;br /&gt;
* http://www.mesanet.com/ (Choose DISK EMULATORS then CFADPTHD in the menu. 2xCF)&lt;br /&gt;
&lt;br /&gt;
==== Oscilloscope ====&lt;br /&gt;
&lt;br /&gt;
For hardware debugging purposes when it goes down the most atomic details. Consider '''logic analyzers''' as alternative.&lt;br /&gt;
&lt;br /&gt;
==== In Circuit Emulator hardware debugger ====&lt;br /&gt;
&lt;br /&gt;
allows very time-saving burn/debug cycles with added tracing capabilities but somewhat costly. Ownership makes you a true geek, however ;-)&lt;br /&gt;
&lt;br /&gt;
==== LinuxBIOS SDK ====&lt;br /&gt;
&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_sdk.php&lt;br /&gt;
&lt;br /&gt;
==== In Circuit chip programmer ====&lt;br /&gt;
&lt;br /&gt;
Should allow you to program your BIOS even if it is soldered to the motherboard.&lt;br /&gt;
&lt;br /&gt;
* http://www.xeltek.com/pages.php?pageid=8&lt;br /&gt;
&lt;br /&gt;
==== EPROM emulators ====&lt;br /&gt;
&lt;br /&gt;
These hardware devices pretend to be an EPROM chip.&lt;br /&gt;
&lt;br /&gt;
* http://www.tech-tools.com/romtools.htm&lt;br /&gt;
* http://xtronics.com/memory/pktROM.htm&lt;br /&gt;
* http://www.tribalmicro.com/multirom/&lt;br /&gt;
* http://www.linuxselfhelp.com/HOWTO/Diskless-HOWTO-10.html (a larger list -- outdated)&lt;br /&gt;
&lt;br /&gt;
==== USB debug devices ====&lt;br /&gt;
&lt;br /&gt;
An alternative to a serial console may be a USB debug device. They are not so common yet. Their advantage is higher speed than a serial console. One might hook an FPGA to it for profiling purposes or some automated checks. Accessing a USB debug device from within BIOS is not different than other USB devices, and is part of the USB standard.&lt;br /&gt;
&lt;br /&gt;
See also [[EHCI Debug Port]].&lt;br /&gt;
&lt;br /&gt;
=== How do I use a null-modem cable to get LinuxBIOS debugging output over a serial port? ===&lt;br /&gt;
&lt;br /&gt;
* First, you'll want to set up a terminal program, e.g. '''minicom''' correctly.&lt;br /&gt;
 $ minicom -s&lt;br /&gt;
  -&amp;gt; Serial port setup&lt;br /&gt;
  -&amp;gt; Press A and enter your COM device (ttyS0 or ttyS1 or ttyUSB0, depending on your COM port)&lt;br /&gt;
  -&amp;gt; Press E and choose &amp;quot;115200 8N1&amp;quot; (default)&lt;br /&gt;
  -&amp;gt; Disable Hardware and Software Flow Control (via F and G)&lt;br /&gt;
  -&amp;gt; Press enter to leave the menu&lt;br /&gt;
  -&amp;gt; Save setup as..&lt;br /&gt;
  -&amp;gt;   Enter &amp;quot;lb&amp;quot;&lt;br /&gt;
  -&amp;gt; Exit from minicom&lt;br /&gt;
* From now on, you can start minicom with the obove settings simply by typing:&lt;br /&gt;
 $ minicom -o lb&lt;br /&gt;
&lt;br /&gt;
=== What documentation do I need? ===&lt;br /&gt;
&lt;br /&gt;
As much documentation as you can possibly get your hands on.  At minimum, you will need the docs for the chipset.&lt;br /&gt;
	&lt;br /&gt;
There have been reports of people getting LinuxBIOS working by booting with the OEM BIOS. Then, they would read the static contents of the PCI config registers after boot. LinuxBIOS is then built to match the static contents read from the PCI config registers. &lt;br /&gt;
&lt;br /&gt;
The problem with this approach is that chipsets generally require dynamic vs static configuration values during their initialization. The configuration register contents will change from one stage of initialization to the next. Since the contents of the registers read is only the final state of the configuration registers, the chipset won't be properly initialized if these are the only configuration values used.&lt;br /&gt;
&lt;br /&gt;
Getting a mainboard up without chipset docs can be a very long and involved process.&lt;br /&gt;
&lt;br /&gt;
=== What if my chipset docs are covered by an NDA? ===&lt;br /&gt;
&lt;br /&gt;
If the documentation for your chipset covered by a NDA with no source release agreement, you won't be able to release your code back to the LinuxBIOS project in general, or you will violate the GPL.&lt;br /&gt;
Many vendors accept releasing the source code, produced after reading such specs, while they don't allow the specs themselves to be revealed. Also, you can offer them the opportunity to review your code, before releasing it to the public.&lt;br /&gt;
&lt;br /&gt;
=== Why is the code so complicated and what can I do to make it easier? ===&lt;br /&gt;
&lt;br /&gt;
The reason is the complexity of the problem. We support a lot of hardware, and a given chip on a given board will most likely not be configured quite the same as the same chip on some other board. To help make code navigation easier, pick a target and build that target. Then, in the build directory, type make tags or make etags to get your favorite tags file. &lt;br /&gt;
&lt;br /&gt;
=== How do I contribute my changes? ===&lt;br /&gt;
&lt;br /&gt;
Please carefully read the [http://linuxbios.org/Development_Guidelines Development Guidelines] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I identify the BIOS chip on my mainboard? ===&lt;br /&gt;
&lt;br /&gt;
Modern mainboards store the BIOS in a reprogrammable flash ROM chip. There are hundreds of different flash ROMs, with variables such as memory size, speed, communication bus (LPC vs. ISA/PCI) and packaging to name just a few. The three most common packages are called DIP, PLCC and TSOP. The BIOS copyright holders often place a fancy sticker on the BIOS chip showing a name or logotype, BIOS version, serial number and copyright notice.&lt;br /&gt;
&lt;br /&gt;
==== DIP: Dual In-line Package ====&lt;br /&gt;
&lt;br /&gt;
[[Image:ROM BIOS.jpg|thumb|right|A DIP BIOS chip.]]&lt;br /&gt;
&lt;br /&gt;
A rectangular black plastic block with lots of pins along the two longer sides of the package. DIP ROMs can be socketed which means they are detachable from the mainboard using physical force. Since they haven't been moved in and out of the socket very much (yet, hehe) they can appear to be quite difficult to release from the socket. One way to remove a DIP from a socket is by prying a thin screwdriver in between the plastic package and the socket, along the shorter sides where there are no pins, and then gently bending the screwdriver to push the DIP upwards, away from the mainboard. Alternate between the two sides to avoid bending the pins, and don't touch any of the pins with the screwdriver, see FAQ about ESD, electro-static discharge. If the DIP is soldered directly to the mainboard, it has to be desoldered in order to be reprogrammed outside the mainboard. If you do this, it's a good idea to solder a socket to the mainboard instead, to ease any future experiments.&lt;br /&gt;
&lt;br /&gt;
==== PLCC: Plastic Leaded Chip Carrier ====&lt;br /&gt;
&lt;br /&gt;
[[Image:2 W39V040BPZ.png|thumb|right|A socketed PLCC BIOS chip.]]&lt;br /&gt;
&lt;br /&gt;
Black plastic block again, but this one is much more square. PLCC is becoming the standard for mainboards because of it's smaller physical size. PLCC can also be socketed or soldered directly to the mainboard. Socketed PLCC chips can be removed using a special PLCC removal tool, or using a piece of nylon line tied in a loop around the chip and pulled swiftly straight up, or bending/prying using small screwdrivers if one is careful. PLCC sockets are often fragile so the screwdriver approach is not recommended. While the nylon line method sounds onorthodox it works well. Desoldering PLCC can be painful without specialized desoldering equipment particularly because PLCC chips have leads on all four sides of the package.&lt;br /&gt;
&lt;br /&gt;
==== TSOP: Thin Small-Outline Package ====&lt;br /&gt;
&lt;br /&gt;
[http://www.isipkg.com/images/adp_tsop_dip.jpg TSOP chip on a TSOP-&amp;gt;DIP adapter]&lt;br /&gt;
&lt;br /&gt;
TSOPs are often used in embedded systems where size is important and there is no need for replacement in the field. It is possible to (de)solder TSOPs by hand, but it comes close to wizardry.&lt;br /&gt;
&lt;br /&gt;
=== How do I (re-)flash the BIOS? ===&lt;br /&gt;
&lt;br /&gt;
==== Out of mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
If the BIOS chip is socketed, it can be removed and flashed in a rom/flash burner and quickly re-installed.  Some of these burners cost $1000 and more plus they complete a flash in 1-2 minutes, but if you are willing to wait 5 minutes for a flash and manually set DIP switches, The Enhanced Willem Universal Programmer will do the job for only $40-60 USD.  There are several models of the Willem Programmer, each supporting many chips, but not all, so be sure to get one that supports your BIOS chip.  If your chip is PLCC, you will also need a PLCC chip extractor/puller or just thread nylon string under the PLCC chip from corner to corner and yank up it straight up.&lt;br /&gt;
&lt;br /&gt;
==== Inside mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
Download the appropriate flash update utility. Build the romimage as explained above and use the flash update utility to update the BIOS. Be warned that not all update utilities allow you to load your own BIOS image. For example, Intel decided to disallow it for the MS440GX mainboard (probably after hearing about us!) Here are some mainboard specific directions: &lt;br /&gt;
&lt;br /&gt;
===== General =====&lt;br /&gt;
LinuxBIOS v2 contains a flash utility called flashrom in the util/flashrom directory. (Old versions had &amp;quot;util/flash_and_burn/flash_rom&amp;quot; instead).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 bash$ sudo ./flashrom -V&lt;br /&gt;
 Calibrating delay loop... Setting up microsecond timing loop&lt;br /&gt;
 216M loops per second&lt;br /&gt;
 ok&lt;br /&gt;
 Found canidate at: 00000530-00000bc4&lt;br /&gt;
 Found LinuxBIOS table at: 00000530&lt;br /&gt;
 lb_table found at address 0xb7e1c530&lt;br /&gt;
 LinuxBIOS header(24) checksum: 404a table(1684) checksum: 2766 entries: 14&lt;br /&gt;
 vendor id: via part id: epia-m&lt;br /&gt;
 Enabling flash write on VT8235...OK&lt;br /&gt;
 Trying Am29F040B, 512 KB&lt;br /&gt;
 probe_29f040b: id1 0x20, id2 0xe2&lt;br /&gt;
 Trying ST29F040B, 512 KB&lt;br /&gt;
 probe_29f040b: id1 0x20, id2 0xe2&lt;br /&gt;
 ST29F040B found at physical address: 0xfff80000&lt;br /&gt;
 Flash part is ST29F040B&lt;br /&gt;
 OK, only ENABLING flash write, but NOT FLASHING.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If neither utility supports your chip, then you could either use the DOS [http://www.uniflash.org/ uniflash] utility, or use its source code, which is also available for download from the uniflash site (in Turbo Pascal 7) as a reference for adding support for your flash chip to &amp;quot;flash_rom&amp;quot;.  Uniflash supports a lot of different flash chips, and chip interfaces. It has untested support for PCI expansion card flash BIOS, such as on RTL8139 Ethernet card (32pin DIL), which allows flashing on the NIC if manufacturer provides the circuitry.&lt;br /&gt;
Another tool which runs in linux is [http://sourceforge.net/projects/ctflasher/ flasher].&lt;br /&gt;
&lt;br /&gt;
===== SiS 630/950 M/Bs =====&lt;br /&gt;
Ollie Lho provided us with flash utilities for these boards under freebios/util/sis. &lt;br /&gt;
flash_on turns on the flash write enable. This needs to be run before loading the DoC drivers. &lt;br /&gt;
flash_rom allows you to use your SiS 630/950 M/Bs as a flash programmer. It currently supports JEDEC flash parts, AMD am29f040b models, MXIC MX29F002 models, and SST28SF040C models. &lt;br /&gt;
&lt;br /&gt;
===== Intel L440GX =====&lt;br /&gt;
Get the System Update Package directly from Intel. mcopy the ten files created from running make phlash onto the Intel flash burner disk and use the update utility to burn the BIOS. To restore the original BIOS, set the recovery boot jumper on the motherboard, put the floppy in, and it will load and reflash the original BIOS. &lt;br /&gt;
How do I actually burn a flash ROM? &lt;br /&gt;
&lt;br /&gt;
Buy your favorite flash burner (we use a Needham Electronics EMP 30). Use make floppy to create the romimage and copy it to a floppy. Then use the provided software to burn the flash.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== BIOS Savior RD1 =====&lt;br /&gt;
&lt;br /&gt;
[http://www.ioss.com.tw/web/English/RD1BIOSSavior.html BIOS Savior RD1]&lt;br /&gt;
&lt;br /&gt;
There are some posts about the BIOS Savior RD1 that suggest its integrated flash device is of low quality; it may take 10 or more flash programming attempts to get a good update to the RD1 flash device. As a result, the following steps have proven to be successful while using the RD1:&lt;br /&gt;
&lt;br /&gt;
* Step 1 - While the system is powered down, remove the original BIOS device from the mainboard and insert it into the RD1's socket.&lt;br /&gt;
&lt;br /&gt;
* Step 2 - Insert the RD1 into the mainboard's flash BIOS socket.&lt;br /&gt;
&lt;br /&gt;
* Step 3 - Boot the system with the RD1 set to boot from the original flash device from the mainboard.&lt;br /&gt;
&lt;br /&gt;
* Step 4 - Program the original BIOS image (or other known good BIOS image) into the RD1's integrated flash device. Do this as many times as needed until the device is properly programmed and the system boots corectly from the RD1's integrated flash device. Be sure to check the settings on the RD1 so that the proper flash device is now being programmed. If the RD1 is not set correctly the working BIOS image will be erased and the system will not boot!&lt;br /&gt;
&lt;br /&gt;
* Step 5 - Program the test BIOS image (usually LinuxBIOS images are among this group) into the original flash device from the mainboard. The original BIOS device usually programs OK on the first attempt. Be sure to check the settings again on the RD1 so that the proper flash device is being programmed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The RD1 has been used in the above fashion with great success on the Tyan S2885 mainboard. Unfortunately the RD1 does not work on the nVidia CK8-04 CRB mainboard. The CK8-04 CRB may require a flash device that the RD1 does not support. &lt;br /&gt;
&lt;br /&gt;
The RD1 has worked well as a &amp;quot;do nothing&amp;quot; adapter that allows swapping the BIOS flash device between a flash burner and a mainboard without any wear to the mainboard's BIOS socket.&lt;br /&gt;
&lt;br /&gt;
=== Can I do any serious damage mucking around with this stuff? ===&lt;br /&gt;
&lt;br /&gt;
Any time you stick your hand into an open machine while the power is on, you're risking life and limb. That said, there are also some other not-so-nice things that can happen if you mess up (not that we would know). &lt;br /&gt;
&lt;br /&gt;
* Incorrect insertion of the flash (1 casualty) &lt;br /&gt;
* Incorrect jumper settings (1 casualty) &lt;br /&gt;
* Aggressive and/or inappropriate use of metal objects such as screwdrivers (2 casualties) &lt;br /&gt;
* Miscellaneous miswirings and mishandlings (3+ casualties)&lt;br /&gt;
&lt;br /&gt;
remember: make sure your important data is on a disconnected drive while you experiment.&lt;br /&gt;
&lt;br /&gt;
=== A note on electrostatic discharge (ESD) and ESD protection (thanks to Bari Ari) ===&lt;br /&gt;
&lt;br /&gt;
ESD can damage disk drives, boards, DoC's and other parts. The majority of the time, ESD events cause the component to degrade, but not fail testing procedures, resulting in failure at a later date. Because components do not fail immediately, technicians often underestimate the cost of not using ESD prevention measures. Provide at minimum some ESD protection by wearing an antistatic wrist strap attached to the chassis ground on your system when handling parts. &lt;br /&gt;
&lt;br /&gt;
Always handle boards carefully. They can be extremely sensitive to ESD. Hold boards only by their edges. After removing a board from its protective wrapper or from the system, place it component side up on a grounded, static free surface. Use a conductive foam pad if available. Do not slide the board over any surface. &lt;br /&gt;
&lt;br /&gt;
To further reduce the chances of ESD, you should create an ESD safe workstation that includes at minimum: &lt;br /&gt;
&lt;br /&gt;
* Conductive rubber mat, with a lead wire that can be connected to a metal surface to create a ground. &lt;br /&gt;
&lt;br /&gt;
* ESD wrist strap, which has a resistor inside the strap and a lead wire that can be connected to a metal surface as a ground. The grounding wire on the wrist strap should have between 1 and 10 Megaohms of resistance. The resistor should protect you in case you come in contact with a voltage source. If the resistor is bad or not included, the wrist strap is useless. An accidental shock could be serious and even deadly! &lt;br /&gt;
&lt;br /&gt;
* Table or workspace that is clean, clear of dust, and away from electrical machinery or other equipment that generates electrical currents. &lt;br /&gt;
&lt;br /&gt;
The idea is to ensure that all components you are going to interact with have the same charge. By connecting everything to the computer case, you ensure that the components of the case, the chair, and your body all have the same charge. If every object has the same charge, the electrons will not jump from one object to another minimizing the risk of ESD damage.&lt;br /&gt;
&lt;br /&gt;
=== What is a PIRQ table? ===&lt;br /&gt;
&lt;br /&gt;
There's a good description of the BIOS implementation of the PIRQ in the ''red PCI book'', and here's a [http://www.microsoft.com/whdc/archive/pciirq.mspx description of the $PIR data structure].&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS saves the $PIR data structure between 0xf0000 &amp;amp; 0x100000. Search for $PIR and then save it before copying over the BIOS.&lt;br /&gt;
&lt;br /&gt;
See also the [http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv1/util/ADLO/pirq/README ADLO README] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I set up etherboot with LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
Note from Ron: I have edited this somewhat to remove Geode-specific items. &lt;br /&gt;
&lt;br /&gt;
 Christer Weinigel writes: &lt;br /&gt;
 To: rminnich@lanl.gov&lt;br /&gt;
 Cc: linuxbios@lanl.gov&lt;br /&gt;
 Subject: Re: LinuxBIOS + Etherboot HOWTO?&lt;br /&gt;
 &lt;br /&gt;
 I had some trouble using LinuxBIOS + etherboot... &lt;br /&gt;
 &lt;br /&gt;
 My bad, I messed up and used mkelfImage-1.6 that I got from ftp.lnxi.com, when I realized that I ought to use the one from freebios/util everything started working. &lt;br /&gt;
 &lt;br /&gt;
 Here's what I did to get LinuxBIOS + Etherboot loading and booting a Linux kernel using TFTP. &lt;br /&gt;
 &lt;br /&gt;
   /Christer &lt;br /&gt;
 &lt;br /&gt;
 Get etherboot-5.0 from the CVS tree on etherboot.sourceforge.net. &lt;br /&gt;
 &lt;br /&gt;
 Modify etherboot-5.0/src/Config, comment out: &lt;br /&gt;
 &lt;br /&gt;
    # BIOS select don't change unless you know what you are doing&lt;br /&gt;
    #CFLAGS32+=     -DPCBIOS&lt;br /&gt;
 &lt;br /&gt;
 and uncomment the following: &lt;br /&gt;
 &lt;br /&gt;
    # Options to make a version of Etherboot that will work under linuxBIOS.&lt;br /&gt;
    CFLAGS32+= -DLINUXBIOS -DCONFIG_TSC_CURRTICKS  -DCONSOLE_SERIAL \&lt;br /&gt;
               -DCOMCONSOLE=0x3f8 -DCOMPRESERVE -DCONFIG_PCI_DIRECT -DELF_IMAGE &lt;br /&gt;
 &lt;br /&gt;
 Compile Etherboot to make an elf file for your ethernet card: &lt;br /&gt;
 &lt;br /&gt;
     make bin32/natsemi.elf&lt;br /&gt;
 &lt;br /&gt;
 Compile and install mkelfImage from freebios/util/mkelfImage. &lt;br /&gt;
 &lt;br /&gt;
 Create a bootimage to put on your TFTP server: &lt;br /&gt;
 &lt;br /&gt;
    mkelfImage --command-line=&amp;quot;root=/dev/hda2 console=ttyS0,38400&amp;quot; \&lt;br /&gt;
               --kernel vmlinux -o /tftpboot/kernel&lt;br /&gt;
 &lt;br /&gt;
 Finally, make sure that your BOOT/DCHP server is answering and that the TFTP server is active. &lt;br /&gt;
 &lt;br /&gt;
 Tell LinuxBIOS to boot an elf Image, and tell LinuxBIOS where it is: &lt;br /&gt;
 &lt;br /&gt;
    option USE_ELF_BOOT=1&lt;br /&gt;
 &lt;br /&gt;
 I have placed natsemi.elf in the first 64k of my BIOS flash chip, and LinuxBIOS in the second 64k. &lt;br /&gt;
 &lt;br /&gt;
    insmod bios.o&lt;br /&gt;
    dd if=natsemi.elf of=/dev/bios bs=64k&lt;br /&gt;
    dd if=linuxbios.rom of=/dev/bios bs=64k seek=1&lt;br /&gt;
 &lt;br /&gt;
 Finally boot LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
=== How do I set GEODE video? ===&lt;br /&gt;
&lt;br /&gt;
Please see [http://www.openbios.org/pipermail/linuxbios/2002-November/001240.html here].&lt;br /&gt;
&lt;br /&gt;
=== How do I set up testbios? ===&lt;br /&gt;
&lt;br /&gt;
Please read the [http://linuxbios.org/FAQ/Obsolete#How_do_I_set_up_testbios.3F testbios FAQ].&lt;br /&gt;
&lt;br /&gt;
=== /usr/sbin/iasl: Command not found ===&lt;br /&gt;
&lt;br /&gt;
If you see this error, you have to install ''iasl'', Intel's ASL Optimizing Compiler:&lt;br /&gt;
&lt;br /&gt;
* '''SUSE''' ships it in the '''pmtools''' package ([ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/x86_64/pmtools-20050823-3.x86_64.rpm pmtools-20050823-3.x86_64.rpm], [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/i586/pmtools-20050823-3.i586.rpm pmtools-20050823-3.i586.rpm]). If you want to run rpmbuild --rebuild: [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/src/pmtools-20050823-3.src.rpm pmtools-20050823-3.src.rpm].&lt;br /&gt;
* '''Debian''' ships it in the '''iasl''' package (''apt-get install iasl'').&lt;br /&gt;
* You can also download the [http://www.intel.com/technology/iapc/acpi/downloads.htm latest version of the source code].&lt;br /&gt;
&lt;br /&gt;
=== How can I write to POSTcard port 0x80 from userspace? ===&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxbios.org/pipermail/linuxbios/2006-November/017012.html This] might be useful in some situations, and to output a number to a POST card:&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\001&amp;quot; | dd bs=1 seek=128 of=/dev/port&lt;br /&gt;
&lt;br /&gt;
In DOS (not Windows XP) use:&lt;br /&gt;
 mov al, 42; out al, 80h&lt;br /&gt;
To output 42 type&lt;br /&gt;
 o 80 42&lt;br /&gt;
in DOS debug.exe.&lt;br /&gt;
&lt;br /&gt;
=== Is LinuxBIOS applying x86 microcode patches? ===&lt;br /&gt;
&lt;br /&gt;
And if yes, can they be modified?&lt;br /&gt;
&lt;br /&gt;
Answer: this field is little documented. Few people think, however, that system design can seriously be improved by modifications here ( µCode patches mostly disable erraneous functions and opcodes).&lt;br /&gt;
&lt;br /&gt;
=== How can I retrieve a good video bios? ===&lt;br /&gt;
&lt;br /&gt;
Note: if you are following these instructions to build LinuxBIOS for your motherboard, this is only necessary if you have a motherboard with an embedded VGA card. If your VGA is an add-on card, LinuxBIOS will find and run the ROM by itself.&lt;br /&gt;
&lt;br /&gt;
Anton Borisov has released a number of tools under the GPL (v2) to extract the VGA BIOS from the BIOS ROM images provided by the supplier of your motherboard.&lt;br /&gt;
&lt;br /&gt;
You can download them here:&lt;br /&gt;
&lt;br /&gt;
  Award BIOS: http://kaos.ru/biosgfx/download/awardeco-0.2.src.tar.gz&lt;br /&gt;
  AMI BIOS: http://www.kaos.ru/biosgfx/download/AmiDeco_0.31e.src.tar.gz&lt;br /&gt;
  Insyde BIOS: http://www.kaos.ru/biosgfx/download/InsyDeco_0.3.src.tar.gz&lt;br /&gt;
  Phoenix BIOS: http://www.kaos.ru/biosgfx/download/PhoenixDeco_0.33.src.tar.gz&lt;br /&gt;
&lt;br /&gt;
See the [[Tyan S2881 Build Tutorial]] for more information on how to use these tools.&lt;br /&gt;
&lt;br /&gt;
== Obsolete FAQ items ==&lt;br /&gt;
&lt;br /&gt;
Please see [[FAQ/Obsolete]] for (probably) obsolete FAQ items.&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2007-09-04T10:03:53Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Which board do you have? */  SOIC / SPI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Which board do you have?===&lt;br /&gt;
&lt;br /&gt;
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mobo photo on the backside of the M57 box shows a rom socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with plcc32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SOIC (SPI). All 4 have unpopulated secondary pads. For the plcc32 versions, the procedure outlined below can be used to add a rom socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the M57, but might work with other chips (FWH).&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
If you have an SPI revision, you're out of luck for the time being. We don't have instructions yet for adding a second chip or SPI socket to the board, and flashrom needs to be modified to support the SPI chip on this board. If you can help out with any of that, please do!&lt;br /&gt;
&lt;br /&gt;
If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working LinuxBIOS chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers:&lt;br /&gt;
[http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS]&lt;br /&gt;
&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' bootparameter with most old kernels (legacy BIOS v. F11b adds HPET 32/64 support, but often same problem ).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build LinuxBIOS as explained below, because it gets included in the LinuxBIOS ROM image.&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
Also, the m57sli-s4 will not boot unless you add acpi_use_timer_override as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1.&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
Use revision 2619 or higher.&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make sure that the path to your payload is correct, by editing &lt;br /&gt;
&lt;br /&gt;
  targets/gigabyte/m57sli/Config.lb&lt;br /&gt;
&lt;br /&gt;
and updating all the lines that start with 'payload'. There are 2 occurrences, one for the normal image, and one for the fallback image.&lt;br /&gt;
&lt;br /&gt;
If you get compilation errors, you may need to disable the stack protector that is now enabled by default in the version of GCC shipped with some newer distros. See the [[stack protector]] page.&lt;br /&gt;
&lt;br /&gt;
Now build a target directory:&lt;br /&gt;
&lt;br /&gt;
  cd targets&lt;br /&gt;
  ./buildtarget gigabyte/m57sli&lt;br /&gt;
&lt;br /&gt;
Finally build the image:&lt;br /&gt;
&lt;br /&gt;
  cd gigabyte/m57sli/m57sli&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the LinuxBIOS v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{ GPL }}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2007-08-30T21:49:51Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Which board do you have? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Which board do you have?===&lt;br /&gt;
&lt;br /&gt;
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. The mobo photo on the backside of the M57 box shows a rom socket too.&lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with plcc32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SPI. All 4 have unpopulated secondary pads. For the plcc32 versions, the procedure outlined below can be used to add a rom socket.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:m57slis4-plcc32.jpg|thumb|A PLCC32 revision of the M57SLI-S4]]&lt;br /&gt;
| [[Image:m57slis4-spi.jpg|thumb|An SPI revision of the M57SLI-S4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the M57, but might work with other chips (FWH).&lt;br /&gt;
&lt;br /&gt;
If you have a PLCC32 revision, it is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
If you have an SPI revision, you're out of luck for the time being. We don't have instructions yet for adding a second chip or SPI socket to the board, and flashrom needs to be modified to support the SPI chip on this board. If you can help out with any of that, please do!&lt;br /&gt;
&lt;br /&gt;
If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working LinuxBIOS chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers:&lt;br /&gt;
[http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS]&lt;br /&gt;
&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' bootparameter with most old kernels (legacy BIOS v. F11b adds HPET 32/64 support, but often same problem ).&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build LinuxBIOS as explained below, because it gets included in the LinuxBIOS ROM image.&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
Also, the m57sli-s4 will not boot unless you add acpi_use_timer_override as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1.&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
Use revision 2619 or higher.&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make sure that the path to your payload is correct, by editing &lt;br /&gt;
&lt;br /&gt;
  targets/gigabyte/m57sli/Config.lb&lt;br /&gt;
&lt;br /&gt;
and updating all the lines that start with 'payload'. There are 2 occurrences, one for the normal image, and one for the fallback image.&lt;br /&gt;
&lt;br /&gt;
If you get compilation errors, you may need to disable the stack protector that is now enabled by default in the version of GCC shipped with some newer distros. See the [[stack protector]] page.&lt;br /&gt;
&lt;br /&gt;
Now build a target directory:&lt;br /&gt;
&lt;br /&gt;
  cd targets&lt;br /&gt;
  ./buildtarget gigabyte/m57sli&lt;br /&gt;
&lt;br /&gt;
Finally build the image:&lt;br /&gt;
&lt;br /&gt;
  cd gigabyte/m57sli/m57sli&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the LinuxBIOS v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{ GPL }}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-08-29T17:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* known issues */  MAC @ddr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The Asus A8N-E is a Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007) (used items at ebay ~ €20-35 possible). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The plcc32 BIOS chip is of type   SST 49LF004B  of which you need a spare pre-programmed piece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Chip_lb.png|thumb|flash type 4 Mbit SST 49LF004B]]&lt;br /&gt;
&lt;br /&gt;
A8N-sli deluxe, an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same pcb design with more solder pads populated (pls cnfirm), and is also out of stock mostly.&lt;br /&gt;
Supporting more recent A8N boards is considered, but there is no confirmation about any one already [[Desktops|finished]]. '''A8NE-FM/S''' has initial support in the source tree. Biostar NF4-A9A (socket 939) also has ITE 8712F i/o and CK804 chips as the ASUS and is still being sold around 35€.&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external eprom programmer, just a spare working 49LF004.&lt;br /&gt;
&lt;br /&gt;
8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
&lt;br /&gt;
===known issues===&lt;br /&gt;
currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
&lt;br /&gt;
single DIMM support only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The MAC address is stored in flash for almost all CK804/MCP55 boards.&lt;br /&gt;
All of these boards flashed with LB probably have the same MAC address.&lt;br /&gt;
See src/southbridge/nvidia/ck804/romstrap.inc and&lt;br /&gt;
src/southbridge/nvidia/mcp55/romstrap.inc for details. On some of these&lt;br /&gt;
boards, the MAC address is stored in a separate EEPROM, but you can't&lt;br /&gt;
count on that.&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/File:A8n-e_hot_plug.jpg</id>
		<title>File:A8n-e hot plug.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/File:A8n-e_hot_plug.jpg"/>
				<updated>2007-08-27T12:46:25Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: hot pluggable flash mems on ASUS board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hot pluggable flash mems on ASUS board&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FAQ"/>
				<updated>2007-08-27T11:04:42Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Chip removal tools */   hot plug possible&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== What is LinuxBIOS ? ===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS is a Free Software project aimed at replacing the proprietary BIOS (firmware) you can find in most of today's computers.&lt;br /&gt;
&lt;br /&gt;
It performs just a little bit of hardware initialization and then executes a so-called [[Payloads|payload]].&lt;br /&gt;
&lt;br /&gt;
Some of the many possible payloads are: a [[Linux]] kernel, [[FILO]], [[GRUB2]], [http://www.openbios.org/ OpenBIOS], [http://www.openbios.org/Open_Firmware Open Firmware], [http://www.openbios.org/SmartFirmware SmartFirmware], [http://www.gnu.org/software/gnufi/ GNUFI] (UEFI), [[Etherboot]], [[ADLO]] (for booting [http://en.wikipedia.org/wiki/Windows_2000 Windows 2000] and [http://openbsd.org/ OpenBSD]), [[Plan 9]], or [[memtest86]].&lt;br /&gt;
&lt;br /&gt;
Our primary motivation for the project was maintenance of large clusters, but not surprisingly interest and contributions have come from people with varying backgrounds. Today LinuxBIOS can be used in a wide variety of scenarios, ranging from clusters, embedded systems, desktop PCs, servers and more.&lt;br /&gt;
&lt;br /&gt;
=== Why do we need LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
==== Why do we need LinuxBIOS for cluster maintainance? ====&lt;br /&gt;
&lt;br /&gt;
Current PCs used as cluster nodes depend on a vendor-supplied BIOS for booting. The BIOS in turn relies on inherently unreliable devices such as floppy disks and hard drives to boot the operating system. In addition, current BIOS software is unable to accommodate non-standard hardware making it difficult to support experimental work. The BIOS is slow and often erroneous and redundant and, most importantly, maintenance is a nightmare. Imagine walking around with a keyboard and monitor to every one of the 128 nodes in a cluster to change one BIOS setting. &lt;br /&gt;
&lt;br /&gt;
LinuxBIOS with Linux as a [[Payloads|payload]] (other payloads are possible!) gunzip's the Linux kernel straight out of NVRAM and essentially requires no moving parts other than the fan. It does a minimal amount of hardware initialization before jumping to the kernel start and lets Linux do the rest. As a result, it is much faster (current record 3 seconds), which has sparked interest in the consumer electronics community as well. Moreover, updates can be performed over the network. &lt;br /&gt;
&lt;br /&gt;
Using a real operating system to boot another operating system provides much greater flexibility than using a simple netboot program or the BIOS. Because Linux is the boot mechanism, it can boot over standard Ethernet or over other interconnects such as Myrinet, Quadrics, or SCI. It can use SSH connections to load the kernel, or it can use the InterMezzo caching file system or traditional NFS. Cluster nodes can be as simple as they need to be - perhaps as simple as a CPU and memory, no disk, no floppy, and no file system. The nodes will be much less autonomous thus making them easier to maintain.&lt;br /&gt;
&lt;br /&gt;
==== Why do we need LinuxBIOS for other purposes? ====&lt;br /&gt;
&lt;br /&gt;
Some aspects of DRM are not travelling well with the idea of a free computer system. As many computer magazines already pointed out, there may be future restrictions imposed by BIOSes, that a customer is little aware of before purchase and might not harmonize with the idea of freedom and / or security in some cases.&lt;br /&gt;
&lt;br /&gt;
=== Who is working on LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
The LinuxBIOS project was started in the winter of 1999 in the Advanced Computing Laboratory at Los Alamos National Laboratory (LANL) by [[User:Rminnich|Ron Minnich]]. Two undergraduate students, James Hendricks and Dale Webster spent their winter vacation putting together the proof of concept implementation. &lt;br /&gt;
&lt;br /&gt;
Since then, a [[Contributors|long list of people have contributed]] both in discussions and actual code. Please don't be shy and let us know if you are missing from the list. It's not a purposeful omission, just an unfortunate mistake.&lt;br /&gt;
&lt;br /&gt;
=== Who is funding LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
The LinuxBIOS project is funded by the Los Alamos Computer Science Institute and the Department of Energy's Office of Science.&lt;br /&gt;
&lt;br /&gt;
See also the [[Sponsors|list of LinuxBIOS sponsors]].&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
=== Will LinuxBIOS work on my machine? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Motherboards]] page for which mainboards are supported, and also the list of [[Supported Chipsets and Devices]]. See the [[Products]] page for a list of vendors selling products running LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
If the above sources don't help, please send the following to the [[Mailinglist|mailing list]]:&lt;br /&gt;
&lt;br /&gt;
* Step 1: A very brief description of your system: CPU, northbridge, southbridge, mainboard and optionally other important details.&lt;br /&gt;
* Step 2: Linux lspci output for your system, generated by booting Linux via the original BIOS and runnning lspci.&lt;br /&gt;
* Step 3: Super I/O chip on the mainboard (report the model numbers on the actual chip, for example &amp;quot;Winbond W83627HF&amp;quot;).&lt;br /&gt;
* Step 4: Type of BIOS device (see the question &amp;quot;How do I identify the BIOS chip on my mainboard?&amp;quot; below).&lt;br /&gt;
* Step 5: URL to the mainboard specifications page (optional).&lt;br /&gt;
* Step 6: Any other relevant information you can provide.&lt;br /&gt;
&lt;br /&gt;
If you can't do step 1 above, please describe (as best you can) the specific CPU chip and the chipset used on the mainboard.&lt;br /&gt;
&lt;br /&gt;
Usually in less than a day, someone will respond on the LinuxBIOS mailing list saying your mainboard is supported in the main LinuxBIOS source tree, it is currently in development, it is not yet supported or the manufacturer will not release information needed to provide LinuxBIOS support. In the latter case, please let the manufacturer know that you want LinuxBIOS support and his failure to release chipset information is making that very difficult.&lt;br /&gt;
&lt;br /&gt;
=== What commercial products use LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
See the [[products]] page.&lt;br /&gt;
&lt;br /&gt;
=== Which different operating systems will LinuxBIOS boot? ===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS should support almost any modern operating system '''which does not make [http://en.wikipedia.org/wiki/BIOS_interrupt_call BIOS calls]''':&lt;br /&gt;
&lt;br /&gt;
* Linux (of course)&lt;br /&gt;
* Plan 9&lt;br /&gt;
* Windows 2000 (via [[ADLO]])&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS does '''not''' support:&lt;br /&gt;
&lt;br /&gt;
* We have tested some of the BSD OSes and have seen, that FreeBSD for example makes BIOS calls, which is not supported by LinuxBIOS. Possibly with help of the tool ''ADLO'', it may be possible to boot FreeBSD like it is now, but the right thing to do, is to remove FreeBSD's dependence on BIOS calls.&lt;br /&gt;
* any DOS &lt;br /&gt;
* Windows versions older than Windows 2000 (they make BIOS calls) &amp;amp;mdash; (Does [[ADLO]] work with those versions?)&lt;br /&gt;
* [http://www.menuetos.net/ MenuetOS] (makes BIOS calls)&lt;br /&gt;
&lt;br /&gt;
It appears feasible, however, to introduce some &amp;quot;legacy support&amp;quot; to LinuxBIOS in the future to support OSes like the abovementioned.&lt;br /&gt;
&lt;br /&gt;
=== What chipsets and Super I/O devices are supported? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Chipsets and Devices]] page.&lt;br /&gt;
&lt;br /&gt;
=== Where is the mailing list archived? ===&lt;br /&gt;
&lt;br /&gt;
See [[Mailinglist]].&lt;br /&gt;
&lt;br /&gt;
=== Is there a LinuxBIOS IRC channel? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see [[IRC]].&lt;br /&gt;
&lt;br /&gt;
=== Where do I get the code? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Download LinuxBIOS|download page]].&lt;br /&gt;
&lt;br /&gt;
=== How do I build LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
See the [[documentation]].&lt;br /&gt;
&lt;br /&gt;
=== How can I help with LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
There are many ways how you can help us:&lt;br /&gt;
* Promote LinuxBIOS, tell all your friends about it, blog about it etc.&lt;br /&gt;
* Test LinuxBIOS, [http://tracker.linuxbios.org/trac/LinuxBIOS/newticket report] any bugs you find, or let us know about any suggestions for improvements you have.&lt;br /&gt;
* Help us to make the list of [[Supported Motherboards]] and the list of [[Supported Chipsets and Devices]] bigger by contributing code. Please also read the [[Development Guidelines]] in that case.&lt;br /&gt;
* If you have a mainboard with USB2 (EHCI-controller) you can look if it supports the ''[[EHCI_Debug_Port|Debug Port]]'' and mail the information to us, if it is not already there.&lt;br /&gt;
* If you are familiar with microcontroller development, you might be able to build a debugging tool for the [[EHCI_Debug_Port|Debug Port]]. If you are successful, we like to hear about it.&lt;br /&gt;
* Test, if QNX or Solaris are able to boot on a mainboard with LinuxBIOS.&lt;br /&gt;
* Have a look at the [http://tracker.linuxbios.org/trac/LinuxBIOS/report/1 list of open issues/bugs] and try to reproduce them or (preferrably) fix them.&lt;br /&gt;
* Contact [[User:Rminnich|Ron Minnich]] or [[User:Stepan|Stefan Reinauer]] for bigger projects related to LinuxBIOS.&lt;br /&gt;
* Contact us on the [[Mailinglist|mailing list]] if you have any further questions or suggestions.&lt;br /&gt;
&lt;br /&gt;
=== What do the abbreviations in this wiki stand for? ===&lt;br /&gt;
&lt;br /&gt;
See [[Glossary]].&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
=== Where can I buy BIOS chips (empty or pre-flashed)? ===&lt;br /&gt;
&lt;br /&gt;
When developing or simply trying out LinuxBIOS you always need a means to revert to your old BIOS in case something goes wrong. One way to do this is to get an extra BIOS chip (PLCC or DIP) and copy your original BIOS image onto that chip (using [[Flashrom]], for example). If you have a socketed BIOS (not soldered onto the mainboard), you can hot-swap the chips while your computer is running. &lt;br /&gt;
&lt;br /&gt;
You have several options to get spare BIOS chips:&lt;br /&gt;
* Most local or online electronics dealers carry some, for example:&lt;br /&gt;
** Germany:&lt;br /&gt;
*** http://www.bios-chip.de&lt;br /&gt;
*** http://www.bios-fix.de&lt;br /&gt;
*** http://www.bios-shop.com&lt;br /&gt;
*** http://www.conrad.de&lt;br /&gt;
** UK:&lt;br /&gt;
*** http://bios-repair.co.uk/&lt;br /&gt;
* You can search eBay for BIOS chips (either empty ones or pre-flashed ones).&lt;br /&gt;
* You can rip out chips from old/broken mainboards and re-use them (you can check flea markets, eBay, etc. for cheap and/or broken mainboards).&lt;br /&gt;
&lt;br /&gt;
=== What kind of hardware tools do I need? ===&lt;br /&gt;
&lt;br /&gt;
A motherboard (or mainboard as LinuxBIOS calls it) that has a supported chipset on it. Ok... well not exactly. As long as you have the documentation for the chipset/mainboard and it's free of any NDA issues you can use an unsupported chipset/mainboard, but you have a twisty road ahead of you.&lt;br /&gt;
	&lt;br /&gt;
And of course you need a Linux development machine. The LinuxBIOS build environment is not supported on Windows. It may be possible to do it under cygwin but nobody has tried.&lt;br /&gt;
		&lt;br /&gt;
It's also handy to have one/some/all of the following:&lt;br /&gt;
	&lt;br /&gt;
==== Flash-PLAICE  Programmer, Logic Analyzer and In-Circuit Emulator ====&lt;br /&gt;
&lt;br /&gt;
[http://flash-plaice.wikispaces.com Flash -PLAICE (In Development)] see also  [http://hardware.slashdot.org/article.pl?sid=07/05/01/0017244 /.slashdot ]&lt;br /&gt;
The PLAICE is a powerful in circuit development tool that combines the features of programming and emulating FLASH devices as well as high speed multi-channel logic analysis into one device.&lt;br /&gt;
&lt;br /&gt;
The FLASH BIOS emulator feature will help speed development of LinuxBIOS porting since the developer will no longer have to wait for either swapping FLASH devices or for lengthy FLASH programming cycles.&lt;br /&gt;
&lt;br /&gt;
The design will also perform as a multi-channel logic analyzer with a JAVA client.&lt;br /&gt;
&lt;br /&gt;
The PLAICE will make use of an adapter cable that will interface to the mainboard via the FLASH BIOS socket or onto the pins of a soldered in place FLASH device. It may also be used to program a FLASH device or emulate a FLASH device in circuit. Since the PLAICE attaches directly to the in-circuit FLASH device, the FLASH may be programmed without the need to reverse engineer any FLASH WRITE/ENABLE &amp;quot;security through obscurity&amp;quot; protection schemes incorporated into a mainboard.&lt;br /&gt;
&lt;br /&gt;
==== External EPROM/Flash programmer that can program the flash on your motherboard ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.mcumall.com/ Willem Universal EPROM Programmer] DOS,Windows software, work has started on Linux drivers, quite many types of eprom asf. ~ €35&lt;br /&gt;
* [http://www.loet.de/flasher_en.html IDE adapter for PLCC32 &amp;amp; DIP32 sockets] Has Linux 2.4 &amp;amp; 2.6 drivers $/€ ~48 (kit €33) free manual with schematics &amp;amp; component list downloadable (component cost approx. €5)&lt;br /&gt;
* [http://www.conitec.net/english/software.htm GALEP-4] Has [http://www.conitec.net/hardware/down/galep-linux-alpha1.html beta linux drivers] ~$300. See [[Galep IV]] for a description on how to get the more modern windows software working in Linux with wine&lt;br /&gt;
&lt;br /&gt;
==== Bios Savior ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Bios savior.jpg|thumb|right|An installed BIOS saviour.]]&lt;br /&gt;
&lt;br /&gt;
A tool that plugs into and replaces the original mainboard Flash device. The BIOS Savior has its own Flash device and a socket for the original mainboard Flash device. The Bios Savior features a switch to allow the developer to choose between which Flash device is accessed by the mainboard during read and write cycles.&lt;br /&gt;
&lt;br /&gt;
* http://www.ioss.com.tw/web/English/RD1BIOSSavior.html&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_lbmb.php&lt;br /&gt;
&lt;br /&gt;
==== Top Hat Flash ====&lt;br /&gt;
&lt;br /&gt;
A similar function is achieved by the &amp;quot;'''top hat flash'''&amp;quot; which comes at no extra cost with many Elitegroup, and some Gigabyte and Albatron mainboards like ECS KN3 SLI2 Extreme  with MCP55 southbridge (which is getting severely out of stock around central europe as of 8/2007 unfortunately). After bootup, it can manually be lifted off the original BIOS chip, so the original BIOS can be reflashed after a failure. /rst is wired to /oe on the spare chip otherwise 1:1. top hat flash is equipped with a Winbond W39V040AP  FWH. It may rely on particular circuitry on the mainboard to operate.&lt;br /&gt;
&lt;br /&gt;
[[Image:Top_hat_flash.JPG|thumb|right|Top Hat Flash, PCB side to flip over soldered-on PLCC.]]&lt;br /&gt;
&lt;br /&gt;
==== Chip removal tools ====&lt;br /&gt;
&lt;br /&gt;
If you're hot-swapping your BIOS chips (i.e., removing the chip while your computer is running, then inserting another one) you'll usually need some tools.&lt;br /&gt;
&lt;br /&gt;
There are different tools for DIP and PLCC chips (see photos). You can find them in most electronics stores, usually. Both types cost roughly 5-10 Euros.&lt;br /&gt;
&lt;br /&gt;
Another very nifty idea is [http://www.linuxbios.org/pipermail/linuxbios/2007-April/019809.html clipping off the needle point of normal office push pins], and then attaching them to (PLCC) ROM chips with super glue. That makes it pretty easy to insert and remove the ROM chips without extra tools.&lt;br /&gt;
&lt;br /&gt;
Since after bootup, flash mem is not accessed anymore, you can even hot plug (plug in and out '''while PC powered on''') push pin flashes. This way you save an external eprom programmer and mimic the procedure of top hat flash. Make sure you do not short circuit anything, though.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Plcc tool.jpg|PLCC BIOS removal tool.&lt;br /&gt;
Image:Dip tool.jpg|DIP BIOS removal tool.&lt;br /&gt;
Image:Pushpin roms 1.jpg|Push pins with cut off needles, attached to ROM chips with super glue.&lt;br /&gt;
Image:Pushpin roms 2.jpg|More push pins on ROM chips.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== POST card ====&lt;br /&gt;
&lt;br /&gt;
A POST card will save your life: it's the only output device (beside beeper) you have during the boot process. The term POST means Power On Self Test and comes from the original IBM specifications for the BIOS. Port 80 is a pre-defined port to which programs can output a byte. The POST card displays the byte in hex on its 2 digit display. We use a lot of POST codes in LinuxBIOS, so if you can tell us the POST code you see, we will have some idea of what happened. &lt;br /&gt;
&lt;br /&gt;
If your LinuxBIOS machine is working properly, you will see it count up from 0xd0 to 0xd9 (while it is gunzipping the kernel) and then display 0x98 (Linux idle loop). There are POST cards with ISA bus, PCI bus, USB und parallel port connectors (the latter for laptops).&lt;br /&gt;
&lt;br /&gt;
Often they carry status LEDs for ISA/PCI signals such as: IRDY, BIOS-access, FRAME, OSC, PCI-CLK, RESET, 12V, -12V, 5V, -5V, 3.3V. Some cards were known to not function because the mainboard switches off the CLK on their slot after non-standard registration on PCI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Post card1.jpg|BIOS POST card for PCI.&lt;br /&gt;
Image:Post card2.jpg|BIOS POST card for PCI and ISA.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PCI POST cards can be found in various places.&lt;br /&gt;
&lt;br /&gt;
See also [http://www.linuxbios.org/FAQ#How_can_I_write_to_port_0x80_from_userspace.3F How can I write to port 0x80 from userspace].&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tpcip.html&lt;br /&gt;
* http://www.elstonsystems.com/prod/pc_analyzer.html&lt;br /&gt;
* http://shopv2.elstonsystems.com/product_info.php/products_id/57&lt;br /&gt;
* http://www.uxd.com/trio.html&lt;br /&gt;
* http://www.soyousa.com/products/proddesc.php?id=261&lt;br /&gt;
&lt;br /&gt;
==== Null-modem cable ====&lt;br /&gt;
&lt;br /&gt;
A so-called null-modem cable is used for transmitting the output from a serial LinuxBIOS (or GRUB- or Linux-) console to another computer where a terminal program (such as [[minicom]]) can be used to display/save the messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Null modem cable.jpg|A null-modem cable.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compact Flash IDE adaptor ====&lt;br /&gt;
&lt;br /&gt;
solid state disk save time during the repeated boot process compared with regular hard disks.&lt;br /&gt;
&lt;br /&gt;
* http://siliconkit.dnsalias.com/cart/index.tcfdp.html&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_ide2cf.php&lt;br /&gt;
* http://www.mini-box.com/s.nl/sc.8/category.14/.f&lt;br /&gt;
* http://www.acscontrol.com/Index_ACS.asp?Page=/Pages/Products/CompactFlash/IDE_To_CF_Adapter.htm&lt;br /&gt;
* http://www.pcengines.ch/cflash.htm&lt;br /&gt;
* http://www.psism.com/adcf.htm&lt;br /&gt;
* http://www.hsc-us.com/industrial/adapter/ATP.html (2xCF, one with hotswap!)&lt;br /&gt;
* http://www.mesanet.com/ (Choose DISK EMULATORS then CFADPTHD in the menu. 2xCF)&lt;br /&gt;
&lt;br /&gt;
==== Oscilloscope ====&lt;br /&gt;
&lt;br /&gt;
For hardware debugging purposes when it goes down the most atomic details. Consider '''logic analyzers''' as alternative.&lt;br /&gt;
&lt;br /&gt;
==== In Circuit Emulator hardware debugger ====&lt;br /&gt;
&lt;br /&gt;
allows very time-saving burn/debug cycles with added tracing capabilities but somewhat costly. Ownership makes you a true geek, however ;-)&lt;br /&gt;
&lt;br /&gt;
==== LinuxBIOS SDK ====&lt;br /&gt;
&lt;br /&gt;
* http://www.cwlinux.com/eng/products/products_sdk.php&lt;br /&gt;
&lt;br /&gt;
==== In Circuit chip programmer ====&lt;br /&gt;
&lt;br /&gt;
Should allow you to program your BIOS even if it is soldered to the motherboard.&lt;br /&gt;
&lt;br /&gt;
* http://www.xeltek.com/pages.php?pageid=8&lt;br /&gt;
&lt;br /&gt;
==== EPROM emulators ====&lt;br /&gt;
&lt;br /&gt;
These hardware devices pretend to be an EPROM chip.&lt;br /&gt;
&lt;br /&gt;
* http://www.tech-tools.com/romtools.htm&lt;br /&gt;
* http://xtronics.com/memory/pktROM.htm&lt;br /&gt;
* http://www.tribalmicro.com/multirom/&lt;br /&gt;
* http://www.linuxselfhelp.com/HOWTO/Diskless-HOWTO-10.html (a larger list -- outdated)&lt;br /&gt;
&lt;br /&gt;
==== USB debug devices ====&lt;br /&gt;
&lt;br /&gt;
An alternative to a serial console may be a USB debug device. They are not so common yet. Their advantage is higher speed than a serial console. One might hook an FPGA to it for profiling purposes or some automated checks. Accessing a USB debug device from within BIOS is not different than other USB devices, and is part of the USB standard.&lt;br /&gt;
&lt;br /&gt;
See also [[EHCI Debug Port]].&lt;br /&gt;
&lt;br /&gt;
=== What documentation do I need? ===&lt;br /&gt;
&lt;br /&gt;
As much documentation as you can possibly get your hands on.  At minimum, you will need the docs for the chipset.&lt;br /&gt;
	&lt;br /&gt;
There have been reports of people getting LinuxBIOS working by booting with the OEM BIOS. Then, they would read the static contents of the PCI config registers after boot. LinuxBIOS is then built to match the static contents read from the PCI config registers. &lt;br /&gt;
&lt;br /&gt;
The problem with this approach is that chipsets generally require dynamic vs static configuration values during their initialization. The configuration register contents will change from one stage of initialization to the next. Since the contents of the registers read is only the final state of the configuration registers, the chipset won't be properly initialized if these are the only configuration values used.&lt;br /&gt;
&lt;br /&gt;
Getting a mainboard up without chipset docs can be a very long and involved process.&lt;br /&gt;
&lt;br /&gt;
=== What if my chipset docs are covered by an NDA? ===&lt;br /&gt;
&lt;br /&gt;
If the documentation for your chipset covered by a NDA with no source release agreement, you won't be able to release your code back to the LinuxBIOS project in general, or you will violate the GPL.&lt;br /&gt;
Many vendors accept releasing the source code, produced after reading such specs, while they don't allow the specs themselves to be revealed. Also, you can offer them the opportunity to review your code, before releasing it to the public.&lt;br /&gt;
&lt;br /&gt;
=== Why is the code so complicated and what can I do to make it easier? ===&lt;br /&gt;
&lt;br /&gt;
The reason is the complexity of the problem. We support a lot of hardware, and a given chip on a given board will most likely not be configured quite the same as the same chip on some other board. To help make code navigation easier, pick a target and build that target. Then, in the build directory, type make tags or make etags to get your favorite tags file. &lt;br /&gt;
&lt;br /&gt;
=== How do I contribute my changes? ===&lt;br /&gt;
&lt;br /&gt;
Please carefully read the [http://linuxbios.org/Development_Guidelines Development Guidelines] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I identify the BIOS chip on my mainboard? ===&lt;br /&gt;
&lt;br /&gt;
Modern mainboards store the BIOS in a reprogrammable flash ROM chip. There are hundreds of different flash ROMs, with variables such as memory size, speed, communication bus (LPC vs. ISA/PCI) and packaging to name just a few. The three most common packages are called DIP, PLCC and TSOP. The BIOS copyright holders often place a fancy sticker on the BIOS chip showing a name or logotype, BIOS version, serial number and copyright notice.&lt;br /&gt;
&lt;br /&gt;
==== DIP: Dual In-line Package ====&lt;br /&gt;
&lt;br /&gt;
[[Image:ROM BIOS.jpg|thumb|right|A DIP BIOS chip.]]&lt;br /&gt;
&lt;br /&gt;
A rectangular black plastic block with lots of pins along the two longer sides of the package. DIP ROMs can be socketed which means they are detachable from the mainboard using physical force. Since they haven't been moved in and out of the socket very much (yet, hehe) they can appear to be quite difficult to release from the socket. One way to remove a DIP from a socket is by prying a thin screwdriver in between the plastic package and the socket, along the shorter sides where there are no pins, and then gently bending the screwdriver to push the DIP upwards, away from the mainboard. Alternate between the two sides to avoid bending the pins, and don't touch any of the pins with the screwdriver, see FAQ about ESD, electro-static discharge. If the DIP is soldered directly to the mainboard, it has to be desoldered in order to be reprogrammed outside the mainboard. If you do this, it's a good idea to solder a socket to the mainboard instead, to ease any future experiments.&lt;br /&gt;
&lt;br /&gt;
==== PLCC: Plastic Leaded Chip Carrier ====&lt;br /&gt;
&lt;br /&gt;
[[Image:2 W39V040BPZ.png|thumb|right|A socketed PLCC BIOS chip.]]&lt;br /&gt;
&lt;br /&gt;
Black plastic block again, but this one is much more square. PLCC is becoming the standard for mainboards because of it's smaller physical size. PLCC can also be socketed or soldered directly to the mainboard. Socketed PLCC chips can be removed using a special PLCC removal tool, or using a piece of nylon line tied in a loop around the chip and pulled swiftly straight up, or bending/prying using small screwdrivers if one is careful. PLCC sockets are often fragile so the screwdriver approach is not recommended. While the nylon line method sounds onorthodox it works well. Desoldering PLCC can be painful without specialized desoldering equipment particularly because PLCC chips have leads on all four sides of the package.&lt;br /&gt;
&lt;br /&gt;
==== TSOP: Thin Small-Outline Package ====&lt;br /&gt;
&lt;br /&gt;
[http://www.isipkg.com/images/adp_tsop_dip.jpg TSOP chip on a TSOP-&amp;gt;DIP adapter]&lt;br /&gt;
&lt;br /&gt;
TSOPs are often used in embedded systems where size is important and there is no need for replacement in the field. It is possible to (de)solder TSOPs by hand, but it comes close to wizardry.&lt;br /&gt;
&lt;br /&gt;
=== How do I (re-)flash the BIOS? ===&lt;br /&gt;
&lt;br /&gt;
==== Out of mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
If the BIOS chip is socketed, it can be removed and flashed in a rom/flash burner and quickly re-installed.  Some of these burners cost $1000 and more plus they complete a flash in 1-2 minutes, but if you are willing to wait 5 minutes for a flash and manually set DIP switches, The Enhanced Willem Universal Programmer will do the job for only $40-60 USD.  There are several models of the Willem Programmer, each supporting many chips, but not all, so be sure to get one that supports your BIOS chip.  If your chip is PLCC, you will also need a PLCC chip extractor/puller or just thread nylon string under the PLCC chip from corner to corner and yank up it straight up.&lt;br /&gt;
&lt;br /&gt;
==== Inside mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
Download the appropriate flash update utility. Build the romimage as explained above and use the flash update utility to update the BIOS. Be warned that not all update utilities allow you to load your own BIOS image. For example, Intel decided to disallow it for the MS440GX mainboard (probably after hearing about us!) Here are some mainboard specific directions: &lt;br /&gt;
&lt;br /&gt;
===== General =====&lt;br /&gt;
LinuxBIOS v2 contains a flash utility called flashrom in the util/flashrom directory. (Old versions had &amp;quot;util/flash_and_burn/flash_rom&amp;quot; instead).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 bash$ sudo ./flashrom -V&lt;br /&gt;
 Calibrating delay loop... Setting up microsecond timing loop&lt;br /&gt;
 216M loops per second&lt;br /&gt;
 ok&lt;br /&gt;
 Found canidate at: 00000530-00000bc4&lt;br /&gt;
 Found LinuxBIOS table at: 00000530&lt;br /&gt;
 lb_table found at address 0xb7e1c530&lt;br /&gt;
 LinuxBIOS header(24) checksum: 404a table(1684) checksum: 2766 entries: 14&lt;br /&gt;
 vendor id: via part id: epia-m&lt;br /&gt;
 Enabling flash write on VT8235...OK&lt;br /&gt;
 Trying Am29F040B, 512 KB&lt;br /&gt;
 probe_29f040b: id1 0x20, id2 0xe2&lt;br /&gt;
 Trying ST29F040B, 512 KB&lt;br /&gt;
 probe_29f040b: id1 0x20, id2 0xe2&lt;br /&gt;
 ST29F040B found at physical address: 0xfff80000&lt;br /&gt;
 Flash part is ST29F040B&lt;br /&gt;
 OK, only ENABLING flash write, but NOT FLASHING.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If neither utility supports your chip, then you could either use the DOS [http://www.uniflash.org/ uniflash] utility, or use its source code, which is also available for download from the uniflash site (in Turbo Pascal 7) as a reference for adding support for your flash chip to &amp;quot;flash_rom&amp;quot;.  Uniflash supports a lot of different flash chips, and chip interfaces. It has untested support for PCI expansion card flash BIOS, such as on RTL8139 Ethernet card (32pin DIL), which allows flashing on the NIC if manufacturer provides the circuitry.&lt;br /&gt;
Another tool which runs in linux is [http://sourceforge.net/projects/ctflasher/ flasher].&lt;br /&gt;
&lt;br /&gt;
===== SiS 630/950 M/Bs =====&lt;br /&gt;
Ollie Lho provided us with flash utilities for these boards under freebios/util/sis. &lt;br /&gt;
flash_on turns on the flash write enable. This needs to be run before loading the DoC drivers. &lt;br /&gt;
flash_rom allows you to use your SiS 630/950 M/Bs as a flash programmer. It currently supports JEDEC flash parts, AMD am29f040b models, MXIC MX29F002 models, and SST28SF040C models. &lt;br /&gt;
&lt;br /&gt;
===== Intel L440GX =====&lt;br /&gt;
Get the System Update Package directly from Intel. mcopy the ten files created from running make phlash onto the Intel flash burner disk and use the update utility to burn the BIOS. To restore the original BIOS, set the recovery boot jumper on the motherboard, put the floppy in, and it will load and reflash the original BIOS. &lt;br /&gt;
How do I actually burn a flash ROM? &lt;br /&gt;
&lt;br /&gt;
Buy your favorite flash burner (we use a Needham Electronics EMP 30). Use make floppy to create the romimage and copy it to a floppy. Then use the provided software to burn the flash.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== BIOS Savior RD1 =====&lt;br /&gt;
&lt;br /&gt;
[http://www.ioss.com.tw/web/English/RD1BIOSSavior.html BIOS Savior RD1]&lt;br /&gt;
&lt;br /&gt;
There are some posts about the BIOS Savior RD1 that suggest its integrated flash device is of low quality; it may take 10 or more flash programming attempts to get a good update to the RD1 flash device. As a result, the following steps have proven to be successful while using the RD1:&lt;br /&gt;
&lt;br /&gt;
* Step 1 - While the system is powered down, remove the original BIOS device from the mainboard and insert it into the RD1's socket.&lt;br /&gt;
&lt;br /&gt;
* Step 2 - Insert the RD1 into the mainboard's flash BIOS socket.&lt;br /&gt;
&lt;br /&gt;
* Step 3 - Boot the system with the RD1 set to boot from the original flash device from the mainboard.&lt;br /&gt;
&lt;br /&gt;
* Step 4 - Program the original BIOS image (or other known good BIOS image) into the RD1's integrated flash device. Do this as many times as needed until the device is properly programmed and the system boots corectly from the RD1's integrated flash device. Be sure to check the settings on the RD1 so that the proper flash device is now being programmed. If the RD1 is not set correctly the working BIOS image will be erased and the system will not boot!&lt;br /&gt;
&lt;br /&gt;
* Step 5 - Program the test BIOS image (usually LinuxBIOS images are among this group) into the original flash device from the mainboard. The original BIOS device usually programs OK on the first attempt. Be sure to check the settings again on the RD1 so that the proper flash device is being programmed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The RD1 has been used in the above fashion with great success on the Tyan S2885 mainboard. Unfortunately the RD1 does not work on the nVidia CK8-04 CRB mainboard. The CK8-04 CRB may require a flash device that the RD1 does not support. &lt;br /&gt;
&lt;br /&gt;
The RD1 has worked well as a &amp;quot;do nothing&amp;quot; adapter that allows swapping the BIOS flash device between a flash burner and a mainboard without any wear to the mainboard's BIOS socket.&lt;br /&gt;
&lt;br /&gt;
=== Can I do any serious damage mucking around with this stuff? ===&lt;br /&gt;
&lt;br /&gt;
Any time you stick your hand into an open machine while the power is on, you're risking life and limb. That said, there are also some other not-so-nice things that can happen if you mess up (not that we would know). &lt;br /&gt;
&lt;br /&gt;
* Incorrect insertion of the flash (1 casualty) &lt;br /&gt;
* Incorrect jumper settings (1 casualty) &lt;br /&gt;
* Aggressive and/or inappropriate use of metal objects such as screwdrivers (2 casualties) &lt;br /&gt;
* Miscellaneous miswirings and mishandlings (3+ casualties)&lt;br /&gt;
&lt;br /&gt;
remember: make sure your important data is on a disconnected drive while you experiment.&lt;br /&gt;
&lt;br /&gt;
=== A note on electrostatic discharge (ESD) and ESD protection (thanks to Bari Ari) ===&lt;br /&gt;
&lt;br /&gt;
ESD can damage disk drives, boards, DoC's and other parts. The majority of the time, ESD events cause the component to degrade, but not fail testing procedures, resulting in failure at a later date. Because components do not fail immediately, technicians often underestimate the cost of not using ESD prevention measures. Provide at minimum some ESD protection by wearing an antistatic wrist strap attached to the chassis ground on your system when handling parts. &lt;br /&gt;
&lt;br /&gt;
Always handle boards carefully. They can be extremely sensitive to ESD. Hold boards only by their edges. After removing a board from its protective wrapper or from the system, place it component side up on a grounded, static free surface. Use a conductive foam pad if available. Do not slide the board over any surface. &lt;br /&gt;
&lt;br /&gt;
To further reduce the chances of ESD, you should create an ESD safe workstation that includes at minimum: &lt;br /&gt;
&lt;br /&gt;
* Conductive rubber mat, with a lead wire that can be connected to a metal surface to create a ground. &lt;br /&gt;
&lt;br /&gt;
* ESD wrist strap, which has a resistor inside the strap and a lead wire that can be connected to a metal surface as a ground. The grounding wire on the wrist strap should have between 1 and 10 Megaohms of resistance. The resistor should protect you in case you come in contact with a voltage source. If the resistor is bad or not included, the wrist strap is useless. An accidental shock could be serious and even deadly! &lt;br /&gt;
&lt;br /&gt;
* Table or workspace that is clean, clear of dust, and away from electrical machinery or other equipment that generates electrical currents. &lt;br /&gt;
&lt;br /&gt;
The idea is to ensure that all components you are going to interact with have the same charge. By connecting everything to the computer case, you ensure that the components of the case, the chair, and your body all have the same charge. If every object has the same charge, the electrons will not jump from one object to another minimizing the risk of ESD damage.&lt;br /&gt;
&lt;br /&gt;
=== What is a PIRQ table? ===&lt;br /&gt;
&lt;br /&gt;
There's a good description of the BIOS implementation of the PIRQ in the ''red PCI book'', and here's a [http://www.microsoft.com/whdc/archive/pciirq.mspx description of the $PIR data structure].&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS saves the $PIR data structure between 0xf0000 &amp;amp; 0x100000. Search for $PIR and then save it before copying over the BIOS.&lt;br /&gt;
&lt;br /&gt;
See also the [http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv1/util/ADLO/pirq/README ADLO README] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I set up etherboot with LinuxBIOS? ===&lt;br /&gt;
&lt;br /&gt;
Note from Ron: I have edited this somewhat to remove Geode-specific items. &lt;br /&gt;
&lt;br /&gt;
 Christer Weinigel writes: &lt;br /&gt;
 To: rminnich@lanl.gov&lt;br /&gt;
 Cc: linuxbios@lanl.gov&lt;br /&gt;
 Subject: Re: LinuxBIOS + Etherboot HOWTO?&lt;br /&gt;
 &lt;br /&gt;
 I had some trouble using LinuxBIOS + etherboot... &lt;br /&gt;
 &lt;br /&gt;
 My bad, I messed up and used mkelfImage-1.6 that I got from ftp.lnxi.com, when I realized that I ought to use the one from freebios/util everything started working. &lt;br /&gt;
 &lt;br /&gt;
 Here's what I did to get LinuxBIOS + Etherboot loading and booting a Linux kernel using TFTP. &lt;br /&gt;
 &lt;br /&gt;
   /Christer &lt;br /&gt;
 &lt;br /&gt;
 Get etherboot-5.0 from the CVS tree on etherboot.sourceforge.net. &lt;br /&gt;
 &lt;br /&gt;
 Modify etherboot-5.0/src/Config, comment out: &lt;br /&gt;
 &lt;br /&gt;
    # BIOS select don't change unless you know what you are doing&lt;br /&gt;
    #CFLAGS32+=     -DPCBIOS&lt;br /&gt;
 &lt;br /&gt;
 and uncomment the following: &lt;br /&gt;
 &lt;br /&gt;
    # Options to make a version of Etherboot that will work under linuxBIOS.&lt;br /&gt;
    CFLAGS32+= -DLINUXBIOS -DCONFIG_TSC_CURRTICKS  -DCONSOLE_SERIAL \&lt;br /&gt;
               -DCOMCONSOLE=0x3f8 -DCOMPRESERVE -DCONFIG_PCI_DIRECT -DELF_IMAGE &lt;br /&gt;
 &lt;br /&gt;
 Compile Etherboot to make an elf file for your ethernet card: &lt;br /&gt;
 &lt;br /&gt;
     make bin32/natsemi.elf&lt;br /&gt;
 &lt;br /&gt;
 Compile and install mkelfImage from freebios/util/mkelfImage. &lt;br /&gt;
 &lt;br /&gt;
 Create a bootimage to put on your TFTP server: &lt;br /&gt;
 &lt;br /&gt;
    mkelfImage --command-line=&amp;quot;root=/dev/hda2 console=ttyS0,38400&amp;quot; \&lt;br /&gt;
               --kernel vmlinux -o /tftpboot/kernel&lt;br /&gt;
 &lt;br /&gt;
 Finally, make sure that your BOOT/DCHP server is answering and that the TFTP server is active. &lt;br /&gt;
 &lt;br /&gt;
 Tell LinuxBIOS to boot an elf Image, and tell LinuxBIOS where it is: &lt;br /&gt;
 &lt;br /&gt;
    option USE_ELF_BOOT=1&lt;br /&gt;
 &lt;br /&gt;
 I have placed natsemi.elf in the first 64k of my BIOS flash chip, and LinuxBIOS in the second 64k. &lt;br /&gt;
 &lt;br /&gt;
    insmod bios.o&lt;br /&gt;
    dd if=natsemi.elf of=/dev/bios bs=64k&lt;br /&gt;
    dd if=linuxbios.rom of=/dev/bios bs=64k seek=1&lt;br /&gt;
 &lt;br /&gt;
 Finally boot LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
=== How do I set GEODE video? ===&lt;br /&gt;
&lt;br /&gt;
Please see [http://www.openbios.org/pipermail/linuxbios/2002-November/001240.html here].&lt;br /&gt;
&lt;br /&gt;
=== How do I set up testbios? ===&lt;br /&gt;
&lt;br /&gt;
Please read the [http://linuxbios.org/FAQ/Obsolete#How_do_I_set_up_testbios.3F testbios FAQ].&lt;br /&gt;
&lt;br /&gt;
=== /usr/sbin/iasl: Command not found ===&lt;br /&gt;
&lt;br /&gt;
If you see this error, you have to install ''iasl'', Intel's ASL Optimizing Compiler:&lt;br /&gt;
&lt;br /&gt;
* '''SUSE''' ships it in the '''pmtools''' package ([ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/x86_64/pmtools-20050823-3.x86_64.rpm pmtools-20050823-3.x86_64.rpm], [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/i586/pmtools-20050823-3.i586.rpm pmtools-20050823-3.i586.rpm]). If you want to run rpmbuild --rebuild: [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/src/pmtools-20050823-3.src.rpm pmtools-20050823-3.src.rpm].&lt;br /&gt;
* '''Debian''' ships it in the '''iasl''' package (''apt-get install iasl'').&lt;br /&gt;
* You can also download the [http://www.intel.com/technology/iapc/acpi/downloads.htm latest version of the source code].&lt;br /&gt;
&lt;br /&gt;
=== How can I write to POSTcard port 0x80 from userspace? ===&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxbios.org/pipermail/linuxbios/2006-November/017012.html This] might be useful in some situations, and to output a number to a POST card:&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\001&amp;quot; | dd bs=1 seek=128 of=/dev/port&lt;br /&gt;
&lt;br /&gt;
In DOS (not Windows XP) use:&lt;br /&gt;
 mov al, 42; out al, 80h&lt;br /&gt;
To output 42 type&lt;br /&gt;
 o 80 42&lt;br /&gt;
in DOS debug.exe.&lt;br /&gt;
&lt;br /&gt;
=== Is LinuxBIOS applying x86 microcode patches? ===&lt;br /&gt;
&lt;br /&gt;
And if yes, can they be modified?&lt;br /&gt;
&lt;br /&gt;
Answer: this field is little documented. Few people think, however, that system design can seriously be improved by modifications here ( µCode patches mostly disable erraneous functions and opcodes).&lt;br /&gt;
&lt;br /&gt;
=== How can I retrieve a good video bios? ===&lt;br /&gt;
&lt;br /&gt;
Note: if you are following these instructions to build LinuxBIOS for your motherboard, this is only necessary if you have a motherboard with an embedded VGA card. If your VGA is an add-on card, LinuxBIOS will find and run the ROM by itself.&lt;br /&gt;
&lt;br /&gt;
Anton Borisov has released a number of tools under the GPL (v2) to extract the VGA BIOS from the BIOS ROM images provided by the supplier of your motherboard.&lt;br /&gt;
&lt;br /&gt;
You can download them here:&lt;br /&gt;
&lt;br /&gt;
  Award BIOS: http://kaos.ru/biosgfx/download/awardeco-0.2.src.tar.gz&lt;br /&gt;
  AMI BIOS: http://www.kaos.ru/biosgfx/download/AmiDeco_0.31e.src.tar.gz&lt;br /&gt;
  Insyde BIOS: http://www.kaos.ru/biosgfx/download/InsyDeco_0.3.src.tar.gz&lt;br /&gt;
  Phoenix BIOS: http://www.kaos.ru/biosgfx/download/PhoenixDeco_0.33.src.tar.gz&lt;br /&gt;
&lt;br /&gt;
See the [[Tyan S2881 Build Tutorial]] for more information on how to use these tools.&lt;br /&gt;
&lt;br /&gt;
== Obsolete FAQ items ==&lt;br /&gt;
&lt;br /&gt;
Please see [[FAQ/Obsolete]] for (probably) obsolete FAQ items.&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-08-25T23:02:03Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */ hot plug bios , 8 MBit working&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The Asus A8N-E is a Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007) (used items at ebay ~ €20-35 possible). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The plcc32 BIOS chip is of type   SST 49LF004B  of which you need a spare pre-programmed piece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Chip_lb.png|thumb|flash type 4 Mbit SST 49LF004B]]&lt;br /&gt;
&lt;br /&gt;
A8N-sli deluxe, an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same pcb design with more solder pads populated (pls cnfirm), and is also out of stock mostly.&lt;br /&gt;
Supporting more recent A8N boards is considered, but there is no confirmation about any one already [[Desktops|finished]]. '''A8NE-FM/S''' has initial support in the source tree. Biostar NF4-A9A (socket 939) also has ITE 8712F i/o and CK804 chips as the ASUS and is still being sold around 35€.&lt;br /&gt;
&lt;br /&gt;
Hot plugging a BIOS chip was successfully done (pull out chip with glued-on handle while running Linux), so you don't necessarily need an external eprom programmer, just a spare working 49LF004.&lt;br /&gt;
&lt;br /&gt;
8 MBit SST 49LF080A was also successfully flashed and booted with legacy BIOS (two images concatenated).&lt;br /&gt;
&lt;br /&gt;
===known issues===&lt;br /&gt;
currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
&lt;br /&gt;
single DIMM support only&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Build_coreboot_using_LBdistro</id>
		<title>Build coreboot using LBdistro</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Build_coreboot_using_LBdistro"/>
				<updated>2007-08-25T08:24:33Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* What is LBdistro? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== What is LBdistro? ===&lt;br /&gt;
&lt;br /&gt;
LBdistro is an improvement on buildrom to let user customize what binaries will be at final ROM. The original name was [[biosdistro]] but Uwe suggest me change it to LBdistro.&lt;br /&gt;
In the LBdistro the user can just select through menus what applications, kernel features and LinuxBIOS will be added to ROM. So the system will compile everything and the user  needs just write this firmware into BIOS flash memory.&lt;br /&gt;
&lt;br /&gt;
=== How to getting started? ===&lt;br /&gt;
&lt;br /&gt;
First you need download the toolchain used to compile some LBdistro packages:&lt;br /&gt;
&lt;br /&gt;
 wget http://lbdistro.sourceforge.net/tools/toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Extract it to /usr/local:&lt;br /&gt;
&lt;br /&gt;
 sudo tar jxvf toolchain.tar.bz2 -C /usr/local&lt;br /&gt;
&lt;br /&gt;
Get last LBdistro from SVN repository:&lt;br /&gt;
&lt;br /&gt;
 svn co https://lbdistro.svn.sourceforge.net/svnroot/lbdistro/trunk LBdistro&lt;br /&gt;
&lt;br /&gt;
After that issue:&lt;br /&gt;
&lt;br /&gt;
 cd LBdistro&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Move the create file (deploy/emulation-qemu-i386.rom) to your HOME renaming its name to bios.bin&lt;br /&gt;
&lt;br /&gt;
Compile QEMU and apply [http://www.linuxbios.org/QEMU_Build_Tutorial patches] to support 2MB BIOS&lt;br /&gt;
&lt;br /&gt;
Execute QEMU using the argument -L pointing to directory where bios.bin is located (we use ~ to refer to HOME)&lt;br /&gt;
&lt;br /&gt;
 qemu -L ~ -hda /dev/null&lt;br /&gt;
&lt;br /&gt;
For now only QEMU compilation is generating ROM, but other boards will be added after Kdrive and application works.&lt;br /&gt;
&lt;br /&gt;
=== Known problems ===&lt;br /&gt;
&lt;br /&gt;
The final LinuxBIOS ROM created is not starting correctly in Qemu.&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
Remove the needs of external toolchain, the build system needs create the toolchains too.&lt;br /&gt;
&lt;br /&gt;
Add Gigabyte M57SLI-S4 to real tests.&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2007-08-25T08:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. &lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with plcc32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SPI. All 4 have unpopulated secondary pads, which can be utilized (see below).&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the M57, but might work with other chips (FWH).&lt;br /&gt;
&lt;br /&gt;
It is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working LinuxBIOS chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers:&lt;br /&gt;
[http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS]&lt;br /&gt;
&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' bootparameter with most old kernels (legacy BIOS v. F11b adds HPET 32/64 support, but often same problem ).  [http://www.vectorlinux.com VectorLinux] is a suggested distro since it supports NVIDIA hardware right out of the box (network and video). Vectorlinux autobuilds the LinuxBIOS source tree. You only need to put a bcc binary to /bin which you find in internet. If romcc does not build, try an older tool chain. vectorlinux builds &amp;quot;flashrom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build LinuxBIOS as explained below, because it gets included in the LinuxBIOS ROM image.&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
Also, the m57sli-s4 will not boot unless you add acpi_use_timer_override as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1.&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
Use revision 2619 or higher.&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make sure that the path to your payload is correct, by editing &lt;br /&gt;
&lt;br /&gt;
  targets/gigabyte/m57sli/Config.lb&lt;br /&gt;
&lt;br /&gt;
and updating all the lines that start with 'payload'. There are 2 occurrences, one for the normal image, and one for the fallback image.&lt;br /&gt;
&lt;br /&gt;
If you get compilation errors, you may need to disable the stack protector that is now enabled by default in the version of GCC shipped with some newer distros. See the [[stack protector]] page.&lt;br /&gt;
&lt;br /&gt;
Now build a target directory:&lt;br /&gt;
&lt;br /&gt;
  cd targets&lt;br /&gt;
  ./buildtarget gigabyte/m57sli&lt;br /&gt;
&lt;br /&gt;
Finally build the image:&lt;br /&gt;
&lt;br /&gt;
  cd gigabyte/m57sli/m57sli&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the LinuxBIOS v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{ GPL }}&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2007-08-25T08:22:06Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. &lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with plcc32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SPI. All 4 have unpopulated secondary pads, which can be utilized (see below).&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the M57, but might work with other chips (FWH).&lt;br /&gt;
&lt;br /&gt;
It is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working LinuxBIOS chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers:&lt;br /&gt;
[http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS]&lt;br /&gt;
&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' bootparameter with most old kernels (legacy BIOS v. F11b adds HPET 32/64 support, but often same problem ).  [http://www.vectorlinux.com VectorLinux] is a suggested distro since it supports NVIDIA hardware right out of the box (network and video). Vectorlinux autobuilds the LinuxBIOS source tree. You only need to put a bcc binary to /bin which you find in internet. If romcc does not build, try an older tool chain. vectorlinux builds &amp;quot;flashrom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build LinuxBIOS as explained below, because it gets included in the LinuxBIOS ROM image.&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
Also, the m57sli-s4 will not boot unless you add acpi_use_timer_override as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1.&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
Use revision 2619 or higher.&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make sure that the path to your payload is correct, by editing &lt;br /&gt;
&lt;br /&gt;
  targets/gigabyte/m57sli/Config.lb&lt;br /&gt;
&lt;br /&gt;
and updating all the lines that start with 'payload'. There are 2 occurrences, one for the normal image, and one for the fallback image.&lt;br /&gt;
&lt;br /&gt;
If you get compilation errors, you may need to disable the stack protector that is now enabled by default in the version of GCC shipped with some newer distros. See the [[stack protector]] page.&lt;br /&gt;
&lt;br /&gt;
Now build a target directory:&lt;br /&gt;
&lt;br /&gt;
  cd targets&lt;br /&gt;
  ./buildtarget gigabyte/m57sli&lt;br /&gt;
&lt;br /&gt;
Finally build the image:&lt;br /&gt;
&lt;br /&gt;
  cd gigabyte/m57sli/m57sli&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the LinuxBIOS v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Now shut down your computer (a reset will not work, you need to power down), and restart it. Hook up a serial console so that you can see what's happening.&lt;br /&gt;
&lt;br /&gt;
The MAC address for the onboard network card will have changed, so you may have to modify /etc/iftab (Debian/Ubuntu, see your distro documentation for the equivalent file) to get your network working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2007-08-25T08:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. &lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with plcc32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SPI. All 4 have unpopulated secondary pads, which can be utilized (see below).&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the M57, but might work with other chips (FWH).&lt;br /&gt;
&lt;br /&gt;
It is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working LinuxBIOS chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers:&lt;br /&gt;
[http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS]&lt;br /&gt;
&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' bootparameter with most old kernels (legacy BIOS v. F11b adds HPET 32/64 support, but often same problem ).  [http://www.vectorlinux.com VectorLinux] is a suggested distro since it supports NVIDIA hardware right out of the box (network and video). Vectorlinux autobuilds the LinuxBIOS source tree. You only need to put a bcc binary to /bin which you find in internet. If romcc does not build, try an older tool chain. vectorlinux builds &amp;quot;flashrom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build LinuxBIOS as explained below, because it gets included in the LinuxBIOS ROM image.&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
Also, the m57sli-s4 will not boot unless you add acpi_use_timer_override as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1.&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
Use revision 2619 or higher.&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make sure that the path to your payload is correct, by editing &lt;br /&gt;
&lt;br /&gt;
  targets/gigabyte/m57sli/Config.lb&lt;br /&gt;
&lt;br /&gt;
and updating all the lines that start with 'payload'. There are 2 occurrences, one for the normal image, and one for the fallback image.&lt;br /&gt;
&lt;br /&gt;
If you get compilation errors, you may need to disable the stack protector that is now enabled by default in the version of GCC shipped with some newer distros. See the [[stack protector]] page.&lt;br /&gt;
&lt;br /&gt;
Now build a target directory:&lt;br /&gt;
&lt;br /&gt;
  cd targets&lt;br /&gt;
  ./buildtarget gigabyte/m57sli&lt;br /&gt;
&lt;br /&gt;
Finally build the image:&lt;br /&gt;
&lt;br /&gt;
  cd gigabyte/m57sli/m57sli&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the LinuxBIOS v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Now shut down your computer (a reset will not work, you need to power down), and restart it. Hook up a serial console so that you can see what's happening.&lt;br /&gt;
&lt;br /&gt;
The MAC address for the onboard network card will have changed, so you may have to modify /etc/iftab (Debian/Ubuntu, see your distro documentation for the equivalent file) to get your network working.&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4</id>
		<title>GIGABYTE GA-M57SLI-S4</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GIGABYTE_GA-M57SLI-S4"/>
				<updated>2007-08-25T08:21:10Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.&lt;br /&gt;
&lt;br /&gt;
There is a version with a PLCC socket for the BIOS chip ([http://www.motherboards.org/imageview.html?i=/images/reviews/motherboards/1628_p6_6.jpg socketed BIOS]), but this might be a pre-production board since nobody has so far (2007/03) confirmed the purchase of a GA-M57SLI-S4 board with socketed BIOS. &lt;br /&gt;
&lt;br /&gt;
There are 4 volume revisions, 2 with plcc32 (v1.0, v1.1) ([http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2287&amp;amp;ModelName=GA-M57SLI-S4 soldered BIOS]) and another 2 with single 8 pin SPI. All 4 have unpopulated secondary pads, which can be utilized (see below).&lt;br /&gt;
&lt;br /&gt;
The fact that the BIOS is soldered onto the board complicates matters considerably, because it means that one flash of a faulty image will render your board unusable (it will be 'bricked'). [[Top Hat Flash]] does not work with the SST 49LF040B 33-4C-NHE soldered onto the M57, but might work with other chips (FWH).&lt;br /&gt;
&lt;br /&gt;
It is possible to desolder the BIOS chip, and replace it with a PLCC socket. You will need some tools (heat gun/pencil, good soldering iron, etc) and soldering experience to do that. The other option is to add a PLCC socket to the empty position next to the soldered-on BIOS chip. With an extra resistor and a switch, this allows switching between 2 BIOS chips. This has been documented carefully by ST; see his [http://private.vlsi.informatik.tu-darmstadt.de/st/instructions.html instructions].&lt;br /&gt;
&lt;br /&gt;
If you don't feel like doing this yourself, you could try to find a commercial service to do it for you. One way to find a shop is to look for game console modification&lt;br /&gt;
shops, they do this sort of thing (and more advanced things) all day and should be able to help you for around $50 if you bring the needed components (PLCC socket, resistor, wire and switch). Possibly a friendly TV or radio repair shop could help too, but they may not have suitable soldering equipment for the surface mount parts.&lt;br /&gt;
&lt;br /&gt;
If you're going to work on this board, you need a backup plan in the event you flash a faulty BIOS image. You have been warned!&lt;br /&gt;
&lt;br /&gt;
Once you put a socket on the board, you will also discover that the [http://www.ioss.com.tw/web/English/RD1BIOSSavior/SelectionChart/PLCCTYPE/RD1PMC4.html RD1-PMC4 BiosSavior] does not work with this motherboard: the RD1's built-in chip seems to be incompatible with the mainboard. This means you will need to hot-swap BIOS chips until you have a working LinuxBIOS chip. Plugging your BIOS chip into the RD1 and switching it to 'ORG' does work though. I have used the BiosSavior to ease hot swapping; it's a lot easier to pull out the BiosSavior and replace the chip plugged into it than to replace the ROM chip on the board.&lt;br /&gt;
&lt;br /&gt;
This is the list of BiosSavior resellers:&lt;br /&gt;
[http://www.ioss.com.tw/web/English/WheretoBuy.html IOSS]&lt;br /&gt;
&lt;br /&gt;
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).&lt;br /&gt;
&lt;br /&gt;
This board sells for around €83 ($104 in the US). With it's standard F8 legacy BIOS it requires the '''noapic''' bootparameter with most old kernels (legacy BIOS v. F11b adds HPET 32/64 support, but often same problem ).  [http://www.vectorlinux.com VectorLinux] is a suggested distro since it supports NVIDIA hardware right out of the box (network and video). Vectorlinux autobuilds the LinuxBIOS source tree. You only need to put a bcc binary to /bin which you find in internet. If romcc does not build, try an older tool chain. vectorlinux builds &amp;quot;flashrom&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This wiki page is maintained by Ward Vandewege (ward at gnu dot org).&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.&lt;br /&gt;
&lt;br /&gt;
If you want to boot from the network, you will need to use [http://www.etherboot.org Etherboot]. &lt;br /&gt;
&lt;br /&gt;
If you want to boot from an IDE drive, SATA drive, USB stick or CDROM, you can use [[FILO]].&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
In order to boot from a SATA disk, we use FILO.&lt;br /&gt;
&lt;br /&gt;
Once you've downloaded FILO, you will need to put a file 'Config' in its root tree. An example can be found in the distribution, called 'defconfig'. &lt;br /&gt;
&lt;br /&gt;
You can configure FILO to load GRUB. Here's my Config, which does that:&lt;br /&gt;
&lt;br /&gt;
  # Use grub instead of autoboot?&lt;br /&gt;
  USE_GRUB = 1&lt;br /&gt;
  # Grub menu.lst path&lt;br /&gt;
  MENULST_FILE = &amp;quot;hde1:/grub/menu.lst&amp;quot;&lt;br /&gt;
  # Driver for hard disk, CompactFlash, and CD-ROM on IDE bus&lt;br /&gt;
  IDE_DISK = 1&lt;br /&gt;
  # Add a short delay when polling status registers&lt;br /&gt;
  # (required on some broken SATA controllers)&lt;br /&gt;
  IDE_DISK_POLL_DELAY = 1&lt;br /&gt;
  # Driver for USB Storage&lt;br /&gt;
  USB_DISK = 1&lt;br /&gt;
  # VGA text console&lt;br /&gt;
  VGA_CONSOLE = 1&lt;br /&gt;
  PC_KEYBOARD = 1&lt;br /&gt;
  # Enable the serial console&lt;br /&gt;
  SERIAL_CONSOLE = 1&lt;br /&gt;
  # Serial console; real external serial port&lt;br /&gt;
  SERIAL_IOBASE = 0x3f8&lt;br /&gt;
  SERIAL_SPEED = 115200&lt;br /&gt;
  # Filesystems&lt;br /&gt;
  FSYS_EXT2FS = 1&lt;br /&gt;
  FSYS_ISO9660 = 1&lt;br /&gt;
  # Support for boot disk image in bootable CD-ROM (El Torito)&lt;br /&gt;
  ELTORITO = 1&lt;br /&gt;
  # PCI support&lt;br /&gt;
  SUPPORT_PCI = 1&lt;br /&gt;
  # Enable this to scan PCI busses above bus 0&lt;br /&gt;
  # AMD64 based boards do need this.&lt;br /&gt;
  PCI_BRUTE_SCAN = 1&lt;br /&gt;
  # Loader for standard Linux kernel image, a.k.a. /vmlinuz&lt;br /&gt;
  LINUX_LOADER = 1&lt;br /&gt;
&lt;br /&gt;
Because physical disks take a while to spin up, I've had to add an extra delay to FILO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: main/filo.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- main/filo.c (revision 34)&lt;br /&gt;
+++ main/filo.c (working copy)&lt;br /&gt;
@@ -60,6 +60,7 @@&lt;br /&gt;
     &lt;br /&gt;
     /* Initialize */&lt;br /&gt;
     init();&lt;br /&gt;
+    delay(5);&lt;br /&gt;
     grub_main();&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make FILO wait 5 seconds before probing the disks, making sure that the SATA disk is ready. &lt;br /&gt;
&lt;br /&gt;
In order to get serial output from GRUB, you will also need to add something like this to your menu.lst:&lt;br /&gt;
&lt;br /&gt;
  # serial port 0&lt;br /&gt;
  serial --unit=0 --speed=115200&lt;br /&gt;
  terminal --timeout=15 serial console&lt;br /&gt;
&lt;br /&gt;
Now execute 'make', which will generate a filo.elf file that will be your payload. You will need to refer to this file to build LinuxBIOS as explained below, because it gets included in the LinuxBIOS ROM image.&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
When using FILO in GRUB emulation mode, it's important to get a few details right in your GRUB boot stanza. This is what mine looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title   Ubuntu LB, kernel 2.6.21-rc3&lt;br /&gt;
root    (hd4,0)&lt;br /&gt;
kernel    /boot/vmlinuz-2.6.21-rc3 root=/dev/sda1 ro acpi_use_timer_override console=tty0 console=ttyS0,115200&lt;br /&gt;
savedefault&lt;br /&gt;
boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the root device - FILO sees the first sata device as hd4.&lt;br /&gt;
&lt;br /&gt;
Also, the m57sli-s4 will not boot unless you add acpi_use_timer_override as a kernel option - and use a modern kernel (tested on 2.6.20.1 and up). Hopefully this will be fixed in newer kernels. If you have a somewhat older kernel (tested with 2.6.16 and up), add these options: apic=debug acpi_dbg_level=0xffffffff pci=noacpi,routeirq snd-hda-intel.enable_msi=1.&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
Use revision 2619 or higher.&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make sure that the path to your payload is correct, by editing &lt;br /&gt;
&lt;br /&gt;
  targets/gigabyte/m57sli/Config.lb&lt;br /&gt;
&lt;br /&gt;
and updating all the lines that start with 'payload'. There are 2 occurrences, one for the normal image, and one for the fallback image.&lt;br /&gt;
&lt;br /&gt;
If you get compilation errors, you may need to disable the stack protector that is now enabled by default in the version of GCC shipped with some newer distros. See the [[stack protector]] page.&lt;br /&gt;
&lt;br /&gt;
Now build a target directory:&lt;br /&gt;
&lt;br /&gt;
  cd targets&lt;br /&gt;
  ./buildtarget gigabyte/m57sli&lt;br /&gt;
&lt;br /&gt;
Finally build the image:&lt;br /&gt;
&lt;br /&gt;
  cd gigabyte/m57sli/m57sli&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Make SURE that you have a fallback position: a ROM chip with backup copy of your factory ROM image (you can make one with [[flashrom]]), and either a socket on the board to plug the backup chip into, or the tools and skills to remove a 'bricked' BIOS chip from the board and replace it with a socket for the backup chip. &lt;br /&gt;
&lt;br /&gt;
If you do not prepare properly, you are likely to brick your motherboard. You have been warned!&lt;br /&gt;
&lt;br /&gt;
You can use flashrom from the LinuxBIOS v2 tree to burn the image:&lt;br /&gt;
&lt;br /&gt;
  util/flashrom/flashrom -v -w linuxbios.rom&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
Now shut down your computer (a reset will not work, you need to power down), and restart it. Hook up a serial console so that you can see what's happening.&lt;br /&gt;
&lt;br /&gt;
The MAC address for the onboard network card will have changed, so you may have to modify /etc/iftab (Debian/Ubuntu, see your distro documentation for the equivalent file) to get your network working.&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
Did something go wrong? Use your backup ROM chip (you DID make one, right?) to boot into the proprietary BIOS, and see if you can resolve the problem. Feel free to contact the friendly and helpful [[Mailinglist|mailing list]] if you need help.&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon. &lt;br /&gt;
&lt;br /&gt;
There is also still an issue with I2C, which causes X startup to be very slow. You can bypass this problem by adding &lt;br /&gt;
&lt;br /&gt;
  Option   &amp;quot;NoDDC2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your &amp;quot;Device&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Glossary</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Glossary"/>
				<updated>2007-08-18T19:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* DSDT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A ==&lt;br /&gt;
&lt;br /&gt;
=== ACPI ===&lt;br /&gt;
The '''Advanced Configuration &amp;amp; Power Interface''' is an industry standard for letting the OS control power management.&lt;br /&gt;
* http://www.acpi.info/&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=Advanced%20Configuration%20and%20Power%20Interface&lt;br /&gt;
* http://kernelslacker.livejournal.com/88243.html     acpitool to generate a C source (see mailing list also)&lt;br /&gt;
&lt;br /&gt;
=== AGP ===&lt;br /&gt;
'''Advanced Graphics Port'''&lt;br /&gt;
* http://en.wikipedia.org/wiki/AGP&lt;br /&gt;
&lt;br /&gt;
=== AGP Aperture ===&lt;br /&gt;
The memory range that is set aside for AGP access.&lt;br /&gt;
* http://en.wikipedia.org/wiki/AGP&lt;br /&gt;
&lt;br /&gt;
=== AHCI ===&lt;br /&gt;
The '''Advanced Host Controller Interface'''. Describes the register-level interface for a SATA host controller.&lt;br /&gt;
* http://en.wikipedia.org/wiki/AHCI&lt;br /&gt;
* http://www.intel.com/technology/serialata/ahci.htm&lt;br /&gt;
&lt;br /&gt;
=== APIC ===&lt;br /&gt;
'''Advanced Programmable Interrupt Controller'''. An advanced version of a [[Glossary#PIC|PIC]] that can handle interrupts from and for multiple CPUs. Modern systems usually have several APICs: Local APICs are CPU-bound, IO-APICs are bridge-bound.&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=Advanced%20Programmable%20Interrupt%20Controller&lt;br /&gt;
* http://osdev.berlios.de/pic.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== B ==&lt;br /&gt;
&lt;br /&gt;
=== BAR ===&lt;br /&gt;
Base Address Register (on PCI device).&lt;br /&gt;
&lt;br /&gt;
=== BIOS ===&lt;br /&gt;
Basic Input/Output System.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
&lt;br /&gt;
=== CAR === &lt;br /&gt;
Cache as RAM.&lt;br /&gt;
&lt;br /&gt;
=== CMOS === &lt;br /&gt;
Complementary metal oxyde semiconductor.&lt;br /&gt;
&lt;br /&gt;
=== CPU ===&lt;br /&gt;
Central processing unit (e.g. an Athlon64)&lt;br /&gt;
&lt;br /&gt;
== D ==&lt;br /&gt;
&lt;br /&gt;
=== DCR ===&lt;br /&gt;
Decode Control Register.&lt;br /&gt;
&lt;br /&gt;
=== DID ===&lt;br /&gt;
Device ID, a way of identifying the hardware in question. See [[Glossary#VID|VID]] for more info.&lt;br /&gt;
&lt;br /&gt;
=== DMA ===&lt;br /&gt;
Direct Memory Access. Allows certain hardware subsystems within a computer to access system memory for reading and/or writing independently of the main CPU. Examples of systems that use DMA: Hard Disk Controller, Disk Drive Controller, Graphics Card, Sound Card.&lt;br /&gt;
DMA is an essential feature of all modern computers, as it allows devices of different speeds to communicate without subjecting the CPU to a massive interrupt load.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Direct_memory_access&lt;br /&gt;
&lt;br /&gt;
=== DSDT ===&lt;br /&gt;
Differentiated System Descriptor Table, generated by BIOS and necessary for ACPI, see mailing list also. Implementation of ACPI needs to be done in a &amp;quot;cleanroom&amp;quot; development process to avoid legal issues.&lt;br /&gt;
* http://acpi.sourceforge.net/dsdt/index.php&lt;br /&gt;
&lt;br /&gt;
== E ==&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
Electrically erasable programmable ROM (common mistake: electrical erasable programmable ROM).&lt;br /&gt;
&lt;br /&gt;
=== EHCI ===&lt;br /&gt;
Enhanced Host Controller Interface (USB host controller).&lt;br /&gt;
&lt;br /&gt;
== F ==&lt;br /&gt;
&lt;br /&gt;
=== Flashing ===&lt;br /&gt;
Flashing means writing of flash memory. The BIOS on modern mainboards is stored in a flash memory chip, which can be 128 Kilobytes to 4 Megabytes big.&lt;br /&gt;
&lt;br /&gt;
=== Framebuffer ===&lt;br /&gt;
The '''Framebuffer''' is a part of RAM in a computer allocated to hold the graphics information for one frame or picture. This information typically consists of color values for every pixel on the screen.&lt;br /&gt;
A framebuffer is either:&lt;br /&gt;
* Off-screen, meaning that writes to the framebuffer don't appear on the visible screen&lt;br /&gt;
* On-screen, meaning that the framebuffer is directly coupled to the visible display&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Framebuffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== G ==&lt;br /&gt;
&lt;br /&gt;
=== GART ===&lt;br /&gt;
Graphics Address Relocation Table.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== GATT === &lt;br /&gt;
Graphics Aperture Translation Table.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== GPIO ===&lt;br /&gt;
General Purpose Input/Output.&lt;br /&gt;
* http://en.wikipedia.org/wiki/GPIO&lt;br /&gt;
&lt;br /&gt;
=== GSoC ===&lt;br /&gt;
[[GSoC|Google Summer of Code]].&lt;br /&gt;
&lt;br /&gt;
== H ==&lt;br /&gt;
&lt;br /&gt;
=== Hypertransport ===&lt;br /&gt;
A high-speed electrical interconnection protocol between CPU, memory and peripheral devices.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Hypertransport&lt;br /&gt;
* http://www.hypertransport.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I ==&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
'''Inter-Integrated-Circuit''', a bidirectional 2-wire bus for efficient inter-IC control.&lt;br /&gt;
* http://www.esacademy.com/faq/i2c/index.htm&lt;br /&gt;
&lt;br /&gt;
=== IDSEL/AD ===&lt;br /&gt;
Initialization Device SELect/Address and Data. Each PCI slot has a signal called IDSEL. It is used to differentiate between the different cards?&lt;br /&gt;
* http://www.techfest.com/hardware/bus/pci.htm&lt;br /&gt;
* http://www.fpga4fun.com/PCI4.html&lt;br /&gt;
&lt;br /&gt;
=== IRQ ===&lt;br /&gt;
Interrupt ReQuest (Handler).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== J ==&lt;br /&gt;
&lt;br /&gt;
=== JTAG ===&lt;br /&gt;
Debugging and test 4-wire interface named after an organization which defined it.&lt;br /&gt;
&lt;br /&gt;
== L ==&lt;br /&gt;
&lt;br /&gt;
=== LAR ===&lt;br /&gt;
is the LinuxBIOS [[LAR_Design|Archiver]]. It is a small utility that we use to create and change LinuxBIOS images and their modules.&lt;br /&gt;
&lt;br /&gt;
=== LPC ===&lt;br /&gt;
'''Low Pin Count''', an interface aimed at replacing the ISA bus.&lt;br /&gt;
* http://www.intel.com/design/chipsets/industry/lpc.htm&lt;br /&gt;
&lt;br /&gt;
=== LRU ===&lt;br /&gt;
'''Least Recently Used''', a rule used in operating systems that utilises a paging system. LRU selects a page to be paged out if it has been used less recently than any other page. This may be applied to a cache system as well.&lt;br /&gt;
* http://computer.laborlawtalk.com/Least%20Recently%20Used&lt;br /&gt;
&lt;br /&gt;
== M ==&lt;br /&gt;
&lt;br /&gt;
=== MII ===&lt;br /&gt;
'''Media Independent Interface'''. This is a chip commonly found on ethernet devices, together with a PHY.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MII&lt;br /&gt;
&lt;br /&gt;
=== MMIO ===&lt;br /&gt;
'''Memory-mapped I/O''' and port I/O (also called port-mapped I/O or PMIO) are two complementary methods of performing input/output between the CPU and I/O devices in a computer.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MMIO&lt;br /&gt;
&lt;br /&gt;
=== MPTable ===&lt;br /&gt;
'''Multi Processor Table'''. Intel MP specification is a hardware compatibility guide for machine hardware designers and OS software writers to produce SMP-capable machines and OSes in a vendor-independent manner. v1.1 and v1.4 versions exist.&lt;br /&gt;
* http://www.uruk.org/mps/&lt;br /&gt;
* http://www.intel.com/design/pentium/datashts/242016.htm&lt;br /&gt;
&lt;br /&gt;
=== MTRR ===&lt;br /&gt;
'''Memory Type Range Register'''. This can be used to control the way a processor accesses memory ranges.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MTRR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O ==&lt;br /&gt;
&lt;br /&gt;
=== OHCI ===&lt;br /&gt;
'''Open Host Controller Interface'''. IEEE1394 (Firewire) and USB standard (mostly used by other companies than Intel).&lt;br /&gt;
* http://en.wikipedia.org/wiki/Ohci&lt;br /&gt;
* http://developer.intel.com/technology/1394/download/ohci_11.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== P ==&lt;br /&gt;
&lt;br /&gt;
=== PAM ===&lt;br /&gt;
'''Programmable Attribute Map'''. Hardware registers that describe how certain memory areas are accessed. The '''BIOS''' areas have a flash chip mapped on top of a piece of memory. By changing the '''PAM''' registers, accesses to these memory areas can be mapped to either the RAM or the flash device. '''Shadowing''' is implemented by setting read accesses to the flash device and write accesses to the same address space are mapped to RAM. Walking over the address space, each byte is read and immediately written from/to each address. Afterwards write accesses are ignored and read accesses are mapped to RAM. Usually the '''PAM''' registers are part of the southbridge of a system.&lt;br /&gt;
&lt;br /&gt;
=== PAT ===&lt;br /&gt;
'''Page Attribute Table'''. Can be used independently or in combination with MTRR to setup memory type access ranges. Allows more finely-grained control than MTRR.&lt;br /&gt;
* http://www.intel.com/design/pentium4/manuals/index_new.htm&lt;br /&gt;
* http://66.102.9.104/search?q=cache:k5pI7x36u1kJ:www-gtr.iutv.univ-paris13.fr/Cours/Mat/Architecture/Docs/System.pdf+%22page+attribute+table%22&amp;amp;hl=en&amp;amp;start=10&lt;br /&gt;
&lt;br /&gt;
=== PAT ===&lt;br /&gt;
Performance Acceleration Technology.&lt;br /&gt;
* http://www.intel.com/design/chipsets/pat.htm&lt;br /&gt;
&lt;br /&gt;
=== PCI ===&lt;br /&gt;
Peripheral Component Interconnect.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Peripheral_Component_Interconnect&lt;br /&gt;
&lt;br /&gt;
=== PCI Configuration Space ===&lt;br /&gt;
* http://en.wikipedia.org/wiki/PCI_Configuration_Space&lt;br /&gt;
* http://www.techfest.com/hardware/bus/pci.htm&lt;br /&gt;
&lt;br /&gt;
=== PCI Express / PCIe ===&lt;br /&gt;
* http://en.wikipedia.org/wiki/Pci_express&lt;br /&gt;
&lt;br /&gt;
=== PHY ===&lt;br /&gt;
'''PHY layer device'''. A device that provides low level access to the physical layer.&lt;br /&gt;
* http://en.wikipedia.org/wiki/PHY&lt;br /&gt;
* http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?physical+layer&lt;br /&gt;
&lt;br /&gt;
=== PIC ===&lt;br /&gt;
A '''Programmable Interrupt Controller''' is a device to control peripheral devices, offloading the main CPU.&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=programmable%20interrupt%20controller&lt;br /&gt;
* http://www.interq.or.jp/japan/se-inoue/e_pic1.htm&lt;br /&gt;
&lt;br /&gt;
=== PIO ===&lt;br /&gt;
'''Programmed Input/Output''' interface is the original method used to transfer data between the CPU (through the IDE controller) and an IDE/ATA device.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Programmed_input/output&lt;br /&gt;
&lt;br /&gt;
=== PIR ===&lt;br /&gt;
Programmable Interrupt Routing?&lt;br /&gt;
&lt;br /&gt;
=== PIRQ ===&lt;br /&gt;
PCI IRQ routing table,&lt;br /&gt;
* http://www.microsoft.com/whdc/archive/pciirq.mspx&lt;br /&gt;
* http://www.soundonsound.com/sos/jul04/articles/qa0704-1.htm&lt;br /&gt;
* Interesting tool?: https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=93717&amp;amp;action=view&lt;br /&gt;
&lt;br /&gt;
=== PLCC ===&lt;br /&gt;
'''Plastic Leaded Chip Carrier''', a square surface-mount chip package.&lt;br /&gt;
* http://www.webopedia.com/TERM/P/PLCC.html&lt;br /&gt;
&lt;br /&gt;
=== PLL ===&lt;br /&gt;
'''Phase Locked Loop''' is a device to keep (electrical) signals synchronised throughout the system.&lt;br /&gt;
* http://en.wikipedia.org/wiki/PLL&lt;br /&gt;
&lt;br /&gt;
=== POST ===&lt;br /&gt;
The '''Power On Self Test''' is a test to check that devices the computer will rely on are functioning, and initializes devices.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Power-on_self_test&lt;br /&gt;
&lt;br /&gt;
== R ==&lt;br /&gt;
&lt;br /&gt;
=== RDMA ===&lt;br /&gt;
'''Remote Direct Memory Access''' is a concept whereby two or more computers communicate via DMA directly from main memory of one system to the main memory of another.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Remote_Direct_Memory_Access&lt;br /&gt;
&lt;br /&gt;
=== RCS ===&lt;br /&gt;
Revision control systems.&lt;br /&gt;
&lt;br /&gt;
== S ==&lt;br /&gt;
&lt;br /&gt;
=== SB ===&lt;br /&gt;
'''Southbridge'''. Chip on the mainboard that is usually responsible for handling the flash device, IDE controller, ...&lt;br /&gt;
&lt;br /&gt;
=== SBA ===&lt;br /&gt;
SideBand Addressing.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== Shadow RAM ===&lt;br /&gt;
RAM which content is copied from ROM residing at the same address for speedup purposes.&lt;br /&gt;
&lt;br /&gt;
=== SIO ===&lt;br /&gt;
Serial Input/Output.&lt;br /&gt;
* http://www.acronymfinder.com/af-query.asp?String=off&amp;amp;Acronym=sio&amp;amp;Find=Find&amp;amp;sourceid=mozilla-search&lt;br /&gt;
&lt;br /&gt;
=== SMBus ===&lt;br /&gt;
The '''System Management Bus''' is a simple two-wire bus used for communication with low-bandwidth devices on a motherboard. It is based on (actually a subset of) I2C.&lt;br /&gt;
* http://www.smbus.org/&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=System%20Management%20Bus&lt;br /&gt;
&lt;br /&gt;
=== SMM ===&lt;br /&gt;
'''System Management Mode'''. Processor mode that is mainly used for power management purposes.&lt;br /&gt;
&lt;br /&gt;
=== SMRAM ===&lt;br /&gt;
System Management Random Access Memory.&lt;br /&gt;
&lt;br /&gt;
=== SPD ===&lt;br /&gt;
'''Serial Presence Detect'''. On every (?) memory module there's an EPROM that provides the BIOS with information on how to properly configure the memory module.&lt;br /&gt;
* http://www.simmtester.com/page/news/showpubnews.asp?num=101&lt;br /&gt;
&lt;br /&gt;
=== SPI ===&lt;br /&gt;
The '''Serial Peripheral Interface Bus''' is a very loose standard for controlling almost any digital electronics that accepts a clocked serial stream of bits.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus&lt;br /&gt;
&lt;br /&gt;
=== SuperIO ===&lt;br /&gt;
The '''SuperIO''' is the chip that provides floppy, serial and parallel functionality/ports.&lt;br /&gt;
* http://www.simtec.co.uk/products/EB7500ATX/files/EB7500ATX-mmap.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== T ==&lt;br /&gt;
&lt;br /&gt;
=== TLB ===&lt;br /&gt;
'''Translation Lookaside Buffer'''. The TLB stores the most recently used page-directory and page-table entries, which translates into speedier access to said memory.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== U ==&lt;br /&gt;
&lt;br /&gt;
=== UC ===&lt;br /&gt;
Strong '''UnCacheable'''. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== UC ===&lt;br /&gt;
'''UnCacheable'''. Memory type setting in MTRR/PAT.&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.3&lt;br /&gt;
&lt;br /&gt;
=== UHCI ===&lt;br /&gt;
'''Universal Host Controller Interface'''. USB standard.&lt;br /&gt;
* http://en.wikipedia.org/wiki/UHCI&lt;br /&gt;
* http://developer.intel.com/technology/usb/uhci11d.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== V ==&lt;br /&gt;
&lt;br /&gt;
=== VGAcon ===&lt;br /&gt;
The purpose of the '''VGAcon''' (VGA controller) is to isolate the details of VGA signal generation from all the other modules in a (hardware) design. It allows the pixel information to be written into its video memory using a very simple interface, while it is alone responsible for generating the required signals for displaying the pixel information on a VGA monitor. (Note: This is mostly relevant to a hardware design - the text is copied from a students FPGA project).&lt;br /&gt;
* http://www.eecg.utoronto.ca/~singhd/241/vgacon.htm&lt;br /&gt;
&lt;br /&gt;
=== VID ===&lt;br /&gt;
'''Vendor ID''', a way of identifying the hardware manufacturer.&lt;br /&gt;
* http://www.microsoft.com/whdc/system/bus/PCI/infreq.mspx&lt;br /&gt;
* http://pciids.sourceforge.net/&lt;br /&gt;
A way of obtaining info for your hardware is through the 'lspci' command. Simply type 'lspci -n' in the console (or an xterm) or 'lspci -vn' for more verbose output.&lt;br /&gt;
&lt;br /&gt;
=== VMEBus ===&lt;br /&gt;
'''VERSAmodule Eurocard Bus''' or '''Versa Module Europa Bus'''. A computer bus originally developed for the Motorola 68000.&lt;br /&gt;
* http://en.wikipedia.org/wiki/VMEbus&lt;br /&gt;
&lt;br /&gt;
== W ==&lt;br /&gt;
&lt;br /&gt;
=== WB ===&lt;br /&gt;
Write-Back. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WC ===&lt;br /&gt;
Write-Combining. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WP ===&lt;br /&gt;
Write Protected. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WT ===&lt;br /&gt;
Write-Through. Memory type setting in MTRR/PAT.&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.3&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Glossary</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Glossary"/>
				<updated>2007-08-18T19:15:20Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* DSDT */  clean room&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A ==&lt;br /&gt;
&lt;br /&gt;
=== ACPI ===&lt;br /&gt;
The '''Advanced Configuration &amp;amp; Power Interface''' is an industry standard for letting the OS control power management.&lt;br /&gt;
* http://www.acpi.info/&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=Advanced%20Configuration%20and%20Power%20Interface&lt;br /&gt;
* http://kernelslacker.livejournal.com/88243.html     acpitool to generate a C source (see mailing list also)&lt;br /&gt;
&lt;br /&gt;
=== AGP ===&lt;br /&gt;
'''Advanced Graphics Port'''&lt;br /&gt;
* http://en.wikipedia.org/wiki/AGP&lt;br /&gt;
&lt;br /&gt;
=== AGP Aperture ===&lt;br /&gt;
The memory range that is set aside for AGP access.&lt;br /&gt;
* http://en.wikipedia.org/wiki/AGP&lt;br /&gt;
&lt;br /&gt;
=== AHCI ===&lt;br /&gt;
The '''Advanced Host Controller Interface'''. Describes the register-level interface for a SATA host controller.&lt;br /&gt;
* http://en.wikipedia.org/wiki/AHCI&lt;br /&gt;
* http://www.intel.com/technology/serialata/ahci.htm&lt;br /&gt;
&lt;br /&gt;
=== APIC ===&lt;br /&gt;
'''Advanced Programmable Interrupt Controller'''. An advanced version of a [[Glossary#PIC|PIC]] that can handle interrupts from and for multiple CPUs. Modern systems usually have several APICs: Local APICs are CPU-bound, IO-APICs are bridge-bound.&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=Advanced%20Programmable%20Interrupt%20Controller&lt;br /&gt;
* http://osdev.berlios.de/pic.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== B ==&lt;br /&gt;
&lt;br /&gt;
=== BAR ===&lt;br /&gt;
Base Address Register (on PCI device).&lt;br /&gt;
&lt;br /&gt;
=== BIOS ===&lt;br /&gt;
Basic Input/Output System.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
&lt;br /&gt;
=== CAR === &lt;br /&gt;
Cache as RAM.&lt;br /&gt;
&lt;br /&gt;
=== CMOS === &lt;br /&gt;
Complementary metal oxyde semiconductor.&lt;br /&gt;
&lt;br /&gt;
=== CPU ===&lt;br /&gt;
Central processing unit (e.g. an Athlon64)&lt;br /&gt;
&lt;br /&gt;
== D ==&lt;br /&gt;
&lt;br /&gt;
=== DCR ===&lt;br /&gt;
Decode Control Register.&lt;br /&gt;
&lt;br /&gt;
=== DID ===&lt;br /&gt;
Device ID, a way of identifying the hardware in question. See [[Glossary#VID|VID]] for more info.&lt;br /&gt;
&lt;br /&gt;
=== DMA ===&lt;br /&gt;
Direct Memory Access. Allows certain hardware subsystems within a computer to access system memory for reading and/or writing independently of the main CPU. Examples of systems that use DMA: Hard Disk Controller, Disk Drive Controller, Graphics Card, Sound Card.&lt;br /&gt;
DMA is an essential feature of all modern computers, as it allows devices of different speeds to communicate without subjecting the CPU to a massive interrupt load.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Direct_memory_access&lt;br /&gt;
&lt;br /&gt;
=== DSDT ===&lt;br /&gt;
Differentiated System Descriptor Table, generated by BIOS and necessary for ACPI, see mailing list also. Implementation of ACPI for the needs to be done in a &amp;quot;cleanroom&amp;quot; development process to avoid legal issues.&lt;br /&gt;
* http://acpi.sourceforge.net/dsdt/index.php&lt;br /&gt;
&lt;br /&gt;
== E ==&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
Electrically erasable programmable ROM (common mistake: electrical erasable programmable ROM).&lt;br /&gt;
&lt;br /&gt;
=== EHCI ===&lt;br /&gt;
Enhanced Host Controller Interface (USB host controller).&lt;br /&gt;
&lt;br /&gt;
== F ==&lt;br /&gt;
&lt;br /&gt;
=== Flashing ===&lt;br /&gt;
Flashing means writing of flash memory. The BIOS on modern mainboards is stored in a flash memory chip, which can be 128 Kilobytes to 4 Megabytes big.&lt;br /&gt;
&lt;br /&gt;
=== Framebuffer ===&lt;br /&gt;
The '''Framebuffer''' is a part of RAM in a computer allocated to hold the graphics information for one frame or picture. This information typically consists of color values for every pixel on the screen.&lt;br /&gt;
A framebuffer is either:&lt;br /&gt;
* Off-screen, meaning that writes to the framebuffer don't appear on the visible screen&lt;br /&gt;
* On-screen, meaning that the framebuffer is directly coupled to the visible display&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Framebuffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== G ==&lt;br /&gt;
&lt;br /&gt;
=== GART ===&lt;br /&gt;
Graphics Address Relocation Table.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== GATT === &lt;br /&gt;
Graphics Aperture Translation Table.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== GPIO ===&lt;br /&gt;
General Purpose Input/Output.&lt;br /&gt;
* http://en.wikipedia.org/wiki/GPIO&lt;br /&gt;
&lt;br /&gt;
=== GSoC ===&lt;br /&gt;
[[GSoC|Google Summer of Code]].&lt;br /&gt;
&lt;br /&gt;
== H ==&lt;br /&gt;
&lt;br /&gt;
=== Hypertransport ===&lt;br /&gt;
A high-speed electrical interconnection protocol between CPU, memory and peripheral devices.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Hypertransport&lt;br /&gt;
* http://www.hypertransport.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I ==&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
'''Inter-Integrated-Circuit''', a bidirectional 2-wire bus for efficient inter-IC control.&lt;br /&gt;
* http://www.esacademy.com/faq/i2c/index.htm&lt;br /&gt;
&lt;br /&gt;
=== IDSEL/AD ===&lt;br /&gt;
Initialization Device SELect/Address and Data. Each PCI slot has a signal called IDSEL. It is used to differentiate between the different cards?&lt;br /&gt;
* http://www.techfest.com/hardware/bus/pci.htm&lt;br /&gt;
* http://www.fpga4fun.com/PCI4.html&lt;br /&gt;
&lt;br /&gt;
=== IRQ ===&lt;br /&gt;
Interrupt ReQuest (Handler).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== J ==&lt;br /&gt;
&lt;br /&gt;
=== JTAG ===&lt;br /&gt;
Debugging and test 4-wire interface named after an organization which defined it.&lt;br /&gt;
&lt;br /&gt;
== L ==&lt;br /&gt;
&lt;br /&gt;
=== LAR ===&lt;br /&gt;
is the LinuxBIOS [[LAR_Design|Archiver]]. It is a small utility that we use to create and change LinuxBIOS images and their modules.&lt;br /&gt;
&lt;br /&gt;
=== LPC ===&lt;br /&gt;
'''Low Pin Count''', an interface aimed at replacing the ISA bus.&lt;br /&gt;
* http://www.intel.com/design/chipsets/industry/lpc.htm&lt;br /&gt;
&lt;br /&gt;
=== LRU ===&lt;br /&gt;
'''Least Recently Used''', a rule used in operating systems that utilises a paging system. LRU selects a page to be paged out if it has been used less recently than any other page. This may be applied to a cache system as well.&lt;br /&gt;
* http://computer.laborlawtalk.com/Least%20Recently%20Used&lt;br /&gt;
&lt;br /&gt;
== M ==&lt;br /&gt;
&lt;br /&gt;
=== MII ===&lt;br /&gt;
'''Media Independent Interface'''. This is a chip commonly found on ethernet devices, together with a PHY.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MII&lt;br /&gt;
&lt;br /&gt;
=== MMIO ===&lt;br /&gt;
'''Memory-mapped I/O''' and port I/O (also called port-mapped I/O or PMIO) are two complementary methods of performing input/output between the CPU and I/O devices in a computer.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MMIO&lt;br /&gt;
&lt;br /&gt;
=== MPTable ===&lt;br /&gt;
'''Multi Processor Table'''. Intel MP specification is a hardware compatibility guide for machine hardware designers and OS software writers to produce SMP-capable machines and OSes in a vendor-independent manner. v1.1 and v1.4 versions exist.&lt;br /&gt;
* http://www.uruk.org/mps/&lt;br /&gt;
* http://www.intel.com/design/pentium/datashts/242016.htm&lt;br /&gt;
&lt;br /&gt;
=== MTRR ===&lt;br /&gt;
'''Memory Type Range Register'''. This can be used to control the way a processor accesses memory ranges.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MTRR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O ==&lt;br /&gt;
&lt;br /&gt;
=== OHCI ===&lt;br /&gt;
'''Open Host Controller Interface'''. IEEE1394 (Firewire) and USB standard (mostly used by other companies than Intel).&lt;br /&gt;
* http://en.wikipedia.org/wiki/Ohci&lt;br /&gt;
* http://developer.intel.com/technology/1394/download/ohci_11.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== P ==&lt;br /&gt;
&lt;br /&gt;
=== PAM ===&lt;br /&gt;
'''Programmable Attribute Map'''. Hardware registers that describe how certain memory areas are accessed. The '''BIOS''' areas have a flash chip mapped on top of a piece of memory. By changing the '''PAM''' registers, accesses to these memory areas can be mapped to either the RAM or the flash device. '''Shadowing''' is implemented by setting read accesses to the flash device and write accesses to the same address space are mapped to RAM. Walking over the address space, each byte is read and immediately written from/to each address. Afterwards write accesses are ignored and read accesses are mapped to RAM. Usually the '''PAM''' registers are part of the southbridge of a system.&lt;br /&gt;
&lt;br /&gt;
=== PAT ===&lt;br /&gt;
'''Page Attribute Table'''. Can be used independently or in combination with MTRR to setup memory type access ranges. Allows more finely-grained control than MTRR.&lt;br /&gt;
* http://www.intel.com/design/pentium4/manuals/index_new.htm&lt;br /&gt;
* http://66.102.9.104/search?q=cache:k5pI7x36u1kJ:www-gtr.iutv.univ-paris13.fr/Cours/Mat/Architecture/Docs/System.pdf+%22page+attribute+table%22&amp;amp;hl=en&amp;amp;start=10&lt;br /&gt;
&lt;br /&gt;
=== PAT ===&lt;br /&gt;
Performance Acceleration Technology.&lt;br /&gt;
* http://www.intel.com/design/chipsets/pat.htm&lt;br /&gt;
&lt;br /&gt;
=== PCI ===&lt;br /&gt;
Peripheral Component Interconnect.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Peripheral_Component_Interconnect&lt;br /&gt;
&lt;br /&gt;
=== PCI Configuration Space ===&lt;br /&gt;
* http://en.wikipedia.org/wiki/PCI_Configuration_Space&lt;br /&gt;
* http://www.techfest.com/hardware/bus/pci.htm&lt;br /&gt;
&lt;br /&gt;
=== PCI Express / PCIe ===&lt;br /&gt;
* http://en.wikipedia.org/wiki/Pci_express&lt;br /&gt;
&lt;br /&gt;
=== PHY ===&lt;br /&gt;
'''PHY layer device'''. A device that provides low level access to the physical layer.&lt;br /&gt;
* http://en.wikipedia.org/wiki/PHY&lt;br /&gt;
* http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?physical+layer&lt;br /&gt;
&lt;br /&gt;
=== PIC ===&lt;br /&gt;
A '''Programmable Interrupt Controller''' is a device to control peripheral devices, offloading the main CPU.&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=programmable%20interrupt%20controller&lt;br /&gt;
* http://www.interq.or.jp/japan/se-inoue/e_pic1.htm&lt;br /&gt;
&lt;br /&gt;
=== PIO ===&lt;br /&gt;
'''Programmed Input/Output''' interface is the original method used to transfer data between the CPU (through the IDE controller) and an IDE/ATA device.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Programmed_input/output&lt;br /&gt;
&lt;br /&gt;
=== PIR ===&lt;br /&gt;
Programmable Interrupt Routing?&lt;br /&gt;
&lt;br /&gt;
=== PIRQ ===&lt;br /&gt;
PCI IRQ routing table,&lt;br /&gt;
* http://www.microsoft.com/whdc/archive/pciirq.mspx&lt;br /&gt;
* http://www.soundonsound.com/sos/jul04/articles/qa0704-1.htm&lt;br /&gt;
* Interesting tool?: https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=93717&amp;amp;action=view&lt;br /&gt;
&lt;br /&gt;
=== PLCC ===&lt;br /&gt;
'''Plastic Leaded Chip Carrier''', a square surface-mount chip package.&lt;br /&gt;
* http://www.webopedia.com/TERM/P/PLCC.html&lt;br /&gt;
&lt;br /&gt;
=== PLL ===&lt;br /&gt;
'''Phase Locked Loop''' is a device to keep (electrical) signals synchronised throughout the system.&lt;br /&gt;
* http://en.wikipedia.org/wiki/PLL&lt;br /&gt;
&lt;br /&gt;
=== POST ===&lt;br /&gt;
The '''Power On Self Test''' is a test to check that devices the computer will rely on are functioning, and initializes devices.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Power-on_self_test&lt;br /&gt;
&lt;br /&gt;
== R ==&lt;br /&gt;
&lt;br /&gt;
=== RDMA ===&lt;br /&gt;
'''Remote Direct Memory Access''' is a concept whereby two or more computers communicate via DMA directly from main memory of one system to the main memory of another.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Remote_Direct_Memory_Access&lt;br /&gt;
&lt;br /&gt;
=== RCS ===&lt;br /&gt;
Revision control systems.&lt;br /&gt;
&lt;br /&gt;
== S ==&lt;br /&gt;
&lt;br /&gt;
=== SB ===&lt;br /&gt;
'''Southbridge'''. Chip on the mainboard that is usually responsible for handling the flash device, IDE controller, ...&lt;br /&gt;
&lt;br /&gt;
=== SBA ===&lt;br /&gt;
SideBand Addressing.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== Shadow RAM ===&lt;br /&gt;
RAM which content is copied from ROM residing at the same address for speedup purposes.&lt;br /&gt;
&lt;br /&gt;
=== SIO ===&lt;br /&gt;
Serial Input/Output.&lt;br /&gt;
* http://www.acronymfinder.com/af-query.asp?String=off&amp;amp;Acronym=sio&amp;amp;Find=Find&amp;amp;sourceid=mozilla-search&lt;br /&gt;
&lt;br /&gt;
=== SMBus ===&lt;br /&gt;
The '''System Management Bus''' is a simple two-wire bus used for communication with low-bandwidth devices on a motherboard. It is based on (actually a subset of) I2C.&lt;br /&gt;
* http://www.smbus.org/&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=System%20Management%20Bus&lt;br /&gt;
&lt;br /&gt;
=== SMM ===&lt;br /&gt;
'''System Management Mode'''. Processor mode that is mainly used for power management purposes.&lt;br /&gt;
&lt;br /&gt;
=== SMRAM ===&lt;br /&gt;
System Management Random Access Memory.&lt;br /&gt;
&lt;br /&gt;
=== SPD ===&lt;br /&gt;
'''Serial Presence Detect'''. On every (?) memory module there's an EPROM that provides the BIOS with information on how to properly configure the memory module.&lt;br /&gt;
* http://www.simmtester.com/page/news/showpubnews.asp?num=101&lt;br /&gt;
&lt;br /&gt;
=== SPI ===&lt;br /&gt;
The '''Serial Peripheral Interface Bus''' is a very loose standard for controlling almost any digital electronics that accepts a clocked serial stream of bits.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus&lt;br /&gt;
&lt;br /&gt;
=== SuperIO ===&lt;br /&gt;
The '''SuperIO''' is the chip that provides floppy, serial and parallel functionality/ports.&lt;br /&gt;
* http://www.simtec.co.uk/products/EB7500ATX/files/EB7500ATX-mmap.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== T ==&lt;br /&gt;
&lt;br /&gt;
=== TLB ===&lt;br /&gt;
'''Translation Lookaside Buffer'''. The TLB stores the most recently used page-directory and page-table entries, which translates into speedier access to said memory.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== U ==&lt;br /&gt;
&lt;br /&gt;
=== UC ===&lt;br /&gt;
Strong '''UnCacheable'''. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== UC ===&lt;br /&gt;
'''UnCacheable'''. Memory type setting in MTRR/PAT.&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.3&lt;br /&gt;
&lt;br /&gt;
=== UHCI ===&lt;br /&gt;
'''Universal Host Controller Interface'''. USB standard.&lt;br /&gt;
* http://en.wikipedia.org/wiki/UHCI&lt;br /&gt;
* http://developer.intel.com/technology/usb/uhci11d.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== V ==&lt;br /&gt;
&lt;br /&gt;
=== VGAcon ===&lt;br /&gt;
The purpose of the '''VGAcon''' (VGA controller) is to isolate the details of VGA signal generation from all the other modules in a (hardware) design. It allows the pixel information to be written into its video memory using a very simple interface, while it is alone responsible for generating the required signals for displaying the pixel information on a VGA monitor. (Note: This is mostly relevant to a hardware design - the text is copied from a students FPGA project).&lt;br /&gt;
* http://www.eecg.utoronto.ca/~singhd/241/vgacon.htm&lt;br /&gt;
&lt;br /&gt;
=== VID ===&lt;br /&gt;
'''Vendor ID''', a way of identifying the hardware manufacturer.&lt;br /&gt;
* http://www.microsoft.com/whdc/system/bus/PCI/infreq.mspx&lt;br /&gt;
* http://pciids.sourceforge.net/&lt;br /&gt;
A way of obtaining info for your hardware is through the 'lspci' command. Simply type 'lspci -n' in the console (or an xterm) or 'lspci -vn' for more verbose output.&lt;br /&gt;
&lt;br /&gt;
=== VMEBus ===&lt;br /&gt;
'''VERSAmodule Eurocard Bus''' or '''Versa Module Europa Bus'''. A computer bus originally developed for the Motorola 68000.&lt;br /&gt;
* http://en.wikipedia.org/wiki/VMEbus&lt;br /&gt;
&lt;br /&gt;
== W ==&lt;br /&gt;
&lt;br /&gt;
=== WB ===&lt;br /&gt;
Write-Back. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WC ===&lt;br /&gt;
Write-Combining. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WP ===&lt;br /&gt;
Write Protected. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WT ===&lt;br /&gt;
Write-Through. Memory type setting in MTRR/PAT.&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.3&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-08-16T23:05:44Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */  Biostar NF4-A9A&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The Asus A8N-E is a Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007) (used items at ebay ~ €20-35 possible). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The plcc32 BIOS chip is of type   SST 49LF004B  of which you need a spare pre-programmed piece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Chip_lb.png|thumb|flash type 4 Mbit SST 49LF004B]]&lt;br /&gt;
&lt;br /&gt;
A8N-sli deluxe, an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same pcb design with more solder pads populated (pls cnfirm), and is also out of stock mostly.&lt;br /&gt;
Supporting more recent A8N boards is considered, but there is no confirmation about any one already [[Desktops|finished]]. '''A8NE-FM/S''' has initial support in the source tree. Biostar NF4-A9A (socket 939) also has ITE 8712F i/o and CK804 chips as the ASUS and is still being sold around 35€.&lt;br /&gt;
&lt;br /&gt;
===known issues===&lt;br /&gt;
currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
&lt;br /&gt;
single DIMM support only&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Documentation</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Documentation"/>
				<updated>2007-08-16T21:41:08Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Other Documentation */  linkfix Booting_Windows_using_LinuxBIOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information on how to get started building and installing LinuxBIOS, as well as build tutorials for various specific motherboards.&lt;br /&gt;
&lt;br /&gt;
== Build Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[IWILL DK8-HTX Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[GIGABYTE GA-M57SLI-S4 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[QEMU Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2881 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2882 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2892 Build Tutorial]] &amp;amp;mdash; the OLPC way (LinuxBIOSv2)&lt;br /&gt;
* [[ASI MB-5BLMP Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[BCOM WINNET100 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[ASUS A8N-E Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[AXUS WINTERM Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
&lt;br /&gt;
* [[SiS630]] (LinuxBIOSv1)&lt;br /&gt;
&lt;br /&gt;
== Port Guides ==&lt;br /&gt;
&lt;br /&gt;
Here are some port guides and experiences. &lt;br /&gt;
&lt;br /&gt;
* [http://www.openbios.org/LinuxBIOS-AMD64.pdf LinuxBIOS on AMD64 (PDF)] (LinuxBIOSv2)&lt;br /&gt;
* [[The EPIA-M/MII]] (LinuxBIOSv2)&lt;br /&gt;
* [[The Technoland SBC 710]] (LinuxBIOSv1)&lt;br /&gt;
* [[The PC CHIPS M810LR]] (LinuxBIOSv1)&lt;br /&gt;
&lt;br /&gt;
== Other Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[JTAG/BSDL Guide]]&lt;br /&gt;
* [[VGA support]]&lt;br /&gt;
* [[X11 on EPIA-M]]&lt;br /&gt;
* [[lxbios|Lxbios documentation]]&lt;br /&gt;
* [http://www.linuxbios.org/data/docs/configmanual.ps Configuration tool manual] (from freebios/Documentation/configmanual.ps)&lt;br /&gt;
* [http://www.linuxbios.org/data/lbdoc Project Book, Mangrove LinuxBios] from Mathieu Deschamps&lt;br /&gt;
* LinuxBIOS [[Glossary]]&lt;br /&gt;
* The USB [[EHCI Debug Port]] may be the easiest way to do early debugging without a legacy serial port.&lt;br /&gt;
* [http://web.archive.org/web/20040414101354/http://www.lysator.liu.se/upplysning/fa/linuxbios.pdf Christer Weinigel: Doing Linux programming close to the hardware] (PDF)&lt;br /&gt;
* [http://snapshots.linuxbios.org/docs/doxygen/ Doxygen generated build documentation]&lt;br /&gt;
* [[Creating Valid IRQ Tables]]&lt;br /&gt;
* Some documentation on &amp;quot;piggybacking&amp;quot; using PLCC chips: [[:Image:Tivo_prom_piggy_back_socket_installation.pdf|1]], [[:Image:How_to_build_the_tivo_prom_piggy_socket.pdf|2]], [[:Image:Tivo_piggyback_prom.pdf|3]].&lt;br /&gt;
* [http://www.linuxbios.org/Booting_Windows_using_LinuxBIOS Booting Windows using LinuxBIOS]&lt;br /&gt;
* [[LinuxBIOSv3]]&lt;br /&gt;
* [[Support_Tools]]&lt;br /&gt;
* [[Booting_Windows_using_LinuxBIOS]]&lt;br /&gt;
&lt;br /&gt;
== External articles ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.linuxjournal.com/article/7170 LinuxBIOS at Four]&lt;br /&gt;
* [http://plan9.bell-labs.com/wiki/plan9/Integrating_9load_into_the_linuxbios/index.html Integrating 9load into the LinuxBIOS]&lt;br /&gt;
* [http://blog.slightlyhackish.com/2007/03/26/building-and-testing-linuxbiosv2-step-by-step.aspx Building and testing LinuxBIOSv2, step by step]&lt;br /&gt;
* [http://blog.perlplexity.org/?p=13 How to get the Iwill DK8-HTX running with LinuxBIOS]&lt;br /&gt;
&lt;br /&gt;
== Papers/Articles/Slides ==&lt;br /&gt;
&lt;br /&gt;
=== Breaking the Chains -- Using LinuxBIOS to Liberate Embedded x86 Processors ===&lt;br /&gt;
* Jordan H. Crouse, Marc E. Jones, Ronald G. Minnich&lt;br /&gt;
* Proceedings of the Linux Symposium, June 27th-­30th, 2007, Ottawa, Ontario, Canada&lt;br /&gt;
* [ [https://ols2006.108.redhat.com/2007/Reprints/crouse-Reprint.pdf pdf] | [http://linuxbios.org/images/8/88/Crouse-Reprint.pdf pdf (local copy)] ]&lt;br /&gt;
&lt;br /&gt;
=== LinuxBIOS - Freedom for your motherboard ===&lt;br /&gt;
* Alan Carvalho de Assis&lt;br /&gt;
* FISL 8.0 (8th Forum Internacional de Software Livre)&lt;br /&gt;
* [ [[Media:LinuxBIOS-FISL8.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== FSF is moving towards LinuxBIOS deployment (Russian article) ===&lt;br /&gt;
* Anton Borisov&lt;br /&gt;
* SAMAG, 02-2006 (http://www.samag.ru)&lt;br /&gt;
* [ [[Media:LX2%40FSF_4a.pdf|pdf]] | [http://ps.kaos.ru/download/FSF_migrates_to_LinuxBIOS_technology.pdf alternative PDF] ]&lt;br /&gt;
&lt;br /&gt;
=== FreeVGA: Architecture Independent Video Graphics Initialization for LinuxBIOS ===&lt;br /&gt;
* Li-Ta Lo, Gregory R. Watson, Ronald G. Minnich&lt;br /&gt;
* Usenix, February 25 2005 (??)&lt;br /&gt;
* [ [http://www.linuxbios.org/data/vgabios/ html] | [[Media:vgabios.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== Flexibility in ROM: A Stackable Open Source BIOS ===&lt;br /&gt;
* Adam Agnew, Adam Sulmicki, Ronald Minnich, William Arbaugh&lt;br /&gt;
* USENIX 2003 Annual Technical Conference, FREENIX Track&lt;br /&gt;
* [ [http://www.usenix.org/events/usenix03/tech/freenix03/agnew/agnew_html/index.html HTML] ]&lt;br /&gt;
&lt;br /&gt;
=== Supermon: High performance monitoring for Linux clusters ===&lt;br /&gt;
* Ron Minnich, Los Alamos National Laboratory, and Karen Reid, University of Toronto&lt;br /&gt;
* The [http://www.linuxshowcase.org/2001/ Fifth Annual Linux Showcase and Conference], Oakland, CA, November 5-10 2001&lt;br /&gt;
* [ [[Media:supermon.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== LOBOS and LinuxBIOS ===&lt;br /&gt;
* Cluster Research Brochure&lt;br /&gt;
* prepared for SC 2000, November 4-10 2000&lt;br /&gt;
* [ [[Media:sc00.pdf|pdf]] ] &lt;br /&gt;
&lt;br /&gt;
=== The Linux BIOS ===&lt;br /&gt;
* Ron Minnich, James Hendricks, and Dale Webster, Los Alamos National Laboratory&lt;br /&gt;
* The [http://www.linuxshowcase.org/2000/ Fourth Annual Linux Showcase and Conference], Atlanta, GA, October 4-11 2000&lt;br /&gt;
* [ [[Media:linuxbios.pdf|pdf]] | [[Media:linuxbios.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== LOBOS (Linux OS Boots Linux OS): Booting a Kernel in 32-bit Mode ===&lt;br /&gt;
* Ron Minnich, Los Alamos National Laboratory&lt;br /&gt;
* The [http://www.linuxshowcase.org/2000/ Fourth Annual Linux Showcase and Conference], Atlanta, GA, October 4-11 2000&lt;br /&gt;
* [ [[Media:lobos.pdf|pdf]] | [[Media:lobos.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== Putting Linux on your motherboard ===&lt;br /&gt;
* Antony Stone&lt;br /&gt;
* [http://www.linux-magazine.com/ Linux Magazine], March, 2003, Pg. 76&lt;br /&gt;
* [ [[Media:LinuxBIOS.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== Look Ma, No Bios ===&lt;br /&gt;
* Oleg Goldshmidt&lt;br /&gt;
* IBM Haifa Research Laboratory, July 2006&lt;br /&gt;
* [http://www.goldshmidt.org/about/lectures.html Oleg's talks]&lt;br /&gt;
* [ [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.html html] | [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.html.zip html.zip] | [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.ppt.zip ppt.zip] | [[Media:LookMaNoBIOS.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== A Framework for Using Processor Cache as RAM (CAR) ===&lt;br /&gt;
* Eswaramoorthi Nallusamy&lt;br /&gt;
* University of New Mexico&lt;br /&gt;
* [ [[Media:LBCar.ppt|ppt]] | [[Media:LBCar.pdf|pdf]]]&lt;br /&gt;
&lt;br /&gt;
== Books ==&lt;br /&gt;
&lt;br /&gt;
These books do not address LinuxBIOS specifically but provide background information useful for BIOS-level programming on PC hardware.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=48&amp;amp;section=PCI|TM PCI System Architecture]&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=27&amp;amp;section=HyperTransport|TM HyperTransport System Architecture]&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=24&amp;amp;section=AMD%20Opteron|TM%20Processor AMD K8 Processor Architecture] (white paper/book excerpt)&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Documentation</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Documentation"/>
				<updated>2007-08-16T21:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Other Documentation */  Support_Tools de-orphaned&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information on how to get started building and installing LinuxBIOS, as well as build tutorials for various specific motherboards.&lt;br /&gt;
&lt;br /&gt;
== Build Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[IWILL DK8-HTX Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[GIGABYTE GA-M57SLI-S4 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[QEMU Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2881 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2882 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2892 Build Tutorial]] &amp;amp;mdash; the OLPC way (LinuxBIOSv2)&lt;br /&gt;
* [[ASI MB-5BLMP Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[BCOM WINNET100 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[ASUS A8N-E Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[AXUS WINTERM Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
&lt;br /&gt;
* [[SiS630]] (LinuxBIOSv1)&lt;br /&gt;
&lt;br /&gt;
== Port Guides ==&lt;br /&gt;
&lt;br /&gt;
Here are some port guides and experiences. &lt;br /&gt;
&lt;br /&gt;
* [http://www.openbios.org/LinuxBIOS-AMD64.pdf LinuxBIOS on AMD64 (PDF)] (LinuxBIOSv2)&lt;br /&gt;
* [[The EPIA-M/MII]] (LinuxBIOSv2)&lt;br /&gt;
* [[The Technoland SBC 710]] (LinuxBIOSv1)&lt;br /&gt;
* [[The PC CHIPS M810LR]] (LinuxBIOSv1)&lt;br /&gt;
&lt;br /&gt;
== Other Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[JTAG/BSDL Guide]]&lt;br /&gt;
* [[VGA support]]&lt;br /&gt;
* [[X11 on EPIA-M]]&lt;br /&gt;
* [[lxbios|Lxbios documentation]]&lt;br /&gt;
* [http://www.linuxbios.org/data/docs/configmanual.ps Configuration tool manual] (from freebios/Documentation/configmanual.ps)&lt;br /&gt;
* [http://www.linuxbios.org/data/lbdoc Project Book, Mangrove LinuxBios] from Mathieu Deschamps&lt;br /&gt;
* LinuxBIOS [[Glossary]]&lt;br /&gt;
* The USB [[EHCI Debug Port]] may be the easiest way to do early debugging without a legacy serial port.&lt;br /&gt;
* [http://web.archive.org/web/20040414101354/http://www.lysator.liu.se/upplysning/fa/linuxbios.pdf Christer Weinigel: Doing Linux programming close to the hardware] (PDF)&lt;br /&gt;
* [http://snapshots.linuxbios.org/docs/doxygen/ Doxygen generated build documentation]&lt;br /&gt;
* [[Creating Valid IRQ Tables]]&lt;br /&gt;
* Some documentation on &amp;quot;piggybacking&amp;quot; using PLCC chips: [[:Image:Tivo_prom_piggy_back_socket_installation.pdf|1]], [[:Image:How_to_build_the_tivo_prom_piggy_socket.pdf|2]], [[:Image:Tivo_piggyback_prom.pdf|3]].&lt;br /&gt;
* [http://www.linuxbios.org/Booting_Windows_using_LinuxBIOS Booting Windows using LinuxBIOS]&lt;br /&gt;
* [[LinuxBIOSv3]]&lt;br /&gt;
* [[Support_Tools]]&lt;br /&gt;
&lt;br /&gt;
== External articles ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.linuxjournal.com/article/7170 LinuxBIOS at Four]&lt;br /&gt;
* [http://plan9.bell-labs.com/wiki/plan9/Integrating_9load_into_the_linuxbios/index.html Integrating 9load into the LinuxBIOS]&lt;br /&gt;
* [http://blog.slightlyhackish.com/2007/03/26/building-and-testing-linuxbiosv2-step-by-step.aspx Building and testing LinuxBIOSv2, step by step]&lt;br /&gt;
* [http://blog.perlplexity.org/?p=13 How to get the Iwill DK8-HTX running with LinuxBIOS]&lt;br /&gt;
&lt;br /&gt;
== Papers/Articles/Slides ==&lt;br /&gt;
&lt;br /&gt;
=== Breaking the Chains -- Using LinuxBIOS to Liberate Embedded x86 Processors ===&lt;br /&gt;
* Jordan H. Crouse, Marc E. Jones, Ronald G. Minnich&lt;br /&gt;
* Proceedings of the Linux Symposium, June 27th-­30th, 2007, Ottawa, Ontario, Canada&lt;br /&gt;
* [ [https://ols2006.108.redhat.com/2007/Reprints/crouse-Reprint.pdf pdf] | [http://linuxbios.org/images/8/88/Crouse-Reprint.pdf pdf (local copy)] ]&lt;br /&gt;
&lt;br /&gt;
=== LinuxBIOS - Freedom for your motherboard ===&lt;br /&gt;
* Alan Carvalho de Assis&lt;br /&gt;
* FISL 8.0 (8th Forum Internacional de Software Livre)&lt;br /&gt;
* [ [[Media:LinuxBIOS-FISL8.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== FSF is moving towards LinuxBIOS deployment (Russian article) ===&lt;br /&gt;
* Anton Borisov&lt;br /&gt;
* SAMAG, 02-2006 (http://www.samag.ru)&lt;br /&gt;
* [ [[Media:LX2%40FSF_4a.pdf|pdf]] | [http://ps.kaos.ru/download/FSF_migrates_to_LinuxBIOS_technology.pdf alternative PDF] ]&lt;br /&gt;
&lt;br /&gt;
=== FreeVGA: Architecture Independent Video Graphics Initialization for LinuxBIOS ===&lt;br /&gt;
* Li-Ta Lo, Gregory R. Watson, Ronald G. Minnich&lt;br /&gt;
* Usenix, February 25 2005 (??)&lt;br /&gt;
* [ [http://www.linuxbios.org/data/vgabios/ html] | [[Media:vgabios.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== Flexibility in ROM: A Stackable Open Source BIOS ===&lt;br /&gt;
* Adam Agnew, Adam Sulmicki, Ronald Minnich, William Arbaugh&lt;br /&gt;
* USENIX 2003 Annual Technical Conference, FREENIX Track&lt;br /&gt;
* [ [http://www.usenix.org/events/usenix03/tech/freenix03/agnew/agnew_html/index.html HTML] ]&lt;br /&gt;
&lt;br /&gt;
=== Supermon: High performance monitoring for Linux clusters ===&lt;br /&gt;
* Ron Minnich, Los Alamos National Laboratory, and Karen Reid, University of Toronto&lt;br /&gt;
* The [http://www.linuxshowcase.org/2001/ Fifth Annual Linux Showcase and Conference], Oakland, CA, November 5-10 2001&lt;br /&gt;
* [ [[Media:supermon.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== LOBOS and LinuxBIOS ===&lt;br /&gt;
* Cluster Research Brochure&lt;br /&gt;
* prepared for SC 2000, November 4-10 2000&lt;br /&gt;
* [ [[Media:sc00.pdf|pdf]] ] &lt;br /&gt;
&lt;br /&gt;
=== The Linux BIOS ===&lt;br /&gt;
* Ron Minnich, James Hendricks, and Dale Webster, Los Alamos National Laboratory&lt;br /&gt;
* The [http://www.linuxshowcase.org/2000/ Fourth Annual Linux Showcase and Conference], Atlanta, GA, October 4-11 2000&lt;br /&gt;
* [ [[Media:linuxbios.pdf|pdf]] | [[Media:linuxbios.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== LOBOS (Linux OS Boots Linux OS): Booting a Kernel in 32-bit Mode ===&lt;br /&gt;
* Ron Minnich, Los Alamos National Laboratory&lt;br /&gt;
* The [http://www.linuxshowcase.org/2000/ Fourth Annual Linux Showcase and Conference], Atlanta, GA, October 4-11 2000&lt;br /&gt;
* [ [[Media:lobos.pdf|pdf]] | [[Media:lobos.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== Putting Linux on your motherboard ===&lt;br /&gt;
* Antony Stone&lt;br /&gt;
* [http://www.linux-magazine.com/ Linux Magazine], March, 2003, Pg. 76&lt;br /&gt;
* [ [[Media:LinuxBIOS.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== Look Ma, No Bios ===&lt;br /&gt;
* Oleg Goldshmidt&lt;br /&gt;
* IBM Haifa Research Laboratory, July 2006&lt;br /&gt;
* [http://www.goldshmidt.org/about/lectures.html Oleg's talks]&lt;br /&gt;
* [ [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.html html] | [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.html.zip html.zip] | [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.ppt.zip ppt.zip] | [[Media:LookMaNoBIOS.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== A Framework for Using Processor Cache as RAM (CAR) ===&lt;br /&gt;
* Eswaramoorthi Nallusamy&lt;br /&gt;
* University of New Mexico&lt;br /&gt;
* [ [[Media:LBCar.ppt|ppt]] | [[Media:LBCar.pdf|pdf]]]&lt;br /&gt;
&lt;br /&gt;
== Books ==&lt;br /&gt;
&lt;br /&gt;
These books do not address LinuxBIOS specifically but provide background information useful for BIOS-level programming on PC hardware.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=48&amp;amp;section=PCI|TM PCI System Architecture]&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=27&amp;amp;section=HyperTransport|TM HyperTransport System Architecture]&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=24&amp;amp;section=AMD%20Opteron|TM%20Processor AMD K8 Processor Architecture] (white paper/book excerpt)&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Glossary</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Glossary"/>
				<updated>2007-08-16T21:38:12Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* L */  LAR keeps getting mentioned in pipermail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A ==&lt;br /&gt;
&lt;br /&gt;
=== ACPI ===&lt;br /&gt;
The '''Advanced Configuration &amp;amp; Power Interface''' is an industry standard for letting the OS control power management.&lt;br /&gt;
* http://www.acpi.info/&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=Advanced%20Configuration%20and%20Power%20Interface&lt;br /&gt;
* http://kernelslacker.livejournal.com/88243.html     acpitool to generate a C source (see mailing list also)&lt;br /&gt;
&lt;br /&gt;
=== AGP ===&lt;br /&gt;
'''Advanced Graphics Port'''&lt;br /&gt;
* http://en.wikipedia.org/wiki/AGP&lt;br /&gt;
&lt;br /&gt;
=== AGP Aperture ===&lt;br /&gt;
The memory range that is set aside for AGP access.&lt;br /&gt;
* http://en.wikipedia.org/wiki/AGP&lt;br /&gt;
&lt;br /&gt;
=== AHCI ===&lt;br /&gt;
The '''Advanced Host Controller Interface'''. Describes the register-level interface for a SATA host controller.&lt;br /&gt;
* http://en.wikipedia.org/wiki/AHCI&lt;br /&gt;
* http://www.intel.com/technology/serialata/ahci.htm&lt;br /&gt;
&lt;br /&gt;
=== APIC ===&lt;br /&gt;
'''Advanced Programmable Interrupt Controller'''. An advanced version of a [[Glossary#PIC|PIC]] that can handle interrupts from and for multiple CPUs. Modern systems usually have several APICs: Local APICs are CPU-bound, IO-APICs are bridge-bound.&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=Advanced%20Programmable%20Interrupt%20Controller&lt;br /&gt;
* http://osdev.berlios.de/pic.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== B ==&lt;br /&gt;
&lt;br /&gt;
=== BAR ===&lt;br /&gt;
Base Address Register (on PCI device).&lt;br /&gt;
&lt;br /&gt;
=== BIOS ===&lt;br /&gt;
Basic Input/Output System.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
&lt;br /&gt;
=== CAR === &lt;br /&gt;
Cache as RAM.&lt;br /&gt;
&lt;br /&gt;
=== CMOS === &lt;br /&gt;
Complementary metal oxyde semiconductor.&lt;br /&gt;
&lt;br /&gt;
=== CPU ===&lt;br /&gt;
Central processing unit (e.g. an Athlon64)&lt;br /&gt;
&lt;br /&gt;
== D ==&lt;br /&gt;
&lt;br /&gt;
=== DCR ===&lt;br /&gt;
Decode Control Register.&lt;br /&gt;
&lt;br /&gt;
=== DID ===&lt;br /&gt;
Device ID, a way of identifying the hardware in question. See [[Glossary#VID|VID]] for more info.&lt;br /&gt;
&lt;br /&gt;
=== DMA ===&lt;br /&gt;
Direct Memory Access. Allows certain hardware subsystems within a computer to access system memory for reading and/or writing independently of the main CPU. Examples of systems that use DMA: Hard Disk Controller, Disk Drive Controller, Graphics Card, Sound Card.&lt;br /&gt;
DMA is an essential feature of all modern computers, as it allows devices of different speeds to communicate without subjecting the CPU to a massive interrupt load.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Direct_memory_access&lt;br /&gt;
&lt;br /&gt;
=== DSDT ===&lt;br /&gt;
Differentiated System Descriptor Table, generated by BIOS and necessary for ACPI, see mailing list also&lt;br /&gt;
* http://acpi.sourceforge.net/dsdt/index.php&lt;br /&gt;
&lt;br /&gt;
== E ==&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
Electrically erasable programmable ROM (common mistake: electrical erasable programmable ROM).&lt;br /&gt;
&lt;br /&gt;
=== EHCI ===&lt;br /&gt;
Enhanced Host Controller Interface (USB host controller).&lt;br /&gt;
&lt;br /&gt;
== F ==&lt;br /&gt;
&lt;br /&gt;
=== Flashing ===&lt;br /&gt;
Flashing means writing of flash memory. The BIOS on modern mainboards is stored in a flash memory chip, which can be 128 Kilobytes to 4 Megabytes big.&lt;br /&gt;
&lt;br /&gt;
=== Framebuffer ===&lt;br /&gt;
The '''Framebuffer''' is a part of RAM in a computer allocated to hold the graphics information for one frame or picture. This information typically consists of color values for every pixel on the screen.&lt;br /&gt;
A framebuffer is either:&lt;br /&gt;
* Off-screen, meaning that writes to the framebuffer don't appear on the visible screen&lt;br /&gt;
* On-screen, meaning that the framebuffer is directly coupled to the visible display&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/Framebuffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== G ==&lt;br /&gt;
&lt;br /&gt;
=== GART ===&lt;br /&gt;
Graphics Address Relocation Table.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== GATT === &lt;br /&gt;
Graphics Aperture Translation Table.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== GPIO ===&lt;br /&gt;
General Purpose Input/Output.&lt;br /&gt;
* http://en.wikipedia.org/wiki/GPIO&lt;br /&gt;
&lt;br /&gt;
=== GSoC ===&lt;br /&gt;
[[GSoC|Google Summer of Code]].&lt;br /&gt;
&lt;br /&gt;
== H ==&lt;br /&gt;
&lt;br /&gt;
=== Hypertransport ===&lt;br /&gt;
A high-speed electrical interconnection protocol between CPU, memory and peripheral devices.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Hypertransport&lt;br /&gt;
* http://www.hypertransport.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I ==&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
'''Inter-Integrated-Circuit''', a bidirectional 2-wire bus for efficient inter-IC control.&lt;br /&gt;
* http://www.esacademy.com/faq/i2c/index.htm&lt;br /&gt;
&lt;br /&gt;
=== IDSEL/AD ===&lt;br /&gt;
Initialization Device SELect/Address and Data. Each PCI slot has a signal called IDSEL. It is used to differentiate between the different cards?&lt;br /&gt;
* http://www.techfest.com/hardware/bus/pci.htm&lt;br /&gt;
* http://www.fpga4fun.com/PCI4.html&lt;br /&gt;
&lt;br /&gt;
=== IRQ ===&lt;br /&gt;
Interrupt ReQuest (Handler).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== J ==&lt;br /&gt;
&lt;br /&gt;
=== JTAG ===&lt;br /&gt;
Debugging and test 4-wire interface named after an organization which defined it.&lt;br /&gt;
&lt;br /&gt;
== L ==&lt;br /&gt;
&lt;br /&gt;
=== LAR ===&lt;br /&gt;
is the LinuxBIOS [[LAR_Design|Archiver]]. It is a small utility that we use to create and change LinuxBIOS images and their modules.&lt;br /&gt;
&lt;br /&gt;
=== LPC ===&lt;br /&gt;
'''Low Pin Count''', an interface aimed at replacing the ISA bus.&lt;br /&gt;
* http://www.intel.com/design/chipsets/industry/lpc.htm&lt;br /&gt;
&lt;br /&gt;
=== LRU ===&lt;br /&gt;
'''Least Recently Used''', a rule used in operating systems that utilises a paging system. LRU selects a page to be paged out if it has been used less recently than any other page. This may be applied to a cache system as well.&lt;br /&gt;
* http://computer.laborlawtalk.com/Least%20Recently%20Used&lt;br /&gt;
&lt;br /&gt;
== M ==&lt;br /&gt;
&lt;br /&gt;
=== MII ===&lt;br /&gt;
'''Media Independent Interface'''. This is a chip commonly found on ethernet devices, together with a PHY.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MII&lt;br /&gt;
&lt;br /&gt;
=== MMIO ===&lt;br /&gt;
'''Memory-mapped I/O''' and port I/O (also called port-mapped I/O or PMIO) are two complementary methods of performing input/output between the CPU and I/O devices in a computer.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MMIO&lt;br /&gt;
&lt;br /&gt;
=== MPTable ===&lt;br /&gt;
'''Multi Processor Table'''. Intel MP specification is a hardware compatibility guide for machine hardware designers and OS software writers to produce SMP-capable machines and OSes in a vendor-independent manner. v1.1 and v1.4 versions exist.&lt;br /&gt;
* http://www.uruk.org/mps/&lt;br /&gt;
* http://www.intel.com/design/pentium/datashts/242016.htm&lt;br /&gt;
&lt;br /&gt;
=== MTRR ===&lt;br /&gt;
'''Memory Type Range Register'''. This can be used to control the way a processor accesses memory ranges.&lt;br /&gt;
* http://en.wikipedia.org/wiki/MTRR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O ==&lt;br /&gt;
&lt;br /&gt;
=== OHCI ===&lt;br /&gt;
'''Open Host Controller Interface'''. IEEE1394 (Firewire) and USB standard (mostly used by other companies than Intel).&lt;br /&gt;
* http://en.wikipedia.org/wiki/Ohci&lt;br /&gt;
* http://developer.intel.com/technology/1394/download/ohci_11.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== P ==&lt;br /&gt;
&lt;br /&gt;
=== PAM ===&lt;br /&gt;
'''Programmable Attribute Map'''. Hardware registers that describe how certain memory areas are accessed. The '''BIOS''' areas have a flash chip mapped on top of a piece of memory. By changing the '''PAM''' registers, accesses to these memory areas can be mapped to either the RAM or the flash device. '''Shadowing''' is implemented by setting read accesses to the flash device and write accesses to the same address space are mapped to RAM. Walking over the address space, each byte is read and immediately written from/to each address. Afterwards write accesses are ignored and read accesses are mapped to RAM. Usually the '''PAM''' registers are part of the southbridge of a system.&lt;br /&gt;
&lt;br /&gt;
=== PAT ===&lt;br /&gt;
'''Page Attribute Table'''. Can be used independently or in combination with MTRR to setup memory type access ranges. Allows more finely-grained control than MTRR.&lt;br /&gt;
* http://www.intel.com/design/pentium4/manuals/index_new.htm&lt;br /&gt;
* http://66.102.9.104/search?q=cache:k5pI7x36u1kJ:www-gtr.iutv.univ-paris13.fr/Cours/Mat/Architecture/Docs/System.pdf+%22page+attribute+table%22&amp;amp;hl=en&amp;amp;start=10&lt;br /&gt;
&lt;br /&gt;
=== PAT ===&lt;br /&gt;
Performance Acceleration Technology.&lt;br /&gt;
* http://www.intel.com/design/chipsets/pat.htm&lt;br /&gt;
&lt;br /&gt;
=== PCI ===&lt;br /&gt;
Peripheral Component Interconnect.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Peripheral_Component_Interconnect&lt;br /&gt;
&lt;br /&gt;
=== PCI Configuration Space ===&lt;br /&gt;
* http://en.wikipedia.org/wiki/PCI_Configuration_Space&lt;br /&gt;
* http://www.techfest.com/hardware/bus/pci.htm&lt;br /&gt;
&lt;br /&gt;
=== PCI Express / PCIe ===&lt;br /&gt;
* http://en.wikipedia.org/wiki/Pci_express&lt;br /&gt;
&lt;br /&gt;
=== PHY ===&lt;br /&gt;
'''PHY layer device'''. A device that provides low level access to the physical layer.&lt;br /&gt;
* http://en.wikipedia.org/wiki/PHY&lt;br /&gt;
* http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?physical+layer&lt;br /&gt;
&lt;br /&gt;
=== PIC ===&lt;br /&gt;
A '''Programmable Interrupt Controller''' is a device to control peripheral devices, offloading the main CPU.&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=programmable%20interrupt%20controller&lt;br /&gt;
* http://www.interq.or.jp/japan/se-inoue/e_pic1.htm&lt;br /&gt;
&lt;br /&gt;
=== PIO ===&lt;br /&gt;
'''Programmed Input/Output''' interface is the original method used to transfer data between the CPU (through the IDE controller) and an IDE/ATA device.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Programmed_input/output&lt;br /&gt;
&lt;br /&gt;
=== PIR ===&lt;br /&gt;
Programmable Interrupt Routing?&lt;br /&gt;
&lt;br /&gt;
=== PIRQ ===&lt;br /&gt;
PCI IRQ routing table,&lt;br /&gt;
* http://www.microsoft.com/whdc/archive/pciirq.mspx&lt;br /&gt;
* http://www.soundonsound.com/sos/jul04/articles/qa0704-1.htm&lt;br /&gt;
* Interesting tool?: https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=93717&amp;amp;action=view&lt;br /&gt;
&lt;br /&gt;
=== PLCC ===&lt;br /&gt;
'''Plastic Leaded Chip Carrier''', a square surface-mount chip package.&lt;br /&gt;
* http://www.webopedia.com/TERM/P/PLCC.html&lt;br /&gt;
&lt;br /&gt;
=== PLL ===&lt;br /&gt;
'''Phase Locked Loop''' is a device to keep (electrical) signals synchronised throughout the system.&lt;br /&gt;
* http://en.wikipedia.org/wiki/PLL&lt;br /&gt;
&lt;br /&gt;
=== POST ===&lt;br /&gt;
The '''Power On Self Test''' is a test to check that devices the computer will rely on are functioning, and initializes devices.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Power-on_self_test&lt;br /&gt;
&lt;br /&gt;
== R ==&lt;br /&gt;
&lt;br /&gt;
=== RDMA ===&lt;br /&gt;
'''Remote Direct Memory Access''' is a concept whereby two or more computers communicate via DMA directly from main memory of one system to the main memory of another.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Remote_Direct_Memory_Access&lt;br /&gt;
&lt;br /&gt;
=== RCS ===&lt;br /&gt;
Revision control systems.&lt;br /&gt;
&lt;br /&gt;
== S ==&lt;br /&gt;
&lt;br /&gt;
=== SB ===&lt;br /&gt;
'''Southbridge'''. Chip on the mainboard that is usually responsible for handling the flash device, IDE controller, ...&lt;br /&gt;
&lt;br /&gt;
=== SBA ===&lt;br /&gt;
SideBand Addressing.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
&lt;br /&gt;
=== Shadow RAM ===&lt;br /&gt;
RAM which content is copied from ROM residing at the same address for speedup purposes.&lt;br /&gt;
&lt;br /&gt;
=== SIO ===&lt;br /&gt;
Serial Input/Output.&lt;br /&gt;
* http://www.acronymfinder.com/af-query.asp?String=off&amp;amp;Acronym=sio&amp;amp;Find=Find&amp;amp;sourceid=mozilla-search&lt;br /&gt;
&lt;br /&gt;
=== SMBus ===&lt;br /&gt;
The '''System Management Bus''' is a simple two-wire bus used for communication with low-bandwidth devices on a motherboard. It is based on (actually a subset of) I2C.&lt;br /&gt;
* http://www.smbus.org/&lt;br /&gt;
* http://www.computer-dictionary-online.org/index.asp?q=System%20Management%20Bus&lt;br /&gt;
&lt;br /&gt;
=== SMM ===&lt;br /&gt;
'''System Management Mode'''. Processor mode that is mainly used for power management purposes.&lt;br /&gt;
&lt;br /&gt;
=== SMRAM ===&lt;br /&gt;
System Management Random Access Memory.&lt;br /&gt;
&lt;br /&gt;
=== SPD ===&lt;br /&gt;
'''Serial Presence Detect'''. On every (?) memory module there's an EPROM that provides the BIOS with information on how to properly configure the memory module.&lt;br /&gt;
* http://www.simmtester.com/page/news/showpubnews.asp?num=101&lt;br /&gt;
&lt;br /&gt;
=== SPI ===&lt;br /&gt;
The '''Serial Peripheral Interface Bus''' is a very loose standard for controlling almost any digital electronics that accepts a clocked serial stream of bits.&lt;br /&gt;
* http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus&lt;br /&gt;
&lt;br /&gt;
=== SuperIO ===&lt;br /&gt;
The '''SuperIO''' is the chip that provides floppy, serial and parallel functionality/ports.&lt;br /&gt;
* http://www.simtec.co.uk/products/EB7500ATX/files/EB7500ATX-mmap.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== T ==&lt;br /&gt;
&lt;br /&gt;
=== TLB ===&lt;br /&gt;
'''Translation Lookaside Buffer'''. The TLB stores the most recently used page-directory and page-table entries, which translates into speedier access to said memory.&lt;br /&gt;
* http://www.linuxelectrons.com/article.php/20031021142247752&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== U ==&lt;br /&gt;
&lt;br /&gt;
=== UC ===&lt;br /&gt;
Strong '''UnCacheable'''. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== UC ===&lt;br /&gt;
'''UnCacheable'''. Memory type setting in MTRR/PAT.&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.3&lt;br /&gt;
&lt;br /&gt;
=== UHCI ===&lt;br /&gt;
'''Universal Host Controller Interface'''. USB standard.&lt;br /&gt;
* http://en.wikipedia.org/wiki/UHCI&lt;br /&gt;
* http://developer.intel.com/technology/usb/uhci11d.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== V ==&lt;br /&gt;
&lt;br /&gt;
=== VGAcon ===&lt;br /&gt;
The purpose of the '''VGAcon''' (VGA controller) is to isolate the details of VGA signal generation from all the other modules in a (hardware) design. It allows the pixel information to be written into its video memory using a very simple interface, while it is alone responsible for generating the required signals for displaying the pixel information on a VGA monitor. (Note: This is mostly relevant to a hardware design - the text is copied from a students FPGA project).&lt;br /&gt;
* http://www.eecg.utoronto.ca/~singhd/241/vgacon.htm&lt;br /&gt;
&lt;br /&gt;
=== VID ===&lt;br /&gt;
'''Vendor ID''', a way of identifying the hardware manufacturer.&lt;br /&gt;
* http://www.microsoft.com/whdc/system/bus/PCI/infreq.mspx&lt;br /&gt;
* http://pciids.sourceforge.net/&lt;br /&gt;
A way of obtaining info for your hardware is through the 'lspci' command. Simply type 'lspci -n' in the console (or an xterm) or 'lspci -vn' for more verbose output.&lt;br /&gt;
&lt;br /&gt;
=== VMEBus ===&lt;br /&gt;
'''VERSAmodule Eurocard Bus''' or '''Versa Module Europa Bus'''. A computer bus originally developed for the Motorola 68000.&lt;br /&gt;
* http://en.wikipedia.org/wiki/VMEbus&lt;br /&gt;
&lt;br /&gt;
== W ==&lt;br /&gt;
&lt;br /&gt;
=== WB ===&lt;br /&gt;
Write-Back. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WC ===&lt;br /&gt;
Write-Combining. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WP ===&lt;br /&gt;
Write Protected. Memory type setting in MTRR/PAT.&lt;br /&gt;
&lt;br /&gt;
=== WT ===&lt;br /&gt;
Write-Through. Memory type setting in MTRR/PAT.&lt;br /&gt;
* For more details see IA-32 Intel256 Architecture Software Developer's Manual: Vol3 Section 10.3&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Desktops</id>
		<title>Desktops</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Desktops"/>
				<updated>2007-08-16T14:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Candidate desktop mainboards for support in the future */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;0&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
Currently LinuxBIOS doesn't support too many desktop/workstation-type mainboards, but we [http://tracker.linuxbios.org/trac/LinuxBIOS/ticket/6 intend to support more of them] in the future.&lt;br /&gt;
&lt;br /&gt;
This page documents which desktop motherboards are supported, which are being worked on, where you can buy them etc.&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; align=&amp;quot;right&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
'''Color Legend'''&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;font-size: smaller&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | Motherboard has not been started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:yellow&amp;quot; | Motherboard is work in progress.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:lime&amp;quot; | Motherboard is fully supported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Supported Desktop Motherboards ==&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;quot;Desktops / Workstations&amp;quot; section of the [[Supported Motherboards|list of supported mainboards]]. You can also have a look at the &amp;quot;Server&amp;quot; section, as the differences between desktop/server are not always very big. The current &amp;quot;flagships&amp;quot; as far as LinuxBIOS-supported desktop mainboards are concerned are probably the [[GIGABYTE GA-M57SLI-S4 Build Tutorial|GIGABYTE GA-M57SLI-S4]] and the [[ASUS A8N-E]].&lt;br /&gt;
&lt;br /&gt;
== Candidate desktop mainboards for support in the future ==&lt;br /&gt;
&lt;br /&gt;
Mainboards with '''AMD K8''' northbridge and '''NVIDIA CK804''' or '''NVIDIA MCP55''' southbridge are good candidates for new mainboards. All or most components are supported already, so adding LinuxBIOS support for such a mainboard should be relatively easy. Please contact us on the [[Mailinglist|mailing list]] if you intend to work on such a board or if you want to help with testing.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Vendor&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Mainboard&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Northbridge&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Southbridge&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Super&amp;amp;nbsp;I/O&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | CPU&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Socket&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Status&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Buy&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Notes&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Abit&lt;br /&gt;
| [http://www.abit-usa.com/products/mb/techspec.php?categories=1&amp;amp;model=318 KN9S]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55 (?)&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Opteron&amp;amp;trade; / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813127007 NewEgg]&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Abit&lt;br /&gt;
| [http://www.abit-usa.com/products/mb/techspec.php?categories=1&amp;amp;model=316 KN9 Ultra]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813127008 NewEgg]&lt;br /&gt;
| [http://www.phoronix.net/forums/showthread.php?t=2077 lspci]. [http://www.unlimitpc.com/article/computex2006_day2/abit/big/IMG_3219.JPG Socketed BIOS]. [http://www.linuxbios.org/pipermail/linuxbios/2006-November/017018.html No serial port].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=382&amp;amp;modelmenu=1 A8N-SLI]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://ubuntuforums.org/showthread.php?t=151773 lspci]. [http://www.egielda.com.pl/images/art/cache/b86601a9ce009b71faa27496009fdea1.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=375&amp;amp;modelmenu=1 A8N-SLI Deluxe]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;IT8712F&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://www.linuxquestions.org/hcl/showproduct.php/product/3410 lspci]. [http://www.pcper.com/images/reviews/98/board_side.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=539&amp;amp;modelmenu=1 A8N-SLI Premium]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.aspx?Item=N82E16813131540 NewEgg]&lt;br /&gt;
| [http://www.abclinuxu.cz/hardware/zakladni-desky/socket-939/asus-a8n-sli-premium lspci]. [http://www.nvnews.net/articles/gpu_world_tour_2006/images/systems/3800/a8n_sli_premium_1.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=789&amp;amp;modelmenu=1 A8N-SLI SE]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://tracker.linuxbios.org/trac/LinuxBIOS/attachment/ticket/6/output.txt lspci]. [http://myarticle.enet.com.cn/images/200603/1142314731163/DSCN4750.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=789&amp;amp;modelmenu=1  A8N E-FM/S]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:yellow&amp;quot; | WIP&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [ lspci]  Socketed BIOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com/products4.aspx?modelmenu=2&amp;amp;model=1181&amp;amp;l1=3&amp;amp;l2=101&amp;amp;l3=308 M2N-E]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813131022 NewEgg]&lt;br /&gt;
| [http://blog.tobias-olry.de/asus-m2n-e-vs-kubuntu-edgy/#comment-697 lspci]. [http://www.pclaunches.com/entry_images/1106/09/asus_m2ne-atx_1.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com/products.aspx?l1=3&amp;amp;l2=101&amp;amp;l3=370&amp;amp;l4=0&amp;amp;model=1266&amp;amp;modelmenu=1 M2N4-SLI]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.aspx?Item=N82E16813131068 NewEgg]&lt;br /&gt;
| [http://www.phoronix.net/forums/archive/index.php/t-2079.html lspci]. [http://img5.pcpop.com/ProductImages/500x375/0/218/000218777.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Biostar&lt;br /&gt;
| [http://www.biostar-usa.com/mbdetails.asp?model=TForce%20550 TFORCE 550]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55 (?)&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813138026 NewEgg]&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://global.msi.com.tw/index.php?func=proddesc&amp;amp;prod_no=249&amp;amp;maincat_no=1 K8N Neo4-F (MS-7125)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| Winbond&amp;amp;trade;&amp;amp;nbsp;Wxxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Opteron&amp;amp;trade; / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.aspx?Item=N82E16813130491R NewEgg]&lt;br /&gt;
| [http://linuxbios.org/pipermail/linuxbios/2006-May/014478.html lspci]. [http://www.egielda.com.pl/images/art/5094fd836a12d09ad70ce725cd9ef574.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://global.msi.com.tw/index.php?func=proddesc&amp;amp;prod_no=255&amp;amp;maincat_no=1&amp;amp;cat2_no=171 K9N Neo (MS-7260)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| Winbond&amp;amp;trade;&amp;amp;nbsp;Wxxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://tracker.linuxbios.org/trac/LinuxBIOS/attachment/ticket/6/lspci_ms-7260-msi-k9n-neo.out lspci]. [http://milans.pccentre.pl/publikacje/msi_k9neof/1a.jpg Socketed BIOS]. Same as MSI K9N Neo-F?&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://www.msicomputer.com/product/p_spec.asp?model=K9N_Neo-F&amp;amp;class=mb K9N Neo-F (MS-7260)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:yellow&amp;quot; | WIP&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813130050 NewEgg]&lt;br /&gt;
| [http://forums.fedoraforum.org/showthread.php?t=120252#post587808 lspci]&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://global.msi.com.tw/index.php?func=proddesc&amp;amp;prod_no=253&amp;amp;maincat_no=1 K9N Ultra (MS-7250)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://help.lockergnome.com/linux/18-rc5-pata-drivers-MSI-K9N-Ultra-report-AMD64-ftopict369162.html lspci]&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://www.msicomputer.com/product/p_spec.asp?model=K9N4_Ultra-F&amp;amp;class=mb K9N4 Ultra-F (MS-7310)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55 (?)&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813130063 NewEgg]&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://www.msicomputer.com/product/p_spec.asp?model=K9N_Platinum&amp;amp;class=mb K9N Platinum (MS-7250)]&lt;br /&gt;
| nFor| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:yellow&amp;quot; | WIP&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813130049 NewEgg]&lt;br /&gt;
| [http://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/94820 lspci]. [http://www.virtual-hideout.net/articles/AMD_Tech_Tour_2006_Seattle/MSI/06.JPG Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; See http://www.openbios.org/pipermail/linuxbios/2006-November/016880.html.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; See http://linuxbios.org/pipermail/linuxbios/2006-November/017322.html.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; See http://www.openbios.org/pipermail/linuxbios/2006-December/017580.html.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HOWTOs ==&lt;br /&gt;
&lt;br /&gt;
* [[GIGABYTE GA-M57SLI-S4 Build Tutorial]]&lt;br /&gt;
* [[ASUS A8N-E Build Tutorial]]&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Desktops</id>
		<title>Desktops</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Desktops"/>
				<updated>2007-08-16T14:48:01Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Candidate desktop mainboards for support in the future */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;0&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
Currently LinuxBIOS doesn't support too many desktop/workstation-type mainboards, but we [http://tracker.linuxbios.org/trac/LinuxBIOS/ticket/6 intend to support more of them] in the future.&lt;br /&gt;
&lt;br /&gt;
This page documents which desktop motherboards are supported, which are being worked on, where you can buy them etc.&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; align=&amp;quot;right&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
'''Color Legend'''&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;font-size: smaller&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | Motherboard has not been started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:yellow&amp;quot; | Motherboard is work in progress.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:lime&amp;quot; | Motherboard is fully supported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Supported Desktop Motherboards ==&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;quot;Desktops / Workstations&amp;quot; section of the [[Supported Motherboards|list of supported mainboards]]. You can also have a look at the &amp;quot;Server&amp;quot; section, as the differences between desktop/server are not always very big. The current &amp;quot;flagships&amp;quot; as far as LinuxBIOS-supported desktop mainboards are concerned are probably the [[GIGABYTE GA-M57SLI-S4 Build Tutorial|GIGABYTE GA-M57SLI-S4]] and the [[ASUS A8N-E]].&lt;br /&gt;
&lt;br /&gt;
== Candidate desktop mainboards for support in the future ==&lt;br /&gt;
&lt;br /&gt;
Mainboards with '''AMD K8''' northbridge and '''NVIDIA CK804''' or '''NVIDIA MCP55''' southbridge are good candidates for new mainboards. All or most components are supported already, so adding LinuxBIOS support for such a mainboard should be relatively easy. Please contact us on the [[Mailinglist|mailing list]] if you intend to work on such a board or if you want to help with testing.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Vendor&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Mainboard&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Northbridge&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Southbridge&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Super&amp;amp;nbsp;I/O&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | CPU&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Socket&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Status&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Buy&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Notes&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Abit&lt;br /&gt;
| [http://www.abit-usa.com/products/mb/techspec.php?categories=1&amp;amp;model=318 KN9S]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55 (?)&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Opteron&amp;amp;trade; / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813127007 NewEgg]&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Abit&lt;br /&gt;
| [http://www.abit-usa.com/products/mb/techspec.php?categories=1&amp;amp;model=316 KN9 Ultra]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813127008 NewEgg]&lt;br /&gt;
| [http://www.phoronix.net/forums/showthread.php?t=2077 lspci]. [http://www.unlimitpc.com/article/computex2006_day2/abit/big/IMG_3219.JPG Socketed BIOS]. [http://www.linuxbios.org/pipermail/linuxbios/2006-November/017018.html No serial port].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=382&amp;amp;modelmenu=1 A8N-SLI]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://ubuntuforums.org/showthread.php?t=151773 lspci]. [http://www.egielda.com.pl/images/art/cache/b86601a9ce009b71faa27496009fdea1.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=375&amp;amp;modelmenu=1 A8N-SLI Deluxe]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;IT8712F&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://www.linuxquestions.org/hcl/showproduct.php/product/3410 lspci]. [http://www.pcper.com/images/reviews/98/board_side.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=539&amp;amp;modelmenu=1 A8N-SLI Premium]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:yelllow&amp;quot; | WIP&lt;br /&gt;
| [http://www.newegg.com/Product/Product.aspx?Item=N82E16813131540 NewEgg]&lt;br /&gt;
| [http://www.abclinuxu.cz/hardware/zakladni-desky/socket-939/asus-a8n-sli-premium lspci]. [http://www.nvnews.net/articles/gpu_world_tour_2006/images/systems/3800/a8n_sli_premium_1.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=789&amp;amp;modelmenu=1 A8N-SLI SE]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://tracker.linuxbios.org/trac/LinuxBIOS/attachment/ticket/6/output.txt lspci]. [http://myarticle.enet.com.cn/images/200603/1142314731163/DSCN4750.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com.tw/products.aspx?l1=3&amp;amp;l2=15&amp;amp;l3=148&amp;amp;l4=0&amp;amp;model=789&amp;amp;modelmenu=1  A8N E-FM/S]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://tracker.linuxbios.org/trac/LinuxBIOS/attachment/ticket/6/output.txt lspci]. [http://myarticle.enet.com.cn/images/200603/1142314731163/DSCN4750.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com/products4.aspx?modelmenu=2&amp;amp;model=1181&amp;amp;l1=3&amp;amp;l2=101&amp;amp;l3=308 M2N-E]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813131022 NewEgg]&lt;br /&gt;
| [http://blog.tobias-olry.de/asus-m2n-e-vs-kubuntu-edgy/#comment-697 lspci]. [http://www.pclaunches.com/entry_images/1106/09/asus_m2ne-atx_1.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| ASUS&lt;br /&gt;
| [http://www.asus.com/products.aspx?l1=3&amp;amp;l2=101&amp;amp;l3=370&amp;amp;l4=0&amp;amp;model=1266&amp;amp;modelmenu=1 M2N4-SLI]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| ITE&amp;amp;nbsp;ITxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.aspx?Item=N82E16813131068 NewEgg]&lt;br /&gt;
| [http://www.phoronix.net/forums/archive/index.php/t-2079.html lspci]. [http://img5.pcpop.com/ProductImages/500x375/0/218/000218777.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Biostar&lt;br /&gt;
| [http://www.biostar-usa.com/mbdetails.asp?model=TForce%20550 TFORCE 550]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55 (?)&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813138026 NewEgg]&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://global.msi.com.tw/index.php?func=proddesc&amp;amp;prod_no=249&amp;amp;maincat_no=1 K8N Neo4-F (MS-7125)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;CK804&lt;br /&gt;
| Winbond&amp;amp;trade;&amp;amp;nbsp;Wxxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Opteron&amp;amp;trade; / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;939&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.aspx?Item=N82E16813130491R NewEgg]&lt;br /&gt;
| [http://linuxbios.org/pipermail/linuxbios/2006-May/014478.html lspci]. [http://www.egielda.com.pl/images/art/5094fd836a12d09ad70ce725cd9ef574.jpg Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://global.msi.com.tw/index.php?func=proddesc&amp;amp;prod_no=255&amp;amp;maincat_no=1&amp;amp;cat2_no=171 K9N Neo (MS-7260)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| Winbond&amp;amp;trade;&amp;amp;nbsp;Wxxxxx&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://tracker.linuxbios.org/trac/LinuxBIOS/attachment/ticket/6/lspci_ms-7260-msi-k9n-neo.out lspci]. [http://milans.pccentre.pl/publikacje/msi_k9neof/1a.jpg Socketed BIOS]. Same as MSI K9N Neo-F?&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://www.msicomputer.com/product/p_spec.asp?model=K9N_Neo-F&amp;amp;class=mb K9N Neo-F (MS-7260)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:yellow&amp;quot; | WIP&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813130050 NewEgg]&lt;br /&gt;
| [http://forums.fedoraforum.org/showthread.php?t=120252#post587808 lspci]&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://global.msi.com.tw/index.php?func=proddesc&amp;amp;prod_no=253&amp;amp;maincat_no=1 K9N Ultra (MS-7250)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| [http://help.lockergnome.com/linux/18-rc5-pata-drivers-MSI-K9N-Ultra-report-AMD64-ftopict369162.html lspci]&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://www.msicomputer.com/product/p_spec.asp?model=K9N4_Ultra-F&amp;amp;class=mb K9N4 Ultra-F (MS-7310)]&lt;br /&gt;
| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55 (?)&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Sempron / Athlon&amp;amp;trade;&amp;amp;nbsp;64 / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:red&amp;quot; | NS&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813130063 NewEgg]&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| MSI&lt;br /&gt;
| [http://www.msicomputer.com/product/p_spec.asp?model=K9N_Platinum&amp;amp;class=mb K9N Platinum (MS-7250)]&lt;br /&gt;
| nFor| AMD&amp;amp;nbsp;K8&lt;br /&gt;
| NVIDIA&amp;amp;nbsp;MCP55&lt;br /&gt;
| ?&lt;br /&gt;
| AMD&amp;amp;nbsp;Athlon&amp;amp;trade;&amp;amp;nbsp;64 / FX / X2&lt;br /&gt;
| Socket&amp;amp;nbsp;AM2&lt;br /&gt;
| style=&amp;quot;background:yellow&amp;quot; | WIP&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
| [http://www.newegg.com/Product/Product.asp?Item=N82E16813130049 NewEgg]&lt;br /&gt;
| [http://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/94820 lspci]. [http://www.virtual-hideout.net/articles/AMD_Tech_Tour_2006_Seattle/MSI/06.JPG Socketed BIOS].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; See http://www.openbios.org/pipermail/linuxbios/2006-November/016880.html.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; See http://linuxbios.org/pipermail/linuxbios/2006-November/017322.html.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; See http://www.openbios.org/pipermail/linuxbios/2006-December/017580.html.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HOWTOs ==&lt;br /&gt;
&lt;br /&gt;
* [[GIGABYTE GA-M57SLI-S4 Build Tutorial]]&lt;br /&gt;
* [[ASUS A8N-E Build Tutorial]]&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-08-16T14:45:03Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */  A8NE-FM/S started&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The Asus A8N-E is a Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007) (used items at ebay ~ €20-35 possible). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The plcc32 BIOS chip is of type   SST 49LF004B  of which you need a spare pre-programmed piece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Chip_lb.png|thumb|flash type 4 Mbit SST 49LF004B]]&lt;br /&gt;
&lt;br /&gt;
A8N-sli deluxe, an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same pcb design with more solder pads populated (pls cnfirm), and is also out of stock mostly.&lt;br /&gt;
Supporting more recent A8N boards is considered, but there is no confirmation about any one already [[Desktops|finished]]. '''A8NE-FM/S''' has initial support in the source tree.&lt;br /&gt;
&lt;br /&gt;
===known issues===&lt;br /&gt;
currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
&lt;br /&gt;
single DIMM support only&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Build_coreboot_using_LBdistro</id>
		<title>Build coreboot using LBdistro</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Build_coreboot_using_LBdistro"/>
				<updated>2007-08-14T23:06:33Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: biosdistro of gsoc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== What is LBdistro? ===&lt;br /&gt;
&lt;br /&gt;
LBdistro is an improvement on buildrom to let user customize what binaries will be at final ROM. Do not confuse it with [[biosdistro]].&lt;br /&gt;
&lt;br /&gt;
=== How to getting started? ===&lt;br /&gt;
&lt;br /&gt;
First you need download the toolchain used to compile some LBdistro packages:&lt;br /&gt;
&lt;br /&gt;
 wget http://lbdistro.sourceforge.net/tools/toolchain.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Extract it to /usr/local:&lt;br /&gt;
&lt;br /&gt;
 tar jxvf toolchain.tar.bz2 -C /usr/local&lt;br /&gt;
&lt;br /&gt;
Get last LBdistro from SVN repository:&lt;br /&gt;
&lt;br /&gt;
 svn co https://lbdistro.svn.sourceforge.net/svnroot/lbdistro/trunk LBdistro&lt;br /&gt;
&lt;br /&gt;
After that issue:&lt;br /&gt;
&lt;br /&gt;
 cd LBdistro&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
For now only QEMU compilation is generating ROM, but other boards will be added after Kdrive and application works.&lt;br /&gt;
&lt;br /&gt;
=== Known problems ===&lt;br /&gt;
&lt;br /&gt;
There is some problems when compiling it on Debian and others (on Ubuntu 6.06 it works fine). This problem will be fixed ASAP.&lt;br /&gt;
&lt;br /&gt;
In my system I need change the command &amp;quot;lzma e&amp;quot; to &amp;quot;lzma -z&amp;quot; to compress payload&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Documentation</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Documentation"/>
				<updated>2007-08-13T17:21:36Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Build Tutorials */  slim now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information on how to get started building and installing LinuxBIOS, as well as build tutorials for various specific motherboards.&lt;br /&gt;
&lt;br /&gt;
== Build Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[IWILL DK8-HTX Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[GIGABYTE GA-M57SLI-S4 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[QEMU Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2881 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2882 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[Tyan S2892 Build Tutorial]] &amp;amp;mdash; the OLPC way (LinuxBIOSv2)&lt;br /&gt;
* [[ASI MB-5BLMP Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[BCOM WINNET100 Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[ASUS A8N-E Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
* [[AXUS WINTERM Build Tutorial]] (LinuxBIOSv2)&lt;br /&gt;
&lt;br /&gt;
* [[SiS630]] (LinuxBIOSv1)&lt;br /&gt;
&lt;br /&gt;
== Port Guides ==&lt;br /&gt;
&lt;br /&gt;
Here are some port guides and experiences. &lt;br /&gt;
&lt;br /&gt;
* [http://www.openbios.org/LinuxBIOS-AMD64.pdf LinuxBIOS on AMD64 (PDF)] (LinuxBIOSv2)&lt;br /&gt;
* [[The EPIA-M/MII]] (LinuxBIOSv2)&lt;br /&gt;
* [[The Technoland SBC 710]] (LinuxBIOSv1)&lt;br /&gt;
* [[The PC CHIPS M810LR]] (LinuxBIOSv1)&lt;br /&gt;
&lt;br /&gt;
== Other Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[JTAG/BSDL Guide]]&lt;br /&gt;
* [[VGA support]]&lt;br /&gt;
* [[X11 on EPIA-M]]&lt;br /&gt;
* [[lxbios|Lxbios documentation]]&lt;br /&gt;
* [http://www.linuxbios.org/data/docs/configmanual.ps Configuration tool manual] (from freebios/Documentation/configmanual.ps)&lt;br /&gt;
* [http://www.linuxbios.org/data/lbdoc Project Book, Mangrove LinuxBios] from Mathieu Deschamps&lt;br /&gt;
* LinuxBIOS [[Glossary]]&lt;br /&gt;
* The USB [[EHCI Debug Port]] may be the easiest way to do early debugging without a legacy serial port.&lt;br /&gt;
* [http://web.archive.org/web/20040414101354/http://www.lysator.liu.se/upplysning/fa/linuxbios.pdf Christer Weinigel: Doing Linux programming close to the hardware] (PDF)&lt;br /&gt;
* [http://snapshots.linuxbios.org/docs/doxygen/ Doxygen generated build documentation]&lt;br /&gt;
* [[Creating Valid IRQ Tables]]&lt;br /&gt;
* Some documentation on &amp;quot;piggybacking&amp;quot; using PLCC chips: [[:Image:Tivo_prom_piggy_back_socket_installation.pdf|1]], [[:Image:How_to_build_the_tivo_prom_piggy_socket.pdf|2]], [[:Image:Tivo_piggyback_prom.pdf|3]].&lt;br /&gt;
* [http://www.linuxbios.org/Booting_Windows_using_LinuxBIOS Booting Windows using LinuxBIOS]&lt;br /&gt;
* [[LinuxBIOSv3]]&lt;br /&gt;
&lt;br /&gt;
== External articles ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.linuxjournal.com/article/7170 LinuxBIOS at Four]&lt;br /&gt;
* [http://plan9.bell-labs.com/wiki/plan9/Integrating_9load_into_the_linuxbios/index.html Integrating 9load into the LinuxBIOS]&lt;br /&gt;
* [http://blog.slightlyhackish.com/2007/03/26/building-and-testing-linuxbiosv2-step-by-step.aspx Building and testing LinuxBIOSv2, step by step]&lt;br /&gt;
* [http://blog.perlplexity.org/?p=13 How to get the Iwill DK8-HTX running with LinuxBIOS]&lt;br /&gt;
&lt;br /&gt;
== Papers/Articles/Slides ==&lt;br /&gt;
&lt;br /&gt;
=== Breaking the Chains -- Using LinuxBIOS to Liberate Embedded x86 Processors ===&lt;br /&gt;
* Jordan H. Crouse, Marc E. Jones, Ronald G. Minnich&lt;br /&gt;
* Proceedings of the Linux Symposium, June 27th-­30th, 2007, Ottawa, Ontario, Canada&lt;br /&gt;
* [ [https://ols2006.108.redhat.com/2007/Reprints/crouse-Reprint.pdf pdf] | [http://linuxbios.org/images/8/88/Crouse-Reprint.pdf pdf (local copy)] ]&lt;br /&gt;
&lt;br /&gt;
=== LinuxBIOS - Freedom for your motherboard ===&lt;br /&gt;
* Alan Carvalho de Assis&lt;br /&gt;
* FISL 8.0 (8th Forum Internacional de Software Livre)&lt;br /&gt;
* [ [[Media:LinuxBIOS-FISL8.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== FSF is moving towards LinuxBIOS deployment (Russian article) ===&lt;br /&gt;
* Anton Borisov&lt;br /&gt;
* SAMAG, 02-2006 (http://www.samag.ru)&lt;br /&gt;
* [ [[Media:LX2%40FSF_4a.pdf|pdf]] | [http://ps.kaos.ru/download/FSF_migrates_to_LinuxBIOS_technology.pdf alternative PDF] ]&lt;br /&gt;
&lt;br /&gt;
=== FreeVGA: Architecture Independent Video Graphics Initialization for LinuxBIOS ===&lt;br /&gt;
* Li-Ta Lo, Gregory R. Watson, Ronald G. Minnich&lt;br /&gt;
* Usenix, February 25 2005 (??)&lt;br /&gt;
* [ [http://www.linuxbios.org/data/vgabios/ html] | [[Media:vgabios.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== Flexibility in ROM: A Stackable Open Source BIOS ===&lt;br /&gt;
* Adam Agnew, Adam Sulmicki, Ronald Minnich, William Arbaugh&lt;br /&gt;
* USENIX 2003 Annual Technical Conference, FREENIX Track&lt;br /&gt;
* [ [http://www.usenix.org/events/usenix03/tech/freenix03/agnew/agnew_html/index.html HTML] ]&lt;br /&gt;
&lt;br /&gt;
=== Supermon: High performance monitoring for Linux clusters ===&lt;br /&gt;
* Ron Minnich, Los Alamos National Laboratory, and Karen Reid, University of Toronto&lt;br /&gt;
* The [http://www.linuxshowcase.org/2001/ Fifth Annual Linux Showcase and Conference], Oakland, CA, November 5-10 2001&lt;br /&gt;
* [ [[Media:supermon.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== LOBOS and LinuxBIOS ===&lt;br /&gt;
* Cluster Research Brochure&lt;br /&gt;
* prepared for SC 2000, November 4-10 2000&lt;br /&gt;
* [ [[Media:sc00.pdf|pdf]] ] &lt;br /&gt;
&lt;br /&gt;
=== The Linux BIOS ===&lt;br /&gt;
* Ron Minnich, James Hendricks, and Dale Webster, Los Alamos National Laboratory&lt;br /&gt;
* The [http://www.linuxshowcase.org/2000/ Fourth Annual Linux Showcase and Conference], Atlanta, GA, October 4-11 2000&lt;br /&gt;
* [ [[Media:linuxbios.pdf|pdf]] | [[Media:linuxbios.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== LOBOS (Linux OS Boots Linux OS): Booting a Kernel in 32-bit Mode ===&lt;br /&gt;
* Ron Minnich, Los Alamos National Laboratory&lt;br /&gt;
* The [http://www.linuxshowcase.org/2000/ Fourth Annual Linux Showcase and Conference], Atlanta, GA, October 4-11 2000&lt;br /&gt;
* [ [[Media:lobos.pdf|pdf]] | [[Media:lobos.ps|ps]] ] &lt;br /&gt;
&lt;br /&gt;
=== Putting Linux on your motherboard ===&lt;br /&gt;
* Antony Stone&lt;br /&gt;
* [http://www.linux-magazine.com/ Linux Magazine], March, 2003, Pg. 76&lt;br /&gt;
* [ [[Media:LinuxBIOS.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== Look Ma, No Bios ===&lt;br /&gt;
* Oleg Goldshmidt&lt;br /&gt;
* IBM Haifa Research Laboratory, July 2006&lt;br /&gt;
* [http://www.goldshmidt.org/about/lectures.html Oleg's talks]&lt;br /&gt;
* [ [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.html html] | [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.html.zip html.zip] | [http://www.goldshmidt.org/about/LinuxBIOS/LinuxBIOSHaifux.ppt.zip ppt.zip] | [[Media:LookMaNoBIOS.pdf|pdf]] ]&lt;br /&gt;
&lt;br /&gt;
=== A Framework for Using Processor Cache as RAM (CAR) ===&lt;br /&gt;
* Eswaramoorthi Nallusamy&lt;br /&gt;
* University of New Mexico&lt;br /&gt;
* [ [[Media:LBCar.ppt|ppt]] | [[Media:LBCar.pdf|pdf]]]&lt;br /&gt;
&lt;br /&gt;
== Books ==&lt;br /&gt;
&lt;br /&gt;
These books do not address LinuxBIOS specifically but provide background information useful for BIOS-level programming on PC hardware.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=48&amp;amp;section=PCI|TM PCI System Architecture]&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=27&amp;amp;section=HyperTransport|TM HyperTransport System Architecture]&lt;br /&gt;
* [http://www.mindshare.com/protected/link.asp?type=documents&amp;amp;id=24&amp;amp;section=AMD%20Opteron|TM%20Processor AMD K8 Processor Architecture] (white paper/book excerpt)&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Confirmed_working_svn_revisions</id>
		<title>Confirmed working svn revisions</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Confirmed_working_svn_revisions"/>
				<updated>2007-08-13T16:53:16Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also see the page on how to [[Download LinuxBIOS]].&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Board&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Directory&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | SVN Revision&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Comment&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| VIA EPIA-M || via/epia-m || 2100 || Extract the video BIOS while running factory BIOS:&lt;br /&gt;
 dd if=/dev/mem of=video.bios.bin.4 bs=65536 count=1 skip=12&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| VIA EPIA-M10000 (PCB.rev.B) || via/epia-m || 2184 || Extract the video BIOS while running factory BIOS 1.13:&lt;br /&gt;
 dd if=/dev/mem of=video.bios.bin.4 bs=65536 count=1 skip=12&lt;br /&gt;
&lt;br /&gt;
In src/mainboard/via/epia-m/mainboard.c, line 33:&lt;br /&gt;
 -       dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0);&lt;br /&gt;
 +       dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Tyan S2881 || tyan/s2881 || 2251-2287&amp;lt;br /&amp;gt;2296 and higher || See the [[Tyan S2881 Build Tutorial]].&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| ASUS A8N-E || asus/a8ne || * || upcoming &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Gigabyte M57 SLI   || **/m57sli || * || upcoming &lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Tyan S2881 || tyan/s2881 || 2251-2287&amp;lt;br /&amp;gt;2296 and higher || See the [[Tyan S2881 Build Tutorial]].&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Confirmed_working_svn_revisions</id>
		<title>Confirmed working svn revisions</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Confirmed_working_svn_revisions"/>
				<updated>2007-08-13T16:51:46Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also see the page on how to [[Download LinuxBIOS]].&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Board&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Directory&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | SVN Revision&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Comment&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| VIA EPIA-M || via/epia-m || 2100 || Extract the video BIOS while running factory BIOS:&lt;br /&gt;
 dd if=/dev/mem of=video.bios.bin.4 bs=65536 count=1 skip=12&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| VIA EPIA-M10000 (PCB.rev.B) || via/epia-m || 2184 || Extract the video BIOS while running factory BIOS 1.13:&lt;br /&gt;
 dd if=/dev/mem of=video.bios.bin.4 bs=65536 count=1 skip=12&lt;br /&gt;
&lt;br /&gt;
In src/mainboard/via/epia-m/mainboard.c, line 33:&lt;br /&gt;
 -       dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0);&lt;br /&gt;
 +       dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Tyan S2881 || tyan/s2881 || 2251-2287&amp;lt;br /&amp;gt;2296 and higher || See the [[Tyan S2881 Build Tutorial]].&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| ASUS A8N-E || **/a8ne || * || upcoming &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Gigabyte M57 SLI   || **/m57sli || * || upcoming &lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Tyan S2881 || tyan/s2881 || 2251-2287&amp;lt;br /&amp;gt;2296 and higher || See the [[Tyan S2881 Build Tutorial]].&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Confirmed_working_svn_revisions</id>
		<title>Confirmed working svn revisions</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Confirmed_working_svn_revisions"/>
				<updated>2007-08-13T16:49:57Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: A8NE added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also see the page on how to [[Download LinuxBIOS]].&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Board&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Directory&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | SVN Revision&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Comment&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| VIA EPIA-M || via/epia-m || 2100 || Extract the video BIOS while running factory BIOS:&lt;br /&gt;
 dd if=/dev/mem of=video.bios.bin.4 bs=65536 count=1 skip=12&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| VIA EPIA-M10000 (PCB.rev.B) || via/epia-m || 2184 || Extract the video BIOS while running factory BIOS 1.13:&lt;br /&gt;
 dd if=/dev/mem of=video.bios.bin.4 bs=65536 count=1 skip=12&lt;br /&gt;
&lt;br /&gt;
In src/mainboard/via/epia-m/mainboard.c, line 33:&lt;br /&gt;
 -       dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3123, 0);&lt;br /&gt;
 +       dev = dev_find_device(PCI_VENDOR_ID_VIA, 0x3122, 0);&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Tyan S2881 || tyan/s2881 || 2251-2287&amp;lt;br /&amp;gt;2296 and higher || See the [[Tyan S2881 Build Tutorial]].&lt;br /&gt;
|-&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| ASUS A8N-E || **/a8ne || * || upcoming &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Tyan S2881 || tyan/s2881 || 2251-2287&amp;lt;br /&amp;gt;2296 and higher || See the [[Tyan S2881 Build Tutorial]].&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-08-12T21:05:55Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GPL}}&lt;br /&gt;
&lt;br /&gt;
===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The Asus A8N-E is a Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007) (used items at ebay ~ €20-35 possible). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The plcc32 BIOS chip is of type   SST 49LF004B  of which you need a spare pre-programmed piece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Chip_lb.png|thumb|flash type 4 Mbit SST 49LF004B]]&lt;br /&gt;
&lt;br /&gt;
A8N-sli deluxe, an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same pcb design with more solder pads populated (pls cnfirm), and is also out of stock mostly.&lt;br /&gt;
Supporting more recent A8N boards is considered, but there is no confirmation about any one already [[Desktops|working]].&lt;br /&gt;
&lt;br /&gt;
===known issues===&lt;br /&gt;
currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
&lt;br /&gt;
single DIMM support only&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-08-12T14:19:13Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GPL}}&lt;br /&gt;
&lt;br /&gt;
===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The Asus A8N-E is a Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007) (used at ebay €30-50 possible). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The plcc32 BIOS chip is of type   SST 49LF004B  of which you need a spare pre-programmed piece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Chip_lb.png|thumb|flash type 4 Mbit SST 49LF004B]]&lt;br /&gt;
&lt;br /&gt;
A8N-sli deluxe, an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same pcb design with more solder pads populated (pls cnfirm), and is also out of stock mostly.&lt;br /&gt;
Supporting more recent A8N boards is considered, but there is no confirmation about any one already [[Desktops|working]].&lt;br /&gt;
&lt;br /&gt;
===known issues===&lt;br /&gt;
currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
&lt;br /&gt;
single DIMM support only&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/ASUS_A8N-E</id>
		<title>ASUS A8N-E</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/ASUS_A8N-E"/>
				<updated>2007-08-12T14:18:37Z</updated>
		
		<summary type="html">&lt;p&gt;Quux: /* Before you begin */  SST49LF004B&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GPL}}&lt;br /&gt;
&lt;br /&gt;
===Before you begin===&lt;br /&gt;
&lt;br /&gt;
The Asus A8N-E is a Athlon64 Socket 939 board (nforce 4 ultra) with socketed BIOS sold around €120 (mostly out of stock in 8/2007) (used at ebay €30-50 possible). It already boots LinuxBIOS. Latest legacy BIOS is from May 2006 v.1013. Socket 939 Athlons do not have Pacifica Virtualization.&lt;br /&gt;
&lt;br /&gt;
The plcc32 BIOS chip is of type   SST49LF004B  of which you need a spare pre-programmed piece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Chip_lb.png|thumb|flash type 4 Mbit ______]]&lt;br /&gt;
&lt;br /&gt;
A8N-sli deluxe, an &amp;quot;nforce 4 sli&amp;quot; board probably shares the same pcb design with more solder pads populated (pls cnfirm), and is also out of stock mostly.&lt;br /&gt;
Supporting more recent A8N boards is considered, but there is no confirmation about any one already [[Desktops|working]].&lt;br /&gt;
&lt;br /&gt;
===known issues===&lt;br /&gt;
currently PS/2 keyboards do not work, but USB keyboards do.&lt;br /&gt;
&lt;br /&gt;
single DIMM support only&lt;br /&gt;
&lt;br /&gt;
===Payload===&lt;br /&gt;
&lt;br /&gt;
===Building the payload===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Your menu.list entry===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Current status of the LBv2 tree===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Burning LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running LinuxBIOS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Help?===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TODO===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you can help out with this, please join the [[Mailinglist|mailing list]] and let us know!&lt;/div&gt;</summary>
		<author><name>Quux</name></author>	</entry>

	</feed>