Skip to main content
Topic: Flashrom stalls while reading flash (Read 2543 times) previous topic - next topic

Flashrom stalls while reading flash

I am trying to read the firmware of a MX25L6406E chip. I am using flashrom 0.9.8.

When I run flashrom on Ubuntu 14.04 (on a virtual machine):

# flashrom --programmer buspirate_spi:dev=/dev/ttyUSB0,spispeed=1M -r myfile.bin -c MX25L6406E/MX25L6408E

I get the following:

Calibrating delay loop...delay loop is unreliable, trying to continue OK

Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192, spi) on buspirate_spi.
Reading flash...

Now the RX and TX lights on my buspirate flash for a file, but after a while they go off and flashrom doesn't stop saying "Reading flash" and I believe it stalls. I left it for a couple of minutes and nothing changes. There is no file called myfile.bin in the directory that I am running it from.

What could be the problem.


Re: Flashrom stalls while reading flash

Reply #1
Hi Coffee,
you are welcome!
Sad to read about your problem.
Unluckily I'm not accustomed to use the Linux version of the flashrom because normally I use the Windows one.
In the past even me I have used the program running Ubuntu in a virtual machine getting some issues.
If for you there isn't problem I suggest to use a Windows version directly on your computer if there is installed an operating system other than Ubuntu or any kind of Linux.
Please take a look here:
About your problem try to read this if already you didn't do it:
Sorry but now it's late and I don't remember Linux's syntax for flashrom so I'll go to explain some hint using the Windows' one.
To you the task of converting commands in order to use them with Linux, apologize me.

First, what happens performing someting like this?:

flashrom.exe -p buspirate_spi:dev=COM

(where COM have to be the real serial port number assigned to the Bus Pirate).

In that way flashrom should show you it works and the name of the found device if it has been able to recognize one.
If all it's fine then try this:
flashrom.exe -p buspirate_spi:dev=COM -r myfile

This one should be almost the same as your "# flashrom --programmer buspirate_spi:dev=/dev/ttyUSB0,spispeed=1M -r myfile.bin -c MX25L6406E/MX25L6408E".
I advise you not to force any recognition for the device unless otherwise necessary.
Generally flashrom set Bus Pirate for the maximum speed of 8MHz for SPI and I don't see the utility to change it unless there are problems, so try to run the program without force the bus' speed.
Slow down the speed it's useful in case you get problems, the chip that you are trying to read is welded somewhere or alone disconnected?
Setting aside flashrom for a moment and using the Bus Pirate alone in order to be sure all is working right there, in the end are you been able to read the Macronix MX25L6406E's JEDEC as explained here?

If no result doing that way then you have to dig the matter because you have a serious issue.