Thanks David for the very quick feedback.    For others that might see a similar symptom of MISO not toggling, here is what I did wrong.   This part is a QSPI.    It can work in a number of modes, for single bit SPI, up through four bit SPI.    On the board, there were some missing pullup resistors.   MISO, #HOLD, and #WP did not have pullups.   When I added 4.7K ohm pullups to those three pins,  the MISO started toggling and flashrom  reported that   “This flash part has status NOT WORKING for operations: PROBE READ ERASE WRITE “    This is to be expected, as the N25Q256 is not supported.


On this Micron part, the #HOLD, and #WIP pins are dual function.   In four bit mode, they are data bits.  Therefore, the need for pullups is not obvious.   However,  until I added them, the part was dead as a mackerel. 


I could not find the Chromium branch, so I could not try that version.   I did try the latest release candidate, but it operated the same.  However, we don’t really need that large a PROM, so we have N25Q128 chips on order for delivery tomorrow.   I believe that one is supported, so we should be able to program after swapping the chip.    


From: David Hendricks []
Sent: Wednesday, March 30, 2016 06:11 PM
To: Steve Miller
Subject: Re: [flashrom] Programming N25Q256 ?


On Wed, Mar 30, 2016 at 3:14 PM, Steve Miller <> wrote:



I have the code built and running on a Raspberry PI.  Unfortunately, the target part I am trying to program is a Micron N25Q256.  I don’t see that part in the list.   When I execute the program with –VV   it seems to scan lots of devices.  I see activity on CLK, CS, MOSI with an oscilloscope.  But MISO remains logic low.   When the program terminates,  it just tells me No EEPROM/Flash device found.


Stupid Noob Questions:

1.        Is the static level on MISO to be expected?  Or should it at least toggle?

You should definitely see some activity on MISO. Flashrom sends identification instructions (RDID, REMS, etc) to the chip and the chip should respond with its JEDEC-assigned manufacturer ID and vendor-specific device info.


That said, the N25Q256 is not currently added in upstream flashrom. There is limited support in the Chromium branch, though.

2.        Is there any hope with this device?    Can I perhaps force it to think the chip is smaller?

Yep, that's what we currently do in the Chromium branch*. The chip uses 24-bit addresses unless either a bit in a nonvolatile config register is set or alternate instructions which accept 32-bit addresses are used.


*Full 4-byte address support should be ready soon, I just need to find a few spare cycles to finish up what I have written...



David Hendricks (dhendrix)
Systems Software Engineer, Google Inc.