3e6f9e8d1e
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>
50 lines
1.4 KiB
INI
50 lines
1.4 KiB
INI
# script for Insilica IS-5114
|
|
# AKA: Atmel AT76C114 - an ARM946 chip
|
|
# ATMEL sold his product line to Insilica...
|
|
|
|
if { [info exists CHIPNAME] } {
|
|
set _CHIPNAME $CHIPNAME
|
|
} else {
|
|
set _CHIPNAME is5114
|
|
}
|
|
|
|
if { [info exists ENDIAN] } {
|
|
set _ENDIAN $ENDIAN
|
|
} else {
|
|
# this defaults to a little endian
|
|
set _ENDIAN little
|
|
}
|
|
|
|
if { [info exists CPUTAPID ] } {
|
|
set _CPUTAPID $CPUTAPID
|
|
} else {
|
|
# force an error till we get a good number
|
|
set _CPUTAPID 0xffffffff
|
|
}
|
|
|
|
# jtag speed. We need to stick to 16kHz until we've finished reset.
|
|
jtag_rclk 16
|
|
|
|
reset_config trst_and_srst
|
|
|
|
# Do not specify a tap id here...
|
|
#OLD SYNTAX: jtag_device 8 0x1 0x1 0xfe
|
|
jtag newtap $_CHIPNAME unknown1 -irlen 8 -ircapture 0x01 -irmask 1
|
|
#OLD SYNTAX: jtag_device 4 0x1 0xf 0xe
|
|
# This is the "arm946" chip.
|
|
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x0e -irmask 0xf
|
|
#OLD SYNTAX: jtag_device 5 0x1 0x1 0x1e
|
|
jtag newtap $_CHIPNAME unknown2 -irlen 5 -ircapture 1 -irmask 1
|
|
|
|
|
|
#arm946e-s and
|
|
set _TARGETNAME $_CHIPNAME.cpu
|
|
target create $_TARGETNAME arm966e -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm966e
|
|
|
|
$_TARGETNAME configure -event reset-start { jtag_rclk 16 }
|
|
$_TARGETNAME configure -event reset-init {
|
|
# We can increase speed now that we know the target is halted.
|
|
jtag_rclk 3000
|
|
}
|
|
$_TARGETNAME configure -work-area-phys 0x50000000 -work-area-size 16384 -work-area-backup 1
|