[coreboot] Tester devices [was: QA contribution]

Juhana Helovuo juhe at iki.fi
Tue Feb 1 14:54:39 CET 2011


1.2.2011 14:58, Peter Stuge kirjoitti:
> Juhana Helovuo wrote:
>>> unit that can administer testing of one or even better several
>>> mainboards. I have plenty of design and implementation ideas if
>>> you'd like to go into that.
>>
>> I started building a tester device to hook up a mainboard into an
>> automated test host.
>
> Nice.

Thanks for your supportive comments. I think I was a bit unclear on some 
points, so you misunderstood some details.


>> The basic plan is as follows:
>> The host computer is connected to tester device via USB.
>
> This certainly makes the device itself simpler. But it requires
> *another* system to be monitoring all these devices.. I can't seem to
> let go of the thought that I would prefer a tester device to be
> connected directly to the internet, and work autonomously. Ethernet
> is simple enough with something like an LM3S6965 ARM. WiFi would be a
> nice option, but will also increase the unit cost..

That would be another design strategy. However, I wanted to make the 
tester device to be just a simple interface between USB and the target 
mainboard. That makes it easier to design and fabricate with hobbyist 
methods and budget.

A design constraint for me is e.g. using only components that I can 
solder into a self-designed, self-made PCB. Using small pitch SMD 
devices or a components requiring reflow soldering seems a bit too much 
right now.

Also the tester device firmware will be simpler this way. I discovered 
that flashrom utility alone is quite a complicated piece.


>> The tester is connected to the target mainboard so that it can take
>> control of the BIOS ROM and reprogram it regardless of the state of
>> the target mainbaord.
>
> Yes. A flash emulator would of course be ideal, but also requires
> some programmable logic, ie. either one more component, or a larger
> component. In some cases board size is critical, e.g. to fit a tester
> inside a tight case.

Flash emulator would be nice, but emulating a SPI flash ROM would 
require single clock cycle response times for ordinary read commands. 
There is very little time for the ROM from receiving the last address 
bit to start transmitting the data. I do not have a document at hand, 
but I recall that for the AMD SB7x0 this should be done at 16...33 MHz 
clock rate. Some SPI controllers could do it even faster, since many ROM 
chips are rated to operate up to 60 MHz or more.


>> The tester device can also connect to the serial port of the target
>> mainboard, so it can act as a serial-over-USB-device.
>
> Right. Either the tester just has a UART, or if it is networked then
> it will itself do the checkpointing. As for the USB device, it's
> fairly important to use a generic USB hardware. The ATmega U chips

I am currently working with AT90USB162. The choice was also influenced 
by easy availability and ease of soldering.


>> The tester also has two FET switches for controlling the reset and
>> ATX power buttons on the target mainboard.
>
> Yep. I've also been thinking that the power good signal could be
> used. One problem with FETs is that they must be plugged in to the
> mainboard the right way. It would be significantly simpler to use the
> device if it had a solid state switch instead, but that's also more
> expensive.

The FET switch device I am using is this:
http://focus.ti.com/docs/prod/folders/print/sn74cbt3306.html

I believe it should work with the terminals plugged either way around. 
It should also work regardless of the voltage used in the mainboard 
switch sensing pins. E.g. in my test mainbaord the reset and atx power 
switch pins have different operating voltages (5V and 3.3V).

>> The actual AC power control of the target mainboard is not included
>> and should be done by another device, such as this:
>> http://www.gembird.nl/default.aspx?op=products&op2=item&id=3234
>
> Do you know where these units can be purchased, with the various
> voltage ratings and power plugs that are needed around the world?

I haven't tried internationally. In Finland, Jimm's PC claims to have 
them in stock a total of 4 pcs.

http://www.jimms.fi/tuote/SIS-PMS

No idea about different plug types, but I believe this one would work at 
least in Finland, Sweden, and Germany.


> With USB connectivity I think it is important to really take
> advantage of the simplicity and efficiency of USB, rather than
> emulating a serial port on top of it. Also, having a serial port over
> USB both for target connectivity, *and* for flash programming, is IMO
> unneccssarily confusing. For the flashing we will simply implement
> the serprog protocol properly using native USB concepts. It should be
> very easy.

Yes, communication from flashrom program to SPI ROM should go over 
native USB, no serial emulation needed.

I used serial port only for testing that I can actually talk to the SPI 
ROM from the microcontroller. The test setup was based on Arduino Uno, 
which can do only serial-over-USB.


Best regards,
Juhana Helovuo





More information about the coreboot mailing list