[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 14/22] usb/ehci: add sysbus variant
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 14/22] usb/ehci: add sysbus variant |
Date: |
Tue, 30 Oct 2012 15:26:46 +0100 |
Signed-off-by: Gerd Hoffmann <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)
--
1.7.1
- [Qemu-devel] [PATCH 03/22] xhci: add xhci_port_have_device, (continued)
- [Qemu-devel] [PATCH 03/22] xhci: add xhci_port_have_device, Gerd Hoffmann, 2012/10/30
- [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 <=
- [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