Discussion:
[flashrom] Spansion S25FL128P......X
The Raven
2014-11-16 10:36:09 UTC
Permalink
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.
Stefan Tauner
2014-12-07 10:33:21 UTC
Permalink
On Sun, 16 Nov 2014 11:36:09 +0100
Post by The Raven
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".
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.
"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).
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
The Raven
2014-12-23 10:34:17 UTC
Permalink
Post by 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
Stefan Tauner
2015-04-04 09:16:13 UTC
Permalink
On Tue, 23 Dec 2014 11:34:17 +0100
Post by The Raven
Post by 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.
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
The Raven
2015-04-04 20:24:53 UTC
Permalink
Post by Stefan Tauner
On Tue, 23 Dec 2014 11:34:17 +0100
Post by The Raven
Post by 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.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! :-)
The_Raven Raven
2017-04-24 11:01:57 UTC
Permalink
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.

The Raven
2014-12-23 17:41:45 UTC
Permalink
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 ;-)
Loading...