On 21.01.2008 17:15, Harald Gutmann wrote:
Hello!
As in the thread "Re: [coreboot] SST25VF016B (2MB) flash on m57sli (IT8716F)" there was added support for writing/reading lager SPI chips than 512kB i had a look on the current flashrom code, in svn revision 3067.
I recogniced that the MX25L8005 calls the same function than the SST25VF016B in the flashchips.c file. The function called there are generic_spi_chip_erase_c7, generic_spi_chip_write and generic_spi_chip_read. The write function is in spi.c, and checks if the total_size is bigger than 512kB, as result of that check the it8716f_over512k_spi_chip_write should be called to write the chip. The SST25VF016B can be programmed/verified/erased but not the MX25L8005.
Probably either the chip does not support BYTE-PROGRAM or we have a timing issue. I checked the datasheet and the MX25L8005 indeed has a PAGE-PROGRAM mode, but it can be abused for BYTE-PROGRAM.
Writing random data to the chip results in a failed verify. Erasing the chip seems to work. Here is the file which i wrote to the chip, and the file which i get as result when trying to read the chip. (looks quite strange in hexdump, there are many FF lines in the read file.) http://rapidshare.com/files/85450682/read_write_diff-r3067.tar.gz.html
This is a timing issue with ~95% probability. Simply look at the readback result. Will send a patch.
I also wondered if the mx25l4005.c file is needed any more, because the functions in there aren't called anywhere.
Hm. Are you sure this file exists in the official tree? I can't find it.
Regards, Carl-Daniel