[flashrom] Can't probe AT26DF321 on OptiPlex 755

Patrick 'P. J.' McDermott pj at pehjota.net
Thu Aug 13 22:17:20 CEST 2015


On 2015-08-11 22:13, Patrick 'P. J.' McDermott wrote:
> Hi,
> 
> I have a Dell OptiPlex 755 USFF which has an Atmel AT26DF321 SPI flash
> chip (which is like an AT25DF321 and has the same device ID except it
> doesn't have a HOLD# pin).  I've used flashrom to read and write the
> same chip on another board by ISP using a BeagleBone Black, 10-cm jumper
> cables, a SOIC clip, and an ATX PSU.
> 
[...]
> 
> Every time I get only bytes of 0xff from the chip, as in the attached
> log.  In my experience that usually means either the programmer isn't
> properly connected to the chip or the programmer uses a different data
> voltage than the chip does.  But I've checked and rechecked all of the
> connections, and I know both the BBB and the AT26DF321 use 3.3-V data
> signals.
> 
> Unfortunately there don't seem to be any schematics available for this
> board (Dell model number 0HX555, ODM model number HX533 A00, ODM might
> be Asustek or MiTAC).  This system does have an Intel Management Engine
> in the northbridge, but even if that was running I should at least be
> able to probe the chip and read its contents.

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.

damo22 looked at the datasheet [1] (the AT25 datasheet [2] 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.

Any recommendations on how to proceed?

[1]: http://www.atmel.com/images/doc3633.pdf
[2]: http://www.atmel.com/images/doc3669.pdf

-- 
Patrick "P. J." McDermott
  http://www.pehjota.net/
Lead Developer, ProteanOS
  http://www.proteanos.com/




More information about the flashrom mailing list