Hi All,
I am a relative newbie with ARM so this might be due to something I’m not aware of; apologies if so!
The problem is reading registers/memory locations. It seems that openocd is caching the last read value and returning it for subsequent read requests. My guess is a configuration/initialisation issue but I’m currently stumped. An example:
> mdw 0x10027000 // Read CSCR register
0x10027000: 00010028
> mdw 0x10027004 // Read MPCTL0 register - returns same value
0x10027004: 00010028
> mdw 0x10027008 // Read MPCTL1 register - return same value
0x10027008: 00010028
> mdw 0x1002700C // etc
0x1002700c: 00010028
> mww 0x10027000 0xFFFFFFFF // Try writing a value - value changes but all registers read the same...
> mdw 0x10027000
0x10027000: ffffffff
> mdw 0x10027004
0x10027004: ffffffff
> mdw 0x10027008
0x10027008: ffffffff
> mdw 0x1002700C
0x1002700c: ffffffff
>
The board is custom imx27-based, I’m using ARM-USB-TINY and openocd-0.4.0. My openocd.cfg:
interface ft2232
ft2232_device_desc "Olimex OpenOCD JTAG TINY"
ft2232_layout olimex-jtag
ft2232_vid_pid 0x15ba 0x0004
reset_config trst_and_srst
jtag_rclk 8
jtag_khz 32
# Set up TAP for Ethernet interfce
jtag newtap 88E1111 phy -expected-id 0x000003d3 -irlen 8
# The IMX27 Vislink eval board has a single IMX27 chip
source [find target/imx27.cfg]
$_TARGETNAME configure -event gdb-attach { reset init }
$_TARGETNAME configure -event reset-init { cl133860_init }
# arm7_9 fast_memory_access enable
# Specify NAND
nand device imx27 imx27.cpu noecc
proc cl133860_init { } {
reset run
reset halt
mww 0x10027004 0x01EF15D5
mww 0x1002700C 0x01EF15D5
mww 0x10027000 0x33f01007
mww 0x10000000 0x20040304
mww 0x10020000 0x07FFC200
mww 0x10000004 0xDFFBFCFB
mww 0x10020004 0xFFFFFFFF
mww 0x10027814 0xFFFFFFC9
sleep 10
mww 0xD8001010 0x0000000C
mww 0x10027818 0x00000800
# ========================================
# Configure DDR on CSD0 -- wait 5000 cycle
# ========================================
mww 0x10027828 0x55555555
mww 0x10027830 0x55555555
mww 0x10027834 0x55555555
mww 0x10027838 0x00005005
mww 0x1002783C 0x15555555
mww 0xD8001010 0x00000004
mww 0xD8001004 0x0076A303
mww 0xD8001000 0x93200000
mdw 0xA0000F00 0x0
mww 0xD8001000 0xA3200000
mdw 0xA0000F00 0x0
mdw 0xA0000F00 0x0
mww 0xD8001000 0xB3200000
mdb 0xA0000033
mdb 0xA1000000
mww 0xD8001000 0x93228080
}
Thanks in advance for any help.