From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:50991) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RioPH-00079g-TX for qemu-devel@nongnu.org; Thu, 05 Jan 2012 09:35:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RioPC-0005MG-HD for qemu-devel@nongnu.org; Thu, 05 Jan 2012 09:35:03 -0500 Received: from smtp171.dfw.emailsrvr.com ([67.192.241.171]:36668) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RioPC-0005MA-7G for qemu-devel@nongnu.org; Thu, 05 Jan 2012 09:34:58 -0500 Message-ID: <4F05B522.8000304@calxeda.com> Date: Thu, 05 Jan 2012 08:35:14 -0600 From: Mark Langsdorf MIME-Version: 1.0 References: <1325771559-15570-1-git-send-email-mark.langsdorf@calxeda.com> <1325771559-15570-2-git-send-email-mark.langsdorf@calxeda.com> <4F05B0AC.8010301@suse.de> <7951BE1F-70F8-494D-A746-6122D59A1DE8@suse.de> In-Reply-To: <7951BE1F-70F8-494D-A746-6122D59A1DE8@suse.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v3 2/2] ahci: add support for non-PCI based controllers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: "kwolf@redhat.com" , "peter.maydell@linaro.org" , =?ISO-8859-1?Q?Andreas_F=E4rber?= , Rob Herring , "qemu-devel@nongnu.org" On 01/05/2012 08:26 AM, Alexander Graf wrote: >=20 > On 05.01.2012, at 15:16, Andreas F=E4rber wrote: >=20 >> Am 05.01.2012 14:52, schrieb Mark Langsdorf: >>> From: Rob Herring >>> >>> Add support for ahci on sysbus. >>> >>> Signed-off-by: Rob Herring >>> Signed-off-by: Mark Langsdorf >>> --- >>> Changes from v1, v2 >>> Corrected indentation of PlatAHCIState members >>> Made plat_ahci_info into a single structure, not a list >>> >>> hw/ide/ahci.c | 31 +++++++++++++++++++++++++++++++ >>> 1 files changed, 31 insertions(+), 0 deletions(-) >>> >>> diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c >>> index 135d0ee..f052e55 100644 >>> --- a/hw/ide/ahci.c >>> +++ b/hw/ide/ahci.c >>> @@ -25,6 +25,7 @@ >>> #include >>> #include >>> #include >>> +#include >>> >>> #include "monitor.h" >>> #include "dma.h" >>> @@ -1214,3 +1215,33 @@ 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 =3D 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); >=20 > It's still unclear to me how you connect an irq line on the command lin= e. How do you instantiate this device? I'm not sure how it's done on the command line. In the SoC model that this is intended for, I call sysbus_create_simple(). >>> + qemu_register_reset(ahci_reset, &s->ahci); >>> + return 0; >>> +} >>> + >>> +static SysBusDeviceInfo plat_ahci_info =3D { >>> + .qdev.name =3D "plat-ahci", >> >> The commit message does not given an indication where "plat" comes fro= m >> - is that an ARM device name? >=20 > "plat" here means "platform device". I'm not sure I like the naming tho= ugh. Basically it's a sysbus version of AHCI, similar to how virtio-mmio = is a sysbus version of virtio. >=20 > How about "sysbus-ahci"? Sure. I'll make that change. >> Does this patch actually make something work? If yes, please state so, >> including usage instructions. If not, then I would suggest to hold thi= s >> one back and to send it together with any follow-on patches that wire = it >> up on some machine. >=20 > You can always just create the device manually with -device and hook it= up in the guest device tree or machine description manually. >=20 > However the question still stands: Have you verified this code works? It's used in the Highbank SoC model, which hasn't been released yet. I'm waiting on some other patches to make it upstream, mostly Trustzone support now. I can resubmit it with the Highbank SoC model when that goes out if you would prefer. --Mark Langsdorf Calxeda, Inc.