X-Git-Url: https://git.libre-soc.org/?p=riscv-tests.git;a=blobdiff_plain;f=debug%2Ftargets.py;h=52b623cc59262353b4a84d4582b1a862c1438588;hp=8c725c4ebdec6bbb749e23b924d32fedde7b5a11;hb=7dfc16ad687186faa57368a251489e56b72b6f91;hpb=6427012c6de3daf4a108cbda17d4ceb6a79a9d91 diff --git a/debug/targets.py b/debug/targets.py index 8c725c4..52b623c 100644 --- a/debug/targets.py +++ b/debug/targets.py @@ -12,6 +12,7 @@ class Target(object): temporary_binary = None openocd_config = [] use_fpu = False + misa = None def __init__(self, cmd, run, isolate): self.cmd = cmd @@ -39,9 +40,11 @@ class Target(object): prefix=binary_name + "_") binary_name = self.temporary_binary.name Target.temporary_files.append(self.temporary_binary) - march = "RV%dIMA" % self.xlen + march = "rv%dima" % self.xlen if self.use_fpu: - march += "FD" + march += "fd" + if self.extensionSupported("c"): + march += "c" testlib.compile(sources + ("programs/entry.S", "programs/init.c", "-I", "../env", @@ -54,6 +57,10 @@ class Target(object): xlen=self.xlen) return binary_name + def extensionSupported(self, letter): + # target.misa is set by testlib.ExamineTarget + return self.misa & (1 << (ord(letter.upper()) - ord('A'))) + class SpikeTarget(Target): # pylint: disable=abstract-method directory = "spike" @@ -85,6 +92,10 @@ class FreedomE300Target(Target): instruction_hardware_breakpoint_count = 2 openocd_config = "targets/%s/openocd.cfg" % name +class HiFive1Target(FreedomE300Target): + name = "HiFive1" + openocd_config = "targets/%s/openocd.cfg" % name + class FreedomE300SimTarget(Target): name = "freedom-e300-sim" xlen = 32 @@ -123,7 +134,8 @@ targets = [ FreedomE300Target, FreedomU500Target, FreedomE300SimTarget, - FreedomU500SimTarget] + FreedomU500SimTarget, + HiFive1Target] def add_target_options(parser): group = parser.add_mutually_exclusive_group(required=True)