Hi Stefan,
I think I have verified that there is no issue with flashrom
0.9.3 and the PMC Pm49FL004 chip.
I had received some Pm49FL004 chips from a vendor with
a WinMate I330 BIOS load (an I330 message was being displayed briefly on
BIOS POST). Am I correct in assuming that some portion of the BIOS (e.g.,boot
block) cannot be updated with flashrom? I never saw a checksum error after
rebooting my motherboard and I know that my BIOS defaults had been updated
from the factory defaults.
I have since received some more Pm49FL004 chips from the
same vendor with a WinMate I370 BIOS load and flashing these chips with
a different I370 image works with flashrom-0.9.3 without any issues.
I apologize for troubling you. Thanks for your help!
Shane
From:
Stefan Tauner <stefan.tauner@student.tuwien.ac.at>
To:
sdbarnes@rockwellcollins.com
Cc:
flashrom@flashrom.org
Date:
12/10/2012 11:33 AM
Subject:
Re: [flashrom]
Erase Fails on Winmate I370 Motherboard with PMC Pm49FL004 Flash Chip
On Mon, 10 Dec 2012 10:44:01 -0500
sdbarnes@rockwellcollins.com wrote:
> Despite the verification failure, the motherboard appears to function
> properly with the new flash image that is written. Below is the flashrom
> verbose output:
>
>
>
> flashrom v0.9.3-r1250 on Linux 2.6.32.59 (i686), built with libpci
3.1.7,
> …
> Found chip "PMC Pm49FL004" (512 KB, LPC,FWH) at physical
address
> 0xfff80000.
> …
> Erasing and writing flash chip... Looking at blockwise erase function
0...
> trying... 0x000000-0x000fff:S, 0x001000-0x001fff:S, 0x002000-0x002fff:S,
> 0x003000-0x003fff:S, 0x004000-0x004fff:S, 0x005000-0x005fff:S,
> 0x006000-0x006fff:S, 0x007000-0x007fff:S, 0x008000-0x008fff:S,
> 0x009000-0x009fff:S, 0x00a000-0x00afff:S, 0x00b000-0x00bfff:S,
> 0x00c000-0x00cfff:S, 0x00d000-0x00dfff:S, 0x00e000-0x00efff:S,
> 0x00f000-0x00ffff:S, 0x010000-0x010fff:S, 0x011000-0x011fff:S,
> 0x012000-0x012fff:S, 0x013000-0x013fff:S, 0x014000-0x014fff:S,
> 0x015000-0x015fff:S, 0x016000-0x016fff:S, 0x017000-0x017fff:S,
> 0x018000-0x018fff:S, 0x019000-0x019fff:S, 0x01a000-0x01afff:S,
> 0x01b000-0x01bfff:S, 0x01c000-0x01cfff:S, 0x01d000-0x01dfff:S,
> 0x01e000-0x01efff:S, 0x01f000-0x01ffff:S, 0x020000-0x020fff:S,
> 0x021000-0x021fff:S, 0x022000-0x022fff:S, 0x023000-0x023fff:S,
> 0x024000-0x024fff:S, 0x025000-0x025fff:S, 0x026000-0x026fff:S,
> 0x027000-0x027fff:S, 0x028000-0x028fff:S, 0x029000-0x029fff:S,
> 0x02a000-0x02afff:S, 0x02b000-0x02bfff:S, 0x02c000-0x02cfff:S,
> 0x02d000-0x02dfff:S, 0x02e000-0x02efff:S, 0x02f000-0x02ffff:S,
> 0x030000-0x030fff:S, 0x031000-0x031fff:S, 0x032000-0x032fff:S,
> 0x033000-0x033fff:S, 0x034000-0x034fff:S, 0x035000-0x035fff:S,
> 0x036000-0x036fff:S, 0x037000-0x037fff:S, 0x038000-0x038fff:S,
> 0x039000-0x039fff:S, 0x03a000-0x03afff:S, 0x03b000-0x03bfff:S,
> 0x03c000-0x03cfff:S, 0x03d000-0x03dfff:S, 0x03e000-0x03efff:S,
> 0x03f000-0x03ffff:S, 0x040000-0x040fff:S, 0x041000-0x041fff:S,
> 0x042000-0x042fff:S, 0x043000-0x043fff:S, 0x044000-0x044fff:S,
> 0x045000-0x045fff:S, 0x046000-0x046fff:S, 0x047000-0x047fff:S,
> 0x048000-0x048fff:S, 0x049000-0x049fff:S, 0x04a000-0x04afff:S,
> 0x04b000-0x04bfff:S, 0x04c000-0x04cfff:S, 0x04d000-0x04dfff:S,
> 0x04e000-0x04efff:S, 0x04f000-0x04ffff:S, 0x050000-0x050fff:S,
> 0x051000-0x051fff:S, 0x052000-0x052fff:S, 0x053000-0x053fff:S,
> 0x054000-0x054fff:S, 0x055000-0x055fff:S, 0x056000-0x056fff:S,
> 0x057000-0x057fff:S, 0x058000-0x058fff:S, 0x059000-0x059fff:S,
> 0x05a000-0x05afff:S, 0x05b000-0x05bfff:S, 0x05c000-0x05cfff:S,
> 0x05d000-0x05dfff:S, 0x05e000-0x05efff:S, 0x05f000-0x05ffff:S,
> 0x060000-0x060fff:S, 0x061000-0x061fff:S, 0x062000-0x062fff:S,
> 0x063000-0x063fff:S, 0x064000-0x064fff:S, 0x065000-0x065fff:S,
> 0x066000-0x066fff:S, 0x067000-0x067fff:S, 0x068000-0x068fff:S,
> 0x069000-0x069fff:S, 0x06a000-0x06afff:S, 0x06b000-0x06bfff:S,
> 0x06c000-0x06cfff:S, 0x06d000-0x06dfff:S, 0x06e000-0x06efff:S,
> 0x06f000-0x06ffff:S, 0x070000-0x070fff:EERASE FAILED at 0x00070002!
> Expected=0xff, Read=0x00, failed byte count from 0x00070000-0x00070fff:
> 0xf70
> ERASE FAILED!
>
>
> Looking at blockwise erase function 1... trying... 0x000000-0x00ffff:S,
> 0x010000-0x01ffff:S, 0x020000-0x02ffff:S, 0x030000-0x03ffff:S,
> 0x040000-0x04ffff:S, 0x050000-0x05ffff:S, 0x060000-0x06ffff:S,
> 0x070000-0x07ffff:EERASE FAILED at 0x00070002! Expected=0xff, Read=0x00,
> failed byte count from 0x00070000-0x0007ffff: 0xfd35
> ERASE FAILED!
>
>
> Looking at blockwise erase function 2... trying...
> 0x000000-0x07ffff:EERASE FAILED at 0x00000000! Expected=0xff, Read=0x49,
> failed byte count from 0x00000000-0x0007ffff: 0x53f0b
> ERASE FAILED!
>
>
> Looking at blockwise erase function 3... not defined. trying...
>
> Done.
> Verifying flash... VERIFY FAILED at 0x0007010b! Expected=0x7c, Read=0x70,
> failed byte count from 0x00000000-0x0007ffff: 0x9f2
> Your flash chip is in an unknown state.
> Get help on IRC at irc.freenode.net (channel #flashrom) or
> mail flashrom@flashrom.org with FAILED: your board name in the subject
> line!
> -------------------------------------------------------------------------------
> DO NOT REBOOT OR POWEROFF!
> Restoring PCI config space for 00:1f:0 reg 0xdc
i am not entirely sure, but i think 0.9.3 can not distinguish between
an unknown state and the old, safe state the flash was before flashrom
tried to erase. in your case it would be possible then that the whole
flash chip is write protected and nothing changed/was deleted at all,
which would explain the bootable condition of the system (i.e. you were
lucky).
if that is true we will need to add a small routine that disables the
write protection on that mainboard (if there is no jumper oder bios
option to do so). please send us the output of 'lspci -nn', 'lspci
-nnvvvxxx', 'superiotool -deV' (run all commands as root), thanks.
if not too much of a hassle you should also upgrade flashrom before
further attempts.
JFYI: your first message was stuck in the moderation queue because it
was sent before you subscribed.
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner