# Common architecture configuration options

# Copyright (c) 2022, CSIRO.
# SPDX-License-Identifier: Apache-2.0

config SEMIHOST
	bool "Semihosting support for ARM and RISC-V targets"
	depends on ARM || ARM64 || RISCV
	help
	  Semihosting is a mechanism that enables code running on an ARM or
	  RISC-V target to communicate and use the Input/Output facilities on
	  a host computer that is running a debugger.
	  Additional information can be found in:
	  https://developer.arm.com/documentation/dui0471/m/what-is-semihosting-
	  https://github.com/riscv/riscv-semihosting-spec/blob/main/riscv-semihosting-spec.adoc
	  This option is compatible with hardware and with QEMU, through the
	  (automatic) use of the -semihosting-config switch when invoking it.
