OPENOCD in a large JTAG chain

Dear All

We need to work on a JTAG chain made from 65 devices; our target is to program the SAM7 processor which is the first device in the chain ; as you can see in the following description, there is a multiple repetition of only 4 device in the chain after the SAM7

  1. SAM7 (uControllore della EAST): IRLen=3

  2. ALTERA EPM2210 : IRLen = 10

  3. ALTERA EP4SGX230 : IRLen =10

  4. LATTICE ISP1014 : IRLen = 8

  5. ATMEL AT90CAN32 : IRLen = 4

  6. ALTERA EPM2210 : IRLen = 10

  7. ALTERA EP4SGX230 : IRLen =10

  8. LATTICE ISP1014 : IRLen = 8

  9. ATMEL AT90CAN32 : IRLen = 4

  10. ALTERA EPM2210 : IRLen = 10

  11. ALTERA EP4SGX230 : IRLen =10

  1. ATMEL AT90CAN32 : IRLen = 4

We already managed to use OPENOCD in a JTAG chain made from only 5 devices using the following JTAG chain description section:

jtag newtap auto0 tap -irlen 4 -ircapture 1 -irmask 0x0f -expected-id 0x0958103f

jtag newtap auto1 tap -irlen 8 -ircapture 1 -irmask 0x03 -expected-id 0x00145043

jtag newtap auto2 tap -irlen 10 -ircapture 1 -irmask 0x3 -expected-id 0x024090dd

jtag newtap auto3 tap -irlen 10 -ircapture 1 -irmask 0x3 -expected-id 0x020a40dd

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 1 -irmask 0x0f -expected-id $_CPUTAPID

but we encounter some problems when we rise to 9 the number of devices in the chain so when we add the next 4 devices and use the following new chain description in the .cfg file

jtag newtap auto0 tap -irlen 4 -ircapture 1 -irmask 0x0f -expected-id 0x0958103f

jtag newtap auto1 tap -irlen 8 -ircapture 1 -irmask 0x03 -expected-id 0x00145043

jtag newtap auto2 tap -irlen 10 -ircapture 1 -irmask 0x3 -expected-id 0x024090dd

jtag newtap auto3 tap -irlen 10 -ircapture 1 -irmask 0x3 -expected-id 0x020a40dd

jtag newtap auto4 tap -irlen 4 -ircapture 1 -irmask 0x0f -expected-id 0x0958103f

jtag newtap auto5 tap -irlen 8 -ircapture 1 -irmask 0x03 -expected-id 0x00145043

jtag newtap auto6 tap -irlen 10 -ircapture 1 -irmask 0x3 -expected-id 0x024090dd

jtag newtap auto7 tap -irlen 10 -ircapture 1 -irmask 0x3 -expected-id 0x020a40dd

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 1 -irmask 0x0f -expected-id $_CPUTAPID

The error messages I got are:

Open On-Chip Debugger 0.4.0-rc1 (2010-03-25-11:38)

For bug reports, read

http://openocd.berlios.de/doc/doxygen/bugs.html

1000 kHz

Info : clock speed 1000 kHz

Info : JTAG tap: auto0.tap tap/device found: 0x0958103f (mfg: 0x01f, part: 0x9581, ver: 0x0)

Info : JTAG tap: auto1.tap tap/device found: 0x800c5043 (mfg: 0x021, part: 0x00c5, ver: 0x8)

Warn : JTAG tap: auto1.tap UNEXPECTED: 0x800c5043 (mfg: 0x021, part: 0x00c5, ver: 0x8)

Error: JTAG tap: auto1.tap expected 1 of 1: 0x00145043 (mfg: 0x021, part: 0x0145, ver: 0x0)

Info : TAP auto2.tap does not have IDCODE

Warn : JTAG tap: auto2.tap UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000, ver: 0x0)

Error: JTAG tap: auto2.tap expected 1 of 1: 0x024090dd (mfg: 0x06e, part: 0x2409, ver: 0x0)

Info : JTAG tap: auto3.tap tap/device found: 0x40902437 (mfg: 0x21b, part: 0x0902, ver: 0x4)

Warn : JTAG tap: auto3.tap UNEXPECTED: 0x40902437 (mfg: 0x21b, part: 0x0902, ver: 0x4)

Error: JTAG tap: auto3.tap expected 1 of 1: 0x020a40dd (mfg: 0x06e, part: 0x20a4, ver: 0x0)

Info : JTAG tap: auto4.tap tap/device found: 0xf020241b (mfg: 0x20d, part: 0x0202, ver: 0xf)

Warn : JTAG tap: auto4.tap UNEXPECTED: 0xf020241b (mfg: 0x20d, part: 0x0202, ver: 0xf)

Error: JTAG tap: auto4.tap expected 1 of 1: 0x0958103f (mfg: 0x01f, part: 0x9581, ver: 0x0)

Info : JTAG tap: auto5.tap tap/device found: 0x38458083 (mfg: 0x041, part: 0x8458, ver: 0x3)

Warn : JTAG tap: auto5.tap UNEXPECTED: 0x38458083 (mfg: 0x041, part: 0x8458, ver: 0x3)

Error: JTAG tap: auto5.tap expected 1 of 1: 0x00145043 (mfg: 0x021, part: 0x0145, ver: 0x0)

Info : JTAG tap: auto6.tap tap/device found: 0x7a003103 (mfg: 0x081, part: 0xa003, ver: 0x7)

Warn : JTAG tap: auto6.tap UNEXPECTED: 0x7a003103 (mfg: 0x081, part: 0xa003, ver: 0x7)

Error: JTAG tap: auto6.tap expected 1 of 1: 0x024090dd (mfg: 0x06e, part: 0x2409, ver: 0x0)

Info : JTAG tap: auto7.tap tap/device found: 0x48160487 (mfg: 0x243, part: 0x8160, ver: 0x4)

Warn : JTAG tap: auto7.tap UNEXPECTED: 0x48160487 (mfg: 0x243, part: 0x8160, ver: 0x4)

Error: JTAG tap: auto7.tap expected 1 of 1: 0x020a40dd (mfg: 0x06e, part: 0x20a4, ver: 0x0)

Info : JTAG tap: at91sam7s256.cpu tap/device found: 0x7c080483 (mfg: 0x241, part: 0xc080, ver: 0x7)

Warn : JTAG tap: at91sam7s256.cpu UNEXPECTED: 0x7c080483 (mfg: 0x241, part: 0xc080, ver: 0x7)

Error: JTAG tap: at91sam7s256.cpu expected 1 of 1: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)

Warn : Unexpected idcode after end of chain: 257 0xfbf0f878

Warn : Unexpected idcode after end of chain: 289 0xfe000007

Warn : Unexpected idcode after end of chain: 321 0xf0000007

Warn : Unexpected idcode after end of chain: 353 0xc000000f

Warn : Unexpected idcode after end of chain: 385 0x8000007f

Warn : Unexpected idcode after end of chain: 417 0xc000007f

Warn : Unexpected idcode after end of chain: 449 0xe000003f

Warn : Unexpected idcode after end of chain: 481 0xc000003f

Warn : Unexpected idcode after end of chain: 513 0xe000003f

Warn : Unexpected idcode after end of chain: 545 0xf000001f

Warn : Unexpected idcode after end of chain: 577 0xf000000f

Error: double-check your JTAG setup (interface, speed, missing TAPs, …)

Info : JTAG tap: auto0.tap tap/device found: 0x0958103f (mfg: 0x01f, part: 0x9581, ver: 0x0)

Info : JTAG tap: auto1.tap tap/device found: 0xf000001f (mfg: 0x00f, part: 0x0000, ver: 0xf)

Warn : JTAG tap: auto1.tap UNEXPECTED: 0xf000001f (mfg: 0x00f, part: 0x0000, ver: 0xf)

Error: JTAG tap: auto1.tap expected 1 of 1: 0x00145043 (mfg: 0x021, part: 0x0145, ver: 0x0)

Info : TAP auto2.tap does not have IDCODE

Warn : JTAG tap: auto2.tap UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000, ver: 0x0)

Error: JTAG tap: auto2.tap expected 1 of 1: 0x024090dd (mfg: 0x06e, part: 0x2409, ver: 0x0)

Info : JTAG tap: auto3.tap tap/device found: 0xa0482437 (mfg: 0x21b, part: 0x0482, ver: 0xa)

Warn : JTAG tap: auto3.tap UNEXPECTED: 0xa0482437 (mfg: 0x21b, part: 0x0482, ver: 0xa)

Error: JTAG tap: auto3.tap expected 1 of 1: 0x020a40dd (mfg: 0x06e, part: 0x20a4, ver: 0x0)

Info : JTAG tap: auto4.tap tap/device found: 0xf810421b (mfg: 0x10d, part: 0x8104, ver: 0xf)

Warn : JTAG tap: auto4.tap UNEXPECTED: 0xf810421b (mfg: 0x10d, part: 0x8104, ver: 0xf)

Error: JTAG tap: auto4.tap expected 1 of 1: 0x0958103f (mfg: 0x01f, part: 0x9581, ver: 0x0)

Info : JTAG tap: auto5.tap tap/device found: 0x212b0003 (mfg: 0x001, part: 0x12b0, ver: 0x2)

Warn : JTAG tap: auto5.tap UNEXPECTED: 0x212b0003 (mfg: 0x001, part: 0x12b0, ver: 0x2)

Error: JTAG tap: auto5.tap expected 1 of 1: 0x00145043 (mfg: 0x021, part: 0x0145, ver: 0x0)

Info : TAP auto6.tap does not have IDCODE

Warn : JTAG tap: auto6.tap UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000, ver: 0x0)

Error: JTAG tap: auto6.tap expected 1 of 1: 0x024090dd (mfg: 0x06e, part: 0x2409, ver: 0x0)

Info : TAP auto7.tap does not have IDCODE

Warn : JTAG tap: auto7.tap UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000, ver: 0x0)

Error: JTAG tap: auto7.tap expected 1 of 1: 0x020a40dd (mfg: 0x06e, part: 0x20a4, ver: 0x0)

Info : JTAG tap: at91sam7s256.cpu tap/device found: 0xe800a281 (mfg: 0x140, part: 0x800a, ver: 0xe)

Warn : JTAG tap: at91sam7s256.cpu UNEXPECTED: 0xe800a281 (mfg: 0x140, part: 0x800a, ver: 0xe)

Error: JTAG tap: at91sam7s256.cpu expected 1 of 1: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)

Warn : Unexpected idcode after end of chain: 195 0x38048243

Warn : Unexpected idcode after end of chain: 227 0x1f020a41

Warn : Unexpected idcode after end of chain: 259 0xfcfc3c3e

Warn : Unexpected idcode after end of chain: 291 0xf800000f

Warn : Unexpected idcode after end of chain: 323 0xe0000007

Warn : Unexpected idcode after end of chain: 355 0xe000001f

Warn : Unexpected idcode after end of chain: 387 0xe000001f

Warn : Unexpected idcode after end of chain: 419 0xf800000f

Warn : Unexpected idcode after end of chain: 451 0xfc000007

Warn : Unexpected idcode after end of chain: 483 0x3fe00000

Warn : Unexpected idcode after end of chain: 515 0xff800000

Warn : Unexpected idcode after end of chain: 547 0xff800000

Warn : Unexpected idcode after end of chain: 579 0xfe000001

Error: double-check your JTAG setup (interface, speed, missing TAPs, …)

Command handler execution failed

Warn : jtag initialization failed; try ‘jtag init’ again.

Could anybody help me ?

Many Thanks in advance for your hints

Paolo

Hi, did you ever find a resolution for this?

We have 10 STM32’s in a chain and having spent the day configuring tools and finally getting things to work I’ve found exactly the same problem…

Open On-Chip Debugger 0.4.0 (2010-11-23-14:20)

Licensed under GNU GPL v2

For bug reports, read

http://openocd.berlios.de/doc/doxygen/bugs.html

400 kHz

jtag_nsrst_delay: 100

jtag_ntrst_delay: 100

trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain

Info : clock speed 400 kHz

Info : JTAG tap: my_name0.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name0.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name1.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name1.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name2.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name2.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name3.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name3.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name4.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name4.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name5.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name5.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name6.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name6.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name7.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name7.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name8.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name8.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name9.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name9.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Error: IR capture error at bit 90, saw 0x042211088442211088442211 not 0x…3

Info : JTAG tap: my_name0.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name0.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name1.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name1.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name2.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name2.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name3.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name3.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name4.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name4.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name5.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name5.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name6.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name6.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name7.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name7.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name8.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name8.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Info : JTAG tap: my_name9.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)

Info : JTAG tap: my_name9.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

Error: IR capture error at bit 90, saw 0x042211088442211088442211 not 0x…3

Command handler execution failed

Warn : jtag initialization failed; try ‘jtag init’ again.

Warn : gdb services need one or more targets defined

Amontec Team was able to put 14 Xilinx CPLD in the chain using a Amontec JTAGkey-2.

But failed with Amontec JTAGkey Tiny .

What is the difference ?

The output buffers on JTAGkey-2 are able to driver up to 32ma instead of the 8ma for a Amontec JTAGkey Tiny.

So try with a Amontec JTAGkey-2, almost sure it will work :slight_smile:

Regards,

Laurent

http://www.amontec.com

http://www.amontec.com/jtagkey.shtml