[coreboot] Tester hardware

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Wed Feb 24 11:53:25 CET 2010

On 24.02.2010 01:22, Peter Stuge wrote:
> Ward Vandewege wrote:
>>>> I think a small microcontroller and actual flash chips may be
>>>> the simplest and cheapest way to do it. The microcontroller is
>>>> for flashing from ALIX, maybe also GPO pins and serial port.
>>> Speaking with y flashrom hat on, I'd like to point out that you
>>> can use the FT2232H Mini Module (~$30) to perform
>>> in-system-programming (well, as long as the machine is powered of)
> In-system-programming is worth considering, but for boards with
> sockets it actually just creates extra work. In any case $30 for
> flash programming in the tester hardware is way unacceptable. I'm

I think Ward mentioned that the cost of a dongle was way higher, so I
thought I'd mention something which works right now for SPI and is
significantly cheaper than a dongle.
Besides that, any testing rig has to be automated unless you're willing
to invest boatloads of time per checkin. For that, you either need a
dongle or in-system programming.

> thinking that $10 is already nearly too high cost, but on the other
> hand it buys a very nice ARM7 with USB, which could be reused also
> independently of the tester.

For 6 EUR you can get a FT2232H (chip only), but you have to design a
circuit for it. The advantage of the FT2232H is that it speaks SPI
natively and reasonable speeds (a few MHz).

I know that someone is selling an ATTiny based design to do in-system
SPI programming, and it would be easy to code up flashrom support for
it. I haven't been able to contact the vendor, though.

If you plan to design that hardware yourself, let me list the requirements:
For SPI, all you need is 4 GPIOs (CLK/MISO/MOSI/CS).
For LPC/FWH, all you need is 6 GPIOs (AD[0-3]/CLK/FRAME).
For Parallel, you need a boatload of GPIOs or some demultiplexer.
More GPIOs (e.g. HOLD/WP for SPI and RST/ID/WP for LPC/FWH) are always
useful, but not a hard requirement. They can be used to speed up
programming or make it more reliable.
Vcc and GND are not listed above because they are not GPIOs.

Flashrom can deal with bitbanging SPI/LPC/FWH/Parallel (not all of them
merged yet), or it can drive programmers which understand those
protocols and just want higher-level commands (send command xy to
flash). The bitbanging variant is obviously slower than a
protocol-understanding external programmer.

Why am I listing the requirements above? I just want to avoid that
someone creates a nice piece of hardware, and afterwards notices that
he/she needs to modify the design because some key requirement was
If you have a proposed design, send the details to flashrom at flashrom.org
so that the flashrom developers can have a look and suggest changes (if

>> What kind of hardware would one use to hook the spi chip to the
>> mini module?
> This is the question. Anything socketed is easy, but soldered down
> chips make it more difficult. For SO-8 I've only seen the IC-CLIP by
> Pomona, which doesn't attach with a very sturdy connection to chips. :\

There's always the option of soldering a few wires to the pins of the
chip. Not exactly a clean solution, but it should work fine if you plan
permanent dedication of the machine to the test rig.


"I do consider assignment statements and pointer variables to be among
computer science's most valuable treasures."
-- Donald E. Knuth

More information about the coreboot mailing list