mirror of
git://git.code.sf.net/p/openocd/code
synced 2025-07-18 23:42:45 +10:00
The semantics of "-work-area-virt 0" (or phys) changed with the patch to require specifying physical or virtrual work area addresses. Specifying zero was previously a NOP. Now it means that address zero is valid. This patch addresses three related issues: - MMU-less processors should never specify work-area-virt; remove those specifications. Such processors include ARM7TDMI, Cortex-M3, and ARM966. - MMU-equipped processors *can* specify work-area-virt... but zero won't be appropriate, except in mischievous contexts (which hide null pointer exceptions). Remove those specs from those processors too. If any of those mappings is valid, someone will need to submit a patch adding it ... along with a comment saying what OS provides the mapping, and in which context. Example, say "works with Linux 2.6.30+, in kernel mode". (Note that ARM Linux doesn't map kernel memory to zero ...) - Clarify docs on that "-virt" and other work area stuff. Seems to me work-area-virt is quite problematic; not every operating system provides such static mappings; if they do, they're not in every MMU context... Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
73 lines
2.0 KiB
INI
73 lines
2.0 KiB
INI
# Hitex STR9-comStick
|
|
# http://www.hitex.com/index.php?id=383
|
|
# This works for the STR9-comStick revisions STR912CS-A1 and STR912CS-A2.
|
|
|
|
source [find interface/hitex_str9-comstick.cfg]
|
|
|
|
# set jtag speed
|
|
jtag_khz 3000
|
|
|
|
jtag_nsrst_delay 100
|
|
jtag_ntrst_delay 100
|
|
#use combined on interfaces or targets that can't set TRST/SRST separately
|
|
reset_config trst_and_srst
|
|
#jtag scan chain
|
|
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
|
|
|
|
if { [info exists CHIPNAME] } {
|
|
set _CHIPNAME $CHIPNAME
|
|
} else {
|
|
set _CHIPNAME str912
|
|
}
|
|
|
|
if { [info exists ENDIAN] } {
|
|
set _ENDIAN $ENDIAN
|
|
} else {
|
|
set _ENDIAN little
|
|
}
|
|
|
|
if { [info exists FLASHTAPID ] } {
|
|
set _FLASHTAPID $FLASHTAPID
|
|
} else {
|
|
set _FLASHTAPID 0x04570041
|
|
}
|
|
jtag newtap $_CHIPNAME flash -irlen 8 -ircapture 0x1 -irmask 0x1 -expected-id $_FLASHTAPID
|
|
|
|
if { [info exists CPUTAPID ] } {
|
|
set _CPUTAPID $CPUTAPID
|
|
} else {
|
|
set _CPUTAPID 0x25966041
|
|
}
|
|
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
|
|
|
|
if { [info exists BSTAPID ] } {
|
|
set _BSTAPID $BSTAPID
|
|
} else {
|
|
# Found on STR9-comStick, revision STR912CS-A1
|
|
set _BSTAPID1 0x1457f041
|
|
# Found on STR9-comStick, revision STR912CS-A2
|
|
set _BSTAPID2 0x2457f041
|
|
}
|
|
jtag newtap $_CHIPNAME bs -irlen 5 -ircapture 0x1 -irmask 0x1 -expected-id $_BSTAPID1 -expected-id $_BSTAPID2
|
|
|
|
set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
|
|
target create $_TARGETNAME arm966e -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm966e
|
|
|
|
$_TARGETNAME configure -event reset-init {
|
|
# We can increase speed now that we know the target is halted.
|
|
#jtag_rclk 3000
|
|
|
|
# -- Enable 96K RAM
|
|
# PFQBC enabled / DTCM & AHB wait-states disabled
|
|
mww 0x5C002034 0x0191
|
|
|
|
str9x flash_config 0 4 2 0 0x80000
|
|
flash protect 0 0 7 off
|
|
}
|
|
|
|
$_TARGETNAME configure -work-area-phys 0x50000000 -work-area-size 16384 -work-area-backup 0
|
|
|
|
#flash bank <driver> <base> <size> <chip_width> <bus_width>
|
|
flash bank str9x 0x00000000 0x00080000 0 0 0
|
|
flash bank str9x 0x00080000 0x00008000 0 0 0
|