Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#126 EJTAG driver

closed
Marcel Telka
jtag (93)
5
2011-07-08
2006-02-11
Oleg
No

I have attached EJTAG driver for jtag-tools. It can be
used to write flash and read flash for almost all
modern MIPS boards.

EJTAG driver written by Marek Michalkiewicz under GPL
http://www.amelek.gda.pl/rtl8181/jtag/

Patch do not conflicts with another patches.
it
1)adds /src/bus/ejtag.c file
2) register this file in /src/bus/buses.c buses.h
makefile.am
3) removes one check from /src/tap/parport/ppdev.c
4) change in flash.c is not needed, but can speedup
flashing. It just exclude "printf" from cycle.
5) comment two strings in libbrux/flash/detectflash.c
it is not needed
6) add non-zero flash address support to
libbrux/flash/jedec.c and amd.c
i wonder why this is not added to CVS tree. This patch
was given by different peoples many times.

I suggest to add this patch fully or partially to CVS
tree. This patch can make jtag-tools widely used and
very helpful for modern devices.

Discussion

  • Oleg
    Oleg
    2006-02-11

    EJTAG driver

     
    Attachments
  • Oleg
    Oleg
    2006-02-12

    Logged In: YES
    user_id=1433140

    additional patch to workagound issue with RTL8181 CPU.
    Toggle bits don't toggle when reading the same flash
    address repeatedly without any other memory access in
    between. So, check for the correct data read twice instead.
    ====diff==========================================
    diff -r -a -b -B -d -N -xCVS jtag-old/libbrux/flash/amd.c
    jtag-new/libbrux/flash/amd.c
    127a128
    > uint32_t data1, data2;
    128a130
    > data1 = bus_read( bus, adr );
    130,131c132
    < uint32_t data1 = bus_read( bus, adr );
    < uint32_t data2 = bus_read( bus, adr );
    ---
    > data2 = bus_read( bus, adr );
    135c136,145
    < if ( (data1 & togglemask) == (data2 &
    togglemask)) /* no toggle */
    ---
    > /* Work around an issue with RTL8181:
    toggle bits don't
    > toggle when reading the same flash
    address repeatedly
    > without any other memory access in
    between. Other
    > bits reflect the current status, and
    data after the
    > operation is complete - only Q6/Q2 bits
    don't toggle
    > when they should. Looks like the CPU
    not deasserting
    > CE or OE, so data is output to the bus
    continuously.
    > So, check for the correct data read
    twice instead. */
    > /*if ( (data1 & togglemask) == (data2 &
    togglemask)) */
    > if ( (data1 == data) && (data2 == data) )
    144a155
    > data1 = data2;

     
  • Marcel Telka
    Marcel Telka
    2011-07-08

    • status: open --> closed
     
  • Marcel Telka
    Marcel Telka
    2011-07-08

    The openwince project is no longer active.

    If this report is related to JTAG Tools, please try UrJTAG at http://urjtag.sourceforge.net/