blob: af6759d762858461ead13484feb6aed0c492ae2c [file] [log] [blame] [edit]
#!/bin/bash
# Copyright 2022 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# Wrapper script to run the artifact on RISC-V 32/64-bit Linux device.
# This script checks if QEMU emulator is set, and use either the emulator or
# the actual device to run the cross-compiled RISC-V linux artifacts.
set -x
set -e
RISCV_PLATFORM="${IREE_TARGET_PLATFORM:-linux}"
RISCV_ARCH="${IREE_TARGET_ARCH:-riscv_64}"
RISCV_PLATFORM_ARCH="${RISCV_PLATFORM}-${RISCV_ARCH}"
# A QEMU Linux emulator must be available Within the system that matches the
# processor architecturue. The emulators are at the path specified by the
# `QEMU_RV64_BIN` or `QEMU_RV32_BIN` environment variable to run the artifacts
# under the emulator.
if [[ "${RISCV_PLATFORM_ARCH}" == "linux-riscv_64" ]] && [[ ! -z "${QEMU_RV64_BIN}" ]]; then
"${QEMU_RV64_BIN}" "-cpu" "rv64,Zve64d=true,vlen=512,elen=64,vext_spec=v1.0" \
"-L" "${RISCV_RV64_LINUX_TOOLCHAIN_ROOT}/sysroot" "$@"
elif [[ "${RISCV_PLATFORM_ARCH}" == "linux-riscv_32" ]] && [[ ! -z "${QEMU_RV32_BIN}" ]]; then
"${QEMU_RV32_BIN}" "-cpu" "rv32,Zve32f=true,vlen=512,elen=32,vext_spec=v1.0" \
"-L" "${RISCV_RV64_LINUX_TOOLCHAIN_ROOT}/sysroot" "$@"
else
# TODO(dcaballe): Add on-device run commands.
"$@"
fi