problems:halt & current mode on arm926ejs w/ ARM-USB-TIN

problems:halt & current mode on arm926ejs w/ ARM-USB-TINY

On a LinkStation Pro w/ SoC arm926ejs w/ ARM-USB-TINY and openocd, I can’t get it to halt or reset via telnet.

The only halt I’m able to get is by connecting RTCK and nSRST briefly.

> Target 0 halted
target halted in Thumb state due to debug request, current mode: System
cpsr: 0xffffffff pc: 0xffffffed
MMU: enabled, D-Cache: enabled, I-Cache: enabled
> arm926ejs
Incomplete command
Command arm926ejs not found
> arm926ejs cache_info
cache type: 0xf, separate caches
D-Cache: linelen 64, associativity 192, nsets 8, cachesize 0x18000
I-Cache: linelen 64, associativity 192, nsets 8, cachesize 0x18000
> soft_reset_halt
requesting target halt and executing a soft reset
Target 0 halted
target halted in ARM state due to debug request, current mode: Supervisor
cpsr: 0xffffffd3 pc: 0x00000000
MMU: disabled, D-Cache: disabled, I-Cache: disabled

how do I get it back in Abort mode so I can flash again (as I was able to previously?

 connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> halt
requesting target halt...
> Target 0 halted
target halted in ARM state due to debug request, current mode: Abort
cpsr: 0x600000d7 pc: 0x00000028
MMU: disabled, D-Cache: disabled, I-Cache: enabled
> flash probe 0
flash 'cfi' found at 0xfffc0000
> flash erase 0 0 63

here is my config:

# daemon config

telnet_port 4444

gdb_port 3333

daemon_startup attach



# interface

jtag_speed 5

interface ft2232

ft2232_layout "olimex-jtag"

ft2232_vid_pid 0x15ba 0x0004

#jtag_speed 1

# use combined on interfaces or targets that can't set TRST/SRST separately

reset_config srst_only

#reset_config trst_and_srst



# jtag scan chain

#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)

jtag_device 4 0x1 0xf 0xe



jtag_nsrst_delay 200

jtag_ntrst_delay 200





# target configuration

# target <type> <endianess> <reset_mode>

# if chain_pos is not zero it seg faults

target arm926ejs little reset_init 0

run_and_halt_time 0 30

#working_area 0 0xc8010000 0x400 nobackup



# flash configuration

# flash bank <driver> <base> <size> <chip_width> <bus_width> [driver_options ...]

#flash bank cfi 0xfffc0000 0x00040000 1 1 0 jedec_probe
flash bank cfi 0xfffc0000 0x00040000 1 1 0 jedec_probe

AFAIK the Linkstation Pro uses a Marvell Feroceon, not an ARM926EJ-S. The chip identifies itself as a 926, e.g. in Linux’ /proc/cpuinfo, but debugging-wise the cores are different.

There was a post on the linux arm kernel mailinglist that someone was about to bring Marvell support to OpenOCD, but until then there’s little we can do. The docs are not public, and asking Marvell didn’t help.

Regards,

Dominic

Dominic, this looks encouraging…

https://lists.berlios.de/pipermail/open … 00996.html

Using svn 335 and a small hack of the source, I am now able to flash reliably to my Marvell Feroceon-based LinkStation…

The additions by Nicolas Pitre have proven helpful.