[flashrom] Mysterious MAC-Address Changes after BIOS-Upgrade with flashrom
gator_ml at yahoo.de
Wed Nov 24 17:43:17 CET 2010
I have a whole bunch of machines with identical main boards (ASRock G43Twins FullHD, AMI BIOS) and am trying to upgrade the firmware using flashrom. At first sight everything looks fine (see the protocol attached below). Unfortunately, after some tests, I noted a pretty mysterious phenomenon:
In many cases, after the next reboot the machines network interfaces have a different MAC-address -even worse, they all have _the same_ MAC address (00:19:66:97:d7:e2). I tried it in many variations, but could not really detect any system - even under identical circumstances this problem seems occurs very often, but not always. If I restore the original ROM contents (after I noticed the problem, I always saved the original firmware) the machines always get their original MAC address back (but of course also the buggy bios that I am trying to upgrade). The ROM contents of the machines do contain their MAC addresses at a certain offset but in the vendor supplied BIOS image that I flash has all bits set to 1 in this and several other (obviously data) areas, the mysterious "default" MAC address
"00:19:66:97:d7:e2" does not occur in this file. When I flash the file under DOS using afudos.exe ("AMI firmware update utility 4.14"), the machines will keep their original MAC address.(As I just noticed, that program also has an option to explicitly set the MAC address).
Does anybody have an idea, what is going on here? (As I said, the phenomenon does not even seem to be deterministic). Maybe even an idea, how to do the upgrade using flashrom? (The machines are integrated in some Linux-based management system, so using flashrom I could do the upgrade automatic; except for the problem with the duplicated MAC addresses everything seems to work just fine after flashing the BIOS with flashrom).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
flashrom v0.9.2-r1141 on Linux 2.6.32-5-686 (i686), built with libpci 3.1.7, GCC 4.4.5 20100728 (prerelease), little endian
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "Intel ICH10", enabling flash write... OK.
This chipset supports the following protocols: FWH,SPI.
Found chip "Macronix MX25L8005" (1024 KB, SPI) at physical address 0xfff00000.
Flash image seems to be a legacy BIOS. Disabling checks.
Writing flash chip... Erasing flash before programming... Erasing flash chip... spi_block_erase_20 failed during command execution at address 0x0
spi_block_erase_52 failed during command execution at address 0x0
Programming flash... done.
Verifying flash... VERIFIED.
More information about the flashrom