blob: 9632436e506e2f65beaa42e1c948f9809f030842 [file] [log] [blame]
Jonathan Neuschäfer2459f672016-06-10 19:35:14 +02001#!/bin/sh
2#
3# This script is based on:
4# https://docs.google.com/document/d/1Pvf9Yxorcd3sbgs8WcomcTl3J4bmX6e1UE0ROCefR88
5
6set -e
7
8usage() {
9 echo "This script converts a flat file into an ELF, that can be passed"
10 echo "to SPIKE, the RISC-V reference emulator."
11 echo ""
12 echo "Usage: $0 coreboot.rom coreboot.elf"
13}
14
15if [ $# -ne 2 ]; then
16 usage
17 exit 1
18fi
19
20FLAT_FILE="$1"
21OBJECT_FILE=$(mktemp /tmp/coreboot-spike.XXXXXX.o)
22ELF_FILE="$2"
23TOOL_PATH="$(dirname "$0")"
Ronald G. Minnich3401f5a2016-10-12 00:18:01 +020024XGCC_BIN="$TOOL_PATH/../crossgcc/xgcc/bin"
Jonathan Neuschäfer2459f672016-06-10 19:35:14 +020025
Ronald G. Minnich3401f5a2016-10-12 00:18:01 +020026"$XGCC_BIN/riscv64-elf-objcopy" -I binary -O elf64-littleriscv \
Ronald G. Minnichaa9df0f2016-10-07 06:57:03 -070027 -B riscv "$FLAT_FILE" "$OBJECT_FILE"
Ronald G. Minnich3401f5a2016-10-12 00:18:01 +020028"$XGCC_BIN/riscv64-elf-ld" "$OBJECT_FILE" -T "$TOOL_PATH/spike-elf.ld" \
Ronald G. Minnichaa9df0f2016-10-07 06:57:03 -070029 -o "$ELF_FILE"
Jonathan Neuschäfer2459f672016-06-10 19:35:14 +020030rm "$OBJECT_FILE"