blob: 3e2cb15c30641f7a9b49130cfd55c74f44c0b3a2 [file] [log] [blame]
#
# Copyright (c) 2017 Intel Corporation
# Copyright (c) 2016 Cadence Design Systems, Inc.
# SPDX-License-Identifier: Apache-2.0
#
# Abstraction of 'run' goal with xt-run
ifneq (${QEMU_PTY},)
# By default xt-sim uses pty, do nothing
endif
run: zephyr
@echo "**** Running simulation for Xtensa core \"${CONFIG_SOC}\" ****"
$(if ${QEMU_PIPE},,@echo "To exit from XT-RUN enter: 'CTRL+c'")
@echo '[XT-RUN] CPU: ${CONFIG_SOC}'
# Run the emulator in the background and leave a PID file for
# sanitycheck
ifneq ($(QEMU_PIPE),)
# Use the existing interface that we set up for QEMU:
# 1) A pair of pipe for console input and output, named
# $(QEMU_PIPE).in and $(QEMU_PIPE).out. The extensions are implicit
# in QEMU's -seral pipe:.... argument.
# 2) A PID file so that sanitycheck can kill the emulator
${Q} ${XTRUN} ${XTRUN_FLAGS} ${XTRUN_EXTRA_FLAGS} ${O}/${KERNEL_ELF_NAME} \
< ${QEMU_PIPE}.in > ${QEMU_PIPE}.out & echo $$! > qemu.pid
# Wait until the emulator terminates (for any reason)
$(Q) cat qemu.pid | xargs $(srctree)/scripts/waitpid
else
${Q} ${XTRUN} ${XTRUN_FLAGS} ${XTRUN_EXTRA_FLAGS} ${O}/${KERNEL_ELF_NAME}
endif
.PHONY: run