Difference between revisions of "Board:gigabyte/m57sli"
Jump to navigation
Jump to search
(→Status: Use Status template.) |
m |
||
Line 1: | Line 1: | ||
== 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| | ||
Line 85: | Line 85: | ||
}} | }} | ||
== 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 === | |||
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 === | |||
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 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 == | |||
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 == | |||
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 == | |||
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 === | |||
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 === | |||
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 == | |||
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 === | |||
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.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 LinuxBIOSv2 tree === | |||
Use revision 2619 or higher. | Use revision 2619 or higher. | ||
=== 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 == | |||
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 == | |||
* 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. |