Gigabyte Dual bios

From coreboot
Revision as of 07:50, 17 November 2015 by Siro (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!

Gigabyte Dual BIOS

All Gigabyte boards have a dual BIOS chip. Both chips are 8Mbit; the main BIOS is called M_BIOS, the backup BIOS is called B_BIOS. GIGABYTE claims the backup BIOS can not be flashed by the user. It contains code that will overwrite M_BIOS if it determines that M_BIOS is corrupted.

If you flash coreboot into M_BIOS and something goes wrong, you can force B_BIOS to boot and reflash M_BIOS by bridging pins 4 (GND) and 7 (#HOLD) on the M_BIOS chip. Power up the machine and wait for the screen to turn on. It could take up to 20 seconds, so be patient. Once the screen turned on, you can release the #HOLD pin. The B_BIOS will take over at that point — you will hear a beep, and see the B_BIOS boot and forcibly re-flash M_BIOS.

Pitfalls

VGA Option ROMs

The B_BIOS has some issue running VGA Option ROMs. Some PCIe graphic cards won't work. You have to use the onboard graphics in case the screen stays black.

Failed boot count

The B_BIOS will only start in case the last boot wasn't successful. In case you bricked the payload or kernel, but not coreboot, you have to remove all RAM to make sure the boot failed once.

Flashing

The backup bios chip can be flashed in-circuit using an external programmer. The main bios chip can't be flashed in-circuit. You can flash it by running flashrom -p internal from a running Linux system.