On Fri, 2012-06-15 at 22:40 -0400, Li Zhang wrote: > For pseries machine, it needs to enable usb to add > keyboard or usb mouse. -usb option won't be used in > the future, and machine options is a better way to > enable usb.
Patch looks much better. Now, should we also create the default keyboard and mouse ? After all that's the whole point of creating the default OHCI to begin with .... Also, feel free to pickup my internal patch for enabling -vga, removing the USB bits from it and submitting it too, that way we get both pieces of the puzzle together. Cheers, Ben. > So this patch is to add usb option to machine options > (-machine type=psereis,usb=on/off)to enable/disable > usb controller. > > For specific machines, they will get the machine option > and then create usb controller according to usb option. > > In this patch, usb is on by default on pseries. > So, for -nodefault,usb should be set off in the command > line as the following: > -machine type=pseries,usb=off. > > Signed-off-by: Li Zhang <zhlci...@linux.vnet.ibm.com> > --- > hw/spapr.c | 10 ++++++++++ > qemu-config.c | 4 ++++ > 2 files changed, 14 insertions(+), 0 deletions(-) > > diff --git a/hw/spapr.c b/hw/spapr.c > index d0bddbc..8d158d7 100644 > --- a/hw/spapr.c > +++ b/hw/spapr.c > @@ -529,6 +529,8 @@ static void ppc_spapr_init(ram_addr_t ram_size, > long load_limit, rtas_limit, fw_size; > long pteg_shift = 17; > char *filename; > + QemuOpts * machine_opts; > + bool usb_on = false; > > spapr = g_malloc0(sizeof(*spapr)); > QLIST_INIT(&spapr->phbs); > @@ -661,6 +663,14 @@ static void ppc_spapr_init(ram_addr_t ram_size, > spapr_vscsi_create(spapr->vio_bus); > } > > + machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0); > + if (machine_opts) > + usb_on = qemu_opt_get_bool(machine_opts, "usb", true); > + > + if (usb_on == true) { > + pci_create_simple(QLIST_FIRST(&spapr->phbs)->host_state.bus, > + -1, "pci-ohci"); > + } > if (rma_size < (MIN_RMA_SLOF << 20)) { > fprintf(stderr, "qemu: pSeries SLOF firmware requires >= " > "%ldM guest RMA (Real Mode Area memory)\n", MIN_RMA_SLOF); > diff --git a/qemu-config.c b/qemu-config.c > index bb3bff4..cdab765 100644 > --- a/qemu-config.c > +++ b/qemu-config.c > @@ -583,6 +583,10 @@ static QemuOptsList qemu_machine_opts = { > .name = "dtb", > .type = QEMU_OPT_STRING, > .help = "Linux kernel device tree file", > + },{ > + .name = "usb", > + .type = QEMU_OPT_BOOL, > + .help = "Set on/off to enable/disable usb", > }, > { /* End of list */ } > },