FlexyICE: Difference between revisions

From coreboot
Jump to navigation Jump to search
Line 5: Line 5:
The dongle connects to a computer via USB. It connects to the target via an LPC header.  
The dongle connects to a computer via USB. It connects to the target via an LPC header.  


The dongle comes with [http://www.artecgroup.com/downloads/lpc-dongle/ free software and full schematics]. The host-based software is written in Python, and works just fine under GNU/Linux. You may want to write [mailto:info@artecgroup.com artecgroup] to get the latest version of the software; the website needs some work.
The dongle comes with [http://www.artecgroup.com/downloads/lpc-dongle/ free software and full schematics]. The host-based software is written in Python, and works just fine under GNU/Linux. You may want to write [mailto:info@artecgroup.com artecgroup] to get the latest version of the software; as of 2008-02 their website does not have the latest version for download.


The dongle has 16 MByte of onboard memory, divided in 4 banks of 4 Mbyte each. The 'mode-selection' jumpers allow selection of each bank: 00, 01, 10, 11.
The dongle has 16 MByte of onboard memory, divided in 4 banks of 4 Mbyte each. The 'mode-selection' jumpers allow selection of each bank: 00, 01, 10, 11.

Revision as of 01:05, 24 February 2008

About the dongle

The dongle is for sale by Artecgroup, based in Estonia. It costs about EUR 150 (2007-12).

The dongle connects to a computer via USB. It connects to the target via an LPC header.

The dongle comes with free software and full schematics. The host-based software is written in Python, and works just fine under GNU/Linux. You may want to write artecgroup to get the latest version of the software; as of 2008-02 their website does not have the latest version for download.

The dongle has 16 MByte of onboard memory, divided in 4 banks of 4 Mbyte each. The 'mode-selection' jumpers allow selection of each bank: 00, 01, 10, 11.

The dongle also has two 16-segment LED displays that can show POST codes.

Using the dongle

Reading from and writing to the dongle

Images are downloaded via USB. Access is not particularly fast: putting a 512KBybe image into the dongle takes about 17 seconds on my machine. That adds up when you want to store a 4MB image!

Here's a command that writes a 512KByte image into the dongle

 ./dongle.py -v -c /dev/ttyUSB0 alix0-1.bin 3584K

The -v parameter makes the command verbose. -c /dev/ttyUSB0 means 'use device /dev/ttyS0'. Alix0-1.bin is the image that is to be written to the dongle (it's a 512KByte file), and 3584K is the offset at which it should be written. Always calculate that number as 4Mbyte - size of your image.

And here's how you can read the image back:

 ./dongle.py -c /dev/ttyUSB0 -r 3670016 512K test2.rom 

The -r parameter indicates 'read', and 3670016 is the offset at which the program should start reading (this is 3584K), for 512K bytes. Test2.rom is the file the image will be stored in on your computer.

If you actually wrote and read an image, you should now md5sum both files to make sure they are identical.

Booting an ALIX.1C

First of all, you'll need to make a custom cable. The ALIX.1C has a 20-pin header (J16) that can be used to hook up the dongle. The pin layout is documented on page 13 and 14 in the ALIX.1C manual.

The Artecgroup LPC dongle has a 10-pin LPC dongle that is described in the schematics. Peter Stuge did the hard work of figuring out the correct wiring here and here. This is the wiring diagram:

  Dongle - ALIX.1C

   1 - 13
   2 - 3
   3 - 5
   4 - 7
   5 - 9
   6 - 11
   7 - NC
   8 - 1
   9 - 2/4/6/8/10/12/17 (just pick one)
  10 - NC
     - 15 connected to 18

In the above, pin 7 on the dongle should not be connected to anything on the ALIX.1C. Pin 9 on the dongle should be connected to one of 2/4/6/8/10/12/17 on the ALIX.1C, not all of those pins. Pin 15 and 18 on the ALIX.1C side need to be shorted, but not connected to anything on the dongle side.

Cable length is important - your cable should not be more than a few centimeter long.

The easiest way to make such a cable is to take an old floppy or IDE-40 flat ribbon cable (don't use IDE-80, its wires are much thinner which makes things harder), cut it, and put a 10-pin header on the dongle side.

If you are in the US, you can buy 10-pin headers here (Jameco part number 32492). You might also want to get a crimping tool (Jameco part number 73252).


Make sure to jump pin 1/2 on J1. Make sure JMP4 is set to position 1/2 (i.e. NOT to the pins marked as LPC). Make sure that you leave the mode select jumpers in the same position between the writing of the image into the dongle and trying to boot off it.