On Thu, 10 Oct 2013 09:41:19 +0200
[email protected] wrote:

> Hello,
> 
> i try to read SPI flash from a bricked wifi access point.  For that purpose I 
> have unsoldered the 4M SPI flash, soldered it onto an ssop-breakout board 
> where I connected it to an Arduino-Nano.
> 
> I use flashrom out of my ubuntu distribution, and compiled serprog-duino 
> myself.
> 
> Running flashrom to detect the device works as expected:
> 
> ------------
> $ flashrom  -p serprog:dev=/dev/ttyUSB0:2000000
> flashrom v0.9.5.2-r1517 on Linux 3.2.0-54-generic-pae (i686), built with 
> libpci 3.1.8, GCC 4.6.3, little endian
> flashrom is free software, get the source code at http://www.flashrom.org
> 
> Calibrating delay loop... OK.
> serprog: Programmer name is "serprog-duino"
> Found Macronix flash chip "MX25L3205" (4096 kB, SPI) on serprog.
> No operations were specified.
> ------------
> 
> However when I add the "-r filename" Option, to read the content of the 
> flash, the program get stuck.
> I tried the master and the ftdi-branch from serprog-duino [the only 
> difference is, that in the ftdi-branch the 10us delay is missing], with no 
> difference in behaviour.  
> I tried both versions with both cabling-recommendations:  firsthand with the 
> resistors as voltage-dividers, than with direct 5cm cables. 
> 
> In all combinations flashrom is hanging during a read-statement.
> 
> 
> The strace looks in all cases like (+-5 lines):
> 
> ------------
> write(1, "Note: serprog_delay used, but th"..., 67Note: serprog_delay used, 
> but the programmer doesn't support delay
> ) = 67
> write(3, "\23", 1)                      = 1
> write(3, "\1\0\0\2\0\0\5", 7)           = 7
> read(3, "\6", 1)                        = 1
> read(3, "\0\0", 2)                      = 2
> mmap2(NULL, 4198400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
> = 0xb7104000
> write(1, "Reading flash... ", 17Reading flash... )       = 17
> write(3, "\23", 1)                      = 1
> write(3, "\4\0\0\0\0\1\3\0\0\0", 10)    = 10
> read(3, "\6", 1)                        = 1
> read(3, "'\5\31V\267\205%\3Q\332+\3\0\1\257\10\200 \0\0\200 
> \0\0\207\312\302\340\5\5\1\0"..., 65536) = 339
> […]
> read(3, 
> "\0\20\4\0\326&\f\0\204\217\2\0\2$L\4\231\217\6\0B\26\244\227\204$\0\0%\226\0\0"...,
>  17512) = 262
> read(3,   <===STUCK HERE!!
> ------------
> 
> The Nano is a V3 with Atmega328 and a FT232RL chip.
> 
> 
> Any suggestions ?

Looking at the output of -VVV is probably more telling than that wall
of syscalls, especially because you say that the log of syscalls is not
reproducible. I would assume a problem with the firmware/Arduino, not
your cabling.

On a broader scope... it would be useful to have timeouts for those
serial reads (and writes). Unfortunately that is not exactly
easy/elegant to implement in a cross-platform compatible way.

-- 
Kind regards/Mit freundlichen Grüßen, Stefan Tauner

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to