Hey,
a few days ago I successfully flashed an ASUS M5A97 bios (version 0705 to 1605). No problems whatsoever, whereas the BIOS-builtin "AZ Flash 2" turned out to be useless: it didn't even recognize my FAT usb stick.
$ sudo /usr/local/sbin/flashrom --programmer internal -w M5A97-ASUS-1605.ROM flashrom v0.9.6.1-r1646 on Linux 3.7.5 (x86_64) flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK. Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK. Found Winbond flash chip "W25Q32" (4096 kB, SPI) at physical address 0xffc00000. Reading old flash chip contents... done. Erasing and writing flash chip... Erase/write done. Verifying flash... VERIFIED.
Output from "flashrom -V --programmer=internal" attached.
W25Q32 ... chip already listed as supported AMD SB7x0/SB8x0/SB9x0 ... chipset already listed as supported -> ASUS M5A97 ... mainboard *NOT* listed yet
Thanks for flashrom! m.
On Sat, 02 Feb 2013 16:31:17 +0100 Melchior FRANZ mfranz@aon.at wrote:
Hey,
a few days ago I successfully flashed an ASUS M5A97 bios (version 0705 to 1605). No problems whatsoever, whereas the BIOS-builtin "AZ Flash 2" turned out to be useless: it didn't even recognize my FAT usb stick.
Hello,
thanks for your report! Since it is often overlooked that flashrom skips the write process completely when the image is equal to the contents of the flash chip, I have to make sure that writing really works. Can you confirm that the firmware change (by different version strings shown at startup for example)?
On Sunday 03 February 2013 02:12:12 Stefan Tauner wrote:
Can you confirm that the firmware change (by different version strings shown at startup for example)?
Yes. Here are some lines from a diff taken between the dmidecode output from before and afterwards. (I copied individual lines together -- they were not in one block.)
-55 structures occupying 2512 bytes. - Version: 0705 - Release Date: 08/22/2011 - UUID: 7BF78DA0-EBBD-11E0-A42C-5404A613C021 - Manufacturer: ASUSTeK Computer INC. - Serial Number: 111834170000132 - Socket Designation: AM3r2 - Associativity: Other
+55 structures occupying 2515 bytes. + Version: 1605 + Release Date: 10/25/2012 + UUID: 03000200-0400-0500-0006-000700080009 + Manufacturer: ASUSTeK COMPUTER INC. + Serial Number: MB-1234567890 + Socket Designation: Socket 942 + Associativity: 48-way Set-associative
m.
On Sun, 03 Feb 2013 08:44:37 +0100 Melchior FRANZ mfranz@aon.at wrote:
On Sunday 03 February 2013 02:12:12 Stefan Tauner wrote:
Can you confirm that the firmware change (by different version strings shown at startup for example)?
Yes.
Thanks! I have added your board to our list of supported hardware and will commit that later together with other small changes.
On Sunday 03 February 2013 08:44:37 Melchior FRANZ wrote:
Serial Number: MB-1234567890
^^^^^^^^^^
Seriously! :-)
m.
On Sun, 03 Feb 2013 11:01:29 +0100 Melchior FRANZ mfranz@aon.at wrote:
On Sunday 03 February 2013 08:44:37 Melchior FRANZ wrote:
Serial Number: MB-1234567890
^^^^^^^^^^
Seriously! :-)
not very surprising actually. vendors usually fill those fields with dummy data only. in theory it could also be flashrom's fault because if the vendor really uses the field the flash updating tool should probably preserve the bits similar to MAC addresses of onboard NICs (but flashrom does not and just writes whatever is in the image).
* On Sunday 03 February 2013 11:26:55 Stefan Tauner wrote:
On Sunday 03 February 2013 08:44:37 Melchior FRANZ wrote:
Serial Number: MB-1234567890
^^^^^^^^^^
not very surprising actually. vendors usually fill those fields with dummy data only. in theory it could also be flashrom's fault because if the vendor really uses the field the flash updating tool should probably preserve the bits similar to MAC addresses of onboard NICs (but flashrom does not and just writes whatever is in the image).
Ahh, right, that makes sense. I compared my previous BIOS memory contents with the original version 0705, and there are four areas that differ. All memory in the ASUS file has 0xff set throughout, where mine had data.
(1) 000c17-00bd8c (45430 Bytes; custom settings like storage devices) (2) 00fef0-00ffef (256 Bytes; ???) (3) 014008-014052 (74 Bytes; contains former serial number and MAC) (4) 37c664-37c691 (45 Bytes; contains former serial number)
Overwriting these areas with 0xff doesn't seem to have done any harm. The MAC address was in 1404d-14052 -- it's no longer there after flashing BIOS 1605, but ifconfig still knows it, so I assume it's also stored in the ethernet hardware. I don't find the new "serial number" 1234567890 in the new 1605 BIOS, nor in the current BIOS dump (neither little/big endian hex, nor ascii).
m.
On Sun, 03 Feb 2013 15:20:09 +0100 Melchior FRANZ mfranz@aon.at wrote:
I compared my previous BIOS memory contents with the original version 0705, and there are four areas that differ. All memory in the ASUS file has 0xff set throughout, where mine had data.
(1) 000c17-00bd8c (45430 Bytes; custom settings like storage devices) (2) 00fef0-00ffef (256 Bytes; ???) (3) 014008-014052 (74 Bytes; contains former serial number and MAC) (4) 37c664-37c691 (45 Bytes; contains former serial number)
Overwriting these areas with 0xff doesn't seem to have done any harm. The MAC address was in 1404d-14052 -- it's no longer there after flashing BIOS 1605, but ifconfig still knows it, so I assume it's also stored in the ethernet hardware.
yes, probably in an eeprom (which costs money and hence is often left out... not on expensive server boards, but cheap consumer ones...). interesting that they store it nevertheless in the flash too. maybe there is a (hidden) bios option to spoof the mac... i had a DFI board once that had that.
I don't find the new "serial number" 1234567890 in the new 1605 BIOS, nor in the current BIOS dump (neither little/big endian hex, nor ascii).
it is probably written by the bios algorithmically, or it may be compressed. but TBH i do know very little about firmware formats. so just to make this clear: that's all speculation, or educated guesses at best :)