Difference between revisions of "Board:gigabyte/m57sli"

From coreboot
Jump to navigation Jump to search
(→‎Status: Use Status template.)
m
Line 1: Line 1:
===Which board do you have?===
== Which board do you have? ==


The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.
The GIGABYTE GA-M57SLI-S4 seems to exist in 4 versions as of 2007/05.
Line 12: Line 12:
|}
|}


=== Status ===
== Status ==


{{Status|
{{Status|
Line 85: Line 85:
}}
}}


===Before you begin===
== Before you begin ==


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.
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.
Line 95: Line 95:
<div style="color: red">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!</div>
<div style="color: red">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!</div>


====PLCC32 hardware hack====
=== PLCC32 hardware hack ===


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].
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].
Line 107: Line 107:
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).
In the US, FrozenCPU seems to have stock (verified 2007/04). Eksitdata in Sweden also seems to have stock (verified 2007/03).


====SOIC hardware hack====
=== SOIC hardware hack ===


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


====Flashrom====
=== Flashrom ===


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].  
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].  
Line 119: Line 119:
Flashrom works with a [http://linuxbios.org/pipermail/linuxbios/2007-October/025936.html patch] to write to the SPI chips, but at the moment only to the MX25L4005 chip. This also just works with the propritary BIOS. (with LinuxBios the Chip detection fails.)
Flashrom works with a [http://linuxbios.org/pipermail/linuxbios/2007-October/025936.html patch] to write to the SPI chips, but at the moment only to the MX25L4005 chip. This also just works with the propritary BIOS. (with LinuxBios the Chip detection fails.)


===Payload===
== Payload ==


LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.
LinuxBIOS requires a [[Payloads|payload]] to boot an operating system.
Line 129: Line 129:
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.
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.


=== Buildrom vs. manual build ===
== Buildrom vs. manual build ==


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]].
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]].
Line 135: Line 135:
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]].
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]].


===Buildrom===
== Buildrom ==


Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.
Skip this section if you want to do a manual build; in that case jump to [[#Manual build|Manual build]] below.
Line 158: Line 158:
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.
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.


====FILO payload====
=== FILO payload ===


Skip this section if you use the LAB payload.
Skip this section if you use the LAB payload.
Line 180: Line 180:
   terminal --timeout=15 serial console
   terminal --timeout=15 serial console


====LAB payload====
=== LAB payload ===


Skip this section if you use the FILO payload.
Skip this section if you use the FILO payload.
Line 228: Line 228:
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.
The LAB code currently expects lab.conf and kexec to live in / on /dev/sda1.


===Manual build===
== Manual build ==


Skip this section if you used buildrom; in that case jump to [[#Burning LinuxBIOS|Burning LinuxBIOS]] below.
Skip this section if you used buildrom; in that case jump to [[#Burning LinuxBIOS|Burning LinuxBIOS]] below.


====Building the payload====
=== Building the payload ===


In order to boot from a SATA disk, we use FILO.
In order to boot from a SATA disk, we use FILO.
Line 299: Line 299:
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.
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.


====Your menu.list entry====
=== Your menu.lst entry ===


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:
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:
Line 315: Line 315:
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.
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.


====Current status of the LBv2 tree====
=== Current status of the LinuxBIOSv2 tree ===


Use revision 2619 or higher.
Use revision 2619 or higher.


====Building LinuxBIOS====
=== Building LinuxBIOS ===


Make sure that the path to your payload is correct, by editing  
Make sure that the path to your payload is correct, by editing  
Line 341: Line 341:
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.
This will generate a linuxbios.rom image, which is 512KB large. That's the file that should be burned into your BIOS chip.


===Burning LinuxBIOS===
== Burning LinuxBIOS ==


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.  
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.  
Line 353: Line 353:
(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).
(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).


===TODO===
== TODO ==


* ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon.  
* ACPI support is not implemented yet. This is a fairly major problem, and needs to be addressed soon.  

Revision as of 12:41, 16 October 2007