tcl/target: add SPDX tag
[fw/openocd] / tcl / target / quark_d20xx.cfg
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 if { [info exists CPUTAPID] } {
4    set _CPUTAPID $CPUTAPID
5 } else {
6    set _CPUTAPID 0x38289013
7 }
8
9 jtag newtap quark_d20xx quark -irlen 8 -irmask 0xff -expected-id $_CPUTAPID -disable
10 jtag newtap quark_d20xx cltap -irlen 8 -irmask 0xff -expected-id 0x0e786013 -enable
11
12 proc quark_d20xx_tapenable {} {
13         echo "enabling quark core tap"
14         irscan quark_d20xx.cltap 0x11
15         drscan quark_d20xx.cltap 12 1
16         runtest 10
17 }
18
19 proc quark_d20xx_tapdisable {} {
20         echo "disabling quark core tap"
21         irscan quark_d20xx.cltap 0x11
22         drscan quark_d20xx.cltap 12 0
23         runtest 10
24 }
25
26 proc quark_d20xx_setup {} {
27         jtag tapenable quark_d20xx.quark
28 }
29
30 jtag configure quark_d20xx.quark -event tap-enable \
31    "quark_d20xx_tapenable"
32
33 jtag configure quark_d20xx.quark -event tap-disable \
34    "quark_d20xx_tapdisable"
35
36 target create quark_d20xx.quark quark_d20xx -endian little -chain-position quark_d20xx.quark
37
38 quark_d20xx.quark configure -event reset-start {
39         # need to halt the target to write to memory
40         if {[quark_d20xx.quark curstate] ne "halted"} { halt }
41         # set resetbreak via the core tap
42         irscan quark_d20xx.quark 0x35 ; drscan quark_d20xx.quark 1 0x1
43         # trigger a warm reset
44         mww 0xb0800570 0x2
45         # clear resetbreak
46         irscan quark_d20xx.quark 0x35 ; drscan quark_d20xx.quark 1 0x0
47 }
48
49 jtag configure quark_d20xx.quark -event setup \
50    "quark_d20xx_setup"