From: Gerd Hoffmann <kraxel@redhat.com>
To: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RfC PATCH 0/5] ehci pci splitup
Date: Tue, 30 Oct 2012 15:14:39 +0100 [thread overview]
Message-ID: <508FE0CF.3040601@redhat.com> (raw)
In-Reply-To: <CAEgOgz5exWuStvAzfdZyc5z_R7Svp-Quin8tjwqObNBDnMCqmg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 633 bytes --]
On 10/30/12 14:13, Peter Crosthwaite wrote:
> On Tue, Oct 30, 2012 at 9:28 PM, Gerd Hoffmann <kraxel@redhat.com> wrote:
>> Hi,
>>
>> Based on Peters series, not tested much yet, sysfs dropped but adding
>> back in should be as easy as adding a hcd-ehci-sysbus.c file simliar
>> to the pci variant.
>
> I can look into this tomorrow if there are no objections to this
> series, and ill rerun my test suite to confirm functionality for both
> PCI and SYSBUS. Ill send as patches ontop of this series.
I gave it a spin, patch attached, will send a full patch series with
current usb patch queue status in a moment.
cheers,
Gerd
[-- Attachment #2: 0001-usb-ehci-add-sysbus-variant.patch --]
[-- Type: text/plain, Size: 3428 bytes --]
>From 4b818b35d5ead6d4cb97c59945a15c7c61a8f479 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Tue, 30 Oct 2012 15:08:37 +0100
Subject: [PATCH] usb/ehci: add sysbus variant
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
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 26ab298..00e271f 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
prev parent reply other threads:[~2012-10-30 14:15 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-30 11:28 [Qemu-devel] [RfC PATCH 0/5] ehci pci splitup Gerd Hoffmann
2012-10-30 11:28 ` [Qemu-devel] [RfC PATCH 1/5] usb/ehci: parameterise the register region offsets Gerd Hoffmann
2012-10-30 12:41 ` Andreas Färber
2012-10-30 11:28 ` [Qemu-devel] [RfC PATCH 2/5] usb/ehci: Abstract away PCI DMA API Gerd Hoffmann
2012-10-30 12:42 ` Andreas Färber
2012-10-30 11:28 ` [Qemu-devel] [RfC PATCH 3/5] usb/ehci: seperate out PCIisms Gerd Hoffmann
2012-10-31 16:05 ` Andreas Färber
2012-11-01 8:39 ` Gerd Hoffmann
2012-10-30 11:28 ` [Qemu-devel] [RfC PATCH 4/5] usb/ehci: Guard definition of EHCI_DEBUG Gerd Hoffmann
2012-10-30 11:28 ` [Qemu-devel] [RfC PATCH 5/5] usb/ehci: split into multiple source files Gerd Hoffmann
2012-10-30 13:13 ` [Qemu-devel] [RfC PATCH 0/5] ehci pci splitup Peter Crosthwaite
2012-10-30 14:14 ` Gerd Hoffmann [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=508FE0CF.3040601@redhat.com \
--to=kraxel@redhat.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).