| import targets |
| import testlib |
| |
| import spike32 # pylint: disable=import-error |
| import spike64 # pylint: disable=import-error |
| |
| 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" |
| # Increased timeout because we use abstract_rti to artificially slow things |
| # down. |
| timeout_sec = 30 |
| 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]), |
| ]) |