blob: 08d898162982a0d23f163032840aec144c950034 [file] [log] [blame]
#!/bin/bash
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
set -e
if [ "$#" -ne 2 ]; then
echo "Basic script to build a binary from a single OTBN assembly file. Input file is"
echo "first argument, prefix for output files is second argument. Only use .data and"
echo ".text sections in input asm"
echo ""
echo "$0 input.S out_dir/prog"
echo ""
echo "Will produce:"
echo ""
echo "* out_dir/prog.o - input.S assembled object file"
echo "* out_dir/prog.elf - Linked binary"
echo "* out_dir/prog.dis - Disassembled binary"
echo "* out_dir/prog_imem.elf - .text section alone"
echo "* out_dir/prog_dmem.elf - .data section alone"
exit 1
fi
SCRIPT_FILE=$(readlink -f "$BASH_SOURCE")
OTBN_UTIL_DIR=$(dirname "$SCRIPT_FILE")
$OTBN_UTIL_DIR/otbn-as $1 -o $2.o
$OTBN_UTIL_DIR/otbn-ld $2.o -o $2.elf
$OTBN_UTIL_DIR/otbn-objdump -fhSD $2.elf > $2.dis
riscv32-unknown-elf-objcopy -j .text $2.elf $2_imem.elf
riscv32-unknown-elf-objcopy -j .data $2.elf $2_dmem.elf