Thanks for the test, there are two issues here. One is that I swapped
the erase block sizes of the P models. This is clearly shown in your
The ...0 model should have 64 kB erase blocks, but does not:
> Trying erase function 0... 0x000000-0x03ffff:EFAILED at 0x00010000! Expected=0xff, Found=0xe5
0x03ffff is 262143 in decimal... I have fixed that locally, but this is
not the main problem here.
The chip erase and the subsequent write should have worked, and your
second try with the definition of the ...1 model too (because it
contains the right block size). But both failed and I don't understand
why yet. The first failed byte is equal in both cases but not all of
them are (a different number of bytes fail in the two cases). This
indicates that the behavior might be indeterministic. The contents of
the "rog.bin" file were equal for both tries, right?
What happens if you retry the second test again?
/usr/src/flashrompatch/flashrom -p usbblaster_spi -o write2.log -c S25FL128P......1 -w rog.bin
If you can not reproduce exactly the same output, i.e.
Verifying flash... FAILED at 0x0000005b! Expected=0xd3, Found=0xfb, failed byte count from 0x00000000-0x00ffffff: 0xaf66ea
Then we are on the right track. In that case I would ask you how the
chip is connected exactly, especially how WP# and HOLD# are driven.
PS: You dont need to install flashrom after recompiling. You can
execute the built binary in the source directory (make; ./flashrom ...).
Kind regards/Mit freundlichen Grüßen, Stefan Tauner