mirror of
git://git.code.sf.net/p/openocd/code
synced 2025-07-20 02:53:56 +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>
50 lines
1.3 KiB
INI
50 lines
1.3 KiB
INI
# page 3-34 of "MCIMC27 Multimedia Applications Processor Reference Manual, Rev 0.3"
|
|
# SRST pulls TRST
|
|
#
|
|
# Without setting these options correctly you'll see all sorts
|
|
# of weird errors, e.g. MOE=0xe, invalid cpsr values, reset
|
|
# failing, etc.
|
|
reset_config trst_and_srst srst_pulls_trst
|
|
|
|
if { [info exists CHIPNAME] } {
|
|
set _CHIPNAME $CHIPNAME
|
|
} else {
|
|
set _CHIPNAME imx27
|
|
}
|
|
|
|
if { [info exists ENDIAN] } {
|
|
set _ENDIAN $ENDIAN
|
|
} else {
|
|
set _ENDIAN little
|
|
}
|
|
|
|
|
|
# Note above there are 2 taps
|
|
|
|
# The bs tap
|
|
if { [info exists BSTAPID ] } {
|
|
set _BSTAPID $BSTAPID
|
|
} else {
|
|
set _BSTAPID 0x1b900f0f
|
|
}
|
|
jtag newtap $_CHIPNAME bs -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_BSTAPID
|
|
|
|
# The CPU tap
|
|
if { [info exists CPUTAPID ] } {
|
|
set _CPUTAPID $CPUTAPID
|
|
} else {
|
|
set _CPUTAPID 0x07926121
|
|
}
|
|
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
|
|
|
|
# Create the GDB Target.
|
|
set _TARGETNAME $_CHIPNAME.cpu
|
|
target create $_TARGETNAME arm926ejs -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm926ejs
|
|
# REVISIT what operating environment sets up this virtual address mapping?
|
|
$_TARGETNAME configure -work-area-virt 0xffff4c00 -work-area-phys 0xffff4c00 \
|
|
-work-area-size 0x8000 -work-area-backup 1
|
|
# Internal to the chip, there is 45K of SRAM
|
|
#
|
|
|
|
arm7_9 dcc_downloads enable
|