semihosting: introduce CONFIG_SEMIHOSTING
There isn't much point building semihosting for platforms that don't support it. Introduce a new symbol and enable it only for the softmmu targets that need it. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
f1672e6f2b
commit
16932bb761
@ -39,3 +39,4 @@ CONFIG_MICROBIT=y
|
||||
CONFIG_FSL_IMX25=y
|
||||
CONFIG_FSL_IMX7=y
|
||||
CONFIG_FSL_IMX6UL=y
|
||||
CONFIG_SEMIHOSTING=y
|
||||
|
@ -4,6 +4,8 @@
|
||||
#
|
||||
#CONFIG_MILKYMIST_TMU2=n # disabling it actually causes compile-time failures
|
||||
|
||||
CONFIG_SEMIHOSTING=y
|
||||
|
||||
# Boards:
|
||||
#
|
||||
CONFIG_LM32=y
|
||||
|
@ -1,5 +1,7 @@
|
||||
# Default configuration for m68k-softmmu
|
||||
|
||||
CONFIG_SEMIHOSTING=y
|
||||
|
||||
# Boards:
|
||||
#
|
||||
CONFIG_AN5206=y
|
||||
|
@ -35,6 +35,7 @@ CONFIG_MIPS_CPS=y
|
||||
CONFIG_MIPS_ITU=y
|
||||
CONFIG_R4K=y
|
||||
CONFIG_MALTA=y
|
||||
CONFIG_SEMIHOSTING=y
|
||||
CONFIG_PCNET_PCI=y
|
||||
CONFIG_MIPSSIM=y
|
||||
CONFIG_ACPI_SMBUS=y
|
||||
|
@ -1,5 +1,7 @@
|
||||
# Default configuration for nios2-softmmu
|
||||
|
||||
CONFIG_SEMIHOSTING=y
|
||||
|
||||
# Boards:
|
||||
#
|
||||
CONFIG_NIOS2_10M50=y
|
||||
|
@ -1,5 +1,7 @@
|
||||
# Default configuration for Xtensa
|
||||
|
||||
CONFIG_SEMIHOSTING=y
|
||||
|
||||
# Boards:
|
||||
#
|
||||
CONFIG_XTENSA_SIM=y
|
||||
|
@ -29,6 +29,7 @@ source pci/Kconfig
|
||||
source rdma/Kconfig
|
||||
source scsi/Kconfig
|
||||
source sd/Kconfig
|
||||
source semihosting/Kconfig
|
||||
source smbios/Kconfig
|
||||
source ssi/Kconfig
|
||||
source timer/Kconfig
|
||||
|
3
hw/semihosting/Kconfig
Normal file
3
hw/semihosting/Kconfig
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
config SEMIHOSTING
|
||||
bool
|
@ -1 +1 @@
|
||||
common-obj-$(CONFIG_SOFTMMU) += config.o
|
||||
obj-$(CONFIG_SEMIHOSTING) += config.o
|
||||
|
@ -40,3 +40,4 @@ stub-obj-y += pci-host-piix.o
|
||||
stub-obj-y += ram-block.o
|
||||
stub-obj-y += ramfb.o
|
||||
stub-obj-y += fw_cfg.o
|
||||
stub-obj-$(CONFIG_SOFTMMU) += semihost.o
|
||||
|
66
stubs/semihost.c
Normal file
66
stubs/semihost.c
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Semihosting Stubs for SoftMMU
|
||||
*
|
||||
* Copyright (c) 2019 Linaro Ltd
|
||||
*
|
||||
* Stubs for SoftMMU targets that don't actually do semihosting.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/option.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "hw/semihosting/semihost.h"
|
||||
|
||||
/* Empty config */
|
||||
QemuOptsList qemu_semihosting_config_opts = {
|
||||
.name = "",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_semihosting_config_opts.head),
|
||||
.desc = {
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
/* Queries to config status default to off */
|
||||
bool semihosting_enabled(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
SemihostingTarget semihosting_get_target(void)
|
||||
{
|
||||
return SEMIHOSTING_TARGET_AUTO;
|
||||
}
|
||||
|
||||
/*
|
||||
* All the rest are empty subs. We could g_assert_not_reached() but
|
||||
* that adds extra weight to the final binary. Waste not want not.
|
||||
*/
|
||||
void qemu_semihosting_enable(void)
|
||||
{
|
||||
}
|
||||
|
||||
int qemu_semihosting_config_options(const char *optarg)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char *semihosting_get_arg(int i)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int semihosting_get_argc(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *semihosting_get_cmdline(void)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void semihosting_arg_fallback(const char *file, const char *cmd)
|
||||
{
|
||||
}
|
Loading…
Reference in New Issue
Block a user