# Copyright (C) ST-Ericsson SA 2011
# Author : michel.jaouen@stericsson.com
-# U8500 target
+# U8500 target
proc mmu_off {} {
set cp [arm mrc 15 0 1 0 0]
- set cp [expr ($cp & ~1)]
+ set cp [expr {$cp & ~1}]
arm mcr 15 0 1 0 0 $cp
}
proc mmu_on {} {
set cp [arm mrc 15 0 1 0 0]
- set cp [expr ($cp | 1)]
+ set cp [expr {$cp | 1}]
arm mcr 15 0 1 0 0 $cp
}
global _TARGETNAME_1
global _SMP
targets $_TARGETNAME_1
- if { [expr ($_SMP == 1)] } {
- cortex_a8 smp_off
+ if { $_SMP == 1 } {
+ cortex_a smp off
}
rst_run
halt
- if { [expr ($_SMP == 1)]} {
- cortex_a8 smp_on
+ if { $_SMP == 1 } {
+ cortex_a smp on
}
}
proc smp_reg {} {
global _TARGETNAME_1
global _TARGETNAME_2
- targets $_TARGETNAME_1
+ targets $_TARGETNAME_1
echo "$_TARGETNAME_1"
set pc1 [reg pc]
set stck1 [reg sp_svc]
irscan $_CHIPNAME.jrc 0x3a
drscan $_CHIPNAME.jrc 4 0
set pwrsts [drscan $_CHIPNAME.jrc 16 0]
- echo "pwrsts ="$pwrsts
- set a9 [expr (0x$pwrsts & 0xc)]
- set ape [expr (0x$pwrsts & 0x3)]
+ echo "pwrsts ="$pwrsts
+ set a9 [expr "0x$pwrsts & 0xc"]
+ set ape [expr "0x$pwrsts & 0x3"]
if {[string equal "0" $ape]} {
echo "ape off"
} else {
8 {
echo "A9 100% DVFS"
}
- c {
+ c {
echo "A9 50% DVFS"
}
}
irscan $_CHIPNAME.jrc 0x3a
drscan $_CHIPNAME.jrc 4 0
set pwrsts [drscan $_CHIPNAME.jrc 16 0]
- set pwrsts [expr (0x$pwrsts & 0xc)]
+ set pwrsts [expr "0x$pwrsts & 0xc"]
while {[string equal "4" $pwrsts] && $i<20} {
irscan $_CHIPNAME.jrc 0x3a
drscan $_CHIPNAME.jrc 4 0;
set pwrsts [drscan $_CHIPNAME.jrc 16 0]
- set pwrsts [expr (0x$pwrsts & 0xc)]
+ set pwrsts [expr "0x$pwrsts & 0xc"]
if {![string equal "4" $pwrsts]} {
set result 1
} else {
telnet_port 4444
gdb_port 3333
-if { [info exists CHIPNAME] } {
+if { [info exists CHIPNAME] } {
global _CHIPNAME
set _CHIPNAME $CHIPNAME
} else {
} else {
set _CPUTAPID 0x4ba00477
}
-jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0xe -irmask 0xf -expected-id $_CPUTAPID -disable
-jtag configure $_CHIPNAME.dap -event tap-enable \
- "u8500_dapenable $_CHIPNAME.dap"
-jtag configure $_CHIPNAME.dap -event tap-disable \
- "u8500_tapdisable $_CHIPNAME.dap 0xc0"
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0xe -irmask 0xf -expected-id $_CPUTAPID -disable
+jtag configure $_CHIPNAME.cpu -event tap-enable \
+ "u8500_dapenable $_CHIPNAME.cpu"
+jtag configure $_CHIPNAME.cpu -event tap-disable \
+ "u8500_tapdisable $_CHIPNAME.cpu 0xc0"
#CLTAPC TAP JRC equivalent
if { [info exists DAP_DBG1] } {
set _DAP_DBG1 $DAP_DBG1
} else {
- set _DAP_DBG1 0x801A8000
+ set _DAP_DBG1 0x801A8000
}
if { [info exists DAP_DBG2] } {
set _DAP_DBG2 $DAP_DBG2
} else {
- set _DAP_DBG2 0x801AA000
+ set _DAP_DBG2 0x801AA000
}
-target create $_TARGETNAME_1 cortex_a8 -chain-position $_CHIPNAME.dap -dbgbase $_DAP_DBG1 -coreid 0 -rtos linux
+dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
-$_TARGETNAME_1 configure -event gdb-attach {
- halt
-}
+target create $_TARGETNAME_1 cortex_a -dap $_CHIPNAME.dap -dbgbase $_DAP_DBG1 -coreid 0 -rtos linux
if { ![info exists TARGETNAME_2] } {
set _TARGETNAME_2 $TARGETNAME_2
}
-target create $_TARGETNAME_2 cortex_a8 -chain-position $_CHIPNAME.dap -dbgbase $_DAP_DBG2 -coreid 1 -rtos linux
-
-$_TARGETNAME_2 configure -event gdb-attach {
- halt
-}
+target create $_TARGETNAME_2 cortex_a -dap $_CHIPNAME.dap -dbgbase $_DAP_DBG2 -coreid 1 -rtos linux
if {![info exists SMP]} {
set _SMP $SMP
}
global SMP
-if { $_SMP == 1} {
+if { $_SMP == 1} {
target smp $_CHIPNAME.cpu2 $_CHIPNAME.cpu1
}
drscan $_CHIPNAME.jrc 4 4
set secsts1 [drscan $_CHIPNAME.jrc 16 0]
echo "secsts1 ="$secsts1
- set secsts1 [expr (0x$secsts1 & 0x4)]
+ set secsts1 [expr "0x$secsts1 & 0x4"]
if {![string equal "4" $secsts1]} {
echo "APE target secured"
} else {
drscan $_CHIPNAME.jrc 4 4
set secsts1 [drscan $_CHIPNAME.jrc 16 0]
echo "secsts1 ="$secsts1
- set secsts1 [expr (0x$secsts1 & 0x4)]
+ set secsts1 [expr "0x$secsts1 & 0x4"]
if {[string equal "4" $secsts1]} {
if {[poll_pwrsts]==1} {
enable_apetap
} else {
echo "target secured"
}
-
+
}
drscan $_CHIPNAME.jrc 4 4
set secsts1 [drscan $_CHIPNAME.jrc 16 0]
echo "secsts1 ="$secsts1
- set secsts1 [expr (0x$secsts1 & 0x4)]
+ set secsts1 [expr "0x$secsts1 & 0x4"]
while {![string equal "4" $secsts1]} {
irscan u8500.jrc 0x3a
drscan u8500.jrc 4 4
set secsts1 [drscan $_CHIPNAME.jrc 16 0]
echo "secsts1 ="$secsts1
- set secsts1 [expr (0x$secsts1 & 0x4)]
+ set secsts1 [expr "0x$secsts1 & 0x4"]
}
echo "ape debugable"
enable_apetap
global _MAXSPEED
set _MAXSPEED 15000
} else {
-global _MAXSPEED
+global _MAXSPEED
set _MAXSPEED $MAXSPEED
}
-global _MAXSPEED
-adapter_khz $_MAXSPEED
+global _MAXSPEED
+adapter speed $_MAXSPEED
gdb_breakpoint_override hard
jtag_ntrst_delay 100
reset_config trst_and_srst combined
-
-