[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 14/22] usb/ehci: add sysbus variant
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH 14/22] usb/ehci: add sysbus variant |
Date: |
Wed, 31 Oct 2012 15:57:11 +1000 |
All good,
Needs a hack to get around the dma_memory_foo segfault (attached), but
that will come out in the wash with the memory API refactorings.
Regards,
Peter
On Tue, 2012-10-30 at 15:26 +0100, Gerd Hoffmann wrote:
> Signed-off-by: Gerd Hoffmann <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
Tested-by: Peter Crosthwaite <address@hidden>
> ---
> hw/usb/Makefile.objs | 2 +-
> hw/usb/hcd-ehci-sysbus.c | 77
> ++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 78 insertions(+), 1 deletions(-)
> create mode 100644 hw/usb/hcd-ehci-sysbus.c
>
> diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
> index 5c7b024..7669938 100644
> --- a/hw/usb/Makefile.objs
> +++ b/hw/usb/Makefile.objs
> @@ -1,6 +1,6 @@
> common-obj-$(CONFIG_USB_UHCI) += hcd-uhci.o
> common-obj-$(CONFIG_USB_OHCI) += hcd-ohci.o
> -common-obj-$(CONFIG_USB_EHCI) += hcd-ehci.o hcd-ehci-pci.o
> +common-obj-$(CONFIG_USB_EHCI) += hcd-ehci.o hcd-ehci-pci.o hcd-ehci-sysbus.o
> common-obj-$(CONFIG_USB_XHCI) += hcd-xhci.o
> common-obj-y += libhw.o
>
> diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c
> new file mode 100644
> index 0000000..1584079
> --- /dev/null
> +++ b/hw/usb/hcd-ehci-sysbus.c
> @@ -0,0 +1,77 @@
> +/*
> + * QEMU USB EHCI Emulation
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2 of the License, or(at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include "hw/usb/hcd-ehci.h"
> +#include "hw/sysbus.h"
> +
> +typedef struct EHCISysBusState {
> + SysBusDevice busdev;
> + EHCIState ehci;
> +} EHCISysBusState;
> +
> +static const VMStateDescription vmstate_ehci_sysbus = {
> + .name = "ehci-sysbus",
> + .version_id = 2,
> + .minimum_version_id = 1,
> + .fields = (VMStateField[]) {
> + VMSTATE_STRUCT(ehci, EHCISysBusState, 2, vmstate_ehci, EHCIState),
> + VMSTATE_END_OF_LIST()
> + }
> +};
> +
> +static Property ehci_sysbus_properties[] = {
> + DEFINE_PROP_UINT32("maxframes", EHCISysBusState, ehci.maxframes, 128),
> + DEFINE_PROP_END_OF_LIST(),
> +};
> +
> +static int usb_ehci_sysbus_initfn(SysBusDevice *dev)
> +{
> + EHCISysBusState *i = FROM_SYSBUS(EHCISysBusState, dev);
> + EHCIState *s = &i->ehci;
> +
> + s->capsbase = 0x100;
> + s->opregbase = 0x140;
> +
> + usb_ehci_initfn(s, DEVICE(dev));
> + sysbus_init_irq(dev, &s->irq);
> + sysbus_init_mmio(dev, &s->mem);
> + return 0;
> +}
> +
> +static void ehci_sysbus_class_init(ObjectClass *klass, void *data)
> +{
> + DeviceClass *dc = DEVICE_CLASS(klass);
> + SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
> +
> + k->init = usb_ehci_sysbus_initfn;
> + dc->vmsd = &vmstate_ehci_sysbus;
> + dc->props = ehci_sysbus_properties;
> +}
> +
> +TypeInfo ehci_xlnx_type_info = {
> + .name = "xlnx,ps7-usb",
> + .parent = TYPE_SYS_BUS_DEVICE,
> + .instance_size = sizeof(EHCISysBusState),
> + .class_init = ehci_sysbus_class_init,
> +};
> +
> +static void ehci_sysbus_register_types(void)
> +{
> + type_register_static(&ehci_xlnx_type_info);
> +}
> +
> +type_init(ehci_sysbus_register_types)
0001-dma-Define-dma_context_memory-and-use-by-default.patch
Description: Text Data
- [Qemu-devel] [PATCH 06/22] xhci: set pls in xhci_port_update & xhci_port_reset, (continued)
- [Qemu-devel] [PATCH 06/22] xhci: set pls in xhci_port_update & xhci_port_reset, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 08/22] xhci: allow address slot being called multiple times, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 01/22] xhci: add {get, set}_field macros & enum for pls, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 18/22] usb/ehci-pci: dynamic type generation, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 22/22] trace: allow disabling events in events file, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 16/22] uhci: stick irq routing info into UHCIInfo too., Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 10/22] usb/ehci: Abstract away PCI DMA API, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 19/22] usb/ehci-pci: add ich9 00:1a.* variant, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 15/22] uhci: dynamic type generation, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 14/22] usb/ehci: add sysbus variant, Gerd Hoffmann, 2012/10/30
- Re: [Qemu-devel] [PATCH 14/22] usb/ehci: add sysbus variant,
Peter Crosthwaite <=
- [Qemu-devel] [PATCH 13/22] usb/ehci: split into multiple source files, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 12/22] usb/ehci: Guard definition of EHCI_DEBUG, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 17/22] uhci: add ich9 00:1a.* variants, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 09/22] usb/ehci: parameterise the register region offsets, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 20/22] usb/ehci-pci: add helper to create ich9 usb controllers, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 21/22] [RfC] usb: mtp filesharing, Gerd Hoffmann, 2012/10/30
- [Qemu-devel] [PATCH 11/22] usb/ehci: seperate out PCIisms, Gerd Hoffmann, 2012/10/30