All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shannon Zhao <shannon.zhao@linaro.org>
To: Andrew Jones <drjones@redhat.com>, Igor Mammedov <imammedo@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	QEMU Developers <qemu-devel@nongnu.org>,
	Christoffer Dall <christoffer.dall@linaro.org>,
	Shannon Zhao <zhaoshenglong@huawei.com>
Subject: Re: [Qemu-devel] [RFC PATCH] hw/arm/virt-acpi-build: Add GICv2m description in ACPI MADT table
Date: Tue, 16 Jun 2015 09:21:26 +0800	[thread overview]
Message-ID: <557F7A16.8040605@linaro.org> (raw)
In-Reply-To: <20150615180948.GB30395@hawk.localdomain>

Hi Andrew,

On 2015/6/16 2:09, Andrew Jones wrote:
> On Fri, Jun 12, 2015 at 06:21:35PM +0200, Igor Mammedov wrote:
>> On Fri, 12 Jun 2015 15:55:22 +0100
>> Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>>> On 1 June 2015 at 11:15,  <shannon.zhao@linaro.org> wrote:
>>>> From: Shannon Zhao <shannon.zhao@linaro.org>
>>>>
>>>> Add GICv2m description in ACPI MADT table, so guest can use MSI when
>>>> booting with ACPI.
>>>>
>>>> Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
>>>> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
>>>> ---
>>>>     This is based on Christoffer's GICv2m patchset.
>>>>         Test virtio-net-pci, e1000.
>>>> ---
>>>>  hw/arm/virt-acpi-build.c    | 11 +++++++++++
>>>>  include/hw/acpi/acpi-defs.h | 12 ++++++++++++
>>>>  2 files changed, 23 insertions(+)
>>>>
>>>> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
>>>> index a9373cc..d8dcf45 100644
>>>> --- a/hw/arm/virt-acpi-build.c
>>>> +++ b/hw/arm/virt-acpi-build.c
>>>> @@ -385,8 +385,10 @@ build_madt(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info,
>>>>  {
>>>>      int madt_start = table_data->len;
>>>>      const MemMapEntry *memmap = guest_info->memmap;
>>>> +    const int *irqmap = guest_info->irqmap;
>>>>      AcpiMultipleApicTable *madt;
>>>>      AcpiMadtGenericDistributor *gicd;
>>>> +    AcpiMadtGenericMsiFrame *gic_msi;
>>>>      int i;
>>>>
>>>>      madt = acpi_data_push(table_data, sizeof *madt);
>>>> @@ -410,6 +412,15 @@ build_madt(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info,
>>>>      gicd->length = sizeof(*gicd);
>>>>      gicd->base_address = memmap[VIRT_GIC_DIST].base;
>>>>
>>>> +    gic_msi = acpi_data_push(table_data, sizeof *gic_msi);
>>>> +    gic_msi->type = ACPI_APIC_GENERIC_MSI_FRAME;
>>>> +    gic_msi->length = sizeof(*gic_msi);
>>>> +    gic_msi->gic_msi_frame_id = 0;
>>>> +    gic_msi->base_address = memmap[VIRT_GIC_V2M].base;
>>>> +    gic_msi->flags = cpu_to_le32(1);
>>>> +    gic_msi->spi_count = NUM_GICV2M_SPIS;
>>>> +    gic_msi->spi_base = irqmap[VIRT_GIC_V2M] + ARM_SPI_BASE;
>>>
>>> Why do we need to convert the flags to little-endian,
>>> but not the length, base address or other fields?
>> +1 all ACPI numbers should be converted to little-endian.
>>
> 
> Hi Shannon,
> 
> Are you going to send another version of this?

Yes, it's on my to-do list.

> I also see that
> build_gtdt and build_madt appear to be missing LE conversions
> (maybe other tables too, I didn't look too closely). So I
> think we need an LE conversion fix patch for all missing places
> in hw/arm/virt-acpi-build.c, as well as new version of this one.

Agree.

> Let me know if I can help out in any way. Maybe we can see what
> mst and Igor say about Peter's acpi_struct_assign macro suggestion[*]
> before fixing everything first.
> 
Thanks for your reminding.

> [*] https://lists.gnu.org/archive/html/qemu-devel/2015-06/msg03899.html
> 
> Thanks,
> drew
> 

-- 
Shannon

      reply	other threads:[~2015-06-16  1:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-01 10:15 [Qemu-devel] [RFC PATCH] hw/arm/virt-acpi-build: Add GICv2m description in ACPI MADT table shannon.zhao
2015-06-12 14:55 ` Peter Maydell
2015-06-12 16:21   ` Igor Mammedov
2015-06-15 18:09     ` Andrew Jones
2015-06-16  1:21       ` Shannon Zhao [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=557F7A16.8040605@linaro.org \
    --to=shannon.zhao@linaro.org \
    --cc=christoffer.dall@linaro.org \
    --cc=drjones@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=zhaoshenglong@huawei.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.