summaryrefslogtreecommitdiff
path: root/util/riscv/make-spike-elf.sh
diff options
context:
space:
mode:
authorJonathan Neuschäfer <j.neuschaefer@gmx.net>2018-04-19 16:23:52 +0200
committerPatrick Georgi <pgeorgi@google.com>2018-04-25 11:43:20 +0000
commitf2b4993b1d060dcc05b1794b0319dc7903fd6fa0 (patch)
tree5e2607a812a159bd958f65d52716664fd8d5f8e6 /util/riscv/make-spike-elf.sh
parent5bc1f13b841aabff881393964e3f62c73f76e7ae (diff)
util/riscvtools: Rename to util/riscv/
There's no good reason to use the more complicated name. Change-Id: I515e2df3b87580ddd31d18fe63451a98e92ead61 Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Reviewed-on: https://review.coreboot.org/25700 Reviewed-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'util/riscv/make-spike-elf.sh')
-rwxr-xr-xutil/riscv/make-spike-elf.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/util/riscv/make-spike-elf.sh b/util/riscv/make-spike-elf.sh
new file mode 100755
index 0000000000..834e8d2cb6
--- /dev/null
+++ b/util/riscv/make-spike-elf.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# This script is based on:
+# https://docs.google.com/document/d/1Pvf9Yxorcd3sbgs8WcomcTl3J4bmX6e1UE0ROCefR88
+
+set -e
+
+usage() {
+ echo "This script converts a flat file into an ELF, that can be passed"
+ echo "to SPIKE, the RISC-V reference emulator."
+ echo ""
+ echo "Usage: $0 coreboot.rom coreboot.elf"
+}
+
+if [ $# -ne 2 ]; then
+ usage
+ exit 1
+fi
+
+FLAT_FILE="$1"
+OBJECT_FILE=$(mktemp /tmp/coreboot-spike.XXXXXX)
+ELF_FILE="$2"
+TOOL_PATH="$(dirname "$0")"
+XGCC_BIN="$TOOL_PATH/../crossgcc/xgcc/bin"
+
+"$XGCC_BIN/riscv64-elf-objcopy" -I binary -O elf64-littleriscv \
+ -B riscv "$FLAT_FILE" "$OBJECT_FILE"
+"$XGCC_BIN/riscv64-elf-ld" "$OBJECT_FILE" -T "$TOOL_PATH/spike-elf.ld" \
+ -o "$ELF_FILE"
+rm "$OBJECT_FILE"