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
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot