tcl: don't use 'set' to retrieve the value of a variable
[fw/openocd] / tcl / target / bluefield.cfg
1 # BlueField SoC Target
2
3 set _CHIPNAME bluefield
4
5 # Specify the target device
6 #rshim device /dev/rshim0/rshim
7
8 # Main DAP
9 if { [info exists DAP_TAPID] } {
10    set _DAP_TAPID $DAP_TAPID
11 } else {
12    set _DAP_TAPID 0x4ba00477
13 }
14
15 adapter speed 1500
16
17 swd newdap $_CHIPNAME cpu -expected-id $_DAP_TAPID
18 dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
19
20 # Initialize the target name and command variable.
21 set _TARGETNAME $_CHIPNAME.cpu
22 set _smp_command ""
23
24 # CTI relative address
25 set $_TARGETNAME.cti(0) 0xC4020000
26 set $_TARGETNAME.cti(1) 0xC4120000
27 set $_TARGETNAME.cti(2) 0xC8020000
28 set $_TARGETNAME.cti(3) 0xC8120000
29 set $_TARGETNAME.cti(4) 0xCC020000
30 set $_TARGETNAME.cti(5) 0xCC120000
31 set $_TARGETNAME.cti(6) 0xD0020000
32 set $_TARGETNAME.cti(7) 0xD0120000
33 set $_TARGETNAME.cti(8) 0xD4020000
34 set $_TARGETNAME.cti(9) 0xD4120000
35 set $_TARGETNAME.cti(10) 0xD8020000
36 set $_TARGETNAME.cti(11) 0xD8120000
37 set $_TARGETNAME.cti(12) 0xDC020000
38 set $_TARGETNAME.cti(13) 0xDC120000
39 set $_TARGETNAME.cti(14) 0xE0020000
40 set $_TARGETNAME.cti(15) 0xE0120000
41
42 # Create debug targets for a number of cores starting from core '_core_start'.
43 # Adjust the numbers according to board configuration.
44 set _core_start 0
45 set _cores 16
46
47 # Create each core
48 for { set _core $_core_start } { $_core < $_core_start + $_cores } { incr _core 1 } {
49     cti create cti$_core -dap $_CHIPNAME.dap -baseaddr [set $_TARGETNAME.cti($_core)] -ap-num 0
50
51     set _command "target create ${_TARGETNAME}$_core aarch64 \
52                          -dap $_CHIPNAME.dap -coreid $_core -cti cti$_core"
53
54     if { $_core != $_core_start } {
55         set _smp_command "$_smp_command ${_TARGETNAME}$_core"
56     } else {
57         set _smp_command "target smp ${_TARGETNAME}$_core"
58     }
59
60     eval $_command
61 }
62
63 # Configure SMP
64 if { $_cores > 1 } {
65     eval $_smp_command
66 }
67
68 # Make sure the default target is the boot core
69 targets ${_TARGETNAME}0
70
71 proc core_up { args } {
72         global _TARGETNAME
73
74         # Examine remaining cores
75         foreach _core $args {
76                 ${_TARGETNAME}$_core arp_examine
77         }
78 }