make OMAP5912 resets more reliable
[openocd/dave.git] / tcl / target / omap5912.cfg
blobb578457b40409a0d6dcd57c8dd56cecd8fedc109
1 # TI OMAP5912 dual core processor
2 # http://focus.ti.com/docs/prod/folders/print/omap5912.html
4 if { [info exists CHIPNAME] } {
5    set  _CHIPNAME $CHIPNAME
6 } else {
7    set  _CHIPNAME omap5912
10 if { [info exists CPUTAPID ] } {
11    set _CPUTAPID $CPUTAPID
12 } else {
13    # NOTE: validated with XOMAP5912 part
14    set _CPUTAPID 0x0692602f
17 jtag_nsrst_delay 100
19 # NOTE:  presumes irlen 38 is the C55x DSP, matching BSDL for
20 # its standalone siblings (like TMS320VC5502) of the same era
22 #jtag scan chain
23 jtag newtap $_CHIPNAME dsp -irlen 38 -expected-id 0x03df1d81
24 jtag newtap $_CHIPNAME arm -irlen 4 -expected-id $_CPUTAPID
25 jtag newtap $_CHIPNAME unknown -irlen 8
27 set _TARGETNAME $_CHIPNAME.arm
28 target create $_TARGETNAME arm926ejs -chain-position $_TARGETNAME
30 proc omap5912_reset {} {
31         #
32         # halt target
33         #
34         poll
35         sleep 1
36         halt
37         wait_halt
38         #
39         # disable wdt
40         #
41         mww 0xfffec808 0x000000f5
42         mww 0xfffec808 0x000000a0
44         mww 0xfffeb048 0x0000aaaa
45         sleep 500
46         mww 0xfffeb048 0x00005555
47         sleep 500
50 # omap5912 lcd frame buffer as working area
51 $_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 \
52         -work-area-size 0x3e800 -work-area-backup 0