Updating BIOS on ALIX.3D3 within Linux

Usually BIOS updating means booting DOS and running a proprietary tool from the board vendor. A few days ago, coreboot's flashrom 0.9 has realeased. It's an open-source tool which supports program almost all flash chips used on x86 mainboards. Its compatibility list includes Geode™ CS5530/A, which can be found on the ALIX.3D3 board. So why not using flashrom to update ALIX.3D3 BIOS.

Sadly there is no ebuild for flashrom in portage, so Gentoo users (and maybe some other) have to build it on there own, but it's quite easy. You need to install subversion, an open-source revision control system, first:

emerge -va subversion

As there is no portage package for flashrom, we need to install it somewhere. I installed it in /root/flashrom so it can be removed easily. You can achieve this by

cd root
svn co svn://coreboot.org/flashrom/trunk flashrom
cd flashrom
make

You can do an optional

make install

to install the binaries in /usr/local/sbin and install the man page. Now we should save our old BIOS. Running

flashrom -r /root/bios_save.bin

should display some info on the found chipset and flash chip:

Calibrating delay loop... OK.
No coreboot table found.
Found chipset "AMD CS5536", enabling flash write... OK.
Found chip "AMIC A49LF040A" (512 KB) at physical address 0xfff80000.
Reading flash... done.

If you have an image of the old installed BIOS you can check, if everything went right, by

diff /root/bios_save.bin /root/bios_old.bin

where /root/bios_old.bin is the old BIOS version, preferable found on the manufacturer's website. Now we can update the BIOS. Download the new BIOS version (ALIX.3D3 can be found here) and run:

flashrom -wv /root/bios_new.bin

flashrom should print some information, a process status and after all a VERIFIED, if everything went right:

Calibrating delay loop... OK.
No coreboot table found.
Found chipset "AMD CS5536", enabling flash write... OK.
Found chip "AMIC A49LF040A" (512 KB) at physical address 0xfff80000.
Flash image seems to be a legacy BIOS. Disabling checks.
Programming page: 0007 at address: 0x00070000
Verifying flash... VERIFIED.

Now your BIOS should be updated. It's time to plug (power) and pray.

Update: After writing a Gentoo Bug report, there is now an ebuild in portage. You can install it by

emerge -va flashrom

8 thoughts on “Updating BIOS on ALIX.3D3 within Linux

  1. Pingback: Viele Infos | Purzel's extension 4 electronic & software

  2. any thoughts on how to recover from a bad/incorrect flash? i missed the above comment, and used alix0, and now it won't post, even though it was successful

  3. Thanks a lot!

    Using the alixbio7.zip (internal version02/11/2009-AMD-LX800-6A43AEM1C-00) actually solves the hang at boot after the "Probing EDD... ok" message with a stock Debian kernel.

    I was using Lenny installed from a desktop pc + CF/IDE adapter with a Voyage Linux kernel but couldn't boot on 2.6.38-voyage so i was stuck at 2.6.26

    Now i'm in the process of upgrading to Debian Squeeze.

Leave a Reply

Your email address will not be published. Required fields are marked *