Hi.
I have recently been using UrJTag to program a Lattice
LFXP10e. I have been using the Lattice parallel port
cable for this.
I have created the data files for this part and they are
attached as diff-data.txt.
I found that UrJTag 0.10 doesn't work "out of the box" for
me with this part - I needed to add an extra tap_reset /
tap_capture_dr into the detect.c file so that the part
gets correctly detected. I believe that a friend who
has a different JTag adapter also required this patch
(which makes me think it's either something to do with
our hardware (the board that contains the FPGA) or with
the part itself.
Has anyone else ever come across anything like this?
Does anyone know why such a patch might be needed? Is
there something more minimal that would also work?
How can I debug this further?
The hardware in question is the Open Graphics Project OGD1,
so the schematic and other information is available here:
http://wiki.opengraphics.org
Thanks for any help,
Mark M.
Member of the CSR plc group of companies. CSR plc registered in England and
Wales, registered number 4187346, registered office Churchill House, Cambridge
Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
diff -N -cwr urjtag-0.10-clean/data/lattice/lfxp10e/lfxp10e
urjtag-0.10/data/lattice/lfxp10e/lfxp10e
*** urjtag-0.10-clean/data/lattice/lfxp10e/lfxp10e 1970-01-01
01:00:00.000000000 +0100
--- urjtag-0.10/data/lattice/lfxp10e/lfxp10e 2009-11-04 10:48:56.000000000
+0000
***************
*** 0 ****
--- 1,48 ----
+ #
+ # $Id: $
+ #
+ # JTAG declarations for Lattice LFXP10e
+ # Copyright (C) 2002 ETC s.r.o.
+ #
+ # This program is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU General Public License
+ # as published by the Free Software Foundation; either version 2
+ # of the License, or (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ # 02111-1307, USA.
+ #
+ # Written by Mark Marshall
+ #
+
+ #TODO: Add these?
+ #signal EX_CS[0] K26
+
+ # mandatory data registers
+ register BSR 498 # Boundary Scan Register
+ register BR 1 # Bypass Register
+ # optional data registers
+ register DIR 32 # Device Identification Register
+
+ instruction length 8
+ # mandatory instructions
+ instruction EXTEST 00000000 BSR
+ instruction SAMPLE/PRELOAD 00011100 BSR
+ instruction BYPASS 11111111 BR
+ # optional instructions
+ instruction CLAMP 00100000 BR
+ instruction HIGHZ 00011000 BR
+ instruction IDCODE 00010110 DIR
+
+ # boundary scan register
+
+ #TODO: Add these?
+ #bit 497 C ? .
+ #bit 384 B ? GPIO[1] 369 1 Z
diff -N -cwr urjtag-0.10-clean/data/lattice/lfxp10e/STEPPINGS
urjtag-0.10/data/lattice/lfxp10e/STEPPINGS
*** urjtag-0.10-clean/data/lattice/lfxp10e/STEPPINGS 1970-01-01
01:00:00.000000000 +0100
--- urjtag-0.10/data/lattice/lfxp10e/STEPPINGS 2009-11-04 10:41:00.000000000
+0000
***************
*** 0 ****
--- 1,26 ----
+ #
+ # $Id: STEPPINGS,v 1.1 2003/02/13 22:54:39 telka Exp $
+ #
+ # Copyright (C) 2002 ETC s.r.o.
+ #
+ # This program is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU General Public License
+ # as published by the Free Software Foundation; either version 2
+ # of the License, or (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ # 02111-1307, USA.
+ #
+ # Written by Mark Marshall
+ #
+
+ # bits 31-28 of the Device Identification Register
+ 0000 lfxp10e A0
+ 0001 lfxp10e A1
diff -N -cwr urjtag-0.10-clean/data/lattice/PARTS urjtag-0.10/data/lattice/PARTS
*** urjtag-0.10-clean/data/lattice/PARTS 2009-04-17 21:24:11.000000000
+0100
--- urjtag-0.10/data/lattice/PARTS 2009-11-04 10:41:44.000000000 +0000
***************
*** 28,30 ****
--- 28,31 ----
0001100000010000 lc4128c-tqfp100 LC4128C-TQFP100
0001001001110001 lfec2-12e LFE2-12E
0001100000001100 lc4064zc LC4064ZC
+ 0001001001011100 lfxp10e LFXP10e
diff -N -cwr urjtag-0.10-clean/data/Makefile.am urjtag-0.10/data/Makefile.am
*** urjtag-0.10-clean/data/Makefile.am 2009-04-17 21:24:13.000000000 +0100
--- urjtag-0.10/data/Makefile.am 2009-11-04 10:45:17.000000000 +0000
***************
*** 138,143 ****
--- 138,146 ----
lattice/m4a3-256.192-fpbga256/m4a3-256.192-fpbga256 \
lattice/m4a3-64.32-tqfp48/STEPPINGS \
lattice/m4a3-64.32-tqfp48/m4a3-64.32-tqfp48 \
+ lattice/lfxp10e \
+ lattice/lfxp10e/STEPPINGS \
+ lattice/lfxp10e/lfxp10e \
lexra/PARTS \
lexra/lx5280/STEPPINGS \
lexra/lx5280/lx5280 \
diff -N -cwr urjtag-0.10-clean/data/Makefile.in urjtag-0.10/data/Makefile.in
*** urjtag-0.10-clean/data/Makefile.in 2009-04-17 21:25:35.000000000 +0100
--- urjtag-0.10/data/Makefile.in 2009-11-04 10:47:48.000000000 +0000
***************
*** 337,342 ****
--- 337,345 ----
lattice/m4a3-256.192-fpbga256/m4a3-256.192-fpbga256 \
lattice/m4a3-64.32-tqfp48/STEPPINGS \
lattice/m4a3-64.32-tqfp48/m4a3-64.32-tqfp48 \
+ lattice/lfxp10e \
+ lattice/lfxp10e/STEPPINGS \
+ lattice/lfxp10e/lfxp10e \
lexra/PARTS \
lexra/lx5280/STEPPINGS \
lexra/lx5280/lx5280 \
diff -x Makefile -x '*~' -x '*.Po' -N -cwr
../urjtag-0.10-clean/src/tap/detect.c src/tap/detect.c
*** ../urjtag-0.10-clean/src/tap/detect.c 2009-04-17 21:24:10.000000000
+0100
--- src/tap/detect.c 2009-11-05 10:43:44.000000000 +0000
***************
*** 248,253 ****
--- 248,257 ----
tap_reset( chain );
tap_capture_dr( chain );
+ /* I need a second reset here? */
+ tap_reset( chain );
+ tap_capture_dr( chain );
+
for (i = 0; i < chlen; i++) {
part_t *part;
tap_register *did = br; /* detected id (length is 1 or
32) */
Binary files ../urjtag-0.10-clean/src/tap/detect.o and src/tap/detect.o differ
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
UrJTAG-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/urjtag-development