From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:45391) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RkfmG-0003ws-Ew for qemu-devel@nongnu.org; Tue, 10 Jan 2012 12:46:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rkfm9-00077e-0x for qemu-devel@nongnu.org; Tue, 10 Jan 2012 12:46:27 -0500 Received: from cantor2.suse.de ([195.135.220.15]:39488 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rkfm8-00076j-DF for qemu-devel@nongnu.org; Tue, 10 Jan 2012 12:46:20 -0500 Message-ID: <4F0C7907.7020108@suse.de> Date: Tue, 10 Jan 2012 18:44:39 +0100 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1325793761-10249-1-git-send-email-mark.langsdorf@calxeda.com> <1326213943-878-1-git-send-email-mark.langsdorf@calxeda.com> <1326213943-878-4-git-send-email-mark.langsdorf@calxeda.com> In-Reply-To: <1326213943-878-4-git-send-email-mark.langsdorf@calxeda.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v5 3/6] ahci: add support for non-PCI based controllers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Mark Langsdorf Cc: i.mitsyanko@gmail.com, peter.maydell@linaro.org, qemu-devel@nongnu.org, Rob Herring , Alexander Graf Am 10.01.2012 17:45, schrieb Mark Langsdorf: > From: Rob Herring >=20 > Add support for ahci on sysbus. >=20 > Signed-off-by: Rob Herring > Signed-off-by: Mark Langsdorf Reviewed-by: Andreas F=E4rber Thanks, Andreas > --- > Changes from v4 > replaced all references to Plat|plat_ with sysbus_ > made the number of ports into a qdev property > added dummy migration support > Changes from v3 > Renamed plat-ahci to sysbus-ahci > Changes from v1, v2 > Corrected indentation of PlatAHCIState members > Made plat_ahci_info into a single structure, not a list >=20 > hw/ide/ahci.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 44 insertions(+), 0 deletions(-) >=20 > diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c > index 135d0ee..a3bd4b8 100644 > --- a/hw/ide/ahci.c > +++ b/hw/ide/ahci.c > @@ -25,6 +25,7 @@ > #include > #include > #include > +#include > =20 > #include "monitor.h" > #include "dma.h" > @@ -1214,3 +1215,46 @@ void ahci_reset(void *opaque) > ahci_reset_port(s, i); > } > } > + > +typedef struct sysbus_ahci_state { > + SysBusDevice busdev; > + AHCIState ahci; > + uint32_t num_ports; > +} sysbus_ahci_state; > + > +static const VMStateDescription vmstate_sysbus_ahci =3D { > + .name =3D "sysbus-ahci", > + .unmigratable =3D 1, > +}; > + > +static int sysbus_ahci_init(SysBusDevice *dev) > +{ > + sysbus_ahci_state *s =3D FROM_SYSBUS(sysbus_ahci_state, dev); > + ahci_init(&s->ahci, &dev->qdev, s->num_ports); > + > + 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 sysbus_ahci_info =3D { > + .qdev.name =3D "sysbus-ahci", > + .qdev.size =3D sizeof(sysbus_ahci_state), > + .qdev.vmsd =3D &vmstate_sysbus_ahci, > + .qdev.props =3D (Property[]) { > + DEFINE_PROP_UINT32("num-ports", sysbus_ahci_state, num_ports, = 1), > + DEFINE_PROP_END_OF_LIST(), > + }, > + .init =3D sysbus_ahci_init, > + > + > +}; > + > +static void sysbus_ahci_register(void) > +{ > + sysbus_register_withprop(&sysbus_ahci_info); > +} > + > +device_init(sysbus_ahci_register); --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg