qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 6/9] ahci: add support for non-PCI based controllers


From: Mark Langsdorf
Subject: [Qemu-devel] [PATCH 6/9] ahci: add support for non-PCI based controllers
Date: Thu, 22 Dec 2011 12:20:11 -0600

From: Rob Herring <address@hidden>

Add support for ahci on sysbus.

Signed-off-by: Rob Herring <address@hidden>
Signed-off-by: Mark Langsdorf <address@hidden>
---
 hw/ide/ahci.c |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 135d0ee..8b56509 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -25,6 +25,7 @@
 #include <hw/msi.h>
 #include <hw/pc.h>
 #include <hw/pci.h>
+#include <hw/sysbus.h>
 
 #include "monitor.h"
 #include "dma.h"
@@ -1214,3 +1215,37 @@ void ahci_reset(void *opaque)
         ahci_reset_port(s, i);
     }
 }
+
+typedef struct PlatAHCIState {
+        SysBusDevice busdev;
+        AHCIState ahci;
+} PlatAHCIState;
+
+static int plat_ahci_init(SysBusDevice *dev)
+{
+    PlatAHCIState *s = FROM_SYSBUS(PlatAHCIState, dev);
+    ahci_init(&s->ahci, &dev->qdev, 1);
+
+    sysbus_init_mmio(dev, &s->ahci.mem);
+    sysbus_init_irq(dev, &s->ahci.irq);
+
+    qemu_register_reset(ahci_reset, &s->ahci);
+    return 0;
+}
+
+static SysBusDeviceInfo plat_ahci_info[] = {
+    {
+        .qdev.name    = "plat-ahci",
+        .qdev.size    = sizeof(PlatAHCIState),
+        .init         = plat_ahci_init,
+    },{
+        /* end of list */
+    }
+};
+
+static void plat_ahci_register(void)
+{
+    sysbus_register_withprop(plat_ahci_info);
+}
+device_init(plat_ahci_register);
+
-- 
1.7.5.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]