On 29.01.2008 19:58, Jouni Mettälä wrote:
On Jan 29, 2008 7:35 PM, Carl-Daniel Hailfinger wrote:
Yes flashrom doesn't recognize these chips (patched and unpatched) AT-29C020, W29C020C-90B, supported by flashrom Uniflash recognizes sst29ee010 chip and writes it. Chip is unsupported by flashrom. Writing with flashrom would be much more comfortable.
Unfortunately I don't have another board which recognizes this W29C020-12 chip.
Please try to get verbose flashrom readings from all of these chips. We can add support for them once we know how their ID as it appears to flashrom.
Attached flashrom -V output of some chips: Two of SST29EE010 seems to have different output.
Thanks. Analysis follows: The AT29C020 is not recognized at all although we tested support for it recently. In you case, the response to the probe is garbage. The SST29EE010 is not recognized at all. We do not currently support it, but even with my patch to support it, detection will fail because the response to the probe is garbage. The W29C020 is not recognized at all. It is supported, but the response to the probe is garbage.
That either means the delay in probing is too short (AT29C020 only) or the probing never reaches the chip (decoding problem or missing board enable) or you have BIOS ROM shadowing turned on.
The success with AE49F2008 might have been fake (it was pure luck that some garbage response looked like a semi-valid chip ID).
Do you have any other board which recognizes the AT29C020 or the SST29EE010?
This is a patch to test with:
Index: flashrom-sst29le010/flash.h =================================================================== --- flashrom-sst29le010/flash.h (Revision 3098) +++ flashrom-sst29le010/flash.h (Arbeitskopie) @@ -199,7 +199,10 @@ #define SST_25VF032B 0x254A #define SST_25VF040B 0x258D #define SST_25VF080B 0x258E +#define SST_29EE010 0x07 +#define SST_29LE010 0x08 /* also SST29VE010 */ #define SST_29EE020A 0x10 +#define SST_29LE020 0x12 /* also SST29VE020 */ #define SST_28SF040 0x04 #define SST_39SF010 0xB5 #define SST_39SF020 0xB6 Index: flashrom-sst29le010/jedec.c =================================================================== --- flashrom-sst29le010/jedec.c (Revision 3098) +++ flashrom-sst29le010/jedec.c (Arbeitskopie) @@ -95,7 +95,7 @@ * needs 10 ms according to the data sheet, but it has been tested * to work reliably with 20 us. Allow a factor of 2 safety margin. */ - myusec_delay(40); + myusec_delay(10000);
/* Read product ID */ id1 = *(volatile uint8_t *)bios; Index: flashrom-sst29le010/flashchips.c =================================================================== --- flashrom-sst29le010/flashchips.c (Revision 3098) +++ flashrom-sst29le010/flashchips.c (Arbeitskopie) @@ -62,8 +62,14 @@ probe_spi, generic_spi_chip_erase_c7, generic_spi_chip_write, generic_spi_chip_read}, {"SST25VF016B", SST_ID, SST_25VF016B, 2048, 256, probe_spi, generic_spi_chip_erase_c7, generic_spi_chip_write, generic_spi_chip_read}, + {"SST29EE010", SST_ID, SST_29EE010, 128, 128, + probe_jedec, erase_chip_jedec, write_jedec}, + {"SST29LE010", SST_ID, SST_29LE010, 128, 128, + probe_jedec, erase_chip_jedec, write_jedec}, {"SST29EE020A", SST_ID, SST_29EE020A, 256, 128, probe_jedec, erase_chip_jedec, write_jedec}, + {"SST29LE020", SST_ID, SST_29LE020, 256, 128, + probe_jedec, erase_chip_jedec, write_jedec}, {"SST28SF040A", SST_ID, SST_28SF040, 512, 256, probe_28sf040, erase_28sf040, write_28sf040}, {"SST39SF010A", SST_ID, SST_39SF010, 128, 4096,