On Thu, 13 Aug 2015 16:17:20 -0400
"Patrick 'P. J.' McDermott" <pj(a)baldr1.pehjota.net> wrote:
Although I don't have schematics, I see resistors on the board on the
CS#, SO, WP#, SCK, NC/HOLD#, and VCC lines, indicating that the board is
likely designed for ISP.
Not necessarily. Could be simple pull-ups (and a current limiter on
damo22 looked at the datasheet  (the AT25 datasheet
 is almost
identical) and suggested that maybe the chip is in Deep Power-Down mode,
which would explain why it's not responding to commands from flashrom on
an external linux_spi programmer.
Is it possible that the AT26DF321 on this board is always put in Deep
Power-Down mode by the ICH9 (Intel 82801IO) but the AT26DF321 on the
other board I successfully tried (with an Intel 82801IEM ICH9M-E) is
normally in standby? Has anyone else ever encountered an SPI flash chip
in Deep Power-Down mode?
I looked through the source code to see if flashrom sends or could send
a Resume from Deep Power-Down command. The command is a 0xAB opcode
while CS# is asserted, followed by a deassertion of CS# and a delay of
up to 3 µs. flashrom doesn't send this command, but all of that seems
easily doable except for the CS# deassertion. Linux's
Documentation/spi/spidev file says that the SPI_IOC_MESSAGE(N) request
does not deselect the chip.
flashrom DOES send 0xAB (RES) as it is one of the opcodes that can be
used to identify flash chips (look for probe_spi_res1 in your log).
Any recommendations on how to proceed?
Unfortunately, I don't have another explanation other than that the
board simply does not work with ISP. Have you tried measuring actual
voltages on the board while flashrom is running or even using a logic
Kind regards/Mit freundlichen Grüßen, Stefan Tauner