[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Freedombox-discuss] open source hardware exists

> The first step is to ask Marvell. Please do.

You don't have to ask Marvell.  The info is widely available.

The DreamPlug has a JTAG interface that lets an external debugger stop
the processor, access memory, etc.  The manufacturer (Global Scale
Technologies) sells an easy JTAG interface kit for $39.  It attaches to
USB on one end, and a few wires attach it to the JTAG connector on the
DreamPlug.  (The same JTAG interface works with the GuruPlug and the

There's a free software debugger (openocd, Open On-Chip Debugger) that
works with JTAG interfaces.  I have barely scratched the surface of
using it.  I haven't found a great reference for what it can do, but see:

     (2-hr video tutorial on OpenOCD and kernel debugging)

In general JTAG is a way to debug chips without removing them from the
system.  It uses a few wires that are daisy-chained on the board to
each complex chip in the system.  Software to drive a JTAG port sends
commands serially down the "data in" wire and causes a bitstream to be
shifted out of the chips and back to the software on the "data out"
wire.  The interpretation of the bitstream depends on which chips are
attached, and there are some standards for identifying them.  All
chips with JTAG let you read the pins of the chip ("boundary scan"),
and often write them as well.  Many chips also make internal values
accessible (such as, in a processor, the current program counter,
registers, etc).  In a system-on-chip, the JTAG interface pins will
connect up to many different subsystems inside the chip (like the
processor, the ethernet, the memory controller, the serial ports,
etc), which can each be addressed from the JTAG interface.  For
more details, see:


The JTAG interface doesn't let anybody send an Ethernet or WiFi packet
and take over your system.  You need to plug a specific hardware
connector into a hardware socket designed to fit with it (and on most
systems that socket is inside the guts of the system, under the
plastic or metal case).  But when you have the hardware under your
physical control, JTAG is very powerful for accessing and/or
reverse-engineering a system.  Many free-software folks use JTAG to
figure out what a proprietary system's chips are doing, so they can
write free software that works with them.  Like any tool, it can
be used for "good" or "evil"...


Reply to: