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
