I have a spansion S25FL128P......X chip and can do some tests. The "problem" is that i don't know if its an 0 or an 1. On the chip i see only "FL128PIF" and one line lower i see "00299012 C".
Probing works (id1 0x01, id2 0x2018): Calibrating delay loop... OK. serprog: Programmer name is "serprog-duino" Found Spansion flash chip "S25FL128P......0" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL128P......1" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL128S......0" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL128S......1" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL129P......0" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL129P......1" (16384 kB, SPI) on serprog. Multiple flash chip definitions match the detected chip(s): "S25FL128P......0", "S25FL128P......1", "S25FL128S......0", "S25FL128S......1", "S25FL129P......0", "S25FL129P......1" Please specify which chip definition to use with the -c <chipname> option.
BTW: Chip was fund on a Dell-Systemboard.
On Sun, 16 Nov 2014 11:36:09 +0100 The Raven originalraven@hotmail.com wrote:
I have a spansion S25FL128P......X chip and can do some tests. The "problem" is that i don't know if its an 0 or an 1. On the chip i see only "FL128PIF" and one line lower i see "00299012 C".
Probing works (id1 0x01, id2 0x2018): Calibrating delay loop... OK. serprog: Programmer name is "serprog-duino" Found Spansion flash chip "S25FL128P......0" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL128P......1" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL128S......0" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL128S......1" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL129P......0" (16384 kB, SPI) on serprog. Found Spansion flash chip "S25FL129P......1" (16384 kB, SPI) on serprog. Multiple flash chip definitions match the detected chip(s): "S25FL128P......0", "S25FL128P......1", "S25FL128S......0", "S25FL128S......1", "S25FL129P......0", "S25FL129P......1" Please specify which chip definition to use with the -c <chipname> option.
BTW: Chip was fund on a Dell-Systemboard.
Seems to be a S25FL128P......0 according to the "S25FL128P Valid Combinations Table" in the datasheet. A ...1 would be marked as FL128PIFL. Testing writes should be able to verify that because it would print an error message if the wrong one is used (I think).
Am 07.12.2014 um 11:33 schrieb Stefan Tauner:
Seems to be a S25FL128P......0 according to the "S25FL128P Valid Combinations Table" in the datasheet. A ...1 would be marked as FL128PIFL. Testing writes should be able to verify that because it would print an error message if the wrong one is used (I think).
Thx. Have tried that and programming works with 1 too. :-( I need more testing. The main problem is that the serprog is very unstable and locks very often! :-( If you have a small chip (2-4MB) it works most of the time, but large chips like this one (16MB) stops the operation (read, write, erase) after about 50%. I am really sure it's a serprog problem. Maybe GNUtoo can make it more stable?
Greets
On Tue, 23 Dec 2014 11:34:17 +0100 The Raven originalraven@hotmail.com wrote:
Am 07.12.2014 um 11:33 schrieb Stefan Tauner:
Seems to be a S25FL128P......0 according to the "S25FL128P Valid Combinations Table" in the datasheet. A ...1 would be marked as FL128PIFL. Testing writes should be able to verify that because it would print an error message if the wrong one is used (I think).
Thx. Have tried that and programming works with 1 too. :-(
Was that a combined erase + write operation or was the chip empty before? When I said "writes" I meant erase + writes, sorry.
Am 04.04.2015 um 11:16 schrieb Stefan Tauner:
On Tue, 23 Dec 2014 11:34:17 +0100 The Raven originalraven@hotmail.com wrote:
Am 07.12.2014 um 11:33 schrieb Stefan Tauner:
Seems to be a S25FL128P......0 according to the "S25FL128P Valid Combinations Table" in the datasheet. A ...1 would be marked as FL128PIFL. Testing writes should be able to verify that because it would print an error message if the wrong one is used (I think).
Thx. Have tried that and programming works with 1 too. :-(
Was that a combined erase + write operation or was the chip empty before? When I said "writes" I meant erase + writes, sorry.
Hm, i don't understand you 100%. So can you tell me step by step what to do? Normally i erase the chip and write it again. So i think the chip was empty before. But to be 100% sure i like to test it again. Now i have written a random flash file (created with dd and urandom) with this command: ./flashrom -p serprog:dev=/dev/ttyACM0:115200 -Vw S25FL128P.rom -c "S25FL128P......1" And this worked fine: Verifying flash... VERIFIED. Then i have rewritten another random file with the same command. And this has also worked fine! After that i tried the same with this command: ./flashrom -p serprog:dev=/dev/ttyACM0:115200 -Vw S25FL128P.rom -c "S25FL128P......0" But seems not to work: Reading old flash chip contents... done. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x00ffff:EFAILED at 0x00000000! Expected=0xff, Found=0x11, failed byte count from 0x00000000-0x0000ffff: 0xfee7 ERASE FAILED! Reading current flash chip contents... done. Looking for another erase function. Trying erase function 1... 0x000000-0x00ffff:EW, 0x010000-0x01ffff:EW, 0x020000-0x02ffff:EW, 0x030000-0x03ffff:EW, 0x040000-0x04ffff:EW, 0x050000-0x05ffff:EW, 0x060000-0x06ffff:EW, 0x070000-0x07ffff:EW, 0x080000-0x08ffff:EW, 0x090000-0x09ffff:EW, 0x0a0000-0x0affff:EW, 0x0b0000-0x0bffff:EW, 0x0c0000-0x0cffff:EW, 0x0d0000-0x0dffff:EW, 0x0e0000-0x0effff:EW, 0x0f0000-0x0fffff:EW, 0x100000-0x10ffff:EW, 0x110000-0x11ffff:EW, 0x120000-0x12ffff:EW, 0x130000-0x13ffff:EW, 0x140000-0x14ffff:EW, 0x150000-0x15ffff:EW, 0x160000-0x16ffff:EW, 0x170000-0x17ffff:EW, 0x180000-0x18ffff:EW, 0x190000-0x19ffff:EW, 0x1a0000-0x1affff:EW, 0x1b0000-0x1bffff:EW, 0x1c0000-0x1cffff:EW, 0x1d0000-0x1dffff:EW, 0x1e0000-0x1effff:EW, 0x1f0000-0x1fffff:EW, 0x200000-0x20ffff:EW, 0x210000-0x21ffff:EW, 0x220000-0x22ffff:EW, 0x230000-0x23ffff:EW, 0x240000-0x24ffff:EW, 0x250000-0x25ffff:EW, 0x260000-0x26ffff:EW, 0x270000-0x27ffff:EW, 0x280000-0x28ffff:EW, 0x290000-0x29ffff:EW, 0x2a0000-0x2affff:EW, 0x2b0000-0x2bffff:EW, 0x2c0000-0x2cffff:EW, 0x2d0000-0x2dffff:EW, 0x2e0000-0x2effff:EW, 0x2f0000-0x2fffff:EW, 0x300000-0x30ffff:EW, 0x310000-0x31ffff:EW, 0x320000-0x32ffff:EW, 0x330000-0x33ffff:EW, 0x340000-0x34ffff:EW, 0x350000-0x35ffff:EW, 0x360000-0x36ffff:EW, 0x370000-0x37ffff:EW, 0x380000-0x38ffff:EW, 0x390000-0x39ffff:EW, 0x3a0000-0x3affff:EW, 0x3b0000-0x3bffff:EW, 0x3c0000-0x3cffff:EW, 0x3d0000-0x3dffff:EW, 0x3e0000-0x3effff:EW, 0x3f0000-0x3fffff:EW, 0x400000-0x40ffff:EW, 0x410000-0x41ffff:EW, 0x420000-0x42ffff:EW, 0x430000-0x43ffff:EW, 0x440000-0x44ffff:EW, 0x450000-0x45ffff:EW, 0x460000-0x46ffff:EW, 0x470000-0x47ffff:EW, 0x480000-0x48ffff:EW, 0x490000-0x49ffff:EW, 0x4a0000-0x4affff:EW, 0x4b0000-0x4bffff:EW, 0x4c0000-0x4cffff:EW, 0x4d0000-0x4dffff:EW, 0x4e0000-0x4effff:EW, 0x4f0000-0x4fffff:EW, 0x500000-0x50ffff:EW, 0x510000-0x51ffff:EW, 0x520000-0x52ffff:EW, 0x530000-0x53ffff:EW, 0x540000-0x54ffff:EW, 0x550000-0x55ffff:EW, 0x560000-0x56ffff:EW, 0x570000-0x57ffff:EW, 0x580000-0x58ffff:EW, 0x590000-0x59ffff:EW, 0x5a0000-0x5affff:EW, 0x5b0000-0x5bffff:EW, 0x5c0000-0x5cffff:EW, 0x5d0000-0x5dffff:EW, 0x5e0000-0x5effff:EW, 0x5f0000-0x5fffff:EW, 0x600000-0x60ffff:EW, 0x610000-0x61ffff:EW, 0x620000-0x62ffff:EW, 0x630000-0x63ffff:EW, 0x640000-0x64ffff:EW, 0x650000-0x65ffff:EW, 0x660000-0x66ffff:EW, 0x670000-0x67ffff:EW, 0x680000-0x68ffff:EW, 0x690000-0x69ffff:EW, 0x6a0000-0x6affff:EW, 0x6b0000-0x6bffff:EW, 0x6c0000-0x6cffff:EW, 0x6d0000-0x6dffff:EW, 0x6e0000-0x6effff:EW, 0x6f0000-0x6fffff:EW, 0x700000-0x70ffff:EW, 0x710000-0x71ffff:EW, 0x720000-0x72ffff:EW, 0x730000-0x73ffff:EW, 0x740000-0x74ffff:EW, 0x750000-0x75ffff:EW, 0x760000-0x76ffff:EW, 0x770000-0x77ffff:EW, 0x780000-0x78ffff:EW, 0x790000-0x79ffff:EW, 0x7a0000-0x7affff:EW, 0x7b0000-0x7bffff:EW, 0x7c0000-0x7cffff:EW, 0x7d0000-0x7dffff:EW, 0x7e0000-0x7effff:EW, 0x7f0000-0x7fffff:EW, 0x800000-0x80ffff:EW, 0x810000-0x81ffff:EW, 0x820000-0x82ffff:EW, 0x830000-0x83ffff:EW, 0x840000-0x84ffff:EW, 0x850000-0x85ffff:EW, 0x860000-0x86ffff:EW, 0x870000-0x87ffff:EW, 0x880000-0x88ffff:EW, 0x890000-0x89ffff:EW, 0x8a0000-0x8affff:EW, 0x8b0000-0x8bffff:EW, 0x8c0000-0x8cffff:EW, 0x8d0000-0x8dffff:EW, 0x8e0000-0x8effff:EW, 0x8f0000-0x8fffff:EW, 0x900000-0x90ffff:EW, 0x910000-0x91ffff:EW, 0x920000-0x92ffff:EW, 0x930000-0x93ffff:EW, 0x940000-0x94ffff:EW, 0x950000-0x95ffff:EW, 0x960000-0x96ffff:EW, 0x970000-0x97ffff:EW, 0x980000-0x98ffff:EW, 0x990000-0x99ffff:EW, 0x9a0000-0x9affff:EW, 0x9b0000-0x9bffff:EW, 0x9c0000-0x9cffff:EW, 0x9d0000-0x9dffff:EW, 0x9e0000-0x9effff:EW, 0x9f0000-0x9fffff:EW, 0xa00000-0xa0ffff:EW, 0xa10000-0xa1ffff:EW, 0xa20000-0xa2ffff:EW, 0xa30000-0xa3ffff:EW, 0xa40000-0xa4ffff:EW, 0xa50000-0xa5ffff:EW, 0xa60000-0xa6ffff:EW, 0xa70000-0xa7ffff:EW, 0xa80000-0xa8ffff:EW, 0xa90000-0xa9ffff:EW, 0xaa0000-0xaaffff:EW, 0xab0000-0xabffff:EW, 0xac0000-0xacffff:EW, 0xad0000-0xadffff:EW, 0xae0000-0xaeffff:EW, 0xaf0000-0xafffff:EW, 0xb00000-0xb0ffff:EW, 0xb10000-0xb1ffff:EW, 0xb20000-0xb2ffff:EW, 0xb30000-0xb3ffff:EW, 0xb40000-0xb4ffff:EW, 0xb50000-0xb5ffff:EW, 0xb60000-0xb6ffff:EW, 0xb70000-0xb7ffff:EW, 0xb80000-0xb8ffff:EW, 0xb90000-0xb9ffff:EW, 0xba0000-0xbaffff:EW, 0xbb0000-0xbbffff:EW, 0xbc0000-0xbcffff:EW, 0xbd0000-0xbdffff:EW, 0xbe0000-0xbeffff:EW, 0xbf0000-0xbfffff:EW, 0xc00000-0xc0ffff:EW, 0xc10000-0xc1ffff:EW, 0xc20000-0xc2ffff:EW, 0xc30000-0xc3ffff:EW, 0xc40000-0xc4ffff:EW, 0xc50000-0xc5ffff:EW, 0xc60000-0xc6ffff:EW, 0xc70000-0xc7ffff:EW, 0xc80000-0xc8ffff:EW, 0xc90000-0xc9ffff:EW, 0xca0000-0xcaffff:EW, 0xcb0000-0xcbffff:EW, 0xcc0000-0xccffff:EW, 0xcd0000-0xcdffff:EW, 0xce0000-0xceffff:EW, 0xcf0000-0xcfffff:EW, 0xd00000-0xd0ffff:EW, 0xd10000-0xd1ffff:EW, 0xd20000-0xd2ffff:EW, 0xd30000-0xd3ffff:EW, 0xd40000-0xd4ffff:EW, 0xd50000-0xd5ffff:EW, 0xd60000-0xd6ffff:EW, 0xd70000-0xd7ffff:EW, 0xd80000-0xd8ffff:EW, 0xd90000-0xd9ffff:EW, 0xda0000-0xdaffff:EW, 0xdb0000-0xdbffff:EW, 0xdc0000-0xdcffff:EW, 0xdd0000-0xddffff:EW, 0xde0000-0xdeffff:EW, 0xdf0000-0xdfffff:EW, 0xe00000-0xe0ffff:EW, 0xe10000-0xe1ffff:EW, 0xe20000-0xe2ffff:EW, 0xe30000-0xe3ffff:EW, 0xe40000-0xe4ffff:EW, 0xe50000-0xe5ffff:EW, 0xe60000-0xe6ffff:EW, 0xe70000-0xe7ffff:EW, 0xe80000-0xe8ffff:EW, 0xe90000-0xe9ffff:EW, 0xea0000-0xeaffff:EW, 0xeb0000-0xebffff:EW, 0xec0000-0xecffff:EW, 0xed0000-0xedffff:EW, 0xee0000-0xeeffff:EW, 0xef0000-0xefffff:EW, 0xf00000-0xf0ffff:EW, 0xf10000-0xf1ffff:EW, 0xf20000-0xf2ffff:EW, 0xf30000-0xf3ffff:EW, 0xf40000-0xf4ffff:EW, 0xf50000-0xf5ffff:EW, 0xf60000-0xf6ffff:EW, 0xf70000-0xf7ffff:EW, 0xf80000-0xf8ffff:EW, 0xf90000-0xf9ffff:EW, 0xfa0000-0xfaffff:EW, 0xfb0000-0xfbffff:EW, 0xfc0000-0xfcffff:EW, 0xfd0000-0xfdffff:EW, 0xfe0000-0xfeffff:EW, 0xff0000-0xffffff:EW Erase/write done. Verifying flash... FAILED at 0x00000000! Expected=0xc8, Found=0xff, failed byte count from 0x00000000-0x00ffffff: 0xbf40e2 Your flash chip is in an unknown state. Please report this on IRC at chat.freenode.net (channel #flashrom) or mail flashrom@flashrom.org, thanks! serprog: Output drivers disabled
So it looks like my chip is a "S25FL128P......1" right?
BTW: With the new serprog-code the arduino does not lockup! :-)
I found another such chip. This chip is also signed as "FL128PIF" (247QQ023 C). Again no "0" or "1". Writing with "S25FL128P......0" works perfect, but writing with "S25FL128P......1" fails! So i guess this chip is also a "0" like my other chip.
Can we say both of these chips are "S25FL128P......0"? If yes, then i do some more tests to be sure it works OK so we can mark it as working.
Hi again :-)
Here you can see the results for: - Read - Erase - Write - Verify
Of this chip.
As you can see, after successful writing (beginning of verify), the arduino locked up (i made a note in the logfile). :-( So i have done a manual verify. This is what i meant in my previous posting. Serprog locks up some times.
Happy Christmas! :-)
BTW: Don't forget to mark the "Pm25LV512(A)" and the "AT45DB011D" as tested ;-)