From: Li Zhang <zhlcindy@linux.vnet.ibm.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: qemu-ppc@nongnu.org, aliguori@us.ibm.com, agraf@suse.de,
qemu-devel@nongnu.org, Jens Freimann <jfrei@linux.vnet.ibm.com>,
Li Zhang <zhlcindy@gmail.com>,
Eugene Dvurechenski <jno@linux.vnet.ibm.com>,
afaerber@suse.de, david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [RFC/PATCH 1/1] USB code fenced for s390
Date: Tue, 07 Aug 2012 20:59:28 +0800 [thread overview]
Message-ID: <50211130.6050605@linux.vnet.ibm.com> (raw)
In-Reply-To: <1344341985-10065-2-git-send-email-borntraeger@de.ibm.com>
On 2012年08月07日 20:19, Christian Borntraeger wrote:
> From: Eugene Dvurechenski <jno@linux.vnet.ibm.com>
>
> on s390 there is no usb support and the -usb option doesnt
> do anything.
> This patch fences all usb code for s390.
>
> Signed-off-by: Eugene Dvurechenski <jno@linux.vnet.ibm.com>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> configure | 66 +++++++++++++++++++++++++++++++++++++++++------------
> hmp-commands.hx | 6 +++++
> hw/Makefile.objs | 5 ++-
> monitor.c | 4 +++
> qemu-options.hx | 4 +++
> sysemu.h | 2 +
> vl.c | 8 +++++-
> 7 files changed, 76 insertions(+), 19 deletions(-)
>
> diff --git a/configure b/configure
> index 280726c..405b201 100755
> --- a/configure
> +++ b/configure
> @@ -486,7 +486,10 @@ Haiku)
> audio_possible_drivers="oss alsa sdl esd pa"
> linux="yes"
> linux_user="yes"
> - usb="linux"
> + case "$cpu" in
> + s390*) usb='none';;
> + *) usb="linux";;
> + esac
> kvm="yes"
> vhost_net="yes"
> if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
> @@ -2647,6 +2650,11 @@ EOF
> fi
>
> # check for libcacard for smartcard support
> +if test "$usb" = 'none'; then
> + smartcard='no' # USB support required
> + smartcard_nss='no'
> + smartcard_cflags=""
> +fi
> if test "$smartcard" != "no" ; then
> smartcard="yes"
> smartcard_cflags=""
> @@ -2686,7 +2694,12 @@ if test "$smartcard" = "no" ; then
> fi
>
> # check for usbredirparser for usb network redirection support
> -if test "$usb_redir" != "no" ; then
> +if test "$usb" = 'no'; then
> + if test "$usb_redir" = "yes"; then
> + feature_not_found "usb-redir"
> + fi
> + usb_redir='no'
> +elif test "$usb_redir" != "no" ; then
> if $pkg_config --atleast-version=0.3.4 libusbredirparser >/dev/null 2>&1 ; then
> usb_redir="yes"
> usb_redir_cflags=$($pkg_config --cflags libusbredirparser 2>/dev/null)
> @@ -3102,6 +3115,7 @@ echo "OpenGL support $opengl"
> echo "libiscsi support $libiscsi"
> echo "build guest agent $guest_agent"
> echo "coroutine backend $coroutine_backend"
> +echo "USB support $usb"
>
> if test "$sdl_too_old" = "yes"; then
> echo "-> Your SDL version is too old - please upgrade to have SDL support"
> @@ -3377,18 +3391,20 @@ if test "$spice" = "yes" ; then
> echo "CONFIG_SPICE=y" >> $config_host_mak
> fi
>
> -if test "$smartcard" = "yes" ; then
> - echo "CONFIG_SMARTCARD=y" >> $config_host_mak
> -fi
> +if test "$usb" != 'none'; then
> + if test "$smartcard" = "yes" ; then
> + echo "CONFIG_SMARTCARD=y" >> $config_host_mak
> + fi
>
> -if test "$smartcard_nss" = "yes" ; then
> - echo "CONFIG_SMARTCARD_NSS=y" >> $config_host_mak
> - echo "libcacard_libs=$libcacard_libs" >> $config_host_mak
> - echo "libcacard_cflags=$libcacard_cflags" >> $config_host_mak
> -fi
> + if test "$smartcard_nss" = "yes" ; then
> + echo "CONFIG_SMARTCARD_NSS=y" >> $config_host_mak
> + echo "libcacard_libs=$libcacard_libs" >> $config_host_mak
> + echo "libcacard_cflags=$libcacard_cflags" >> $config_host_mak
> + fi
>
> -if test "$usb_redir" = "yes" ; then
> - echo "CONFIG_USB_REDIR=y" >> $config_host_mak
> + if test "$usb_redir" = "yes" ; then
> + echo "CONFIG_USB_REDIR=y" >> $config_host_mak
> + fi
> fi
>
> if test "$opengl" = "yes" ; then
> @@ -3602,6 +3618,7 @@ target_int_alignment=4
> target_long_alignment=4
> target_llong_alignment=8
> target_libs_softmmu=
> +target_has_usb="yes"
>
> TARGET_ARCH="$target_arch2"
> TARGET_BASE_ARCH=""
> @@ -3733,6 +3750,7 @@ case "$target_arch2" in
> target_nptl="yes"
> target_phys_bits=64
> target_long_alignment=8
> + target_has_usb="no"
> ;;
> unicore32)
> target_phys_bits=32
> @@ -3858,9 +3876,19 @@ if test "$target_bsd_user" = "yes" ; then
> echo "CONFIG_BSD_USER=y" >> $config_target_mak
> fi
>
> +cflags=''
> +if test "$usb" = 'none' ; then
> + echo "TARGET_HAS_USB=0"
> + echo "CONFIG_HAS_USB=n"
> + cflags="-UTARGET_HAS_USB"
> +else
> + echo "TARGET_HAS_USB=1"
> + echo "CONFIG_HAS_USB=y"
> + cflags="-DTARGET_HAS_USB=1"
> +fi >> $config_target_mak
> +
> # generate QEMU_CFLAGS/LDFLAGS for targets
>
> -cflags=""
> includes=""
> ldflags=""
>
> @@ -3961,6 +3989,9 @@ if test "$tcg_interpreter" = "yes" ; then
> fi
>
> case "$ARCH" in
> +s390*) # it has no USB at all
> + cflags="$cflags -UTARGET_HAS_USB"
> +;;
> alpha)
> # Ensure there's only a single GP
> cflags="-msmall-data $cflags"
> @@ -4025,10 +4056,15 @@ DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32"
> DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas"
> DIRS="$DIRS roms/seabios roms/vgabios"
> DIRS="$DIRS qapi-generated"
> -DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace"
> +if test "$usb" != 'none'; then
> + DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace"
> +fi
> FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
> FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
> -FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile"
> +FILES="$FILES tests/tcg/lm32/Makefile"
> +if test "$usb" != 'none'; then
> + FILES="$FILES libcacard/Makefile"
> +fi
> FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
> FILES="$FILES pc-bios/spapr-rtas/Makefile"
> FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index eea8b32..c989123 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -568,6 +568,7 @@ STEXI
> Compute the checksum of a memory region.
> ETEXI
>
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> {
> .name = "usb_add",
> .args_type = "devname:s",
> @@ -575,6 +576,7 @@ ETEXI
> .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
> .mhandler.cmd = do_usb_add,
> },
> +#endif
>
> STEXI
> @item usb_add @var{devname}
> @@ -584,6 +586,7 @@ Add the USB device @var{devname}. For details of available devices see
> @ref{usb_devices}
> ETEXI
>
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> {
> .name = "usb_del",
> .args_type = "devname:s",
> @@ -591,6 +594,7 @@ ETEXI
> .help = "remove USB device 'bus.addr'",
> .mhandler.cmd = do_usb_del,
> },
> +#endif
>
> STEXI
> @item usb_del @var{devname}
> @@ -601,6 +605,7 @@ hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
> command @code{info usb} to see the devices you can remove.
> ETEXI
>
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> {
> .name = "device_add",
> .args_type = "device:O",
> @@ -609,6 +614,7 @@ ETEXI
> .user_print = monitor_user_noop,
> .mhandler.cmd_new = do_device_add,
> },
> +#endif
>
> STEXI
> @item device_add @var{config}
> diff --git a/hw/Makefile.objs b/hw/Makefile.objs
> index 8327e55..e6811f2 100644
> --- a/hw/Makefile.objs
> +++ b/hw/Makefile.objs
> @@ -1,4 +1,5 @@
> -hw-obj-y = usb/ ide/
> +hw-obj-y = ide/
> +hw-obj-$(CONFIG_HAS_USB) += usb/
> hw-obj-y += loader.o
> hw-obj-$(CONFIG_VIRTIO) += virtio-console.o
> hw-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
> @@ -121,7 +122,7 @@ hw-obj-$(CONFIG_SOUND) += $(sound-obj-y)
>
> hw-obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/
>
> -common-obj-y += usb/
> +common-obj-$(CONFIG_HAS_USB) += usb/
> common-obj-y += irq.o
> common-obj-$(CONFIG_PTIMER) += ptimer.o
> common-obj-$(CONFIG_MAX7310) += max7310.o
> diff --git a/monitor.c b/monitor.c
> index 49dccfe..554cc48 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -24,7 +24,9 @@
> #include <dirent.h>
> #include "hw/hw.h"
> #include "hw/qdev.h"
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> #include "hw/usb.h"
> +#endif
> #include "hw/pcmcia.h"
> #include "hw/pc.h"
> #include "hw/pci.h"
> @@ -2543,6 +2545,7 @@ static mon_cmd_t info_cmds[] = {
> .help = "show NUMA information",
> .mhandler.info = do_info_numa,
> },
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> {
> .name = "usb",
> .args_type = "",
> @@ -2557,6 +2560,7 @@ static mon_cmd_t info_cmds[] = {
> .help = "show host USB devices",
> .mhandler.info = usb_host_info,
> },
> +#endif
> {
> .name = "profile",
> .args_type = "",
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 5e7d0dc..9b2b4a3 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -491,9 +491,11 @@ STEXI
> @end table
> ETEXI
>
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> DEF("usb", 0, QEMU_OPTION_usb,
> "-usb enable the USB driver (will be the default soon)\n",
> QEMU_ARCH_ALL)
> +#endif
> STEXI
> USB options:
> @table @option
> @@ -503,9 +505,11 @@ USB options:
> Enable the USB driver (will be the default soon)
> ETEXI
>
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
> "-usbdevice name add the host or guest USB device 'name'\n",
> QEMU_ARCH_ALL)
> +#endif
> STEXI
>
> @item -usbdevice @var{devname}
> diff --git a/sysemu.h b/sysemu.h
> index 4669348..c1d73c7 100644
> --- a/sysemu.h
> +++ b/sysemu.h
> @@ -177,9 +177,11 @@ extern CharDriverState *serial_hds[MAX_SERIAL_PORTS];
>
> extern CharDriverState *parallel_hds[MAX_PARALLEL_PORTS];
>
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> void do_usb_add(Monitor *mon, const QDict *qdict);
> void do_usb_del(Monitor *mon, const QDict *qdict);
> void usb_info(Monitor *mon);
> +#endif
>
> void rtc_change_mon_event(struct tm *tm);
>
> diff --git a/vl.c b/vl.c
> index e71cb30..389ce95 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1042,7 +1042,7 @@ static void smp_parse(const char *optarg)
>
> /***********************************************************/
> /* USB devices */
> -
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> static int usb_device_add(const char *devname)
> {
> const char *p;
> @@ -1122,7 +1122,7 @@ void do_usb_del(Monitor *mon, const QDict *qdict)
> error_report("could not delete USB device '%s'", devname);
> }
> }
> -
> +#endif
> /***********************************************************/
> /* PCMCIA/Cardbus */
>
> @@ -2976,6 +2976,7 @@ int main(int argc, char **argv, char **envp)
> machine = machine_parse(optarg);
> }
> break;
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> case QEMU_OPTION_usb:
> usb_enabled = 1;
This line will be replaced by the following in my patch:
machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
if (machine_opts) {
qemu_opt_set_bool(machine_opts, "usb", true);
}
BTW, does s390 use the same vl.c as other platforms?
It seems that the code is not as the code I have seen in qemu. :)
> break;
> @@ -2983,6 +2984,7 @@ int main(int argc, char **argv, char **envp)
> usb_enabled = 1;
This is the same as I mention above.
> add_device_config(DEV_USB, optarg);
> break;
> +#endif
> case QEMU_OPTION_device:
> if (!qemu_opts_parse(qemu_find_opts("device"), optarg, 1)) {
> exit(1);
> @@ -3525,11 +3527,13 @@ int main(int argc, char **argv, char **envp)
>
> current_machine = machine;
>
> +#if defined(TARGET_HAS_USB) && (TARGET_HAS_USB == 1)
> /* init USB devices */
> if (usb_enabled) {
usb_enabled is removed and it is replaced with usb_enabled() function.
You can see my patch.
> if (foreach_device_config(DEV_USB, usb_parse) < 0)
> exit(1);
> }
> +#endif
>
> /* init generic devices */
> if (qemu_opts_foreach(qemu_find_opts("device"), device_init_func, NULL, 1) != 0)
--
Li Zhang
IBM China Linux Technology Centre
next prev parent reply other threads:[~2012-08-07 13:00 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-07 2:41 [Qemu-devel] [Qemu-ppc][PATCH v7 0/3] Add USB enablement and VGA enablement on sPAPR Li Zhang
2012-08-07 2:41 ` [Qemu-devel] [Qemu-ppc][PATCH v7 1/3] Add USB option in machine options Li Zhang
2012-08-07 12:19 ` [Qemu-devel] [RFC] usb and s390 Christian Borntraeger
2012-08-07 12:50 ` Li Zhang
2012-08-07 14:20 ` Eric Blake
2012-08-07 12:19 ` [Qemu-devel] [RFC/PATCH 1/1] USB code fenced for s390 Christian Borntraeger
2012-08-07 12:26 ` Peter Maydell
2012-08-07 20:22 ` Blue Swirl
2012-08-08 6:29 ` Christian Borntraeger
2012-08-07 12:57 ` Andreas Färber
2012-08-07 12:59 ` Li Zhang [this message]
2012-08-14 10:39 ` [Qemu-devel] [Qemu-ppc][PATCH v7 1/3] Add USB option in machine options Alexander Graf
2012-08-14 14:59 ` Li Zhang
2012-08-14 10:46 ` Alexander Graf
2012-08-14 15:01 ` Li Zhang
2012-08-14 23:10 ` [Qemu-devel] [Qemu-ppc] [PATCH " David Gibson
2012-08-14 23:41 ` Alexander Graf
2012-08-15 0:09 ` Benjamin Herrenschmidt
2012-08-15 1:24 ` Li Zhang
2012-08-15 1:47 ` David Gibson
2012-08-15 2:50 ` Li Zhang
2012-08-15 2:57 ` David Gibson
2012-08-15 5:44 ` Li Zhang
2012-08-15 11:13 ` David Gibson
2012-08-15 14:17 ` Li Zhang
2012-08-07 2:41 ` [Qemu-devel] [Qemu-ppc][PATCH v7 2/3] Add one new file vga-pci.h and cleanup on all platforms Li Zhang
2012-08-14 11:04 ` Alexander Graf
2012-08-07 2:42 ` [Qemu-devel] [Qemu-ppc][PATCH v7 3/3] spapr: Add support for -vga option Li Zhang
2012-08-14 11:04 ` Alexander Graf
2012-08-14 12:04 ` Benjamin Herrenschmidt
2012-08-14 12:13 ` David Gibson
2012-08-14 15:13 ` Li Zhang
2012-08-14 17:19 ` Li Zhang
2012-08-14 17:52 ` Li Zhang
2012-08-14 23:11 ` [Qemu-devel] [Qemu-ppc] [PATCH " David Gibson
2012-08-14 15:07 ` [Qemu-devel] [Qemu-ppc][PATCH " Li Zhang
2012-08-07 15:05 ` [Qemu-devel] [Qemu-ppc][PATCH v7 0/3] Add USB enablement and VGA enablement on sPAPR Li Zhang
2012-08-14 11:04 ` Alexander Graf
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=50211130.6050605@linux.vnet.ibm.com \
--to=zhlcindy@linux.vnet.ibm.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aliguori@us.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=david@gibson.dropbear.id.au \
--cc=jfrei@linux.vnet.ibm.com \
--cc=jno@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=zhlcindy@gmail.com \
/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.