aboutsummaryrefslogtreecommitdiff
path: root/debug/targets/RISC-V/spike-multi.py
blob: 02be76373a4b5a4e2c81bb5d261e7e806f664117 (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
import spike32  # pylint: disable=import-error
import spike64  # pylint: disable=import-error

import targets
import testlib

class multispike(targets.Target):
    harts = [
        spike32.spike32_hart(misa=0x4034112d, system=0),
        spike32.spike32_hart(misa=0x4034112d, system=0),
        spike64.spike64_hart(misa=0x8000000000341129, system=1),
        spike64.spike64_hart(misa=0x8000000000341129, system=1)]
    openocd_config_path = "spike-multi.cfg"
    timeout_sec = 30
    server_timeout_sec = 120
    implements_custom_test = True
    support_hasel = False
    support_memory_sampling = False # Needs SBA

    def create(self):
        return testlib.MultiSpike(
            [
                testlib.Spike(self, isa="RV64IMAFDV",
                    support_hasel=False, support_abstract_csr=False,
                    vlen=512, elen=64, harts=self.harts[2:]),
                testlib.Spike(self, isa="RV32IMAFDCV",
                    support_abstract_csr=True, support_haltgroups=False,
                    # elen must be at least 64 because D is supported.
                    elen=64, harts=self.harts[:2]),
                ])