aboutsummaryrefslogtreecommitdiff
path: root/hw/riscv
diff options
context:
space:
mode:
authorWeiwei Li <liweiwei@iscas.ac.cn>2023-04-05 17:57:20 +0800
committerAlistair Francis <alistair.francis@wdc.com>2023-05-05 10:49:50 +1000
commit66247edc8b6fb36d6b905babcd795068ea989ad5 (patch)
tree81ab3dc55e1ddd60d0bdce93a0498faa82ec8a3f /hw/riscv
parent246f87960a22d293ab4033bdfee3d4258494ec9b (diff)
hw/riscv: Add signature dump function for spike to run ACT tests
Add signature and signature-granularity properties in spike to specify the target signatrue file and the line size for signature data. Recgonize the signature section between begin_signature and end_signature symbols when loading elf of ACT tests. Then dump signature data in signature section just before the ACT tests exit. Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn> Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn> Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20230405095720.75848-2-liweiwei@iscas.ac.cn> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'hw/riscv')
-rw-r--r--hw/riscv/spike.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
index a584d5b3a2..2c5546560a 100644
--- a/hw/riscv/spike.c
+++ b/hw/riscv/spike.c
@@ -332,6 +332,11 @@ static void spike_board_init(MachineState *machine)
htif_custom_base);
}
+static void spike_set_signature(Object *obj, const char *val, Error **errp)
+{
+ sig_file = g_strdup(val);
+}
+
static void spike_machine_instance_init(Object *obj)
{
}
@@ -350,6 +355,14 @@ static void spike_machine_class_init(ObjectClass *oc, void *data)
mc->get_default_cpu_node_id = riscv_numa_get_default_cpu_node_id;
mc->numa_mem_supported = true;
mc->default_ram_id = "riscv.spike.ram";
+ object_class_property_add_str(oc, "signature", NULL, spike_set_signature);
+ object_class_property_set_description(oc, "signature",
+ "File to write ACT test signature");
+ object_class_property_add_uint8_ptr(oc, "signature-granularity",
+ &line_size, OBJ_PROP_FLAG_WRITE);
+ object_class_property_set_description(oc, "signature-granularity",
+ "Size of each line in ACT signature "
+ "file");
}
static const TypeInfo spike_machine_typeinfo = {