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
Which one is the appropriate .bin file for the alix3d3? alix0.bin or alix2.bin?
I used alix2.bin