ARM11: ETM + ETB support
[fw/openocd] / tcl / target / imx31.cfg
1 # imx31 config
2 #
3
4 reset_config trst_and_srst srst_gates_jtag
5
6 if { [info exists CHIPNAME] } {
7    set  _CHIPNAME $CHIPNAME
8 } else {
9    set  _CHIPNAME imx31
10 }
11
12 if { [info exists ENDIAN] } {
13    set  _ENDIAN $ENDIAN
14 } else {
15    set  _ENDIAN little
16 }
17
18 if { [info exists CPUTAPID ] } {
19    set _CPUTAPID $CPUTAPID
20 } else {
21    set _CPUTAPID 0x07b3601d
22 }
23
24 if { [info exists SDMATAPID ] } {
25    set _SDMATAPID $SDMATAPID
26 } else {
27    set _SDMATAPID 0x2190101d
28 }
29
30 if { [info exists ETBTAPID ] } {
31    set _ETBTAPID $ETBTAPID
32 } else {
33    set _ETBTAPID 0x2b900f0f
34 }
35
36 #========================================
37
38 jtag newtap $_CHIPNAME etb -irlen 4 -irmask 0xf -expected-id $_ETBTAPID
39
40 # The "SDMA" - <S>mart <DMA> controller debug tap
41 # Based on some IO pins - this can be disabled & removed
42 # See diagram: 6-14
43 #   SIGNAL NAME:
44 #    SJC_MOD - controls multiplexer - disables ARM1136
45 #    SDMA_BYPASS - disables SDMA    -
46 #
47 # Per ARM: DDI0211J_arm1136_r1p5_trm.pdf - the ARM 1136 as a 5 bit IR register
48 jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUTAPID
49
50 # No IDCODE for this TAP
51 jtag newtap $_CHIPNAME whatchacallit -irlen 4 -ircapture 0 -irmask 0xf -expected-id 0x0
52
53 # Per section 40.17.1, table 40-85 the IR register is 4 bits
54 # But this conflicts with Diagram 6-13, "3bits ir and drs"
55 jtag newtap $_CHIPNAME smda -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_SDMATAPID
56
57 set _TARGETNAME $_CHIPNAME.cpu
58 target create $_TARGETNAME arm11 -endian $_ENDIAN -chain-position $_TARGETNAME
59
60
61 proc power_restore {} { puts "Sensed power restore. No action." }
62 proc srst_deasserted {} { puts "Sensed nSRST deasserted. No action." }
63
64 # trace setup ... NOTE, "normal full" mode fudges the real ETMv3.1 mode
65 etm config $_TARGETNAME 16 normal full etb
66 etb config $_TARGETNAME $_CHIPNAME.etb