Hi,
Trying to write to an S25FL128S (SAIF00) chip directly connected to SPI on a BeagleBone Black I'm running into weird issues. I can read the chip just fine, but writing fails horribly in the erase step already.
I'm pretty puzzled on why this could be (#WP is disconnected, connecting it to VCC doesn't change anything) and discussing this with Stefan on IRC he didn't have any immediate smart idea either.
However, if anyone (including Stefan) has any idea what could really be causing this, I'm more than happy to heard suggestions. The chip itself is brand new - I only wrote some initial data to it once (which didn't manage to ever write the first 0x200 bytes either).
Thanks a lot!
Alex
---
$ flashrom -p linux_spi:dev=/dev/spidev1.0 -w foo.raw -c "S25FL128S......0" -V flashrom v0.9.7-r1871 on Linux 3.11.10-91-default (armv7l) flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.2.0, GCC 4.8.1 20130909 [gcc-4_8-branch revision 202388], little endian Command line (7 args): flashrom -p linux_spi:dev=/dev/spidev1.0 -w foo.raw -c S25FL128S......0 -V Calibrating delay loop... OS timer resolution is 3 usecs, 183M loops per second, 10 myus = 12 us, 100 myus = 103 us, 1000 myus = 1134 us, 10000 myus = 10123 us, 12 myus = 15 us, OK. Initializing linux_spi programmer Using device /dev/spidev1.0 The following protocols are supported: SPI. Probing for Spansion S25FL128S......0, 16384 kB: probe_spi_rdid_generic: id1 0x01, id2 0x2018 Found Spansion flash chip "S25FL128S......0" (16384 kB, SPI) on linux_spi. Chip status register is 0x00. Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set Chip status register: Program Fail Flag (P_FAIL) is not set Chip status register: Erase Fail Flag (E_FAIL) is not set Chip status register: Block Protect 2 (BP2) is not set Chip status register: Block Protect 1 (BP1) is not set Chip status register: Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set This chip may contain one-time programmable memory. flashrom cannot read and may never be able to write it, hence it may not be able to completely clone the contents of this chip (see man page for details). === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom@flashrom.org if any of the above operations work correctly for you with this flash chip. Please include the flashrom log file for all operations you tested (see the man page for details), and mention which mainboard or programmer you tested in the subject line. Thanks for your help! Reading old flash chip contents... done. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x00ffff:EFAILED at 0x00001000! Expected=0xff, Found=0x4e, failed byte count from 0x00000000-0x0000ffff: 0xee4a ERASE FAILED! Reading current flash chip contents... done. Looking for another erase function. Trying erase function 1... 0x000000-0xffffff:EFAILED at 0x00001000! Expected=0xff, Found=0x4e, failed byte count from 0x00000000-0x00ffffff: 0xa04d5c ERASE FAILED! Reading current flash chip contents... done. Looking for another erase function. Trying erase function 2... 0x000000-0xffffff:EFAILED at 0x00001000! Expected=0xff, Found=0x4e, failed byte count from 0x00000000-0x00ffffff: 0xa04d5c ERASE FAILED! Looking for another erase function. No usable erase functions left. FAILED! Uh oh. Erase/write failed.Checking if anything has changed. Reading current flash chip contents... done. Good, writing to the flash chip apparently didn't do anything. Please check the connections (especially those to write protection pins) between the programmer and the flash chip. If you think the error is caused by flashrom please report this on IRC at chat.freenode.net (channel #flashrom) or mail flashrom@flashrom.org, thanks!