[coreboot] SPI in-system programming

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sun Jul 18 18:20:54 CEST 2010

Hi Corey,

[adding flashrom at flashrom.org to CC]

On 18.07.2010 11:54, Corey Osgood wrote:
> I need a way that I can test images without actually being in the same
> location as the board I'll be testing them on. What would you guys
> recommend for programming an SPI chip with it still on the
> motherboard?


> There is no ISP header, and the flash chip is socketed,
> the board will be a Zotac Atom/NM10 ITX board.

You could stack two SPI chips easily, and switch the CS# pin.

> I've seen programmers
> that explain how to isolate the signals so their programmer can be
> used to do it, but does it require a special programmer, or is it
> something that could be done with a $20 ebay programmer and a little
> wire? And can the board be operated with the programmer still
> attached? I'm getting a lot of conflicting info, hoping someone can
> clarify this.

If you want to reflash with an external programmer, it gets complicated
really fast. Reflashing a chip which is connected to a running system is
extremely risky, and you may fry your board. One way around that is to
hook some buffer in between, but you'd need one which is fast enough for
33 MHz operation (and you want a safety margin to not disturb
communication, so shooting for one with a delay around 10 ns is a good
idea), and then electrically disconnect the flash chip from the board
while flashing.
Maybe flashing a chip in a powered down system with an external
programmer works, but you can't be sure if the external programmer has
enough power to feed 3.3V to the whole board (if the flash chip is
connected there) and you may see undesirable side effects as well.

> If this doesn't work out, how can I flip back and forth between a pair
> of SPI chips?

Switching the CS# pin should do the trick.



More information about the coreboot mailing list