All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org, anthony@codemonkey.ws, kraxel@redhat.com
Subject: Re: [Qemu-devel] [RFC 8/9] pcihp: expose PCI hotplug MMIO base/length as properties of piix4pm
Date: Sun, 16 Feb 2014 17:45:09 +0200	[thread overview]
Message-ID: <20140216154509.GG30056@redhat.com> (raw)
In-Reply-To: <1391777496-3882-9-git-send-email-imammedo@redhat.com>

On Fri, Feb 07, 2014 at 01:51:35PM +0100, Igor Mammedov wrote:
> with introduction of PCIHP, MMIO range becomes changable
> at runtime so it's not possible to statically punch hole
> PCI bus _CRS.
> 
> Making IO base/length available as readonly properties
> allow acpi builder to get values and reserve PCI hotplug
> IO range at runtime later.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>

No objection but I wonder: isn't it already possible to enumerate
memory regions?

> ---
>  hw/acpi/pcihp.c         |   28 ++++++++++++++++++++++++++++
>  hw/acpi/piix4.c         |    1 +
>  include/hw/acpi/pcihp.h |    4 ++++
>  3 files changed, 33 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c
> index 1ce6fc2..629d364 100644
> --- a/hw/acpi/pcihp.c
> +++ b/hw/acpi/pcihp.c
> @@ -37,6 +37,7 @@
>  #include "hw/pci/pci_bus.h"
>  #include "qom/qom-qobject.h"
>  #include "qapi/qmp/qint.h"
> +#include "qapi/visitor.h"
>  
>  //#define DEBUG
>  
> @@ -309,3 +310,30 @@ const VMStateDescription vmstate_acpi_pcihp_pci_status = {
>          VMSTATE_END_OF_LIST()
>      }
>  };
> +
> +static void acpi_pcihp_get_io_addr(Object *obj, Visitor *v, void *opaque,
> +                                     const char *name, Error **errp)
> +{
> +    AcpiPciHpState *s = opaque;
> +    MemoryRegionSection mr_info = memory_region_find(&s->io, 0, 1);
> +    uint16_t value = mr_info.offset_within_address_space;
> +
> +    visit_type_uint16(v, &value, name, errp);
> +}
> +
> +static void acpi_pcihp_get_io_len(Object *obj, Visitor *v, void *opaque,
> +                                     const char *name, Error **errp)
> +{
> +    AcpiPciHpState *s = opaque;
> +    uint16_t value = memory_region_size(&s->io);
> +
> +    visit_type_uint16(v, &value, name, errp);
> +}
> +
> +void acpi_pcihp_add_mmio_properties(Object *obj, AcpiPciHpState *s)
> +{
> +    object_property_add(obj, ACPI_PCIHP_IO_ADDR, "uint16",
> +                        acpi_pcihp_get_io_addr, NULL, NULL, s, NULL);
> +    object_property_add(obj, ACPI_PCIHP_IO_LEN, "uint16",
> +                        acpi_pcihp_get_io_len, NULL, NULL, s, NULL);
> +}
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index 7a0efcb..034c5cd 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -558,6 +558,7 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
>                            "acpi-gpe0", GPE_LEN);
>      memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe);
>  
> +    acpi_pcihp_add_mmio_properties(OBJECT(s), &s->acpi_pci_hotplug);
>      acpi_pcihp_init(&s->acpi_pci_hotplug, bus, parent,
>                      s->use_acpi_pci_hotplug);
>  
> diff --git a/include/hw/acpi/pcihp.h b/include/hw/acpi/pcihp.h
> index 0a90e4a..0eb4e1c 100644
> --- a/include/hw/acpi/pcihp.h
> +++ b/include/hw/acpi/pcihp.h
> @@ -70,4 +70,8 @@ extern const VMStateDescription vmstate_acpi_pcihp_pci_status;
>                                    vmstate_acpi_pcihp_pci_status, \
>                                    AcpiPciHpPciStatus)
>  
> +#define ACPI_PCIHP_IO_ADDR "pcihp-io-addr"
> +#define ACPI_PCIHP_IO_LEN  "pcihp-io-len"
> +
> +void acpi_pcihp_add_mmio_properties(Object *obj, AcpiPciHpState *s);
>  #endif
> -- 
> 1.7.1

  reply	other threads:[~2014-02-16 15:40 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-07 12:51 [Qemu-devel] [RFC 0/9] generate dynamic _CRS for motherboard resources Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 1/9] Revert "pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources" Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 2/9] Revert "pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 " Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 3/9] Partial revert "pc: ACPI: expose PRST IO range via _CRS" Igor Mammedov
2014-02-07 12:51 ` [Qemu-devel] [RFC 4/9] acpi: replace opencoded opcodes with defines Igor Mammedov
2014-02-16 12:02   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 5/9] acpi: add PNP0C02 to PCI0 bus Igor Mammedov
2014-02-16 12:06   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 6/9] acpi: consume GPE0 IO resources in PNP0C02 device Igor Mammedov
2014-02-16 15:20   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 7/9] acpi: consume CPU hotplug IO resource " Igor Mammedov
2014-02-16 15:39   ` Michael S. Tsirkin
2014-02-07 12:51 ` [Qemu-devel] [RFC 8/9] pcihp: expose PCI hotplug MMIO base/length as properties of piix4pm Igor Mammedov
2014-02-16 15:45   ` Michael S. Tsirkin [this message]
2014-02-07 12:51 ` [Qemu-devel] [RFC 9/9] acpi: consume PCIHP IO resource in PNP0C02 device Igor Mammedov
2014-02-16 15:53 ` [Qemu-devel] [RFC 0/9] generate dynamic _CRS for motherboard resources Michael S. Tsirkin
2014-02-17  8:32   ` Gerd Hoffmann
2014-02-17 10:28     ` Michael S. Tsirkin
2014-02-17 10:46       ` Gerd Hoffmann
2014-02-17 11:05         ` Michael S. Tsirkin
2014-02-18 16:36     ` Igor Mammedov
2014-02-18 22:04       ` Laszlo Ersek
2014-02-19  8:59         ` Igor Mammedov
2014-02-17 10:33   ` Igor Mammedov
2014-02-17 11:02     ` Michael S. Tsirkin
2014-02-18 11:10       ` Igor Mammedov
2014-02-18 11:33         ` Michael S. Tsirkin
2014-02-18 16:30           ` Igor Mammedov
2014-02-17  8:29 ` Gerd Hoffmann
2014-02-18 16:48   ` Igor Mammedov

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=20140216154509.GG30056@redhat.com \
    --to=mst@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=imammedo@redhat.com \
    --cc=kraxel@redhat.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 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.