Hi David,
I will take a look at the GPIO controls for this chip set.
Is it possible that the newer version of flashrom version 0.9.4-r1394 has this chip set in it?
Regards,
Ken Frost
On 09/06/2011 08:33 PM, David Hendricks wrote:
On Tue, Sep 6, 2011 at 2:13 PM, Kenneth Frost <kfrost@oemcontrols.com mailto:kfrost@oemcontrols.com> wrote:
Greetings, I tried to flash this system with an updated bios using flashrom utility. The flash chip found was a "SST 49LF008A". I successfully read the flash to a filename, verified the image read and determined the flash chip on the board.
Hi Ken, I would guess that there is some GPIO-controlled write protection mechanism enabled on that board. Sometimes you can disable these thru BIOS settings, though it's entirely up to the vendor whether or not to expose that.
Of course, rebooting and toggling that setting in the BIOS is sort of a pain and probably unfeasible if you wish to support more than a small handful of motherboards. So it's usually preferable to toggle that setting in Flashrom. In Flashrom's board_enable.c file, you'll see several routines which do things like raise a GPIO to disable write protection. You'll probably need to do something similar for your board.
If you're reasonably familiar with the chipset you're using (SCH US15WPT), you can try to determine the write protection setting experimentally. Here is one example of how to do it: http://www.coreboot.org/pipermail/coreboot/2009-September/051987.html .
Much of the tedious info such gathering and calculating base addresses and offsets can be found from flashrom verbose output when you perform a read operation. iotools http://code.google.com/p/iotools/ can also make your life easier when doing simple low-level operations.
-- David Hendricks (dhendrix) Systems Software Engineer, Google Inc.
On Wed, 07 Sep 2011 09:04:06 -0400 Kenneth Frost kfrost@oemcontrols.com wrote:
Hi David,
I will take a look at the GPIO controls for this chip set.
Is it possible that the newer version of flashrom version 0.9.4-r1394 has this chip set in it?
no. there is a huge table with pci ids and other attributes that match each boards and their associated so called "board enable". every board needs to be added manually. not every board needs a board enable though (most work without one). usually there are no changes to the chip's contents on boards that need a board enable but dont have one yet if one "writes" with flashrom. your case seems to be different though and someone needs to look at it in detail.
of course there could be some other changes since 0.9.3 that make your board work, but i am not aware of any such changes.
what you could try is to write your backup again. if you are lucky flashrom can at least write the parts it have touched so far and bring the contents back into a consistent state again.
Hi Stefan,
I was able to download the latest version of flashrom( flashrom-0.9.4-r1398 ), compile it and restore the original bios that I saved before attempting to do the write.
The funny thing was that I had to run the original flashrom-0.9.3-r1205 with the write option which resulted in a failure and then run the latest version of flashrom which resulted in a good write. It almost seems the earlier version leaves some control register in a state that the newer version of flashrom can deal with.
Regards,
Ken Frost
On 09/07/2011 04:41 PM, Stefan Tauner wrote:
On Wed, 07 Sep 2011 09:04:06 -0400 Kenneth Frostkfrost@oemcontrols.com wrote:
Hi David,
I will take a look at the GPIO controls for this chip set.
Is it possible that the newer version of flashrom version 0.9.4-r1394 has this chip set in it?
no. there is a huge table with pci ids and other attributes that match each boards and their associated so called "board enable". every board needs to be added manually. not every board needs a board enable though (most work without one). usually there are no changes to the chip's contents on boards that need a board enable but dont have one yet if one "writes" with flashrom. your case seems to be different though and someone needs to look at it in detail.
of course there could be some other changes since 0.9.3 that make your board work, but i am not aware of any such changes.
what you could try is to write your backup again. if you are lucky flashrom can at least write the parts it have touched so far and bring the contents back into a consistent state again.
On Thu, 08 Sep 2011 16:33:10 -0400 Kenneth Frost kfrost@OEMCONTROLS.com wrote:
Hi Stefan,
I was able to download the latest version of flashrom( flashrom-0.9.4-r1398 ), compile it and restore the original bios that I saved before attempting to do the write.
The funny thing was that I had to run the original flashrom-0.9.3-r1205 with the write option which resulted in a failure and then run the latest version of flashrom which resulted in a good write. It almost seems the earlier version leaves some control register in a state that the newer version of flashrom can deal with.
good. verbose logs of those tries would be very interesting to see i think. just to be sure: writing the backup with 0.9.4 was unsuccessful without running 0.9.3 previously with just the same options? maybe running 0.9.3 twice would have resulted in the same behavior. i can't comment further on this one. if someone reverse engineers the bios, the output of lspci -xxnnvvv would help us to create a matching board enable.