All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: Marek Vasut <marex@denx.de>,
	Aleksandar Rikalo <arikalo@wavecomp.com>,
	Chris Wulff <crwulff@gmail.com>,
	Max Filippov <jcmvbkbc@gmail.com>,
	qemu-arm@nongnu.org, Aleksandar Markovic <amarkovic@wavecomp.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Aurelien Jarno <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [RFC PATCH 02/11] semihosting: introduce CONFIG_SEMIHOSTING
Date: Tue, 14 May 2019 18:25:10 +0200	[thread overview]
Message-ID: <dfacf0dc-c74c-c508-5191-0f97da9f60b1@redhat.com> (raw)
In-Reply-To: <20190514155301.16123-3-alex.bennee@linaro.org>

On 5/14/19 5:52 PM, Alex Bennée wrote:
> 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>

> ---
>  default-configs/arm-softmmu.mak         |  1 +
>  default-configs/lm32-softmmu.mak        |  2 +
>  default-configs/m68k-softmmu.mak        |  2 +
>  default-configs/mips-softmmu-common.mak |  1 +
>  default-configs/nios2-softmmu.mak       |  2 +
>  default-configs/xtensa-softmmu.mak      |  2 +
>  hw/Kconfig                              |  1 +
>  hw/semihosting/Kconfig                  |  3 ++
>  hw/semihosting/Makefile.objs            |  2 +-
>  stubs/Makefile.objs                     |  1 +
>  stubs/semihost.c                        | 66 +++++++++++++++++++++++++
>  11 files changed, 82 insertions(+), 1 deletion(-)
>  create mode 100644 hw/semihosting/Kconfig
>  create mode 100644 stubs/semihost.c
> 
> diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
> index f23ecfd5c58..1f2e0e7fdeb 100644
> --- a/default-configs/arm-softmmu.mak
> +++ b/default-configs/arm-softmmu.mak
> @@ -39,3 +39,4 @@ CONFIG_MICROBIT=y
>  CONFIG_FSL_IMX25=y
>  CONFIG_FSL_IMX7=y
>  CONFIG_FSL_IMX6UL=y
> +CONFIG_SEMIHOSTING=y
> diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
> index 6d259665d60..115b3e34c98 100644
> --- a/default-configs/lm32-softmmu.mak
> +++ b/default-configs/lm32-softmmu.mak
> @@ -4,6 +4,8 @@
>  #
>  #CONFIG_MILKYMIST_TMU2=n        # disabling it actually causes compile-time failures
>  
> +CONFIG_SEMIHOSTING=y
> +
>  # Boards:
>  #
>  CONFIG_LM32=y
> diff --git a/default-configs/m68k-softmmu.mak b/default-configs/m68k-softmmu.mak
> index e17495e2a0b..4049a8f2ba9 100644
> --- a/default-configs/m68k-softmmu.mak
> +++ b/default-configs/m68k-softmmu.mak
> @@ -1,5 +1,7 @@
>  # Default configuration for m68k-softmmu
>  
> +CONFIG_SEMIHOSTING=y
> +
>  # Boards:
>  #
>  CONFIG_AN5206=y
> diff --git a/default-configs/mips-softmmu-common.mak b/default-configs/mips-softmmu-common.mak
> index 8e54a74b7a5..e10ac4b20c0 100644
> --- a/default-configs/mips-softmmu-common.mak
> +++ b/default-configs/mips-softmmu-common.mak
> @@ -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
> diff --git a/default-configs/nios2-softmmu.mak b/default-configs/nios2-softmmu.mak
> index e130d024e62..1bc4082ea99 100644
> --- a/default-configs/nios2-softmmu.mak
> +++ b/default-configs/nios2-softmmu.mak
> @@ -1,5 +1,7 @@
>  # Default configuration for nios2-softmmu
>  
> +CONFIG_SEMIHOSTING=y
> +
>  # Boards:
>  #
>  CONFIG_NIOS2_10M50=y
> diff --git a/default-configs/xtensa-softmmu.mak b/default-configs/xtensa-softmmu.mak
> index 7e4d1cc0979..3aa20a47a7f 100644
> --- a/default-configs/xtensa-softmmu.mak
> +++ b/default-configs/xtensa-softmmu.mak
> @@ -1,5 +1,7 @@
>  # Default configuration for Xtensa
>  
> +CONFIG_SEMIHOSTING=y
> +
>  # Boards:
>  #
>  CONFIG_XTENSA_SIM=y
> diff --git a/hw/Kconfig b/hw/Kconfig
> index 88b9f150070..195f541e50c 100644
> --- a/hw/Kconfig
> +++ b/hw/Kconfig
> @@ -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
> diff --git a/hw/semihosting/Kconfig b/hw/semihosting/Kconfig
> new file mode 100644
> index 00000000000..efe0a30734c
> --- /dev/null
> +++ b/hw/semihosting/Kconfig
> @@ -0,0 +1,3 @@
> +
> +config SEMIHOSTING
> +       bool
> diff --git a/hw/semihosting/Makefile.objs b/hw/semihosting/Makefile.objs
> index 546954f4ff4..09c19bf19ed 100644
> --- a/hw/semihosting/Makefile.objs
> +++ b/hw/semihosting/Makefile.objs
> @@ -1 +1 @@
> -common-obj-$(CONFIG_SOFTMMU) += config.o
> +obj-$(CONFIG_SEMIHOSTING) += config.o
> diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
> index 269dfa58326..e0d4f11b348 100644
> --- a/stubs/Makefile.objs
> +++ b/stubs/Makefile.objs
> @@ -39,3 +39,4 @@ stub-obj-y += xen-hvm.o
>  stub-obj-y += pci-host-piix.o
>  stub-obj-y += ram-block.o
>  stub-obj-y += ramfb.o
> +stub-obj-$(CONFIG_SOFTMMU) += semihost.o
> diff --git a/stubs/semihost.c b/stubs/semihost.c
> new file mode 100644
> index 00000000000..1a4e88e5326
> --- /dev/null
> +++ b/stubs/semihost.c
> @@ -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)
> +{
> +}
> 


  reply	other threads:[~2019-05-14 16:26 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 15:52 [Qemu-devel] [RFC PATCH 00/11] semihosting cleanup and re-factor Alex Bennée
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 01/11] semihosting: move semihosting configuration into its own directory Alex Bennée
2019-05-14 16:23   ` Philippe Mathieu-Daudé
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 02/11] semihosting: introduce CONFIG_SEMIHOSTING Alex Bennée
2019-05-14 16:25   ` Philippe Mathieu-Daudé [this message]
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 03/11] semihosting: implement a semihosting console Alex Bennée
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 04/11] semihosting: enable chardev backed output for console Alex Bennée
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 05/11] target/arm: fixup some of the commentary for arm-semi Alex Bennée
2019-05-14 16:56   ` Philippe Mathieu-Daudé
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 06/11] target/arm: use the common interface for WRITE0/WRITEC in arm-semi Alex Bennée
2019-05-31  9:12   ` Miroslav Rezanina
2019-05-31 10:42     ` Philippe Mathieu-Daudé
2019-05-31 10:44       ` Philippe Mathieu-Daudé
2019-05-31 10:53       ` Miroslav Rezanina
2019-05-31 11:08     ` Alex Bennée
2019-05-31 11:28       ` Miroslav Rezanina
2019-05-31 13:16         ` Alex Bennée
2019-05-31 13:59           ` Miroslav Rezanina
2019-05-31 14:28             ` Alex Bennée
2019-05-31 14:38               ` Peter Maydell
2019-05-31 16:47                 ` Miroslav Rezanina
2019-05-31 16:50               ` Miroslav Rezanina
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 07/11] target/arm: add LOG_UNIMP messages to arm-semi Alex Bennée
2019-05-14 16:15   ` Philippe Mathieu-Daudé
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 08/11] target/arm: correct return values for WRITE/READ in arm-semi Alex Bennée
2019-05-14 16:57   ` Philippe Mathieu-Daudé
2019-05-14 15:52 ` [Qemu-devel] [RFC PATCH 09/11] target/mips: only build mips-semi for softmmu Alex Bennée
2019-05-14 16:59   ` Philippe Mathieu-Daudé
2019-05-20 15:53   ` Aleksandar Markovic
2019-05-14 15:53 ` [Qemu-devel] [RFC PATCH 10/11] target/mips: convert UHI_plog to use common semihosting code Alex Bennée
2019-05-20 15:53   ` Aleksandar Markovic
2019-05-14 15:53 ` [Qemu-devel] [RFC PATCH 11/11] MAINTAINERS: update for semihostings new home Alex Bennée
2019-05-14 17:00   ` Philippe Mathieu-Daudé
2019-05-20 13:03 ` [Qemu-devel] [RFC PATCH 00/11] semihosting cleanup and re-factor Alex Bennée

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dfacf0dc-c74c-c508-5191-0f97da9f60b1@redhat.com \
    --to=philmd@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=amarkovic@wavecomp.com \
    --cc=arikalo@wavecomp.com \
    --cc=aurelien@aurel32.net \
    --cc=crwulff@gmail.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=marex@denx.de \
    --cc=pbonzini@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.