forked from michaelengel/xv6-vf2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopenocd.cfg
58 lines (37 loc) · 1.53 KB
/
openocd.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
gdb_memory_map disable
# JTAG adapter setup
adapter driver jlink
# adapter driver cmsis-dap
# use cmsis-dap for muselab's nanoDAP debugger
adapter speed 20000
transport select jtag
set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu0 -irlen 5
jtag newtap $_CHIPNAME cpu1 -irlen 5
set _TARGETNAME_1 $_CHIPNAME.cpu1
set _TARGETNAME_2 $_CHIPNAME.cpu2
set _TARGETNAME_3 $_CHIPNAME.cpu3
set _TARGETNAME_4 $_CHIPNAME.cpu4
target create $_TARGETNAME_1 riscv -chain-position $_CHIPNAME.cpu1 -coreid 1 -rtos hwthread
#target create $_TARGETNAME_2 riscv -chain-position $_CHIPNAME.cpu1 -coreid 2
#target create $_TARGETNAME_3 riscv -chain-position $_CHIPNAME.cpu1 -coreid 3
#target create $_TARGETNAME_4 riscv -chain-position $_CHIPNAME.cpu1 -coreid 4
#target smp $_TARGETNAME_1 $_TARGETNAME_2 $_TARGETNAME_3 $_TARGETNAME_4
# we only debug one core.
# riscv expose_csrs 2033
init
# https://stackoverflow.com/questions/69427569/how-do-you-set-clear-and-toggle-a-single-bit-in-tcl
# https://stackoverflow.com/questions/60324447/read-register-value-into-variable-e-g-control-location-of-pc
# https://stackoverflow.com/questions/77867754/how-to-set-register-from-a-variable-value-in-openocd
# set var [lindex [get_reg dcsr] 1]
# proc setBitTo {var bit value} {
# upvar 1 $var v
# set v [expr {$value ? $v | (1 << $bit) : $v & ~(1 << $bit)}]
# }
# echo "enable stepie field of dcsr register"
# echo "original value is \n$var"
# setBitTo var 11 1
# format %x $var
# echo "we changed it to $var"
# dict set dict_register dcsr $var
# set_reg $dict_register