[Freedombox-discuss] open source hardware exists

John Gilmore gnu at toad.com
Thu Jun 28 23:21:55 PDT 2012


> 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
D2Plug.)

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:

  http://openocd.sourceforge.net/
  http://openocd.sourceforge.net/2012/04/kernel-debugging/
     (2-hr video tutorial on OpenOCD and kernel debugging)
  http://www.madore.org/~david/linux/dreamplug.html#u-boot

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:

  https://en.wikipedia.org/wiki/JTAG

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"...

	John

_______________________________________________
Freedombox-discuss mailing list
Freedombox-discuss at lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss

----- End forwarded message -----
-- 
Eugen* Leitl <a href="http://leitl.org">leitl</a> http://leitl.org
______________________________________________________________
ICBM: 48.07100, 11.36820 http://www.ativel.com http://postbiota.org
8B29F6BE: 099D 78BA 2FD3 B014 B08A  7779 75B0 2443 8B29 F6BE





More information about the cypherpunks-legacy mailing list