#!/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