coreboot-kgpe-d16/util/riscvtools/make-spike-elf.sh

28 lines
647 B
Bash
Executable File

#!/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.o)
ELF_FILE="$2"
TOOL_PATH="$(dirname "$0")"
objcopy -I binary -O elf32-i386 --binary-architecture i386 "$FLAT_FILE" "$OBJECT_FILE"
ld -m elf_i386 "$OBJECT_FILE" -T "$TOOL_PATH/spike-elf.ld" -o "$ELF_FILE"
rm "$OBJECT_FILE"