Hello, i made some test with the arduino/serprog and some different flash-chips:
*M25P16* -> all ok (erase and write has status "untested" but works ok!) *M25P40* -> all ok *W25X40* -> all ok
*25F512* -> erase not working, always same error: /flashrom v0.9.7-r1757 on Linux 3.10-2-amd64 (x86_64)// //flashrom is free software, get the source code at http://www.flashrom.org// // //flashrom was built with libpci 3.2.0, GCC 4.7.3, little endian// //Command line (5 args): ./flashrom -p serprog:dev=/dev/ttyACM0:2000000 -c AT25F512 -VE// //Calibrating delay loop... OS timer resolution is 1 usecs, 1290M loops per second, 10 myus = 9 us, 100 myus = 111 us, 1000 myus = 1120 us, 10000 myus = 9990 us, 4 myus = 5 us, OK.// //Initializing serprog programmer// //Baud rate is 2000000 now.// //serprog: connected - attempting to synchronize// //...// //serprog: Synchronized// //serprog: Interface version ok.// //serprog: Bus support: parallel=off, LPC=off, FWH=off, SPI=on// //Warning: Automatic command availability check failed for cmd 0x08 - won't execute cmd// //Warning: Automatic command availability check failed for cmd 0x11 - won't execute cmd// //serprog: Programmer name is "serprog-duino"// //serprog: Serial buffer size is 65535// //serprog: Warning: Programmer does not support toggling its output drivers// //The following protocols are supported: SPI.// //Probing for Atmel AT25F512, 64 kB: probe_spi_at25f: id1 0x1f, id2 0x60// //Found Atmel flash chip "AT25F512" (64 kB, SPI) on serprog.// //Chip status register is 0x00.// //Chip status register: Write Protect Enable (WPEN) is not set// //Chip status register: Bit 6 is not set// //Chip status register: Bit 5 is not set// //Chip status register: Bit 4 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// //Erasing and writing flash chip... Trying erase function 0... 0x000000-0x007fff:E, 0x008000-0x00ffff:EError: invalid response 0xFF from device// //spi_block_erase_52 failed during command execution at address 0x8000// //Reading current flash chip contents... Error: invalid response 0xFF from device// //Can't read anymore! Aborting.// //FAILED!// //Your flash chip is in an unknown state.// //Please report this on IRC at chat.freenode.net (channel #flashrom) or// //mail firstname.lastname@example.org, thanks!/
*LE25FW406A* -> not supported! Can i do something to help you support this chip?
*AT45DB161D* -> all ok, perfect work! * **AT45DB011B* -> not supported! You said that this chip (B and earlier) has no identification support. But i am not sure if this is relay true. Let me explain: Years ago i build another programmer for the parallel port. Very cheap, but not relay stable, or let's say very unstable! :-\ But the tool from this programmer is able to detect the chip:
And now i have a clean read from this flash and can test it with flashrom ;-) Maybe you can contact Adam Dybkowski and ask how it works. This is/was the "Project-Page": http://dybkowski.net/content/en/node/15 And i also have his email if you need it.
Wish you a nice day!