Hi,

I am trying to bring-up an ED Mini V2, a feroceon-based board with no 
tRST/sRST signals available, only TCLK/TMS/TDI/TDO, and an Olimex 
ARM-USB-OCD.

This ED-Mini has a working U-boot flashed already (I am aiming at 
replacing this U-boot with a newer version).

To begin with, I've made a basic config file, containing only the two 
following lines:

> source [find tcl/interface/olimex-arm-usb-ocd.cfg]
> source [find tcl/target/feroceon.cfg]
> reset_config none

Using the latest git version of openocd, if I start it with the config 
above, it gives:

> $ src/openocd -f o.cfg
> Open On-Chip Debugger 0.4.0-dev-00171-gfd2c9fd (2009-11-24-08:48)
> For bug reports, read
>         http://openocd.berlios.de/doc/doxygen/bugs.html
> trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
> jtag_nsrst_delay: 200
> jtag_ntrst_delay: 200
> Info : clock speed 6000 kHz
> Info : JTAG tap: feroceon.cpu tap/device found: 0x49602093 (mfg: 0x049, part: 
> 0x9602, ver: 0x4)
> Warn : JTAG tap: feroceon.cpu       UNEXPECTED: 0x49602093 (mfg: 0x049, part: 
> 0x9602, ver: 0x4)
> Error: JTAG tap: feroceon.cpu  expected 1 of 1: 0x20a023d3 (mfg: 0x1e9, part: 
> 0x0a02, ver: 0x2)
> Error: Trying to use configured scan chain anyway...
> Error: feroceon.cpu: IR capture error; saw 0x09 not 0x01
> Info : JTAG tap: feroceon.cpu tap/device found: 0x49602093 (mfg: 0x049, part: 
> 0x9602, ver: 0x4)
> Warn : JTAG tap: feroceon.cpu       UNEXPECTED: 0x49602093 (mfg: 0x049, part: 
> 0x9602, ver: 0x4)
> Error: JTAG tap: feroceon.cpu  expected 1 of 1: 0x20a023d3 (mfg: 0x1e9, part: 
> 0x0a02, ver: 0x2)
> Error: Trying to use configured scan chain anyway...
> Error: feroceon.cpu: IR capture error; saw 0x09 not 0x01

(all jtag clock speeds give the same exact output)

The UNEXPECTED line worries me, but since errata for the 88F5182-A2 SoC 
says IDCODE should not be relied upon, I used the mechanism already in 
place in feroceon.cfg and preprended the following line in my config:

> source [find tcl/interface/olimex-arm-usb-ocd.cfg]
> set CPUTAPID 0x49602093
> source [find tcl/target/feroceon.cfg]
> reset_config none

Now I get the following output:

> $ src/openocd -f o.cfg
> Open On-Chip Debugger 0.4.0-dev-00171-gfd2c9fd (2009-11-24-08:48)
> For bug reports, read
>         http://openocd.berlios.de/doc/doxygen/bugs.html
> trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
> jtag_nsrst_delay: 200
> jtag_ntrst_delay: 200
> none separate
> Info : clock speed 6000 kHz
> Info : JTAG tap: feroceon.cpu tap/device found: 0x49602093 (mfg: 0x049, part: 
> 0x9602, ver: 0x4)
> Error: feroceon.cpu: IR capture error; saw 0x09 not 0x01
> Info : JTAG tap: feroceon.cpu tap/device found: 0x49602093 (mfg: 0x049, part: 
> 0x9602, ver: 0x4)
> Error: feroceon.cpu: IR capture error; saw 0x09 not 0x01

The target still resets at openocd launch. I first thought this was a 
default behavior for OpenOCD, but I still get the IR capture errors and 
in the telnet daemon, I cannot control the target:
> 
> $ telnet localhost 4444
> Trying 127.0.0.1...
> Connected to localhost.localdomain (127.0.0.1).
> Escape character is '^]'.
> Open On-Chip Debugger
>> targets
>     TargetName         Type       Endian TapName            State
> --  ------------------ ---------- ------ ------------------ ------------
>  0* feroceon.cpu       feroceon   little feroceon.cpu       unknown
>> feroceon.cpu arp_examine
> Embedded ICE version 0
> unexpected Feroceon EICE version signature
>> targets
>     TargetName         Type       Endian TapName            State
> --  ------------------ ---------- ------ ------------------ ------------
>  0* feroceon.cpu       feroceon   little feroceon.cpu       running
>> halt
> Halt timed out, wake up GDB.
> timed out while waiting for target halted
> Runtime error, file "command.c", line 491:
> 
>> targets
>     TargetName         Type       Endian TapName            State
> --  ------------------ ---------- ------ ------------------ ------------
>  0* feroceon.cpu       feroceon   little feroceon.cpu       running

At this point I am unsure if the issue is at the JTAG level itself or in 
the E-ICE scan chain level, or in the board itself.

I've tried using irscan and drscan for, e.g., re-reading the IDCODE 
manually, but it doesn't seem to work:

>> irscan feroceon.cpu 0xe
>> drscan feroceon.cpu 32 0
> 00000000
>> drscan feroceon.cpu 32 0
> 00000000
> ...

But I believe jtag is not correctly reset when I try this, because jtag 
arp_init and jtag arp_init-reset both scan the chain and thus may not 
leave the TAP in reset mode -- by the way, a scan_chain does not reset 
the board (a jtag arp_init or arp_init-reset does).

Can someone give me pointers to where I should look (in OpenOCD) in 
order to progressively debug the situation?

Amicalement,
-- 
Albert.

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to