aboutsummaryrefslogtreecommitdiff
path: root/debug/targets/RISC-V/spike-multi.cfg
blob: 36d43286fd9528228e9a0d44f4dd4f1a8a5dddc7 (plain)
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
# Connect to a mult-icore RISC-V target, exposing each hart as a thread.
adapter speed     10000

adapter driver remote_bitbang
remote_bitbang host $::env(REMOTE_BITBANG_HOST)
remote_bitbang port $::env(REMOTE_BITBANG_PORT)

jtag newtap riscv.0 cpu -irlen 5 -expected-id 0x10e31913
jtag newtap riscv.1 cpu -irlen 5 -expected-id 0x10e31913

target create riscv.0.cpu0 riscv -chain-position riscv.0.cpu -coreid 0
target create riscv.0.cpu1 riscv -chain-position riscv.0.cpu -coreid 1
target create riscv.1.cpu0 riscv -chain-position riscv.1.cpu -coreid 0
target create riscv.1.cpu1 riscv -chain-position riscv.1.cpu -coreid 1

riscv.0.cpu0 configure -work-area-phys $::env(WORK_AREA) -work-area-size 8096 -work-area-backup 1
riscv.0.cpu1 configure -work-area-phys $::env(WORK_AREA) -work-area-size 8096 -work-area-backup 1
riscv.1.cpu0 configure -work-area-phys $::env(WORK_AREA) -work-area-size 8096 -work-area-backup 1
riscv.1.cpu1 configure -work-area-phys $::env(WORK_AREA) -work-area-size 8096 -work-area-backup 1

gdb_report_data_abort enable
gdb_report_register_access_error enable

# Expose an unimplemented CSR so we can test non-existent register access
# behavior.
foreach t [target names] {
    targets $t
    riscv expose_csrs 2288
    riscv expose_custom 1,12345-12348
}

init

targets riscv.0.cpu0
set challenge [riscv authdata_read]
riscv authdata_write [expr {$challenge + 1}]

targets riscv.1.cpu0
set challenge [riscv authdata_read]
riscv authdata_write [expr {$challenge + 1}]

foreach t [target names] {
    targets $t
    halt
    arm semihosting enable
}