Retro: ASUS mimic CX200 JTAG hacking 

Back in my university years I have had some issues with an Asus MIMIC CX200 camera. One of them got broken after a firmware upgrade so I have decided to fix it with JTAG. I have successfully got to UrJTAG to read the IDCODE of the S3C4510B, but I was unable to detect the flash. Now I know that I have had to tweak the bus driver and reveng the board a bit.

Here are some pics (shot with my Nokia 6230 in VGA res) about the trick:

Thin albanian wires were soldered directly to the pins.

Live together cry together series 100 Ohm level shifter JTAG adapter to LPT port.

I have designed an addon board to expose the CPU's intresting interfaces (2 serial, USB, JTAG)

It is fun to look back to those pictures from now. After 5 years we got to a state when it is easier and cheaper to buy a Rpi to solve the same problem rather than fixing that board...
[ hozzászólás ] [ 0 trackbackek ] permalink kapcsolódó link ( 3.1 / 58 )
Compile urJTAG on Windows under cygwin 

urJTAG source from SVN or Git.
Cygwin: install the packagelist from here: with the technology described here: ... -packages/

The python binding is broken so run the ./ with --disable-python option.


#define NOUSER

befor, and

#ifdef IN
#undef IN

#ifdef OUT
#undef OUT

fter the #include <windows.h> into the sysdep.h

make -j 8 CFLAGS='-Wno-char-subscripts -Wno-unused-value'

[ hozzászólás ] [ 0 trackbackek ] permalink ( 2.9 / 32 )
Debugging UrJTAG with GDB 

The UrJTAG uses a libtool wrapper for starting, so debugging with GDB is a bit tricky.

You should debug the src/apps/jtag/.libs/lt-jtag binary.
But it does not appears right after building it, the wrapper script creates it if not exists.
So ran ./src/apps/jtag/jtag first.

Figuring out taken me some time, I hope it will helps someone.

So execute

gdb ./src/apps/jtag/.libs/lt-jtag

in the trunk and enjoy debugging ;).
[ hozzászólás ] [ 0 trackbackek ] permalink ( 2.9 / 83 )
UrJTAG new bus HOWTO 

Preface: I will call new bus "foo" in this example, so replace the foo with your bus name in the examples case sensitive.

1. Write the bus code. (Implement the necessary functions, and members for the URJ_BUS_DRIVER structure. see. include/urjtag/bus_driver.h)

2. Add the bus to the URJ_DRIVER_SET([bus], []) array in the urjtag/

3. Add the following code the urjtag/src/bus/buses_list.h:


Please keep this list sorted alphabetically as it noted in the header.

4. Add the following snipplet to the urjtag/src/bus/

libbus_la_SOURCES += foo.c

5. Now you are ready to make the UrJTAG with the new bus. Run ./ && make in the source directory.
[ hozzászólás ] [ 0 trackbackek ] permalink ( 3 / 119 )

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |