[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1.3] ehci-sysbus: Attach DMA context.
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH 1.3] ehci-sysbus: Attach DMA context. |
Date: |
Wed, 5 Dec 2012 17:07:20 +1000 |
Hi Gerd, Liming,
On Tue, Dec 4, 2012 at 6:15 PM, Gerd Hoffmann <address@hidden> wrote:
> Hi,
>
>> Gerd,
>>
>> Is there any documentation out there on how to tell QEMU on command
>> line which EHCI you want your usb-storage to attach to?
>
> docs/usb2.txt has some examples, although those are pc-centric where the
> ehci is created on the command line. The problem with zynx is that both
> ehci controllers get the same (default) name so picking one by name
> doesn't work.
>
> Guess we haver to figure a way to explicitly name those devices (so the
> busses are named too), especially in case a board has two identical
> ones. Maybe sysbus_create_simple needs an additional argument or a
> sysbus_create_simple_with_id variant.
>
Ive taken a more manual approach and just used the manual
qdev_create() flow first to get up and running:
--- a/hw/xilinx_zynq.c
+++ b/hw/xilinx_zynq.c
@@ -162,12 +162,28 @@ static void zynq_init(QEMUMachineInitArgs *args)
pic[n] = qdev_get_gpio_in(dev, n);
}
+ dev = qdev_create(NULL, "xlnx.ps7-usb");
+ dev->id = "zynq-usb-0";
+ qdev_init_nofail(dev);
+ busdev = sysbus_from_qdev(dev);
+ sysbus_mmio_map(busdev, 0, 0xE0002000);
+ sysbus_connect_irq(busdev, 0, pic[53-IRQ_OFFSET]);
+
+ dev = qdev_create(NULL, "xlnx.ps7-usb");
+ dev->id = "zynq-usb-1";
+ busdev = sysbus_from_qdev(dev);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(busdev, 0, 0xE0003000);
+ sysbus_connect_irq(busdev, 0, pic[76-IRQ_OFFSET]);
+
zynq_init_spi_flashes(0xE0006000, pic[58-IRQ_OFFSET], false);
zynq_init_spi_flashes(0xE0007000, pic[81-IRQ_OFFSET], false);
zynq_init_spi_flashes(0xE000D000, pic[51-IRQ_OFFSET], true);
+#if 0
sysbus_create_simple("xlnx,ps7-usb", 0xE0002000, pic[53-IRQ_OFFSET]);
sysbus_create_simple("xlnx,ps7-usb", 0xE0003000, pic[76-IRQ_OFFSET]);
+#endif
This works and gives the two USBs different names, and I can attach to
each on command lines using bus=zynq-usb-0.0 and bus=zynq-usb-0.1.
We can probably now think about a more palatable way to do this,
perhaps your sysbus_create_simple_id() approach.
Regards,
Peter
> cheers,
> Gerd
>
>