diff --git a/tool/run/boot_dir/hw b/tool/run/boot_dir/hw index a5dc4dde6..0030d6429 100644 --- a/tool/run/boot_dir/hw +++ b/tool/run/boot_dir/hw @@ -149,7 +149,7 @@ proc run_boot_dir {binaries} { # as startup is done in 32 bit mode, GRUB expects a 32 bit image exec [cross_dev_prefix]objcopy -O elf32-i386 bin/$core_bin $elf_img } - if {[expr [have_spec "arm"] || [have_spec "x86_32"]]} { + if {[expr [have_spec "arm"] || [have_spec "x86_32"] || [have_spec "riscv"]]} { exec cp -L bin/$core_bin $elf_img } diff --git a/tool/run/log/spike b/tool/run/log/spike new file mode 100644 index 000000000..5275f6185 --- /dev/null +++ b/tool/run/log/spike @@ -0,0 +1,29 @@ + +source [genode_dir]/tool/run/log.inc +source [genode_dir]/tool/run/spike.inc + + +proc run_log { wait_for_re timeout_value } { + global spike_spawn_id + global output_spawn_id + + set timeout 210 + set kernel_msg [run_boot_string] + set output_spawn_id $spike_spawn_id + + expect { + -i $output_spawn_id $kernel_msg { } + eof { + puts stderr "Aborting, received EOF" + return false + } + timeout { + puts stderr "Boot process timed out" + close + return false + } + } + + wait_for_output $wait_for_re $timeout_value $spike_spawn_id + return true +} diff --git a/tool/run/power_on/spike b/tool/run/power_on/spike new file mode 100644 index 000000000..d1dfa10ae --- /dev/null +++ b/tool/run/power_on/spike @@ -0,0 +1,26 @@ +## +# Execute scenario using spike +# +source [genode_dir]/tool/run/spike.inc + +proc is_spike_available { } { + + if {[have_spec platform_riscv]} { return true } + + puts stderr "skipping execution because platform is not supported by spike" + return false +} + +proc run_power_on { } { + global spike_args + global spike + global spike_spawn_id + + if {![is_spike_available]} { return 0 } + + append spike_args " [run_dir]/image.elf " + + set spike "spike" + eval spawn $spike $spike_args + set spike_spawn_id $spawn_id +} diff --git a/tool/run/spike.inc b/tool/run/spike.inc new file mode 100644 index 000000000..6e5d32a52 --- /dev/null +++ b/tool/run/spike.inc @@ -0,0 +1 @@ +set spike_spawn_id ""