[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel][PATCHv3 1/1] Add usb option in machine optio
From: |
Li Zhang |
Subject: |
Re: [Qemu-ppc] [Qemu-devel][PATCHv3 1/1] Add usb option in machine options to enable/disable usb |
Date: |
Mon, 18 Jun 2012 10:13:16 +0800 |
On Sat, Jun 16, 2012 at 6:51 AM, Benjamin Herrenschmidt
<address@hidden> wrote:
> 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 ....
OK. I think I should send the patch with vga enablement together.
That seems to be more reasonable. :)
>
> 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.
OK. I will send out this together with vga patch.
>
> 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 <address@hidden>
>> ---
>> 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 */ }
>> },
>
>
>
--
Best Regards
-Li