On Tue, 12 Aug 2014 12:15:53 -0400 (EDT) wenw@adiengineering.com wrote:
0x54: 0x000f0000 FREG0: Warning: Flash Descriptor region (0x00000000-0x0000ffff) is read-only. 0x58: 0x07ff0200 FREG1: BIOS region (0x00200000-0x007fffff) is read-write.
Hello Wen,
it seems like this bogus kind of descriptor layout becomes popular. Let me explain in case you don't understand: The descriptor region in the first 4kB of the flash chip - similar to a partition table - defines (among other things) which parts of the flash chip are used for what components. Usually all addresses of the flas chip are covered by this but sometimes vendor forget to do this properly - or do have no use for it.
The problem (for flashrom) is that the Intel SPI controllers forbid accesses to addresses that are not covered by the descriptor regions - like 0x00010000 to 0x001FFFFF in this case, which is almost a quarter of the flash chip - but flashrom tries to read the whole chip nevertheless (for good reasons).
So flashrom works more or less as expected on that board as far as you have tested it. That result is probably not very useful to you, but fine with me for now... :)
If you want to be able to write to the BIOS region, you will also need my layout patches (they are also on github), and also set the read_all_first variable in doit() in flashrom.c to 0. I'd welcome such further tests of course but please be prepared for recovery if need be.
I have included Marc from Sage because I guess he may be able to tell us about the reason for this.