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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).