
| |
Projects - JTAG
JTAG for the LART
Before you can run an operating system on the LART, you have to write a
bootloader to the flash. The LART team uses a special external flash board;
for most people that's not really a solution because some special hardware
is required to (re-)program that board.
Fortunately, Intel has a documented hack
to program flash memory through the SA1100 JTAG interface. Nonetheless it
took quite some time before everything was ported to Linux and the correct
hardware was built.
Nicolas Pitre first ported Intel's
Jflash
(legal info)
utility from Windows to Linux, Steve Wiseman hacked it a bit further
so it worked with the LART (Jflash was intended for the
Intel Assabet
which has an SA1110 CPU). Finally, Holly Gates designed a dongle so
you can connect your LART directly to the parallel port.
Pictures
Some pictures courtesy of Holly Gates.
| JTAG pictures |
|
A LART with the JTAG dongle attached. |
|
|
And a close-up of the dongle. |
|
|
Download
|
| jtag-lart_Rev_X1_BOM.txt | 10 Aug 2000 22:37:31 | 197 bytes |
The Bill-of-materials for the JTAG dongle. Supplied by Holly Gates.
|
|
| jtag-lart_Rev_X1.tar.gz | 10 Aug 2000 22:37:31 | 9,662 bytes |
The JTAG dongle hardware distribution from Holly Gates. Contains all gerber
files to build your own dongle. (tar, gz)
|
|
|
| jflash-linux.tar.gz | 10 Aug 2000 23:29:39 | 25,453 bytes |
The Intel Jflash utility ported to LART and Linux by Nicolas Pitre and Steve
Wiseman. Contains source as well as a precompiled binary. (tar, gz)
|
|
|
Usage
Using the JTAG programmer is quite easy:
Connect a parallel cable to you computer's printer port, connect the JTAG
dongle to the cable. Connect the other end of the JTAG dongle to the LART.
Powerup the LART. Have a copy of blob ready, and use the following command
(as root):
root@arthur:jflash-linux # ./Jflash-linux blob-1.0.7b
using printer port at 378
Seems to be a pair of 28F160F3, bottom boot. Good.
Starting erase for da5 bytes
Erasing block 0
Erasing done
Starting programming
Writing flash at hex address 220, 15.57% done
Writing flash at hex address 4b0, 34.35% done
Writing flash at hex address 750, 53.59% done
Writing flash at hex address 9f0, 72.83% done
Writing flash at hex address c90, 92.07% done
Programming done
Starting verify
Verifying flash at hex address 7a2, 55.94% done
Verification successful!
root@arthur:jflash-linux #
|
|
|
In our first experiments, we have measured a throughput of
630 bytes/s. If the download is successful, the LART will immediately
reset itself and run blob. If you have a terminal (or terminal emulator)
connected to the serial port, you will see blob booting:
Consider yourself LARTed!
Running from internal Flash.
Starting the memory tester...
Zeroing memory...0xD0000000 |
|
|
Notes
There is a small chance that the dongle doesn't work. You may get one
of the following error messages when using Jflash-linux:
error, failed to read device ID
ACT: 0000 0000000000000000 00000000000 0
EXP: X001 0001000010000100 00000110101 1
failed to read device ID for the SA-1100 |
|
|
error, failed to read device ID
ACT: 1111 1111111111111111 11111111111 1
EXP: X001 0001000010000100 00000110101 1
failed to read device ID for the SA-1100 |
|
|
If that's the case, put a 100 ohm resistor between pins 6 (+3.3V)
and 7 (nTRST) on the JTAG connector. In this way nTRST will be
pulled to +3.3V so the JTAG bus won't be able to reset itself.
Credits
This is an external project. The LART team wishes to thank
Nicolas Pitre,
Steve Wiseman, and
Holly Gates for their efforts.
|